← к ленте

Context-1: поисковый агент с механизмом самоочистки контекста

Д@stuffyNLPAI-инженер
2 нед

Разбор научной статьи о Context-1 — агенте, который самостоятельно удаляет нерелевантные данные из контекста для оптимизации работы с поиском.

Новый метод позволяет ИИ-агентам эффективнее работать с большими объемами данных, самостоятельно отсеивая «шум» в процессе поиска.

  • Агент сам решает, какие данные оставить в памяти, а какие удалить, экономя токены.
  • Метод помогает избежать переполнения контекстного окна при работе с поисковыми запросами.
  • Предложенный подход к генерации синтетических данных упрощает обучение моделей для сложных многошаговых задач.
Context-1 — поисковый агент, который умеет избавляться от лишнего. Часть 1/2 Авторы сегодняшней статьи заявляют следующую проблему. Когда агент ищет что-то в поиске, то нерелевантные страницы, выданные браузером, всё равно остаются в контексте агента. Чтобы справиться с этим, контекст можно обрезать или суммировать. Ещё одно весьма перспективное направление в этой области — self-editing context, при котором модель сама определяет, что ей нужно для решения задачи и может отбрасывать бесполезные документы. Этот подход авторы статьи и берут за основу своего субагента Context-1, построенного на модели в 20B параметров. В его арсенале есть четыре инструмента. Первый, search_corpus(query), позволяет оценивать релевантность документа: отбирается 50 документов, ранжируются, самые подходящие отправляются модели в рамках доступного бюджета токенов. Инструмент grep_corpus(pattern) проводит поиск с помощью регулярных выражений, read_document(doc_id) нужен, чтобы прочитать документ. Самый интересный из инструментов — prune_chunks(chunk_ids), который даёт модели возможность убрать какие-то фрагменты из контекста с сохранением траектории. После каждого шага модели сообщается, сколько токенов у неё осталось. Когда контекст заполнен наполовину, модель советуют освободить его, — но только на обучении, не на инференсе. После преодоления какого-то порога по токенам, модель начинает получать отбивку о необходимости почистить контекст на каждый запрос вызова инструментов для получения новых документов. В этом случае модель либо должна выдать ответ, либо запустить prune_chunks(chunk_ids). Авторы придумали, как генерировать синтетические данные для RL с возрастанием по сложности. Генерация происходит в пять стадий: Gather supporting documents — сбор сопутствующих документов, которые содержат уникальные факты на основе заданного сида. В статье приводится пример с сидом «Синагоги в Брюсселе», по которому модель собрала факты вроде «Синагоги выполнены в романо-византийском стиле». Generate clues (obfuscated references to facts) — собранные на первом этапе факты встраиваются в одну задачу, загадку, где разные сущности заменены фактами. Так, вместо, собственно, «синагога» в этом тексте будет сказано «религиозные сооружения в романо-византийском стиле». Verify that the task is valid — этап проверки, что в сопутствующих документах есть подсказки, ведущие к ответу. То есть в каком-то из документов должно быть прямо сказано, что «синагога — это религиозное сооружение в романо-византийском стиле». Проверка осуществляется не с помощью LLM, а просто кодом на Python. Optionally, collect distractors — опциональное добавление в базу документов-дистракторов. Важно, чтобы они не только вели модель по ложному пути, но и случайно не содержали правильных ответов. Optionally, recursively chain — опциональная генерация задач, которые связаны с прошлыми задачами. Так получается синта, которую нужно решать в несколько шагов. Во второй части поговорим об обучении и результатах. Разбор подготовил Владислав Пыж Душный NLP

Кратко (AI)

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

Обсуждение

0
В

Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖