«Достаточно развитые технологии неотличимы от магии».
--Артур Кларк (автор книги «2001: Космическая одиссея»)
Цель изучения генеративного искусственного интеллекта с помощью PyTorch — помочь вам создать различный контент (формы, числа, изображения, текст и музыку) с нуля. Он начинается с простых моделей, помогая читателям развить базовые навыки глубокого обучения, прежде чем переходить к более сложным задачам. Все генеративные модели в этой книге представляют собой глубокие нейронные сети. Книга начинается с комплексного проекта глубокого обучения в PyTorch, идеально подходящего для новичков в этой области. Каждая глава тщательно структурирована и опирается на предыдущую. Сначала вы создадите базовый контент, такой как фигуры, числа и изображения, с помощью генеративно-состязательных сетей (GAN) с простой архитектурой. По мере вашего продвижения сложность увеличивается, что приводит к созданию самых современных моделей, таких как трансформаторы и модели диффузии.
Изучение генеративного искусственного интеллекта с помощью PyTorch предназначено для энтузиастов машинного обучения и специалистов по обработке данных в различных областях бизнеса, обладающих средними навыками программирования на Python. Целью этой книги является обучение методам генеративного искусственного интеллекта для создания нового и инновационного контента, такого как изображения, текст, узоры, числа, формы и аудио, для улучшения как бизнеса своих работодателей, так и их собственной карьеры. Хотя в Интернете доступно множество бесплатных учебных материалов по отдельным темам, в этой книге все собрано в четком, удобном и актуальном формате, что делает ее бесценным ресурсом для всех, кто стремится стать экспертом в области генеративного искусственного интеллекта.
В книге 16 глав, разделенных на четыре части.
Часть I знакомит вас с генеративным искусственным интеллектом и глубоким обучением с помощью PyTorch.
• В главе 1 объясняется, что такое генеративный ИИ, и причины выбора PyTorch среди других инфраструктур ИИ, таких как TensorFlow, для построения генеративных моделей в этой книге.
• В главе 2 PyTorch используется для создания глубоких нейронных сетей для выполнения бинарной и мультикатегорийной классификации, что позволяет вам хорошо разбираться в задачах глубокого обучения и классификации. Цель состоит в том, чтобы подготовить вас к следующим главам, в которых вы будете использовать глубокие нейронные сети в PyTorch для создания различных генеративных моделей.
• Глава 3 знакомит вас с генеративно-состязательными сетями (GAN). Вы научитесь использовать GAN для создания фигур и последовательностей чисел с определенными шаблонами.
Часть II посвящена созданию изображений.
• В главе 4 обсуждается, как создать и обучить GAN генерировать цветные изображения высокого разрешения. В частности, вы научитесь использовать сверточные нейронные сети (CNN) для захвата пространственных объектов на изображениях. Вы также научитесь использовать транспонированные сверточные слои для повышения дискретизации и создания карт объектов с высоким разрешением на изображениях.
• В главе 5 подробно описаны два способа выбора характеристик в сгенерированных изображениях. Первый метод предполагает выбор конкретных векторов в скрытом пространстве. Второй метод использует условную GAN, где вы создаете и обучаете GAN с помеченными данными.
• В главе 6 рассказывается, как использовать CycleGAN для перевода изображений между двумя доменами, например изображений с черными волосами и изображений со светлыми волосами или изображений лошадей и изображений зебр.
• В главе 7 объясняется, как генерировать изображения с высоким разрешением, используя другую генеративную модель: автоэнкодеры (AE) и их варианты — вариационные автоэнкодеры (VAE).
Часть III посвящена обработке естественного языка (НЛП) и генерации текста.
• В главе 8 обсуждается генерация текста с помощью рекуррентной нейронной сети (RNN). Попутно вы узнаете, как работают токенизация и встраивание слов. Вы также научитесь генерировать текст авторегрессионно с помощью обученной модели и научитесь использовать температуру и выборку top-K для управления креативностью сгенерированного текста.
• В главе 9 с нуля создается преобразователь на основе статьи «Внимание — это все, что вам нужно», предназначенный для перевода между любыми двумя языками. Вы будете последовательно реализовывать механизм многоголового внимания и преобразователь кодер-декодер.
• Глава 10 обучает Трансформер, который вы создали в главе 9, с помощью более чем 47 000 пар переводов с английского на французский язык. С помощью обученной модели вы научитесь переводить распространенные английские фразы на французский.
• В главе 11 создается GPT-2XL, самая большая версия GPT-2, с нуля. После этого вы узнаете, как извлечь предварительно обученные веса из Hugging Face и загрузить их в свою собственную модель GPT-2 для генерации текста.
• В главе 12 представлена уменьшенная версия модели GPT примерно с пятью миллионами параметров, чтобы вы могли обучать ее на обычном компьютере. В качестве обучающих данных вы будете использовать три романа Эрнеста Хемингуэя. Обученная модель может генерировать текст в стиле Хемингуэя.
В части IV обсуждаются некоторые практические применения генеративных моделей из книги и самые последние разработки в области генеративного ИИ.
• В главе 13 создается и обучается MuseGAN для создания музыки. MuseGAN рассматривает музыкальное произведение как многомерный объект, похожий на изображение. Генератор создает законченное музыкальное произведение и отправляет его на оценку критику. Затем генератор модифицирует музыку на основе отзывов критиков до тех пор, пока она не станет максимально похожей на настоящую музыку из набора обучающих данных. Послушайте пример сгенерированной музыки: https://gattonweb.uky.edu/faculty/lium/ml/MuseGAN_song.mp3
• В главе 14 представлен другой подход к созданию музыки с помощью ИИ. Вместо того, чтобы относиться к музыкальному произведению как к многомерному объекту, вы рассматриваете его как последовательность музыкальных событий. Затем вы примените методы генерации текста, чтобы предсказать следующий элемент в последовательности. Послушайте пример сгенерированной музыки: https://gattonweb.uky.edu/faculty/lium/ml/musicTrans.mp3
• Глава 15 знакомит вас с моделями диффузии, которые составляют основу всех ведущих преобразователей текста в изображение (таких как DALL-E или Imagen). Вы создадите и обучите диффузионную модель для создания изображений цветов с высоким разрешением.
• Глава 16 завершает книгу проектом, в котором вы используете библиотеку LangChain для объединения предварительно обученных моделей большого языка (LLM) с API-интерфейсами Wolfram Alpha и Wikipedia для создания универсального всезнающего личного помощника.
В приложении описывается, как установить PyTorch на ваш компьютер с графическим процессором с поддержкой Compute Unified Device Architecture (CUDA) или без него.
Все программы Python в этой книге доступны для загрузки из репозитория книги на GitHub https://github.com/marchliu/DGAI. Программы организованы по главам, каждая глава находится в одном файле Jupyter Notebook. См. Приложение к книге о том, как установить Python, PyTorch и Jupyter Notebook на свой компьютер.