Про контекст в LLM…

Контекст — новый бензин.

Помните, в прошлый раз я писал про кэширование ответов LLM? Про то, что 80% вопросов пользователей повторяются, и мы просто экономим токены, сохраняя готовые ответы?

Тема пошла дальше. Я копнул глубже и понял: кэширование — это лишь вершина айсберга. Главная проблема (и одновременно точка роста) сейчас — ограниченный контекст.

Раньше казалось: выпустят модель с контекстом в 1 миллион токенов — и заживем. Закинем туда всю документацию, всю историю переписки, и агент сам разберется.

Спойлер: не разберется.

Что пошло не так?

Я поэкспериментировал с разными подходами и заметил странную вещь: чем больше контекста я давал модели, тем хуже становилось качество ответов. Звучит контринтуитивно, правда?

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

Модели ведут себя так же:

🔸 Теряют фокус внимания к середине длинного диалога

🔸 Начинают «галлюцинировать», пытаясь связать несвязанные куски информации

🔸 Тратят токены на обработку мусора вместо полезной работы

🔸 Забывают, что говорили в начале разговора

Как теперь строить архитектуру?

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

Вот что работает у меня:

1. RAG как диета, а не шведский стол

Раньше я думал: подключим базу знаний, будем отдавать модели всё, что найдется по теме. Теперь я понимаю: нужно отдавать только самое сочное. 3-5 самых релевантных кусков, не больше. Иначе модель переедает и страдает несварением.

2. Сжатие контекста — must have skill

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

“Пользователь уже выбрал категорию, определился с бюджетом, сейчас выбирает цвет”. 20 токенов вместо 2000. Работает блестяще.

3. Сегментация диалогов

Я заметил, что длинные сессии всегда проседают по качеству где-то после 15-20 сообщений. Теперь я проектирую агентов так, чтобы они либо завершали задачу до этого лимита, либо явно начинали “новую главу” со сбросом контекста.

4. Промпты-фильтры

Перед тем как отдать запрос модели, я часто ставлю маленького агента-препроцессора, который отвечает только на один вопрос: “Что здесь действительно важно для ответа?”. Он отсеивает шум, эмоции, повторы. Основная модель получает выжимку.

Главный вывод

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

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

Мой канал https://t.me/manager_dot_exe

Про контекст в LLM… | Сетка — социальная сеть от hh.ru