Más de 18 horas de video que te llevan desde VAE a una difusión estable casi en tiempo real con Pytorch y abrazando la cara ... ¡con muchos ejemplos prácticos para hacer que el aprendizaje profundo sea divertido nuevamente!
Este repositorio contiene el código, las diapositivas y los ejemplos de mi curso de video generativo de AI de programación.
La programación de IA generativa es un recorrido práctico de modelado generativo profundo, que lo lleva a construir redes neuronales de avance simples en Pytorch hasta el trabajo para trabajar con grandes modelos multimodales capaces de comprender tanto el texto como las imágenes. En el camino, aprenderá cómo capacitar a sus propios modelos generativos desde cero para crear un infinito de imágenes, generar texto con modelos de idiomas grandes (LLM) similares a los que impulsan aplicaciones como ChatGPT, escriben su propia tubería de texto a imagen para comprender cómo funcionan realmente los modelos generativos basados en rápido y personalizan grandes modelos previos a la difusión estable para generar imágenes generales en materias nuevas en estilos visuales únicos (entre otras cosas). Entre otras cosas).
El código, las diapositivas y los ejercicios en este repositorio están (y siempre estarán) disponibles gratuitamente. Los videos correspondientes se pueden comprar en:
La forma más fácil de comenzar (videos o no) es utilizar un entorno/plataforma de cuaderno en la nube como Google Colab (o Kaggle, Paperspace, etc.). Por conveniencia, he proporcionado enlaces a los cuadernos RAW Jupyter para el desarrollo local, un enlace NBViewer si desea navegar por el código sin clonar el repositorio (o puede usar el Visor GitHub incorporado) y un enlace COLAB si desea ejecutar interactivamente el código sin configurar un entorno de desarrollo local (y combatir con las bibliotecas CUDA).
| Computadora portátil | Toboganes | NBViewer (estático) | Google Colab (interactivo) |
|---|---|---|---|
| Lección 1: ¿Qué, por qué y cómo de IA generativo? | |||
| Lección 2: Pytorch para el impaciente | |||
| Lección 3: El espacio latente gobierna todo lo que me rodea | |||
| Lección 4: Difusión desmitificadora | |||
| Lección 5: Generación y codificación de texto con transformadores | |||
| Lección 6: Conectando texto e imágenes | |||
| Lección 7: Procedimientos posteriores a la capacitación para modelos de difusión |
Si encuentra algún error en el código o materiales, abra un problema de GitHub o envíe un correo electrónico a [email protected].
git clone https://github.com/jonathandinu/programming-generative-ai.git
cd programming-generative-aiEl código implementado y probado con Python 3.10.12 (es probable que otras versiones> = 3.8 funcionen bien, pero el comprador tenga cuidado ...). Para instalar todos los paquetes utilizados en los cuadernos en un entorno virtual local:
# pyenv install 3.10.12
python --version
# => Python 3.10.12
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt Si usa pyenv para administrar las versiones de Python, pyenv debería usar automáticamente la versión enumerada en .python-version cuando se cambia a este directorio.
Además, los cuadernos se configuran con una celda para seleccionar automáticamente un dispositivo apropiado (GPU) en función de lo que está disponible. Si en una máquina de Windows o Linux, las GPU NVIDIA y AMD deberían funcionar (aunque esto solo se ha probado con NVIDIA). Y si se utilizará en un Apple Silicon Mac, se utilizarán sombreadores de rendimiento de metal.
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" )Si no se puede encontrar ningún dispositivo compatible, el código se debe por defecto a un backend de la CPU. Esto debería estar bien para las lecciones 1 y 2, pero para cualquiera de los ejemplos de generación de imágenes (casi todo después de la Lección 2), no usar una GPU probablemente sea incómodamente lento, en ese caso recomendaría usar los enlaces de Google Colab en la tabla anterior.
Intermedio a avanzado
La Lección 1 comienza con una introducción a lo que realmente es la IA generativa, al menos como es relevante para este curso, antes de pasar a los detalles del modelado generativo profundo. Cubre la gran cantidad de posibles modelos multimodales (en términos de modalidades de entrada y salida) y cómo es posible que los algoritmos realmente generen medios ricos aparentemente fuera de la nada. La lección concluye con un poco de formalización y teoría de modelos generativos profundos, y las compensaciones entre los diversos tipos de arquitecturas de modelado generativo.
La Lección 2 comienza con una introducción a los marcos de aprendizaje de Pytorch y Deep en general. Le muestro cómo la combinación de diferenciación automática y cálculo transparente en GPU realmente ha permitido la explosión actual de investigaciones y aplicaciones de aprendizaje profundo. A continuación, le muestro cómo puede usar Pytorch para implementar y aprender un modelo de regresión lineal, como un trampolín para construir redes neuronales mucho más complejas. Finalmente, la lección concluye combinando todos los componentes que Pytorch proporciona para construir un perceptrón de múltiples capas de alimentación simple.
La Lección 3 comienza con un manual sobre cómo los programas de computadora realmente representan imágenes como tensores de números. Cubro los detalles de las redes neuronales convolucionales y las características arquitectónicas específicas que permiten a las computadoras "ver". A continuación, obtienes tu primer gusto de los modelos de variables latentes construyendo y entrenando un autoencoder simple para aprender una representación comprimida de imágenes de entrada. Al final de la lección, se encuentra con su primer modelo generativo adecuado al agregar un muestreo probabilístico a la arquitectura automática de Autoencoder para llegar al AutoEcoder variacional (VAE), un componente clave en modelos generativos futuros que encontraremos.
La Lección 4 comienza con una introducción conceptual a los modelos de difusión, un componente clave en los sistemas de texto a imagen de estado de arte actual, como la difusión estable. La Lección 4 es su primera introducción real al ecosistema de la cara abrazada de las bibliotecas de código abierto, donde verá cómo podemos usar la biblioteca de difusores para generar imágenes a partir de ruido aleatorio. La lección luego retira lentamente las capas en la biblioteca para deconstruir el proceso de difusión y mostrarle los detalles de cómo funciona realmente una tubería de difusión. Finalmente, aprende a aprovechar las posibilidades únicas del proceso iterativo de desacuminación de un modelo de difusión para interpolar entre imágenes, realizar la traducción de imagen a imagen e incluso restaurar y mejorar las imágenes.
Así como la Lección 4 tenía que ver con las imágenes, la Lección 5 se trata de texto. Comienza con una introducción conceptual a la tubería de procesamiento del lenguaje natural, así como una introducción a los modelos probabilísticos de lenguaje. Luego aprende cómo puede convertir el texto en una representación entendida más fácilmente por modelos generativos y explorar la utilidad más amplia de representar palabras como vectores. La lección termina con un tratamiento de la arquitectura del transformador, donde verá cómo puede usar la biblioteca de transformadores faciales abrazados para realizar una inferencia con modelos de lenguaje grande (LLM) previamente capacitados para generar texto desde cero.
La Lección 6 comienza con una introducción conceptual a los modelos multimodales y los componentes necesarios necesarios. Usted ve cómo el lenguaje contrastante de la imagen del lenguaje aprende conjuntamente un modelo compartido de imágenes y texto, y aprende cómo se puede usar ese espacio latente compartido para construir un motor de búsqueda semántico de imágenes. La lección termina con una visión general conceptual de los modelos de difusión latente, antes de deconstruir una tubería de difusión estable para ver con precisión cómo los sistemas de texto a imagen pueden convertir un usuario proporcionado en una imagen nunca antes vista.
La Lección 7 se trata de adaptar y aumentar los modelos multimodales previamente capacitados existentes. Comienza con la tarea más mundana, pero excepcionalmente importante, de evaluar modelos generativos antes de pasar a métodos y técnicas para un ajuste fino eficiente de los parámetros. Luego aprende a enseñar un modelo de texto a imagen previamente capacitado, como difusión estable sobre nuevos estilos, temas y acondicionados. La lección termina con las técnicas para hacer que la difusión sea mucho más eficiente para acercarse a la generación de imágenes cerca del tiempo real.
© ️ 2024 Jonathan Dinu. Reservados todos los derechos. La eliminación de este aviso o reproducción de derechos de autor en parte o todo el texto, las imágenes y/o el código está expresamente prohibido.
Para obtener permiso para usar el contenido en su propia presentación (publicaciones de blog, conferencias, videos, cursos, etc.), comuníquese con [email protected].