Mais de 18 horas de vídeo, levando você de Vaes à difusão estável quase em tempo real com Pytorch e abraçando o rosto ... com muitos exemplos práticos para tornar o aprendizado profundo divertido novamente!
Este repositório contém o código, slides e exemplos do meu curso de vídeo generativo de programação de IA.
A IA generativa de programação é um tour prático de modelagem generativa profunda, levando você a criar redes neurais de feedforward simples em Pytorch até trabalhar com grandes modelos multimodais capazes de entender o texto e as imagens. Ao longo do caminho, você aprenderá como treinar seus próprios modelos generativos do Scratch para criar uma infinidade de imagens, gerar texto com grandes modelos de idiomas (LLMS) semelhantes aos que alimentam aplicativos como ChatGPT, escreva seu próprio pipeline de texto para entender como modelos generativos baseados em modelos realmente funcionam e personalizam grandes modelos pré-terenciados, como difusão estável para gerar imagens de novos sujeitos em sistemas visuais, e personalizam grandes modelos de pré-tereamento, como a difusão estável para gerar imagens de novos sujeitos em estilos novos em estilos visuais e personalizados entre as imagens de grandes e-terentes.
O código, slides e exercícios neste repositório estão (e sempre estarão) disponíveis gratuitamente. Os vídeos correspondentes podem ser adquiridos em:
A maneira mais fácil de começar (vídeos ou não) é usar um ambiente/plataforma de notebook em nuvem como o Google Colab (ou kaggle, papéis, etc.). Por conveniência, forneci links para os notebooks Jupyter Raw para o Desenvolvimento Local, um link do NBViewer, se você quiser navegar no código sem clonar o repositório (ou você pode usar o visualizador do Github embutido) e um link colab se você quiser executar interativamente o código sem configurar um ambiente de desenvolvimento local (e lutar com CUD Libraries).
| Caderno | Deslizamentos | NBViewer (estático) | Google Colab (interativo) |
|---|---|---|---|
| Lição 1: o quê, por que e como a IA generativa | |||
| Lição 2: Pytorch para o impaciente | |||
| Lição 3: espaço latente governa tudo ao meu redor | |||
| Lição 4: Difusão desmistificadora | |||
| Lição 5: gerando e codificando texto com transformadores | |||
| Lição 6: Conexão de texto e imagens | |||
| Lição 7: Procedimentos pós-treinamento para modelos de difusão |
Se você encontrar algum erro no código ou materiais, abra um problema do GitHub ou envie um e -mail para [email protected].
git clone https://github.com/jonathandinu/programming-generative-ai.git
cd programming-generative-aiCódigo implementado e testado com o Python 3.10.12 (outras versões> = 3,8 provavelmente funcionarão bem, mas o comprador, cuidado ...). Para instalar todos os pacotes usados nos notebooks em um ambiente 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 Se estiver usando pyenv para gerenciar as versões Python, pyenv deve usar automaticamente a versão listada no .python-version ao alterar esse diretório.
Além disso, os notebooks são configurados com uma célula para selecionar automaticamente um dispositivo apropriado (GPU) com base no que está disponível. Se em uma máquina Windows ou Linux, as GPUs NVIDIA e AMD devem funcionar (embora isso tenha sido testado apenas com a NVIDIA). E se em um Mac Apple Silicon, os shaders de desempenho de metal serão usados.
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" )Se nenhum dispositivo compatível puder ser encontrado, o código será padrão para um back -end da CPU. Isso deve ser bom para as lições 1 e 2, mas para qualquer um dos exemplos de geração de imagens (praticamente tudo após a lição 2), não usar uma GPU provavelmente será desconfortavelmente lento - nesse caso, eu recomendaria usar os links do Google Colab na tabela acima.
Intermediário a avançado
A lição 1 começa com uma introdução ao que a IA generativa é, pelo menos, pois é relevante para este curso, antes de se mudar para as especificidades de modelagem generativa profunda. Ele abrange a infinidade de possíveis modelos multimodais (em termos de modalidades de entrada e saída) e como é possível que os algoritmos realmente gerem riqueza de mídia aparentemente fora do ar. A lição termina com um pouco da formalização e teoria dos modelos generativos profundos e as compensações entre os vários tipos de arquiteturas generativas de modelagem.
A lição 2 começa com uma introdução às estruturas de Pytorch e de aprendizado profundo em geral. Eu mostro como a combinação de diferenciação automática e computação transparente nas GPUs realmente permitiu a explosão atual de pesquisas e aplicações de aprendizado profundo. Em seguida, mostro como você pode usar o Pytorch para implementar e aprender um modelo de regressão linear - como um trampolim para a construção de redes neurais muito mais complexas. Finalmente, a lição termina combinando todos os componentes que o Pytorch fornece para criar um perceptron de várias camadas de feedforward simples.
A lição 3 começa com uma cartilha sobre como os programas de computador realmente representam imagens como tensores de números. Cubro os detalhes das redes neurais convolucionais e os recursos arquitetônicos específicos que permitem que os computadores "vejam". Em seguida, você obtém seu primeiro gosto de modelos variáveis latentes, construindo e treinando um simples autoencoder para aprender uma representação compactada de imagens de entrada. No final da lição, você encontra seu primeiro modelo generativo adequado adicionando amostragem probabilística à arquitetura do autoencoder para chegar ao autoencoder variacional (VAE) - um componente -chave em futuros modelos generativos que encontraremos.
A lição 4 começa com uma introdução conceitual aos modelos de difusão, um componente essencial nos sistemas de texto para imagem de última geração, como difusão estável. A lição 4 é a sua primeira introdução real ao ecossistema de face abraçador de bibliotecas de código aberto, onde você verá como podemos usar a biblioteca de difusores para gerar imagens a partir de ruído aleatório. A lição então retira lentamente as camadas na biblioteca para desconstruir o processo de difusão e mostrar as especificidades de como um pipeline de difusão realmente funciona. Por fim, você aprende a alavancar as possibilidades exclusivas do processo de denoising iterativo de um modelo de difusão para interpolar entre imagens, executar a tradução de imagem para imagem e até restaurar e aprimorar imagens.
Assim como a lição 4 tinha tudo a ver com imagens, a lição 5 tem tudo a ver com texto. Começa com uma introdução conceitual ao pipeline de processamento de linguagem natural, bem como uma introdução aos modelos probabilísticos da linguagem. Você aprende como pode converter texto em uma representação mais prontamente compreendida por modelos generativos e explorar a utilidade mais ampla de representar palavras como vetores. A lição termina com um tratamento da arquitetura do transformador, onde você verá como usar a Biblioteca de Transformadores de Face Hugging para realizar inferência com modelos de idiomas grandes pré-treinados (LLMS) para gerar texto a partir do zero.
A lição 6 começa com uma introdução conceitual aos modelos multimodais e os componentes necessários necessários. Você vê como o pré-treinamento de imagem de linguagem contrastiva aprende em conjunto um modelo compartilhado de imagens e texto e saiba como esse espaço latente compartilhado pode ser usado para construir um mecanismo de pesquisa de imagem semântico. A lição termina com uma visão geral conceitual dos modelos de difusão latente, antes de desconstruir um pipeline de difusão estável para ver com precisão como os sistemas de texto para imagem podem transformar um prompt fornecido pelo usuário em uma imagem nunca visto antes.
A lição 7 tem tudo a ver com adaptar e aumentar os modelos multimodais pré-treinados existentes. Começa com a tarefa mais mundana, mas excepcionalmente importante, de avaliar modelos generativos antes de passar para métodos e técnicas para ajuste fino eficiente em parâmetro. Você aprende a ensinar um modelo de texto para imagem pré-treinado, como difusão estável sobre novos estilos, assuntos e condicionamentos. A lição termina com técnicas para tornar a difusão muito mais eficiente para abordar a geração de imagens quase em tempo real.
© ️ 2024 Jonathan Dinu. Todos os direitos reservados. A remoção desse aviso de direitos autorais ou reprodução em parte ou todo o texto, imagens e/ou código é expressamente proibido.
Para obter permissão para usar o conteúdo em sua própria apresentação (postagens de blog, palestras, vídeos, cursos etc.), entre em contato com [email protected].