Über 18 Stunden Video, das Sie den ganzen Weg von Vaes bis zu einer nahezu Echtzeit-stabilen Diffusion mit Pytorch und umarmtem Gesicht führt ... mit vielen praktischen Beispielen, um das Deep-Lernen wieder Spaß zu machen!
Dieses Repository enthält den Code, die Folien und die Beispiele meines Programmiers für generative AI -Videos.
Programmieren generative KI ist eine praktische Tour durch die tiefe generative Modellierung, die Sie vom Aufbau einfacher neuronaler Feedforward-Netzwerke in Pytorch bis hin zur Arbeit mit großen multimodalen Modellen enthält, die sowohl Text als auch Bilder verstehen können. Unterwegs lernen Sie, wie Sie Ihre eigenen generativen Modelle von Grund auf schulen, um eine Unendlichkeit von Bildern zu erstellen, Text mit großen Sprachmodellen (LLMs) zu erzeugen, ähnlich denen, die Anwendungen wie Chatgpt haben, Ihre eigene Text-zu-Image-Pipeline schreiben, um zu verstehen, wie prompt-basierte generative Modelle tatsächlich funktionieren, und personalisierte große vorgefertigte Modelle wie stabile Diffusion, um Bilder von individuellen Subjekten zu erzeugen, um Bilder von Roman-Subjekten zu erzeugen, um sich in einzigartigen Subjekten zu befassen.
Der Code, die Folien und die Übungen in diesem Repository sind (und werden immer) frei verfügbar. Die entsprechenden Videos können erworben werden auf:
Der einfachste Weg, um zu beginnen (Videos oder nicht), besteht darin, eine Cloud -Notebook -Umgebung/Plattform wie Google Colab (oder Kaggle, Papierspace usw.) zu verwenden. Für den Komfort habe ich Links zu den Raw Jupyter-Notizbüchern für die lokale Entwicklung, einen NBViewer-Link bereitgestellt, wenn Sie den Code durchsuchen möchten, ohne das Repo zu klonen (oder Sie können den integrierten Github-Viewer verwenden), und einen Colab-Link, wenn Sie den Code interaktiv ausführen möchten, ohne eine lokale Entwicklungsumgebung zu erstellen (und mit Cuda-Bibliotheken zu kämpfen).
| Notizbuch | Folien | NBViewer (statisch) | Google Colab (interaktiv) |
|---|---|---|---|
| Lektion 1: das Was, Warum und wie von generativer KI | |||
| Lektion 2: Pytorch für den ungeduldigen | |||
| Lektion 3: Latenter Raum regiert alles um mich herum | |||
| Lektion 4: entmystifizierende Diffusion | |||
| Lektion 5: Erzeugen und Codieren von Text mit Transformatoren | |||
| Lektion 6: Text und Bilder verbinden | |||
| Lektion 7: Verfahren nach dem Training für Diffusionsmodelle |
Wenn Sie Fehler im Code oder in den Materialien finden, öffnen Sie bitte ein GitHub -Problem oder senden Sie eine E -Mail an [email protected].
git clone https://github.com/jonathandinu/programming-generative-ai.git
cd programming-generative-aiCode implementiert und getestet mit Python 3.10.12 (andere Versionen> = 3.8 funktionieren wahrscheinlich gut, aber der Käufer ist aufmerksam ...). So installieren Sie alle Pakete, die in den Notebooks in einer lokalen virtuellen Umgebung verwendet werden:
# pyenv install 3.10.12
python --version
# => Python 3.10.12
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt Bei Verwendung von pyenv zum Verwalten von Python-Versionen sollte pyenv die in .python-version aufgeführte Version beim Wechsel in dieses Verzeichnis automatisch verwenden.
Darüber hinaus werden die Notizbücher mit einer Zelle eingerichtet, um automatisch ein geeignetes Gerät (GPU) auszuwählen, basierend auf den verfügbaren verfügbaren. Wenn auf einer Windows- oder Linux -Maschine sowohl Nvidia als auch AMD -GPUs funktionieren sollten (obwohl dies nur mit Nvidia getestet wurde). Und wenn auf einem Apple Silicon MAC Metall -Performance -Shader verwendet werden.
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" )Wenn kein kompatibler Gerät gefunden werden kann, stand der Code standardmäßig an einem CPU -Backend. Dies sollte für die Lektionen 1 und 2 in Ordnung sein, aber für eines der Beispiele für Bildgenerierung (so ziemlich alles nach Lektion 2) wird es wahrscheinlich unangenehm langsam sein, wenn nicht eine GPU verwendet wird - in diesem Fall würde ich empfehlen, die Google Colab -Links in der obigen Tabelle zu verwenden.
Fortgeschrittene bis fortgeschritten
Lektion 1 beginnt mit einer Einführung in das, was generative KI tatsächlich ist, zumindest da es für diesen Kurs relevant ist, bevor sie sich in die Besonderheiten der tiefen generativen Modellierung befassen. Es deckt die Fülle möglicher multimodaler Modelle (in Bezug auf Eingangs- und Ausgangsmodalitäten) ab und wie es Algorithmen möglich ist, um reichhaltige Medien zu erzeugen, die scheinbar aus der Luft scheinen. Die Lektion endet mit ein wenig der Formalisierung und Theorie von tiefen generativen Modellen und den Kompromisse zwischen den verschiedenen Arten von generativen Modellierungsarchitekturen.
Lektion 2 beginnt mit einer Einführung in Pytorch- und Deep -Lern -Frameworks im Allgemeinen. Ich zeige Ihnen, wie die Kombination aus automatischer Differenzierung und transparenter Berechnung von GPUs die aktuelle Explosion von Deep -Learning -Forschung und Anwendungen ermöglicht hat. Als nächstes zeige ich Ihnen, wie Sie Pytorch verwenden können, um ein lineares Regressionsmodell zu implementieren und zu lernen - als Sprungbrett, um viel komplexere neuronale Netzwerke aufzubauen. Schließlich werden die Lektion abgeschlossen, indem alle Komponenten, die Pytorch bietet, ein einfaches Multi-Layer-Perzeptron erstellt.
Lektion 3 beginnt mit einer Grundierung darüber, wie Computerprogramme Bilder tatsächlich als Tensoren von Zahlen darstellen. Ich behandle die Details der neuronalen Netzwerke von Faltungen und die spezifischen architektonischen Merkmale, die es Computern ermöglichen, „zu sehen“. Als nächstes erhalten Sie Ihren ersten Vorgeschmack auf latente variable Modelle, indem Sie einen einfachen Autocoder erstellen und trainieren, um eine komprimierte Darstellung von Eingabebildern zu erlernen. Am Ende der Lektion begegnen Sie Ihrem ersten ordnungsgemäßen generativen Modell, indem Sie der AutoCoder -Architektur probabilistische Probenahme hinzufügen, um zum Variational AutoCoder (VAE) zu gelangen - eine Schlüsselkomponente in zukünftigen Generativmodellen, denen wir begegnen werden.
Lektion 4 beginnt mit einer konzeptionellen Einführung in Diffusionsmodelle, einer Schlüsselkomponente im aktuellen Stand der Kunsttext-Image-Systeme wie der stabilen Diffusion. Lektion 4 ist Ihre erste wirkliche Einführung in das Umarmungs-Face-Ökosystem von Open-Source-Bibliotheken, in dem Sie sehen, wie wir die Diffusors-Bibliothek verwenden können, um Bilder aus zufälligem Rauschen zu generieren. Die Lektion schleppt dann langsam die Schichten in der Bibliothek zurück, um den Diffusionsprozess zu dekonstruieren und Ihnen die Besonderheiten zu zeigen, wie eine Diffusionspipeline tatsächlich funktioniert. Schließlich lernen Sie, wie Sie die einzigartigen Gewährleiden des iterativen Diffusionsmodellprozesses nutzen können, um zwischen Bildern zu interpolieren, Bild-zu-Image-Übersetzungen durchzuführen und sogar Bilder wiederherzustellen und zu verbessern.
So wie Lektion 4 alles um Bilder ging, dreht sich in Lektion 5 alles um Text. Es beginnt mit einer konzeptionellen Einführung in die Pipeline der natürlichen Sprache sowie mit einer Einführung in probabilistische Sprachmodelle. Anschließend erfahren Sie, wie Sie Text in eine Darstellung konvertieren können, die von generativen Modellen leichter verstanden und den breiteren Nutzen der Darstellung von Wörtern als Vektoren untersuchen können. Die Lektion endet mit einer Behandlung der Transformer-Architektur, in der Sie sehen, wie Sie mit der Umarmungs-Face-Transformers-Bibliothek inferenzieren können, um mit vorgebliebenen großartigen großsprachigen Modellen (LLMs) inferenziert zu werden, um Text von Grund auf neu zu erstellen.
Lektion 6 beginnt mit einer konzeptionellen Einführung in multimodale Modelle und den erforderlichen erforderlichen Komponenten. Sie sehen, wie ein kontrastives Sprachbild vor dem Training gemeinsam ein gemeinsames Modell von Bildern und Text und Text lernt und wie dieser gemeinsame latente Raum zum Erstellen einer semantischen Bildsuchmaschine verwendet werden kann. Die Lektion endet mit einem konzeptionellen Überblick über latente Diffusionsmodelle, bevor eine stabile Diffusionspipeline dekonstruiert, um genau zu erkennen, wie Text-to-Image-Systeme eine Benutzer-Eingabeaufforderung in ein nie zuvor gesehenes Bild verwandeln können.
Bei Lektion 7 geht es darum, vorhandene multimodale Modelle vorhandener vorgebreiteter Multimodalmodelle anzupassen und zu erweitern. Es beginnt mit der alltätigeren, aber außergewöhnlich wichtigen Aufgabe, generative Modelle zu bewerten, bevor Sie sich mit Methoden und Techniken für eine effiziente Feinabstimmung von Parametern befassen. Anschließend lernen Sie, wie man ein vorgebildetes Text-zu-Image-Modell unterrichtet, z. B. stabile Verbreitung über neue Stile, Themen und Konditionierungen. Die Lektion endet mit Techniken, um die Diffusion viel effizienter zu gestalten, um sich in der Nähe der Echtzeit-Imagegenerierung zu nähern.
© euen 2024 Jonathan Dinu. Alle Rechte vorbehalten. Das Entfernen dieser Urheberrechtsbekanntmachung oder -reproduktion teilweise oder in ganzem Text, Bildern und/oder Code ist ausdrücklich verboten.
Für die Erlaubnis, den Inhalt in Ihrer eigenen Präsentation zu verwenden (Blog -Beiträge, Vorträge, Videos, Kurse usw.), wenden Sie sich bitte an [email protected].