Стек AI-инженерии
AI Engineering
Это практическое руководство по созданию приложений на основе готовых фундаментальных моделей (foundation models). В книге объясняется, чем AI-инжиниринг отличается от традиционного ML-инжиниринга, и предлагается пошаговый фреймворк для разработки AI-продуктов — от простых методов (промпт-инжиниринг) до более сложных (RAG, дообучение, AI-агенты). Особое внимание уделяется вопросам оценки моделей (включая подход «AI-as-a-judge»), а также оптимизации задержек и стоимости при развертывании
Программа вечера
Инструментов — лавина, кирпичики — те же
Каждый день выходят новые инструменты, модели и методики — уследить за всем невозможно. Вместо погони за постоянно меняющейся картиной достаточно понимать основные строительные блоки AI-инженерии.
Выросла из ML-инженерии
Когда компания начинает экспериментировать с базовыми моделями, работу обычно возглавляет существующая ML-команда. Обязанности AI- и ML-инженеров сильно пересекаются — многие компании даже не разделяют эти роли в вакансиях.
Но это уже отдельная роль
В части компаний появились отдельные должности AI-инженеров. Встречаются AI-инженеры вообще без опыта в ML: знание ML полезно, но больше не обязательно.
Три уровня: весь хайп — наверху
В любом стеке AI-приложений есть три уровня. Разработка обычно начинается с верхнего — и спускается вниз по мере необходимости.
1 · Разработка приложенийсамый быстрорастущий уровень
Модели легкодоступны — приложение может строить каждый. Суть: дать модели качественные промты и нужный контекст, тщательно оценивать результат и завернуть всё в хороший интерфейс.
2 · Разработка моделицентральное место — данные
Инструментарий для создания, обучения и дообучения моделей, проектирование наборов данных, оптимизация вывода.
3 · Инфраструктурафундамент
Обслуживание моделей, управление данными и вычислениями, мониторинг.
Принципы, которые никуда не делись
- Бизнес-задача прежде всего. Пример: цель «разгрузить поддержку» переводим в ML-метрику — качество ответов бота. А успех меряем обратно бизнесом: сколько обращений закрыто без человека и не просела ли удовлетворённость клиентов.
- Систематические эксперименты. Раньше перебирали гиперпараметры, теперь — модели, промты и параметры сэмплирования. Пример: один и тот же набор тестовых вопросов гоняем на GPT и Claude, с примерами в промте и без, с разной температурой — и смотрим, кто отвечает лучше и дешевле.
- Быстрее и дешевле. Пользователи не откажутся от скорости, а бизнес — от снижения стоимости вывода.
- Цикл обратной связи. Приложение улучшается итеративно — на производственных данных.
Три больших отличия от ML-инженерии
Модель уже обучена за вас
Раньше модель под задачу обучали сами. Теперь берём готовую — фокус смещается с моделирования и обучения на адаптацию модели.
Модели стали огромными
Старые ML-модели жили на обычных серверах. Базовая модель — гигант: каждый ответ жуёт дорогие GPU и занимает секунды. Значит, генерацию надо ускорять и удешевлять, а парком видеокарт — уметь управлять. Таких людей мало: «мы знаем, как работать с 10 GPU, но не как с 1000», — признаётся глава AI-отдела компании из Fortune 500.
Ответы открытого типа
Модель гибкая и решает много задач, но такие ответы сложно оценивать. Оценка превращается в главную проблему AI-инженерии.
Адаптировать модель можно двумя способами
Веса — это миллиарды чисел внутри модели, в которых хранится всё, что она умеет. Отсюда два пути: не трогать их — или дообучить.
Промт-инжиниринг — веса не меняются
Модель адаптируют инструкциями и контекстом. Простой старт, мало данных, легко перебирать модели — многие успешные приложения построены на одних промтах. Но для сложных задач и строгих требований к производительности этого может не хватить.
Дообучение — веса меняются
Сложнее и требует больше данных, зато может заметно поднять качество, сократить задержку и стоимость вычислений. Без изменения весов не обойтись, если модель должна освоить задачу, которой не видела при обучении.
Разработка модели: ML-теория опциональна, данные и вывод — нет
Моделирование и обучение
Инструменты уровня: PyTorch от Meta и TensorFlow от Google — фреймворки, на которых собирают и обучают нейросети, условные «реакты мира ML»; Transformers от Hugging Face — библиотека готовых предобученных моделей. Теорию (градиентный спуск, функции потерь) знать больше не обязательно — но ML-знания сильно упрощают отладку, когда модель ведёт себя не так.
Проектирование наборов данных
Задачи открытого типа размечать сложнее: «спам / не спам» проще, чем эссе. Вместо табличных признаков — неструктурированные данные: дедупликация, токенизация, извлечение контекста, контроль качества.
Оптимизация вывода
Модель не выдаёт ответ целиком — она пишет его по кусочку-токену, и каждый следующий токен пересчитывается всей моделью заново. Считаем: 10 мс на токен × 100 токенов = секунда. А от веб-приложения ждут ответа за 100 мс — разрыв в десять раз. Поэтому ускорять и удешевлять генерацию — отдельная горячая дисциплина, это и есть оптимизация вывода.
Обучение бывает разным
- Предварительное обучение — модель учат с нуля. Веса — это миллиарды чисел внутри модели, в которых хранятся её «знания»; в начале они случайны, и модель выдаёт шум. Через неё прогоняют огромный кусок интернета, пока она не научится продолжать текст. Это самый дорогой этап — у InstructGPT он съел до 98 % всех вычислений и данных, — поэтому предобучают модели единицы компаний, остальные берут готовое.
- Дообучение — продолжение обучения готовой модели: она уже что-то умеет, поэтому данных и вычислений нужно заметно меньше. Так разработчики приложений адаптируют чужие модели под себя.
- Последующее обучение — то же дообучение, но термином пользуются разработчики моделей: например, научить модель следовать инструкциям перед релизом.
Разработка приложений: где теперь конкуренция
Когда несколько команд используют одну и ту же базовую модель, различий приходится добиваться процессом разработки приложения.
Оценка
Нужна на всех этапах: выбрать модель, отследить прогресс, решиться на продакшен, ловить проблемы в бою. Для открытых ответов нет эталона, с которым можно сравнить, — в этом главная сложность.
Промт-инжиниринг и контекст
Заставить модель делать нужное, не меняя весов: инструкции, контекст, инструменты, а для длинных задач — управление памятью.
Интерфейс AI
Самостоятельные приложения, браузерные расширения, чат-боты в мессенджерах, плагины к VSCode, Shopify, Microsoft 365. Чат — самый частый интерфейс, но есть голос и AR/VR.
Что стало важнее с приходом базовых моделей
| Категория | Традиционный ML | Базовые модели |
|---|---|---|
| Создание и обучение моделей | Знания ML обязательны | Приятное дополнение, не требование |
| Наборы данных | Конструирование признаков | Дедупликация, токенизация, контекст, качество |
| Оптимизация вывода | Важна | Ещё важнее |
| Промт-инжиниринг | Не применяется | Важен |
| Интерфейс AI | Менее важен | Важен |
| Оценка | Важна | Ещё важнее |
AI-инженерия сближается с full-stack
- Главная работа сместилась к приложению. Модель готова — остаётся обернуть её в продукт: интерфейс, API, обратная связь. А это ровно то, что умеют фронтенд- и full-stack-разработчики, — поэтому они и приходят в AI.
- Python всё ещё главный, но JS-экосистема растёт: LangChain.js, Transformers.js, openai-node, AI SDK от Vercel.
- Рабочий процесс перевернулся. Раньше сначала месяцами собирали данные и обучали модель — и только потом строили продукт. Теперь наоборот: берём готовую модель, быстро собираем продукт, а в данные и свою модель вкладываемся, только если продукт взлетел.
- Выигрывает тот, кто быстрее итерируется: превращает идею в демо, собирает отзывы и улучшает продукт.
Если запомнить только это
- Стек AI — три уровня: приложения, модели, инфраструктура. Весь рост и хайп — наверху, в приложениях; инфраструктура внизу почти не меняется.
- AI-инженерия — меньше про обучение моделей, больше про адаптацию и оценку.
- Два пути адаптации: промты (веса не трогаем) и дообучение (веса меняем).
- Оценка — главная боль: у открытых ответов нет эталона для сравнения. И она же — конкурентное преимущество: модель у всех одна, выигрывает тот, кто умеет мерить качество.
- Порог входа упал: сначала быстро собираем продукт на готовой модели, в данные и обучение вкладываемся потом — побеждают быстрые итерации.