Почему контекст - это новая валюта в ИИ: от RAG к контекстной инженерии

Автор: Дмитрий Иванов [Команда P9X]

~8 минут чтения

Кризис контекста в современных системах ИИ

Я увидел, как наша производственная система потерпела полный провал. Не из-за ошибки в коде, не из-за ошибки в инфраструктуре, а просто из-за непонимания целей оптимизации нашей системы ИИ. Мы создали то, что мы считали продвинутым конвейером анализа документов с помощью извлечения, дополненного генерацией (RAG), векторных вложений, семантического поиска и точной настройки переранжирования. Когда мы демонстрировали систему, она очень убедительно отвечала на вопросы о нормативных документах нашего клиента. Но в производственных условиях система отвечала на вопросы совершенно без учёта контекста.

Открытие пришло ко мне во время разбора причин сбоя: мы управляли не извлечением информации, а распределением контекста. И мы были в этом ужасны.

Этот сбой научил меня тому, что становится всё более очевидным в индустрии ИИ: контекст — это не просто ещё один входной параметр для оптимизации. Скорее, это центральная валюта, которая определяет, обеспечивает ли система ИИ реальную ценность или остаётся дорогостоящим дополнением. В отличие от традиционного программирования, где мы оптимизируем скорость, память или пропускную способность, инженерия контекста требует от нас рассматривать информацию так, как это делают люди: многоуровнево, взаимозависимо и с учётом ситуационной осведомлённости.

Почему контекст стал такой критической точкой

Прежде чем мы рассмотрим потенциальные решения, важно определить, почему контекст стал такой важной проблемой. Это не техническая проблема. Это скорее проблема проектирования и философии.

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

Давайте рассмотрим типичную корпоративную систему RAG в качестве примера. Что происходит, когда пользователь вводит вопрос? Система выполняет следующие действия:

  1. Преобразует вопрос в вложения.
  2. Ищет в векторной базе данных похожий контент.
  3. Извлекает топ-k наиболее похожих документов.
  4. Вставляет всё в окно контекста.
  5. Генерирует ответ.

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

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

От извлечения к оркестровке контекста

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

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

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

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

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

Архитектура контекстной инженерии

Эффективная контекстная инженерия требует от нас думать о трёх различных, но взаимосвязанных слоях: выбор информации, организация информации и эволюция контекста.

Выбор информации: за пределами семантического сходства

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

По моему опыту, наиболее полезные стратегии отбора включают множество различных методов.

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

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

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

Организация информации: грамматика контекста

Как только мы извлекли релевантную информацию, важно, как мы представим её в окне контекста. Это область, в которой типичные системы RAG могут потерпеть неудачу — они рассматривают окно контекста как неструктурированный контейнер, а не как продуманную коллекцию нарратива.

В случае эффективной организации контекста структура должна также требовать понимания процесса, известного когнитивным учёным как «разбиение информации на блоки». Человеческая рабочая память может одновременно удерживать примерно семь отдельных фрагментов информации. Как только мы выходим за рамки этого, наше понимание резко падает. То же самое верно и для систем ИИ не потому, что их когнитивные недостатки идентичны, а потому, что их обучение заставляет их имитировать человеческое мышление.

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

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

Эволюция контекста: придание системам ИИ разговорчивости

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

Но архитектура, которая развивает контекст, в котором работает система ИИ, будет другой; вопрос в том, как управлять её состоянием в одном пространстве возможностей. Мы не просто поддерживаем состояние данных, мы также поддерживаем состояние понимания.

Этот «контекстная память» — структурированное представление того, что система выяснила в ходе предыдущих взаимодействий — стала частью нашей системы «Ответ на документы». Система не рассматривает новый запрос как существующий изолированно, когда пользователь задаёт дополнительный вопрос.

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

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

Экономика контекста: почему эффективность имеет значение

Стоимость чтения контекста пропорциональна вычислительной мощности, и вскоре может стать невыгодно поддерживать сложные приложения ИИ, которые неэффективно читают контекст.

Посчитайте: если ваше окно контекста включает 8 000 токенов, и у вас около 1 000 запросов в день, вы расходуете 8 миллионов токенов в день только на контекст. При нынешних ценах стоимость неэффективности контекста может легко превысить стоимость генерации самой задачи.

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

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

Измерение эффективности контекста

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

Эффективность контекста достигает пика при оптимизации контекста. Добавление большего количества токенов не всегда улучшает точность или полноту и может снизить общую эффективность.

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

Мы также внедрили то, что мы называем «метриками эффективности контекста»; они измеряют, сколько ценности мы извлекаем на каждый токен потребляемого контекста. Высокопроизводительные стратегии контекстной инженерии последовательно предоставляют действенные инсайты с минимальными информационными накладными расходами.

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

Инструменты и техники контекстной инженерии

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

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

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

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

Контекстная инженерия требует мышления о системах ИИ как о партнёрах в текущих разговорах, а не как об оракулах, которые отвечают на изолированные запросы. Это меняет то, как мы проектируем интерфейсы, как мы структурируем данные и как мы измеряем успех.

Взгляд в будущее: контекст как конкурентное преимущество

По мере того как функциональность ИИ становится более стандартизированной, контекстная инженерия становится нашим отличительным признаком.

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

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

Новое исследование, анализирующее более 1 400 статей об ИИ, обнаружило нечто весьма интересное: мы совершенно неправильно думали о контексте ИИ. Пока все были одержимы более крупными моделями и более длинными окнами контекста, исследователи обнаружили, что наши ИИ уже умеют понимать сложную информацию, но просто не умеют правильно её использовать. Реальный узким местом является не интеллект модели; это то, как мы предоставляем информацию этим системам.

Заключение

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

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

Будущее ИИ — это не создание систем, которые понимают всё, а создание систем, которые точно понимают, на что система должна обратить внимание, когда обратить внимание и как это внимание можно преобразовать в действие и инсайт.