
Название новой книги Лоуренса Морони — «Искусственный интеллект и машинное обучение для программистов в PyTorch» — на первый взгляд кажется довольно‑таки скучным. Создается впечатление, что это очередной учебник по ИИ с использованием Python: в начале немного теории, потом базовые классы, потом еще базовые классы, потом очень базовые классы, и где‑то по дороге читателя уже неизбежно потянет в сон.
Но нет: Морони написал совсем другую книгу. Она начинается как учебник по PyTorch, в середине превращается в практический курс по NLP и Transformer, а заканчивается почти полноценным туром по современному генеративному AI.
Давайте разберемся, как автор умудрился проделать этот фокус.
Сделай сам
Морони начинает с практического подхода: никаких готовых LLM и стандартных моделей: в первой главе он предлагает самому собрать простейшую нейросеть на PyTorch, обучить ее и посмотреть, что из этого получилось. И это сделано вполне осознанно: автор строит книгу по принципу «сначала попробуем руками, потом будем разбираться дальше». Сам он именно так описывает свой подход — code‑first и без необходимости начинать со сложного математического аппарата.
При этом «сделай сам» не означает «напиши собственный ChatGPT». Первый проект гораздо скромнее: научить сеть различать классы объектов, а затем посмотреть, почему она ошибается, что такое переобучение и как его обнаружить. Во второй главе в качестве полигона используется Fashion‑MNIST, а в третьей задача становится уже вполне наглядной — нейросеть должна отличать людей от лошадей.
И вот это, пожалуй, одна из самых удачных особенностей первой части: автор дает читателю возможность экспериментировать с моделью, например, покрутить параметры, изменить архитектуру. В результате PyTorch становится не очередным API, а живым рабочим инструментом для экспериментов.
Четыре главы про то, чем никто не любит заниматься
После первых экспериментов с картинками Морони делает неожиданный ход: вместо того чтобы поскорее добраться до модных трансформеров, он отправляет читателя разбираться с данными.
Четвертая глава целиком посвящена датасетам и загрузке данных в PyTorch. Здесь есть разбиение выборки, batching и shuffling, параллельная загрузка и вообще вся та инфраструктура, которая прекрасно знакома любому, кто хоть раз пытался накормить модель чем‑нибудь посложнее игрушечного набора данных.
Дальше начинается NLP. Глава 5 посвящена токенизации: собственный токенизатор, готовый токенизатор из Hugging Face, последовательности, padding, неизвестные токены, очистка текста, загрузка реальных данных из CSV и JSON. Здесь рассматриваются типичные проблемы с исходными файлами и тем, как превратить их в пригодную для модели форму.

Следующая глава — про embeddings: читатель строит классификатор предложений и даже детектор сарказма, а затем может экспериментировать с размерностью embedding, размером словаря, архитектурой модели, скоростью обучения и регуляризацией. В конце автор доходит до визуализации embeddings и предварительно обученных представлений.
А затем появляются RNN и LSTM. Сегодня рядом с Transformer они выглядят почти как гости из прошлой эпохи, однако в логике книги этот кусок на своем месте: читателю сначала показывают разные способы работы с последовательностями, а уже потом подводят к архитектуре, которая перевернула NLP.
Получается четыре главы, которые на первый взгляд выглядят не самой захватывающей частью книги, но в этом определенная педагогическая хитрость. Когда позже появятся Hugging Face, Transformer и LLM, читатель уже успеет увидеть, какую работу за него теперь делают готовые инструменты.
Исторический артефакт
Седьмая глава внезапно переносит нас в эпоху, когда слово «последовательность» еще не означало автоматически Transformer. В книге появляются RNN, затем LSTM, потом двунаправленные RNN, а следом — генерация текста и различные эксперименты с архитектурой и обучением. Для читателя, который пришел к машинному обучению в эпоху GPT, это почти археология: оказывается, до self‑attention тоже как‑то жили, причем довольно активно.
Здесь Морони делает полезную вещь: он не рассказывает историю развития нейросетей в виде музейной экскурсии «раньше люди страдали, а потом придумали Transformer». RNN действительно используются по назначению: сначала для классификации текста, затем для генерации текста, а позже похожие методы появляются при работе с временными рядами.
После NLP автор переключается на последовательности вообще и предлагает работать с временными рядами. Сначала идут вполне классические вещи — тренд, сезонность, автокорреляция, шум, наивный прогноз и скользящее среднее. Затем появляются оконные наборы данных и нейросетевые модели, а для экспериментов используются, в частности, погодные данные NASA.
Сегодня такой материал может показаться слегка анахроничным, ведь если задача связана с современным NLP, первым делом мы, скорее всего, будем думать о Transformer. Но именно поэтому этот кусок книги интересен: он позволяет увидеть, что именно Transformer пришел заменить. С этого места книга начинает заметно ускоряться. До сих пор мы в основном строили модели, теперь пришло время посмотреть, что бывает, когда модель уже кто‑то построил до нас.
Книга переключает передачу
До этого момента Морони в основном учит читателя делать модели самому. Теперь подход меняется: глава 12 вводит понятие инференса, следующая посвящена хостингу и обслуживанию моделей, а затем книга открывает дверь в Hugging Face Hub и, наконец, подробно разбирается с Transformer.
Именно здесь становится особенно заметно, что перед нами не просто учебник PyTorch: одно дело — обучить модель в ноутбуке, совсем другое — сделать из нее работающий сервис. Поэтому после разговора о том, как получить результат от обученной модели, Морони показывает два вполне рабочих варианта ее обслуживания: TorchServe и Flask.
Это поворотный момент, потому что здесь заканчивается уютная лаборатория, и появляется знакомый программистский вопрос: а как это запихнуть в приложение? В 14-й главе вместо собственной модели предлагается заглянуть в готовые хабы — прежде всего, Hugging Face Hub и PyTorch Hub, и научиться использовать уже обученные модели. После этого появляется глава о Transformer, в которой имеется практическая часть с библиотекой transformers, pipeline и токенизаторами.
Получается довольно разумная последовательность: сначала читатель несколько глав живет внутри моделей, потом ему показывают, как модель превратить в сервис, затем — где брать модели, которые уже обучены другими людьми, и только после этого начинают подробно разбирать тот самый Transformer, на котором сегодня построена значительная часть генеративного AI.
А следующая остановка еще интереснее. Потому что после того, как мы решили не писать модель самостоятельно, возникает закономерный вопрос: а что делать, если готовая модель почти подходит, но все‑таки не совсем?
Самая интересная часть книги
До этого мы постепенно двигались от собственных небольших моделей к готовым решениям, а в 16-й главе наконец появляется то, ради чего многие и открывают книги по современному AI, — большая языковая модель и попытка приспособить ее под собственную задачу.
Причем Морони не ограничивается одним рецептом, он фактически предлагает три разных пути, которые очень хорошо иллюстрируют современную кухню разработки:
Модель недостаточно хороша под вашу задачу → fine‑tuning.
Не хочется или не нужно переучивать модель → RAG.
Хочется контролировать всё самому → локальная LLM через Ollama.
Это три совершенно разных инженерных решения одной и той же проблемы: как превратить чужую обученную модель в полезный компонент собственного приложения. И, конечно, на этом автор не останавливается. Если с текстом мы уже разобрались, остается последний вопрос: а почему бы не заставить всю эту машинерию еще и рисовать картинки? Именно туда повествование направляется в двух последних главах.
Финальный сюрприз
Казалось бы, после LLM, fine‑tuning, Ollama и RAG можно было уже ставить точку, но у Морони на этот счет другое мнение. Две последние главы посвящены генеративным моделям изображений и снова меняют декорации: вместо текста и языковых моделей речь идет о diffusion, Hugging Face Diffusers, image‑to‑image и inpainting.
В 19-й главе автор сначала разбирает саму идею диффузионных моделей, а затем переходит к библиотеке Diffusers и показывает работу с уже готовыми генеративными моделями. То есть снова работает уже знакомая по предыдущим главам схема: не обязательно строить всю модель самостоятельно — гораздо интереснее взять существующую и научиться использовать ее как инструмент.
Но 20-я глава снова возвращает нас к первоначальному принципу книги: сделай сам. Теперь объект эксперимента — не небольшой классификатор, а LoRA для генеративной модели изображений. Морони показывает подготовку набора данных, запуск тонкой настройки через Diffusers, публикацию получившейся модели и использование собственной LoRA для генерации новых изображений. В самом начале книги мы брали небольшой датасет и учили с нуля относительно простую модель отличать одни изображения от других. В конце делаем нечто гораздо более актуальное: берем большую готовую генеративную модель и адаптируем ее под свои данные.
Так что же это всё‑таки за книга?
Читатель берет в руки «Искусственный интеллект и машинное обучение для программистов в PyTorch», ожидая увидеть очередной учебник по фреймворку. И действительно получает PyTorch — причем с самого нуля и с большим количеством практического кода, но на этом путешествие только начинается. За 400 с лишним страниц Морони успевает провести читателя через компьютерное зрение, обработку текста, embeddings, RNN и LSTM, временные ряды, инференс и хостинг моделей, Hugging Face и Transformer, а затем добраться до LLM, fine‑tuning, prompt‑tuning, Ollama, RAG, diffusion и LoRA.
Книга показывает несколько разных способов работы с готовыми моделями и постепенно расширяет инструментарий программиста: что‑то можно написать самому, что‑то проще взять готовым, что‑то дообучить, к чему‑то добавить собственные данные, а что‑то вообще запустить локально. И у такого подхода есть очевидный плюс: книга не запирает читателя в одном стеке. Освоив очередной инструмент, он почти сразу получает следующий вопрос и переходит на следующую ступень, а это именно то, что обычно и заставляет разбираться в новой технологии дальше.
Так что название у книги действительно немного скучное, зато содержание оказалось заметно интереснее.
Комментарии (4)

IsUnavailable
17.09.2026 13:24Немного про перевод из отрывка для ознакомления
Скрытый текст

"открытого источника" Скрытый текст


IsUnavailable
17.09.2026 13:24Логика расположения картинок в тексте просрана начиная с первой же картинки. Чего нет в оригинале.
Короче качество, к сожалению, страдает
IsUnavailable
Электронная версия книги будет?
IsUnavailable
Отвечу сам себе) По телефону ответили, что появится где-то через полгода
На вопрос "а почему так?" ответ цитирую "А чтобы бумажную покупали :)"
¯\_(ツ)_/¯