Про контекст в 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
· 04.03
Почему мне об этом рассказывали лет 5 назад на курсе по LLM? А говорили прогресс...
ответить
коммент удалён