RAG или длинный контекст: что выгоднее для памяти
RAG или длинный контекст что лучше для памяти ассистента: сравниваем два подхода по деньгам и качеству. Почему большое окно не заменяет постоянную память.
Может ли большое контекстное окно заменить память ассистенту? Короткий ответ: нет, потому что окно и память решают разные задачи. Контекстное окно это рабочий стол одной сессии: закрыли разговор, и он снова пустой, каким бы просторным окно ни было. Память это архив, который живёт между сессиями и хранится отдельно от модели. Поэтому «просто взять окно побольше» и «подключить базу знаний» не равнозначны. У большого окна две слабости в роли памяти: каждый вопрос обходится дороже, ведь модель перечитывает весь архив заново, а на длинном тексте она теряет то, что лежит в середине (Liu et al., 2023). Внешняя база хранит всё дёшево и подаёт в окно только нужное. Ниже сравним оба подхода по деньгам и по качеству и честно скажем, где сила у каждого.
Два способа дать ассистенту знания о Вашем деле
Представьте, что ассистенту нужно помнить всё о Вашем деле: клиентов, цены, договорённости, историю проектов. Есть два инженерных пути, и вокруг них идёт настоящий спор.
Первый путь: сложить весь архив прямо в контекстное окно и взять модель с окном побольше. Раз современные окна вмещают сотни страниц, соблазн понятен: залил переписку за год, и пусть модель держит всё перед глазами. Это и есть идея «длинное контекстное окно вместо базы знаний».
Второй путь: держать архив во внешней базе, а в окно подавать только те фрагменты, которые относятся к вопросу. Это подход RAG. Что такое окно и что такое RAG по отдельности, мы разбирали в обзоре темы память ИИ-ассистента. Здесь важно другое: это два разных ответа на один вопрос, и у них разная цена и разное качество.
Что дешевле: RAG или большое окно
Начнём с денег, потому что здесь разница прямая. Каждый токен, лежащий в контекстном окне, оплачивается при каждом запросе. Если Вы держите весь архив в окне, то платите за его прочтение снова и снова: спросили про один договор, а оплатили чтение всей переписки за год. Чем больше окно и чем плотнее Вы его набили, тем дороже обходится каждый вопрос.
Посчитаем на простом примере. У консультанта за год накопилась переписка с десятками клиентов, договоры, планы вебинаров. Держать это в окне значит на каждый вопрос, даже пустяковый, снова прогонять через модель весь ворох. Задал за день двадцать вопросов, двадцать раз оплатил прочтение всего года.
Внешняя база устроена бережливее. Архив лежит на диске, где хранение почти ничего не стоит, а в окно попадает только горсть нужных фрагментов. На тот же вопрос про одного клиента модель прочитает пару абзацев про него, а не всю историю. Вы платите за короткий контекст, а не за весь свой год.
Это не только наше наблюдение. В сравнении RAG и длинного контекста Li et al. (2024) прямо отмечают: заметно более низкая стоимость остаётся отчётливым преимуществом RAG. Проще говоря, по деньгам база выигрывает у большого окна, и выигрывает тем сильнее, чем больше архив.
Что происходит с качеством на длине
С качеством история тоньше, и честный ответ состоит из двух половин.
Первая половина не в пользу большого окна. Исследование «Lost in the Middle» (Liu et al., 2023) показало, что модели надёжно видят начало и конец длинного контекста, а середину теряют. Причём это касается даже моделей, специально заявленных как длинноконтекстные. Значит, чем больше архива Вы засыпали в окно, тем шире в нём «слепая зона»: нужный факт может лежать в середине и просто не попасть в ответ.
Вторая половина честно в пользу окна. Те же Li et al. (2024) обнаружили, что когда ресурсов достаточно, длинный контекст в среднем отвечает точнее, чем RAG. То есть если материал целиком помещается в окно и за это не жалко платить, большое окно может дать более качественный ответ, чем поиск по базе. Для разбора одного крупного документа это разумный выбор.
Так что выгоднее для памяти ассистента
Сложим обе оси. Для разовой задачи, когда есть один большой документ и Вы готовы оплатить его целиком, большое окно оправдано и даже точнее. Для постоянной памяти о Вашем деле оно проигрывает по всем статьям сразу.
Память ассистента это не один документ, а архив, который растёт месяцами. Окно его не удержит по трём причинам. Оно чистится с каждой новой сессией: закрыли чат, и накопленное исчезло. Оно дорожает с каждым вопросом, потому что перечитывает весь архив заново. И оно теряет середину, когда архив становится длинным. Внешняя база снимает все три: хранит постоянно, стоит дёшево, подаёт короткий и точный контекст.
Поэтому зрелый выбор архитектуры памяти ИИ это не «или, или». Умные системы не выбирают один подход навсегда, а направляют каждый вопрос туда, где он дешевле при том же качестве. Li et al. (2024) описывают этот приём под названием Self-Route: модель сама решает, ответить из короткой выборки или прочитать длинный контекст, и это заметно снижает стоимость, сохраняя качество на уровне длинного окна. Окно и память тут не соперники, а разделение труда: окно рабочая поверхность на «сейчас», база хранилище на «всё, что было».
Как это устроено у Хермес
Хермес построена по второму принципу. Контекстное окно она использует как рабочий стол текущего разговора, а Вашу память держит во внешней базе на Вашем собственном сервере. В момент вопроса она достаёт из базы только относящиеся к делу фрагменты и подкладывает их модели, а не тащит в окно весь архив. Поэтому память не чистится между сессиями, не дорожает с ростом архива и не прячет нужный факт в середину длинного окна.
Здесь же проходит граница с привычными облачными чатами. Большое окно в чужом чате не спасает от двух вещей: в новой сессии он снова Вас не знает, а всё, что Вы в него сложили, лежит на чужом сервере. Разница с Хермес не в размере окна, а в том, что у неё есть постоянная память и лежит она у Вас. Как устроен ассистент с памятью на Вашем собственном сервере, мы разобрали отдельно. Большое окно полезно как рабочая поверхность, но заменить память оно не может: это просто разные инструменты для разных задач.
Может ли большое контекстное окно заменить память ассистенту?
Нет. Окно и память решают разные задачи. Контекстное окно это рабочая память одной сессии: оно чистится с каждым новым разговором и оплачивается заново при каждом вопросе. Постоянная память живёт во внешней базе, хранится между сессиями и подаёт в окно только нужное. Большое окно полезно как рабочая поверхность на «сейчас», но роль архива о Вашем деле оно не закрывает.
Что дешевле: RAG или большое контекстное окно?
По деньгам дешевле RAG, то есть внешняя база. Каждый токен в окне оплачивается при каждом запросе, поэтому держать весь архив в окне значит перечитывать его целиком на каждый вопрос. База хранит архив на диске почти бесплатно и подаёт в окно горсть фрагментов. Li et al. (2024) отмечают заметно более низкую стоимость как отчётливое преимущество RAG.
Что отвечает точнее: длинный контекст или RAG?
Зависит от задачи. Li et al. (2024) нашли, что при достаточных ресурсах длинный контекст в среднем отвечает точнее RAG, поэтому для разбора одного большого документа окно бывает выгоднее. Но на длинном тексте модели теряют середину (Liu et al., 2023), а для постоянной памяти окно ещё и чистится каждую сессию. Для архива о Вашем деле надёжнее внешняя база.
источники (2)
- Retrieval Augmented Generation or Long-Context LLMs? A Comprehensive Study · arXiv, Li et al. · 2024
- Lost in the Middle: How Language Models Use Long Contexts · arXiv, Liu et al. · 2023