Самое опасное в больших языковых моделях — то, насколько легко с ними можно что-нибудь сделать. Вернее, даже не так: прототип продукта с LLM сделать удивительно легко, а вот хорошее приложение на его основе — удивительно трудно. Именно об этот подводный камень и спотыкаются большинство разработчиков на этапе перехода от минимально работоспособной модели к созданию полноценного продукта. Причина, на самом деле, банальна: между «смотрите, я за вечер навайбкодил работающего чат-бота» и «этим ботом ежедневно пользуются десять тысяч человек» лежит примерно такая же пропасть, как между собранным в гараже прототипом карта из водопроводных труб с мотором от триммера и гоночным болидом «Формулы-1».

Именно эта проблема рассматривается в книге Сухаса Пая «Разработка приложений на базе больших языковых моделей. Целостный подход к LLM», вышедшей недавно в издательстве «БХВ».

В прототипе достаточно, чтобы мотор хотя бы завелся. В конечном продукте внезапно выясняется, что двигатель иногда загорается, иногда дымит, расходует в три раза больше топлива, а при попытке повернуть налево машина почему-то едет направо, причем никто не может понять, по какой причине это происходит. Вот и с языковыми моделями примерно то же самое: пока мы задаем им вопросы вручную, большинство неприятностей выглядит забавно. Модель придумала несуществующую книгу — ну что ж, бывает. Перепутала дату — поправим. Написала убедительный, но совершенно неправильный ответ — зато какой убедительный!

Но когда языковая модель становится частью настоящего приложения, каждое такое «ну, бывает» превращается в инженерную проблему. И тогда становится жизненно необходимым выяснить, почему модель галлюцинирует именно на этих данных? Может, проблема вообще не в модели, а в обучающей выборке? Нужно ли ее дообучать или достаточно RAG? Почему поиск по документам находит формально похожий текст, но совершенно не тот, который нужен? Как разбить документ на фрагменты? Когда стоит использовать одну модель, а когда несколько? Нужно ли отправлять каждый запрос самой мощной и дорогой модели? И что делать, если модель просто идеально работает на тестовых примерах, но начинает чудить в реальном приложении?

Ответы на эти (и многие другие) вопросы вы найдете в книге «Разработка приложений на базе больших языковых моделей». Автор рассматривает LLM не как волшебную коробку, которую достаточно подключить к приложению по API, а как один из компонентов гораздо более сложной инженерной системы. И вот этот путь от «я подключил языковую модель» до «я спроектировал работающую систему вокруг LLM» гораздо интереснее обычного обзора очередной нейросетевой библиотеки.

Кто такой Сухас Пай?

Автор книги, Сухас Пай, пришел к большим языковым моделям не на волне популярности ChatGPT. Машинным обучением он занимается с 2010 года, а до этого более пяти лет работал в IBM, где занимался информационной безопасностью. Позже получил степень магистра в сфере IT в Техническом университете Эйндховена.

В 2020 году Пай стал сооснователем и CTO компании Hudson Labs — AI-финтеха, который разрабатывает инструменты для анализа финансовой информации. Есть у него и опыт работы непосредственно с большими открытыми моделями: Пай был одним из руководителей рабочей группы по вопросам приватности в проекте BigScience, в рамках которого создавалась BLOOM.

Иными словами, Сухас Пай — не разработчик, который ограничивается вызовом готового API. Он много лет занимается одновременно машинным обучением, NLP и реальными программными продуктами, и потому знаком с архитектурой больших языковых моделей. Его подход к созданию приложений на основе LLM — это прежде всего взгляд архитектора, которому важно встроить модель в программную систему и заставить ее работать эффективно. Этим и ценна книга: она рассказывает именно о том, как построить вокруг языковой модели полноценное приложение, ориентированное на большую нагрузку и массового пользователя.

Что внутри книги?

Мы не будем приводить здесь полное оглавление книги «Разработка приложений на базе больших языковых моделей», вместо этого уберем его под кат: кто заинтересуется подробным содержанием, тот раскроет и прочитает. Давайте пробежимся по основным разделам и посмотрим, о чем пишет автор.

ТУТ СОДЕРЖАНИЕ, ТЫЦ!

А ВОТ КУСОЧЕК ИЗ КНИГИ, ТЫЦ!

Начинается книга с довольно неприятного для разработчика открытия: LLM — это не волшебная палочка, с помощью которой можно творить чудеса, достаточно лишь правильно вызвать API. В первой части автор предлагает заглянуть внутрь этой «черной коробки»: разобраться, из каких данных формируется модель, зачем нужны токенизация и словарь, как устроены трансформеры, что делает механизм внимания и почему выбор архитектуры и цели обучения в конечном счете влияет на возможности готовой модели.

Но знать устройство LLM — еще не значит уметь использовать ее в конкретном проекте. Поэтому дальше возникает вполне практический вопрос: а какую модель вообще выбрать для своей задачи? Закрытую или открытую? Большую и дорогую или компактную? Запускать ее в облаке или локально? Как оценивать результаты и что делать, если модель выдает правильный ответ только в демонстрационном примере?

Отсюда книга переходит к адаптации моделей. Автор подробно разбирает дообучение — от обычной тонкой настройки до более продвинутых методов, включая параметрически эффективную настройку, непрерывное предобучение и объединение моделей. Отдельная тема — обучение с подкреплением, галлюцинации и рассуждения: то есть ситуации, когда модель вроде бы умеет решать задачу, но иногда совершенно уверенно приходит совсем не туда, куда нужно.

А вот еще одна проблема, о которой легко забыть на этапе прототипа: даже правильный ответ нужно получить за разумное время и за разумные деньги. Поэтому отдельная глава посвящена инференсу — кэшированию, ускорению декодирования и квантованию. Это уже разговор не столько о том, что умеет модель, сколько о том, как заставить ее работать в реальной системе.

И только после этого книга добирается до темы, которую сегодня обычно считают главным содержанием разработки LLM-приложений: агентов, эмбеддингов и RAG. Причем RAG здесь не сводится к привычной схеме «положили документы в векторную базу, нашли несколько кусочков и отправили их модели». Автор разбирает весь конвейер: от перезаписи запроса и извлечения информации до реранкинга, уточнения контекста и генерации ответа, а также отдельно рассматривает чанкинг, векторные базы, память и ограничения самого подхода.

В финале отдельная модель окончательно перестает быть центром вселенной. Рассматриваются системы, в которых работают несколько LLM, каскады моделей и маршрутизаторы, а также специализированные модели и новые подходы к программированию LLM-систем.

И именно в этом, пожалуй, главное отличие книги от очередного практического руководства по промпт-инжинирингу или API. Она рассматривает LLM не как готовый сервис, который нужно прикрутить к программе, а как сложный инженерный комплекс, для которого приходится проектировать данные, обучение, инференс, поиск, инструменты и всю окружающую архитектуру приложения.

Для кого эта книга?

Раздел с перечислением тех, кому может быть полезна та или иная книга, обычно никто не читает, поэтому попробуем определить аудиторию по-другому — через уровень вопросов, на которые она дает ответы.

Если вы пока только осваиваете LLM и хотите научиться отправлять запросы к готовым моделям, эта книга, пожалуй, избыточна. Но если вы уже написали первый прототип и задумались, как адаптировать модель под конкретную задачу, и превратить этот проект в рабочий продукт, работающий без сбоев и галлюцинаций — здесь книга попадает точно в цель.

Поэтому прежде всего она рассчитана на разработчиков и ML-инженеров, которым предстоит создавать не демонстрацию возможностей LLM, а полноценное ПО. Пригодится она и техническим руководителям и другим специалистам, которым важно понимать архитектуру таких систем на достаточно глубоком уровне, не превращаясь в исследователя машинного обучения.

При этом автор не предполагает, что читатель умеет самостоятельно обучать языковые модели с нуля. Достаточно уверенного знания Python и базовых представлений о машинном и глубоком обучении.

При покупке книги на сайте издательства «БХВ» используйте промокод HABRBHV, который дает скидку 36%.

Комментарии (1)


  1. Diamon33
    17.08.2026 20:44

    так кто такой AI-разработчик?