VAESからPytorchとHugging Faceとのほぼリアルタイムの安定した拡散まで、18時間以上のビデオがあります。
このリポジトリには、プログラミング生成AIビデオコースのコード、スライド、および例が含まれています。
プログラミングGenerative AIは、深い生成モデリングの実践的なツアーであり、Pytorchのシンプルなフィードフォワードニューラルネットワークを構築することから、テキストと画像の両方を理解できる大規模なマルチモーダルモデルでの作業に導きます。途中で、独自の生成モデルをゼロからトレーニングして無限の画像を作成する方法を学び、ChatGPTのようなパワーアプリケーションと同様の大きな言語モデル(LLMS)でテキストを生成し、独自のテキストからイメージへのパイプラインを作成して、迅速なベースの生成モデルが実際に機能する方法を理解し、ユニークな視覚的スタイルの視覚的なスタイルの安定した拡散のような大規模な前処理モデルをパーソナライズします。
このリポジトリのコード、スライド、およびエクササイズは、自由に利用可能です(常に)。対応するビデオは次のように購入できます。
開始する最も簡単な方法(ビデオであろうとなかろうと)は、Google Colab(またはKaggle、Paperspaceなど)などのクラウドノートブック環境/プラットフォームを使用することです。利便性のために、ローカル開発用の生のjupyterノートブック、nbviewerリンクへのリンクを提供しました。レポをクローニングせずにコードを閲覧したい場合(または、内蔵githubビューアを使用できます)、およびローカル開発環境を設定せずにコードをインタラクティブに実行したい場合は、colabリンクを提供します。
| ノート | スライド | nbviewer(static) | Google Colab(インタラクティブ) |
|---|---|---|---|
| レッスン1:何、なぜ、そして生成的AIの方法 | |||
| レッスン2:焦りのためのPytorch | |||
| レッスン3:潜在的なスペースは私の周りのすべてを支配しています | |||
| レッスン4:拡散を分類します | |||
| レッスン5:トランスを使用したテキストの生成とエンコード | |||
| レッスン6:テキストと画像の接続 | |||
| レッスン7:拡散モデルのトレーニング後の手順 |
コードや資料にエラーが見つかった場合は、githubの問題または電子メール[email protected]を開いてください。
git clone https://github.com/jonathandinu/programming-generative-ai.git
cd programming-generative-aiPython 3.10.12で実装およびテストされたコード(他のバージョン> = 3.8は正常に動作する可能性がありますが、購入者は注意してください...)。ローカルな仮想環境でノートブックに使用されるすべてのパッケージをインストールするには:
# pyenv install 3.10.12
python --version
# => Python 3.10.12
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt pyenvを使用してPythonバージョンを管理する場合、 pyenv 、このディレクトリに変更するときに.python-versionにリストされているバージョンを自動的に使用する必要があります。
さらに、ノートブックはセルでセットアップされ、使用可能なものに基づいて適切なデバイス(GPU)を自動的に選択します。 WindowsまたはLinuxマシン上で、NVIDIAとAMD GPUの両方が機能するはずです(ただし、これはNVIDIAでのみテストされています)。また、Apple Silicon Macでは、Metal Performanceシェーダーが使用されます。
import torch
# default device boilerplate
device = (
"cuda" # Device for NVIDIA or AMD GPUs
if torch . cuda . is_available ()
else "mps" # Device for Apple Silicon (Metal Performance Shaders)
if torch . backends . mps . is_available ()
else "cpu"
)
print ( f"Using { device } device" )互換性のあるデバイスが見つからない場合、コードはデフォルトでCPUバックエンドになります。これはレッスン1と2には問題ありませんが、画像生成の例(レッスン2後のほとんどすべて)の場合、GPUを使用しないことは不快に遅くなる可能性があります。
中級から高度
レッスン1は、少なくともこのコースに関連する生成AIが実際に何であるかの紹介から始まり、深い生成モデリングの詳細に移行します。可能な多数のマルチモーダルモデル(入力および出力モダリティの観点から)と、アルゴリズムが実際に薄い空気から豊富なメディアを生成する方法をカバーしています。レッスンは、深い生成モデルの形式と理論の少し、およびさまざまな種類の生成モデリングアーキテクチャ間のトレードオフで締めくくります。
レッスン2は、PytorchとDeep Learning Frameworks全般の紹介から始まります。 GPUでの自動分化と透明な計算の組み合わせにより、現在の深い学習研究とアプリケーションの爆発が実際にどのように可能になったかを示します。次に、Pytorchを使用して線形回帰モデルを実装および学習する方法を紹介します。これは、はるかに複雑なニューラルネットワークを構築するための足がかりです。最後に、Pytorchが提供するすべてのコンポーネントを組み合わせて、シンプルなFeedforwardマルチレイヤーPerceptronを構築することにより、レッスンを締めくくります。
レッスン3は、コンピュータープログラムが数字のテンソルとして実際に画像をどのように表現するかについての入門書から始まります。畳み込みニューラルネットワークの詳細と、コンピューターが「見る」ことを可能にする特定のアーキテクチャ機能について説明します。次に、入力画像の圧縮表現を学習するためにシンプルな自動エンコーダーを構築およびトレーニングすることにより、潜在変数モデルの最初の味を取得します。レッスンの終わりに、自動エンコーダーアーキテクチャに確率的サンプリングを追加して、変分自動エンコーダー(VAE)に到達することにより、最初の適切な生成モデルに遭遇します。これは、遭遇する将来の生成モデルの重要な成分です。
レッスン4は、拡散モデルの概念的紹介から始まります。これは、安定した拡散などの現在の最新テキストから画像システムの重要なコンポーネントです。レッスン4は、オープンソースライブラリの抱き合った顔のエコシステムの最初の実際の紹介であり、Diffusersライブラリを使用してランダムノイズから画像を生成する方法がわかります。レッスンは、拡散プロセスを分解し、拡散パイプラインが実際にどのように機能するかの詳細を示して、ライブラリのレイヤーをゆっくりと剥がします。最後に、拡散モデルの反復的な除去プロセスのユニークなアフォーダンスを活用して、画像間の補間、画像間翻訳を実行し、さらには画像を復元および強化する方法を学びます。
レッスン4が画像に関するものであるように、レッスン5はすべてテキストに関するものです。それは、自然言語処理パイプラインの概念的な紹介と、言語の確率論的モデルの紹介から始まります。次に、テキストを生成モデルによってより容易に理解される表現に変換する方法を学び、ベクトルとして単語を表すことのより広範な有用性を探求します。レッスンは、トランスアーキテクチャの処理で終わります。ここでは、ハグするフェイストランスライブラリを使用して、事前に訓練された大手言語モデル(LLM)を使用して推論を実行してテキストをゼロから生成する方法を確認します。
レッスン6は、マルチモーダルモデルと必要な必要なコンポーネントの概念的な紹介から始まります。トレーニング前のコントラスト言語イメージが共同で画像とテキストの共有モデルを学習し、その共有潜在スペースを使用してセマンティックの画像検索エンジンを構築する方法を学習します。レッスンは、安定した拡散パイプラインを分解する前に、潜在的な拡散モデルの概念的概要で終わります。
レッスン7は、既存の事前に訓練されたマルチモーダルモデルの適応と増強に関するものです。これは、パラメーター効率的な微調整の方法と手法に進む前に、生成モデルを評価するという、より平凡ではあるが非常に重要なタスクから始まります。次に、新しいスタイル、サブジェクト、条件付けに関する安定した拡散など、事前に訓練されたテキストから画像へのモデルを教える方法を学びます。レッスンは、拡散をより効率的にするためのテクニックで終わり、リアルタイムのほぼ画像生成に近づきます。
©️2024Jonathan Dinu。無断転載を禁じます。テキスト、画像、および/またはコードの一部または全体でのこの著作権通知または複製の削除は、明示的に禁止されています。
独自のプレゼンテーションでコンテンツを使用する許可(ブログ投稿、講義、ビデオ、コースなど)については、[email protected]にお問い合わせください。