сайт в бете
нашли баг? напишите
левин. записаться
весь блог

Своя библиотека контекста: почему курируемые примеры повышают точность ответов

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

Л
Проект Левин
автор
Своя библиотека контекста: почему курируемые примеры повышают точность ответов

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

Откуда взялась проблема

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

Выглядело это так. Владелец пишет в поиск spirit — и получает десятки результатов. Один нужный, остальные шум. Плюс всё только на английском, поэтому человеку сначала надо вспомнить точное английское написание, а потом ещё глазами отфильтровать выдачу. Формально данные полные. По факту пользоваться невозможно.

Один нужный результат среди шумной выдачи

То же самое происходит, когда мы даём модели гигантский недифференцированный контекст. Информация есть. Сигнал в ней тонет.

Что такое библиотека контекста

Библиотека контекста — это собранный вручную набор примеров, определений и заготовок, который ты подкладываешь к задаче вместо сырой свалки. Ключевое слово здесь «вручную». Кто-то один раз сел, отобрал то, что реально используется, перевёл, сгруппировал и подписал.

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

Аккуратная курируемая библиотека рядом с ящиком сырого каталога

Сырой каталог со всеми тысячами статов я не выбросил. Я спрятал его за тумблер «Расширенный поиск». Он остаётся доступен на редкий случай, когда нужного мода в библиотеке нет. Но по умолчанию человек работает с чистым отобранным набором.

Почему курируемый набор точнее

Механика простая, и она одинаково работает и для человека, и для модели.

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

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

Как собрать такую библиотеку под себя

Если переносить мой опыт на работу с ИИ-ассистентами, порядок действий получается примерно один и тот же.

  1. Найди свой stat_descriptions. Это источник, который формально полный и практически бесполезный из-за шума. У кого-то это вся база знаний компании, у кого-то — папка со всеми документами подряд.
  2. Отбери то, что реально используется. Не пытайся положить всё. Смотри на реальные запросы и оставляй примеры, которые закрывают частые случаи.
  3. Нормализуй формат. Приведи к единому виду, добавь недостающий язык, подпиши понятными названиями. Скучный ручной этап, и именно он даёт основной прирост.
  4. Сгруппируй. Похожие примеры рядом — это те самые «наборы в один клик». Модель охотнее опирается на связный блок, чем на разрозненные куски.
  5. Оставь дверь к сырым данным. Мой тумблер «Расширенный поиск» — это страховка. Курируемый набор покрывает основное, полный источник остаётся на редкие случаи.

Что я вынес из этого

Библиотека контекста — это живой актив, который приходится вести. Появился новый частый запрос — добавил пример. Что-то устарело — вычистил. Она маленькая ровно потому, что за ней кто-то следит.

Самое неочевидное для меня было вот что: полнота данных и полезность данных — разные вещи, и вторая почти всегда важнее. Тот сырой каталог со всеми статами никуда не делся и остался технически исчерпывающим. Но реальную точность дал маленький отобранный JSON, который я собрал руками под конкретную задачу.

теги #контекст#промпты#примеры#курирование#точность

один разговор — и поймём, чем я могу помочь.

В эпоху ИИ человеку нужен человек. Сяду рядом и доведу до результата — встреча длится столько, сколько нужно. Без скрипта продаж и пакетов «за 999 000 ₽». Если пойму, что помочь не смогу, — скажу сразу.