programming generative ai
supercut.mp4
18个小时以上的视频将您从VAE到接近实时的稳定扩散与Pytorch和拥抱的脸…带有大量动手实例,使深度学习再次变得有趣!
该存储库包含我的programming generative ai视频课程中的代码,幻灯片和示例。
概述
programming generative ai是一次深入生成建模的动手游览,使您无法在Pytorch建立简单的前馈神经网络,一直到使用能够理解文本和图像的大型多模型模型。在此过程中,您将学习如何从头开始训练自己的生成模型以创建无限的图像,以大型语言模型(LLM)生成文本,类似于那些为诸如chatgpt等应用的供电的文本,编写自己的文本到图像管道,以了解迅速的基于基于迅速的生成模型的实际工作,并如何实现稳定的型号,例如生成稳定的扩散模型,以生成新颖的图像中的独特视觉图像(包括其他独特的视觉样式)(包括其他独特的视觉范围)(包括其他类型的视图)。
课程材料
该存储库中的代码,幻灯片和练习是(并将始终是)可用的。可以购买相应的视频:
- 信息:单点购买(用代码: Video40 )享受40%的折扣)
- O\’Reilly学习:每月订阅
最简单的入门方法(无论视频与否)是使用云笔记本环境/平台,例如Google Colab(或Kaggle,paperspace等)。为了方便起见,我提供了指向本地开发的原始Jupyter笔记本电脑的链接,如果您想浏览代码而不克隆仓库(或者可以使用内置的GitHub查看器),则提供了NBViewer链接,如果您想在不建立本地开发环境(并与Cuda Ibrularies战斗)上进行交互性地运行代码,则可以使用COLAB链接。
| 笔记本 | 幻灯片 | NBViewer(静态) | Google Colab(Interactive) |
|---|---|---|---|
| 第1课:什么,原因和生成性AI | |||
| 第2课:不耐烦的Pytorch | |||
| 第3课:潜在空间统治着我周围的一切 | |||
| 第4课:神秘的扩散 | |||
| 第5课:使用变压器生成和编码文本 | |||
| 第6课:连接文本和图像 | |||
| 第7课:扩散模型的培训程序 |
如果您在代码或材料中找到任何错误,请打开github问题或发送电子邮件至errata@jonathandinu.com。
本地设置
git clone https://githu*b**.com/jonathandinu/programming-generative-ai.git
cd programming-generative-ai
用Python 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上,将使用金属性能着色器。
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可能会感到不舒服 – 在这种情况下,我建议您在上表中使用Google Colab链接。
技能水平
中间到高级
学习如何
- 使用Pytorch训练变异自动编码器(VAE),以学习压缩的潜在图像空间。
- 通过无条件扩散模型和SDEDIT生成和编辑现实的人面孔。
- 使用大型语言模型(例如GPT2)与拥抱面孔变压器生成文本。
- 使用剪辑等多模式模型执行基于文本的语义图像搜索。
- 编程自己的文本到图像管道,以了解稳定扩散(例如稳定扩散)的基于及时的生成模型。
- 在定性和定量上正确评估生成模型。
- 使用验证的基础模型自动标题图像。
- 通过与洛拉有效微调稳定扩散,以特定的视觉样式生成图像。
- 通过教授经过验证的扩散模型的新主题和Dreambooth的新主题和概念来创建个性化的AI化身。
- 使用深度和边缘条件控制网络指导生成图像的结构和组成。
- 使用SDXL Turbo进行接近实时推断,以进行基于框架的视频与视频翻译。
谁应该参加这门课程
- 有兴趣构建生成AI系统和应用的工程师和开发人员。
- 有兴趣使用最先进的深度学习模型的数据科学家。
- 学生,研究人员和学者正在寻找应用或动手的资源来补充其理论或概念知识。
- 想要扩大创造性实践的技术艺术家和创意编码人员。
- 任何有兴趣与不知道从哪里或如何开始的生成AI合作的人。
先决条件
- Python的舒适编程
- 了解机器学习基础知识
- 熟悉深度学习和神经网络将有所帮助,但不需要
课程描述
第1课:什么,原因和生成性AI
第1课从介绍生成AI的实际介绍,至少在与本课程相关的情况下,在进入深层生成建模的细节之前。它涵盖了许多可能的多模型模型(就输入和输出方式而言),以及算法如何实际生成丰富的媒体似乎是用稀薄的空气产生的。该课程结合了一些深层生成模型的形式和理论,以及各种类型的生成建模体系结构之间的权衡。
第2课:不耐烦的Pytorch
第2课始于一般的Pytorch和深度学习框架的介绍。我向您展示GPU上自动分化和透明计算的组合如何真正使深度学习研究和应用的当前爆炸式增长。接下来,我向您展示如何使用Pytorch实现和学习线性回归模型,这是建立更复杂的神经网络的垫脚石。最后,通过结合Pytorch提供的所有组件来构建简单的馈电多层感知器,结合了课程结合在一起。
第3课:潜在空间统治着我周围的一切
第3课从计算机程序如何实际表示为数字张量的底漆开始。我介绍了卷积神经网络的细节以及使计算机“看到”的特定体系结构特征。接下来,通过构建和培训简单的自动编码器来学习输入图像的压缩表示,您将首次品尝到潜在变量模型。在课程结束时,您通过将概率采样添加到自动编码器体系结构中以到达变异自动编码器(VAE)(VAE)(这是我们将遇到的未来生成模型中的关键组件),遇到了第一个适当的生成模型。
第4课:神秘的扩散
第4课始于扩散模型的概念介绍,这是当前状态的关键组件,例如稳定扩散。第4课是您对开源库的拥抱面孔生态系统的第一个真实介绍,您将看到我们如何使用扩散器库来从随机噪声中生成图像。然后,该课程慢慢剥离库上的图层以解构扩散过程,并向您展示扩散管道实际工作的细节。最后,您将学习如何利用扩散模型的迭代授权过程的独特负担,以在图像之间插值,执行图像到图像翻译,甚至还原和增强图像。
第5课:使用变压器生成和编码文本
正如第4课都是关于图像的一样,第5课都与文本有关。它始于自然语言处理管道的概念介绍,以及对语言概率模型的介绍。然后,您将学习如何通过生成模型将文本转换为更容易理解的表示形式,并探索将单词表示为向量的更广泛的效用。该课程以对变压器体系结构的处理结束,您将看到如何使用拥抱面孔变压器库与预训练的大型语言模型(LLMS)进行推理,以从头开始生成文本。
第6课:连接文本和图像
第6课始于多模型模型的概念介绍以及所需的必要组件。您会看到对比性语言图像如何共同学习图像和文本的共享模型,并了解如何使用共享的潜在空间来构建语义,图像搜索引擎。本课程以潜在扩散模型的概念概述结束,然后再解构稳定的扩散管道,以确切地查看文本到图像系统如何将用户提供的提示转换为从未见过的图像。
第7课:扩散模型的培训程序
第7课都是关于适应和增强现有的预训练的多模型。它始于更平凡但非常重要的任务,即在转移到参数有效微调的方法和技术之前评估生成模型。然后,您将学习如何教授预先训练的文本对图像模型,例如有关新样式,主题和条件的稳定扩散。该课程用技术结束,使扩散更有效地接近实时图像生成。
版权通知和许可证
©️2024乔纳森·杜努(Jonathan Dinu)。版权所有。明确禁止在部分或整个文本,图像和/或代码中删除本版权通知或复制。
有关使用您自己的演示文稿中的内容(博客文章,讲座,视频,课程等)的许可,请联系popyright@jonathandinu.com。
