18+ часов видео, перенесших вас от VAES до стабильной диффузии в реальном времени с питорхом и обнимающим лицом ... с множеством практических примеров, чтобы снова сделать глубокое обучение!
Этот репозиторий содержит код, слайды и примеры из моего программирования Generative AI -видео.
Программирование Генеративного ИИ -это практическая экскурсия по глубокому генеративному моделированию, обращаясь к созданию простых нейронных сетей в Pytorch вплоть до работы с крупными мультимодальными моделями, способными понять как текст, так и изображения. Попутно вы узнаете, как обучать свои собственные генеративные модели с нуля, чтобы создать бесконечность изображений, генерировать текст с большими языковыми моделями (LLMS), похожими на те, которые приложения Power, такие как CHATGPT, напишите свой собственный конвейер текста к изображению, чтобы понять, как быстро работают генеративные модели, и персонализируют большие предварительные модели, такие как стабильная диффузия для создания изображений в новых субъектах в уникальных визуальных стилях (среди других вещей).
Код, слайды и упражнения в этом хранилище (и всегда будут) свободно доступны. Соответствующие видео можно приобрести:
Самый простой способ начать работу (видео или нет) - использовать облачную среду блокнота/платформу, такую как Google Colab (или Kaggle, Paperpace и т. Д.). Для удобства я предоставил ссылки на ноутбуки Raw Jupyter для локальной разработки, ссылку NBViewer, если вы хотите просмотреть код без клонирования репо (или вы можете использовать встроенный зритель GitHub), а также ссылку на колаба, если вы хотите интерактивно запустить код без создания местной среды развития (и борьбы с библиотеками Cuda).
| Блокнот | Слайды | Nbviewer (static) | Google Colab (интерактивная) |
|---|---|---|---|
| Урок 1: Что, почему и как генеративный ИИ | |||
| Урок 2: Pytorch для терпения | |||
| Урок 3: скрытое пространство управляет всем вокруг меня | |||
| Урок 4: демистификация диффузии | |||
| Урок 5: Создание и кодирования текста с трансформаторами | |||
| Урок 6: Соединение текста и изображений | |||
| Урок 7: Процедуры после тренировки для диффузионных моделей |
Если вы найдете какие -либо ошибки в коде или материалах, откройте проблему GitHub или по электронной почте [email protected].
git clone https://github.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 -графические процессоры должны работать (хотя это было протестировано только с помощью 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" )Если не может быть найдено совместимого устройства, код по умолчанию будет по умолчанию в бэкэнд процессора. Это должно быть хорошо для уроков 1 и 2, но для любого из примеров генерации изображений (почти все после урока 2) не использование графического процессора, вероятно, будет неудобно медленным - в этом случае я бы порекомендовал использовать ссылки Google Colab в таблице выше.
Промежуточный до продвинутого
Урок 1 начинается с введения в то, что на самом деле является генеративным ИИ, по крайней мере, поскольку он имеет отношение к этому курсу, прежде чем перейти к специфике глубокого генеративного моделирования. Он охватывает множество возможных мультимодальных моделей (с точки зрения методов ввода и вывода) и того, как алгоритмы возможно генерировать богатые носители, по -видимому, вне воздуха. Урок оборачивается с небольшим количеством формализации и теории глубоких генеративных моделей, а также компромисс между различными типами архитектур генеративного моделирования.
Урок 2 начинается с введения в Pytorch и рамки глубокого обучения в целом. Я показываю вам, как комбинация автоматической дифференциации и прозрачных вычислений по графическим процессорам действительно позволила текущему взрыву исследований и приложений глубокого обучения. Далее я показываю вам, как вы можете использовать Pytorch для реализации и изучения модели линейной регрессии - в качестве ступени для создания гораздо более сложных нейронных сетей. Наконец, урок завершается, объединяя все компоненты, которые Pytorch предоставляет для создания простого многослойного персептрона.
Урок 3 начинается с праймера о том, как компьютерные программы фактически представляют изображения как тензоры чисел. Я освещаю детали сверточных нейронных сетей и конкретные архитектурные функции, которые позволяют компьютерам «видеть». Далее вы получаете свой первый вкус с скрытыми переменными моделями, создавая и обучая простого автосодора, чтобы выучить сжатое представление входных изображений. В конце урока вы сталкиваетесь с вашей первой правильной генеративной моделью, добавив вероятностную выборку в архитектуру AutoEncoder, чтобы прийти к вариационному автоподору (VAE) - ключевому компоненту в будущих генеративных моделях, с которыми мы столкнемся.
Урок 4 начинается с концептуального введения в диффузионные модели, ключевой компонент в текущем состоянии систем Text-To-Image Art, таких как стабильная диффузия. Урок 4-это ваше первое реальное введение в экосистему об объятий лиц библиотек с открытым исходным кодом, где вы увидите, как мы можем использовать библиотеку диффузоров для генерации изображений из случайного шума. Затем урок медленно откидывает слои в библиотеке, чтобы деконструировать процесс диффузии и показать вам особенности того, как на самом деле работает диффузионный трубопровод. Наконец, вы узнаете, как использовать уникальные возможности итеративного процесса денирования диффузионной модели для интерполяции между изображениями, выполнения перевода с изображения в изображение, а также восстановить и улучшать изображения.
Так же, как урок 4 был о изображениях, урок 5 посвящен тексту. Он начинается с концептуального введения в трубопровод обработки естественного языка, а также введение в вероятностные модели языка. Затем вы узнаете, как вы можете преобразовать текст в представление, с большим успехом понято генеративными моделями, и изучить более широкую полезность представления слов в качестве векторов. Урок заканчивается обработкой архитектуры трансформатора, где вы увидите, как вы можете использовать библиотеку Transformers для обнимающегося лица для выполнения вывода с предварительно обученными большими языковыми моделями (LLMS) для создания текста с нуля.
Урок 6 начинается с концептуального введения в мультимодальные модели и необходимые необходимые компоненты. Вы видите, как контрастное изображение языка предварительно обучение совместно изучает общую модель изображений и текста, и узнаете, как это общее скрытое пространство можно использовать для создания семантической поисковой системы изображений. Урок заканчивается концептуальным обзором скрытых диффузионных моделей, прежде чем деконструировать стабильный диффузионный конвейер, чтобы точно увидеть, как системы текста в изображение могут превратить подсказку пользователя в предварительное ранее изображение.
Урок 7-все о адаптации и увеличении существующих предварительно обученных мультимодальных моделей. Он начинается с более обыденной, но исключительно важной задачи оценки генеративных моделей, прежде чем перейти к методам и методам для эффективной настройки параметров. Затем вы узнаете, как преподавать предварительно обученную модель текста до изображения, такую как стабильная диффузия о новых стилях, предметах и условиях. Урок заканчивается методами, чтобы сделать диффузию гораздо более эффективной, чтобы приблизиться к генерации изображений в реальном времени.
© ️ 2024 Джонатан Дину. Все права защищены. Удаление этого уведомления об авторском праве или воспроизведения частично или всего текста, изображений и/или кода прямо запрещено.
Для разрешения использовать контент в вашей собственной презентации (сообщения в блоге, лекции, видео, курсы и т. Д.) Пожалуйста, свяжитесь с [email protected].