Глава 1

Стек AI-инженерии

Книга
AI-инженерия

AI Engineering

Это практическое руководство по созданию приложений на основе готовых фундаментальных моделей (foundation models). В книге объясняется, чем AI-инжиниринг отличается от традиционного ML-инжиниринга, и предлагается пошаговый фреймворк для разработки AI-продуктов — от простых методов (промпт-инжиниринг) до более сложных (RAG, дообучение, AI-агенты). Особое внимание уделяется вопросам оценки моделей (включая подход «AI-as-a-judge»), а также оптимизации задержек и стоимости при развертывании

Программа вечера

Восход AI-инженерии Пройдено
Сценарии использования базовой модели Пройдено
Планирование AI-приложений Пройдено
Стек AI-инженерии
Глава 1 · Стек AI-инженерии

Инструментов — лавина, кирпичики — те же

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

Выросла из ML-инженерии

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

Но это уже отдельная роль

В части компаний появились отдельные должности AI-инженеров. Встречаются AI-инженеры вообще без опыта в ML: знание ML полезно, но больше не обязательно.

Стек

Три уровня: весь хайп — наверху

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

1 · Разработка приложенийсамый быстрорастущий уровень

Модели легкодоступны — приложение может строить каждый. Суть: дать модели качественные промты и нужный контекст, тщательно оценивать результат и завернуть всё в хороший интерфейс.

2 · Разработка моделицентральное место — данные

Инструментарий для создания, обучения и дообучения моделей, проектирование наборов данных, оптимизация вывода.

3 · Инфраструктурафундамент

Обслуживание моделей, управление данными и вычислениями, мониторинг.

Анализ 920 популярных AI-репозиториев на GitHub (март 2024): взрывной рост 2023 года пришёлся на приложения и их разработку. Инфраструктура выросла скромнее — её базовые потребности не изменились.
Фундамент

Принципы, которые никуда не делись

  • Бизнес-задача прежде всего. Пример: цель «разгрузить поддержку» переводим в ML-метрику — качество ответов бота. А успех меряем обратно бизнесом: сколько обращений закрыто без человека и не просела ли удовлетворённость клиентов.
  • Систематические эксперименты. Раньше перебирали гиперпараметры, теперь — модели, промты и параметры сэмплирования. Пример: один и тот же набор тестовых вопросов гоняем на GPT и Claude, с примерами в промте и без, с разной температурой — и смотрим, кто отвечает лучше и дешевле.
  • Быстрее и дешевле. Пользователи не откажутся от скорости, а бизнес — от снижения стоимости вывода.
  • Цикл обратной связи. Приложение улучшается итеративно — на производственных данных.
Опыт, накопленный ML-инженерами за последнее десятилетие, по-прежнему актуален — именно этот коллективный опыт позволяет каждому начать создавать AI-приложения.
AI vs ML

Три больших отличия от ML-инженерии

01

Модель уже обучена за вас

Раньше модель под задачу обучали сами. Теперь берём готовую — фокус смещается с моделирования и обучения на адаптацию модели.

02

Модели стали огромными

Старые ML-модели жили на обычных серверах. Базовая модель — гигант: каждый ответ жуёт дорогие GPU и занимает секунды. Значит, генерацию надо ускорять и удешевлять, а парком видеокарт — уметь управлять. Таких людей мало: «мы знаем, как работать с 10 GPU, но не как с 1000», — признаётся глава AI-отдела компании из Fortune 500.

03

Ответы открытого типа

Модель гибкая и решает много задач, но такие ответы сложно оценивать. Оценка превращается в главную проблему AI-инженерии.

Коротко: AI-инженерия — меньше про разработку модели, больше про её адаптацию и оценку.
Адаптация

Адаптировать модель можно двумя способами

Веса — это миллиарды чисел внутри модели, в которых хранится всё, что она умеет. Отсюда два пути: не трогать их — или дообучить.

Промт-инжиниринг — веса не меняются

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

Дообучение — веса меняются

Сложнее и требует больше данных, зато может заметно поднять качество, сократить задержку и стоимость вычислений. Без изменения весов не обойтись, если модель должна освоить задачу, которой не видела при обучении.

Уровень «Разработка модели»

Разработка модели: ML-теория опциональна, данные и вывод — нет

Моделирование и обучение

Инструменты уровня: PyTorch от Meta и TensorFlow от Google — фреймворки, на которых собирают и обучают нейросети, условные «реакты мира ML»; Transformers от Hugging Face — библиотека готовых предобученных моделей. Теорию (градиентный спуск, функции потерь) знать больше не обязательно — но ML-знания сильно упрощают отладку, когда модель ведёт себя не так.

Проектирование наборов данных

Задачи открытого типа размечать сложнее: «спам / не спам» проще, чем эссе. Вместо табличных признаков — неструктурированные данные: дедупликация, токенизация, извлечение контекста, контроль качества.

Оптимизация вывода

Модель не выдаёт ответ целиком — она пишет его по кусочку-токену, и каждый следующий токен пересчитывается всей моделью заново. Считаем: 10 мс на токен × 100 токенов = секунда. А от веб-приложения ждут ответа за 100 мс — разрыв в десять раз. Поэтому ускорять и удешевлять генерацию — отдельная горячая дисциплина, это и есть оптимизация вывода.

Словарик

Обучение бывает разным

  • Предварительное обучение — модель учат с нуля. Веса — это миллиарды чисел внутри модели, в которых хранятся её «знания»; в начале они случайны, и модель выдаёт шум. Через неё прогоняют огромный кусок интернета, пока она не научится продолжать текст. Это самый дорогой этап — у InstructGPT он съел до 98 % всех вычислений и данных, — поэтому предобучают модели единицы компаний, остальные берут готовое.
  • Дообучение — продолжение обучения готовой модели: она уже что-то умеет, поэтому данных и вычислений нужно заметно меньше. Так разработчики приложений адаптируют чужие модели под себя.
  • Последующее обучение — то же дообучение, но термином пользуются разработчики моделей: например, научить модель следовать инструкциям перед релизом.
Промт-инжиниринг — это не обучение. «Скормить ChatGPT свои дневники» — это контекст: веса модели при этом не меняются.
Уровень «Разработка приложений»

Разработка приложений: где теперь конкуренция

Когда несколько команд используют одну и ту же базовую модель, различий приходится добиваться процессом разработки приложения.

Оценка

Нужна на всех этапах: выбрать модель, отследить прогресс, решиться на продакшен, ловить проблемы в бою. Для открытых ответов нет эталона, с которым можно сравнить, — в этом главная сложность.

Промт-инжиниринг и контекст

Заставить модель делать нужное, не меняя весов: инструкции, контекст, инструменты, а для длинных задач — управление памятью.

Интерфейс AI

Самостоятельные приложения, браузерные расширения, чат-боты в мессенджерах, плагины к VSCode, Shopify, Microsoft 365. Чат — самый частый интерфейс, но есть голос и AR/VR.

Насколько промты влияют на результат. MMLU — стандартный «экзамен» для моделей: тысячи вопросов с вариантами ответов по 57 предметам. Одна и та же Gemini Ultra набирает на нём 83,7 %, если перед вопросом показать ей пять разобранных примеров, — и 90 %, если дать 32 примера и попросить рассуждать пошагово. Модель не менялась — поменяли только промт, и она поднялась в рейтинге.
Итого по уровням

Что стало важнее с приходом базовых моделей

КатегорияТрадиционный MLБазовые модели
Создание и обучение моделейЗнания ML обязательныПриятное дополнение, не требование
Наборы данныхКонструирование признаковДедупликация, токенизация, контекст, качество
Оптимизация выводаВажнаЕщё важнее
Промт-инжинирингНе применяетсяВажен
Интерфейс AIМенее важенВажен
ОценкаВажнаЕщё важнее
Кто такой AI-инженер

AI-инженерия сближается с full-stack

  • Главная работа сместилась к приложению. Модель готова — остаётся обернуть её в продукт: интерфейс, API, обратная связь. А это ровно то, что умеют фронтенд- и full-stack-разработчики, — поэтому они и приходят в AI.
  • Python всё ещё главный, но JS-экосистема растёт: LangChain.js, Transformers.js, openai-node, AI SDK от Vercel.
  • Рабочий процесс перевернулся. Раньше сначала месяцами собирали данные и обучали модель — и только потом строили продукт. Теперь наоборот: берём готовую модель, быстро собираем продукт, а в данные и свою модель вкладываемся, только если продукт взлетел.
  • Выигрывает тот, кто быстрее итерируется: превращает идею в демо, собирает отзывы и улучшает продукт.
«AI-инженерия — это просто программная инженерия с добавлением моделей AI в стек» — Антон Бачай.
Главные выводы

Если запомнить только это

  • Стек AI — три уровня: приложения, модели, инфраструктура. Весь рост и хайп — наверху, в приложениях; инфраструктура внизу почти не меняется.
  • AI-инженерия — меньше про обучение моделей, больше про адаптацию и оценку.
  • Два пути адаптации: промты (веса не трогаем) и дообучение (веса меняем).
  • Оценка — главная боль: у открытых ответов нет эталона для сравнения. И она же — конкурентное преимущество: модель у всех одна, выигрывает тот, кто умеет мерить качество.
  • Порог входа упал: сначала быстро собираем продукт на готовой модели, в данные и обучение вкладываемся потом — побеждают быстрые итерации.

Что далее

Восход AI-инженерии Пройдено
Сценарии использования базовой модели Пройдено
Планирование AI-приложений Пройдено
Стек AI-инженерии Пройдено