Что такое контекстная инженерия в ИИ?
Контекстная инженерия относится к дисциплине проектирования, организации и манипуляции контекстом, который подается в большие языковые модели (LLM), с целью оптимизации их работы. Эта практика сосредоточена на входных данных — запросах, системных инструкциях, извлеченных знаниях, форматировании и даже порядке представления информации — а не на донастройке весов модели или ее архитектуры.
Контекстная инженерия не заключается в создании лучших запросов; это создание систем, которые предоставляют правильный контекст в нужное время.
Например, представьте себе ИИ-помощника, которому поручено написать отзыв о работе. Плохой контекст может состоять только из инструкции, что приведет к размытым и общим оценкам. Напротив, богатый контекст включает в себя цели сотрудника, предыдущие отзывы, результаты проектов, отклики коллег и заметки менеджера, что приводит к детализированному, основанному на данных отзыву, который ощущается как индивидуальный и информированный.
Эта новая практика набирает популярность из-за растущей зависимости от моделей, работающих на основе запросов, таких как GPT-4, Claude и Mistral. Эффективность этих моделей часто определяется качеством получаемого контекста, а не их размером. Таким образом, контекстная инженерия служит эквивалентом программирования запросов для эпохи интеллектуальных агентов и генерации, увеличенной за счет извлечения (RAG).
Зачем нужна контекстная инженерия?
Эффективное управление контекстом становится критически важным по следующим причинам:
- Эффективность токенов: Окна контекста расширяются, но все еще ограничены (например, 128K в GPT-4-Turbo). Избыточный или плохо структурированный контекст тратит ценнейшие токены.
- Точность и релевантность: LLM чувствительны к шуму; целенаправленные и логически организованные запросы с большей вероятностью дадут точные результаты.
- Генерация, увеличенная извлечением (RAG): Контекстная инженерия помогает определить, что извлекать, как это разбивать на части и как представлять.
- Агентские рабочие процессы: Инструменты, такие как LangChain или OpenAgents, зависят от контекста для поддержания памяти, целей и использования инструментов; плохой контекст может привести к сбоям в планировании или галлюцинациям.
- Адаптация к специфике области: Вместо дорогостоящей донастройки лучшее структурирование запросов или извлечение данных позволяет моделям хорошо работать в специализированных задачах с нулевым или малым количеством примеров.
Ключевые техники в контекстной инженерии
В этой области формируются несколько методологий и практик:
- Оптимизация системных запросов: Этот основополагающий элемент определяет поведение LLM и стиль через назначение ролей, рамки инструкций и наложение ограничений.
- Композиция и цепочки запросов: Техники позволяют модульное запрашивание, разлагая задачи и облегчая извлечение доказательств перед ответом.
- Сжатие контекста: Модели суммирования могут сжимать предыдущие разговоры, а структурированные форматы (например, таблицы) могут заменить многословные тексты для максимизации эффективности контекста.
- Динамическое извлечение и маршрутизация: Продвинутые RAG-пайплайны извлекают документы на основе намерений пользователя с помощью таких техник, как переформулирование запросов, многовекторная маршрутизация и переоценка контекста по релевантности.
- Инженерия памяти: Балансирование краткосрочной и долгосрочной памяти через воспроизведение контекста и выбор памяти с учетом намерений усиливает согласованность модели.
- Контекст, дополненный инструментами: В системах, основанных на агентах, использование контекстуально осведомленных инструментов включает в себя суммирование историй инструментов и наблюдений на различных этапах взаимодействия.
Контекстная инженерия против инженерии запросов
Хотя эти два понятия связаны, контекстная инженерия более обширна и ориентирована на системный уровень, охватывая динамическое построение контекста через встраивания, память и извлечение, тогда как инженерия запросов обычно включает статические вводные строки. Как заметил Симон Уиллисон,
“Контекстная инженерия — это то, что мы делаем вместо донастройки.”
Примеры реального применения
Контекстная инженерия может быть применена в различных областях, таких как:
- Агенты службы поддержки: Интеграция резюме предыдущих заявок, данных профиля клиента и документов базы знаний повышает качество ответов.
- Кодовые помощники: Использование документации, специфичной для репозитория, истории коммитов и использования функций помогает разработчикам.
- Поиск юридических документов: Контекстно-осознанный запрос с учетом истории дел и прецедентов улучшает юридические исследования.
- Образование: Персонализированные обучающие агенты, осведомленные о поведении учащегося и его целях, создают индивидуальный опыт обучения.
Проблемы в контекстной инженерии
Несмотря на свои перспективы, существует несколько проблем:
- Задержка: Этапы извлечения и форматирования вводят накладные расходы.
- Качество ранжирования: Плохое извлечение негативно сказывается на последующей генерации.
- Бюджет токенов: Решение о том, что включить или исключить, является сложной задачей.
- Совместимость инструментов: Интеграция нескольких инструментов может добавлять уровни сложности.
Появляющиеся лучшие практики
Для оптимизации контекстной инженерии рассмотрите следующие лучшие практики:
- Сочетайте структурированные (JSON, таблицы) и неструктурированные тексты для лучшего парсинга.
- Ограничьте внедрение контекста до единичных логических единиц (например, одного документа или резюме беседы).
- Используйте метаданные (временные метки, авторство) для более эффективной сортировки и оценки.
- Логируйте, отслеживайте и проверяйте внедрения контекста для постоянного улучшения.
Будущее контекстной инженерии
Несколько тенденций предполагают, что контекстная инженерия станет основополагающей в пайплайнах LLM, включая:
- Адаптация контекста, ориентированного на модель: Будущие модели могут динамически запрашивать определенные типы или форматы контекста по мере необходимости.
- Самоанализирующие агенты: Агенты, которые могут проверять свой контекст и пересматривать свою память, повысят надежность.
- Стандартизация: Подобно JSON для обмена данными, шаблоны контекста могут стать стандартными для агентов и инструментов.
Как заметил Андрей Карпаты:
“Контекст — это новое обновление веса.”
Освоение строительства контекста является необходимым для раскрытия полного потенциала современных языковых моделей.
Заключение
Контекстная инженерия становится центральным элементом в использовании возможностей современных языковых моделей. По мере развития инструментов и становления агентских рабочих процессов, то, как вы структурируете контекст модели, будет все больше определять ее интеллект.
Для дальнейшего чтения, изучите следующие источники:
- Мысли Тоби о контекстной инженерии
- Андрей Карпаты о контекстных обновлениях
- Восход контекстной инженерии
- Идеи по контекстной инженерии
- Фил Шмидт о контекстной инженерии
- Контекстная инженерия для агентов
- LlamaIndex о контекстной инженерии