Современные большие языковые модели (БЯМ) играют ключевую роль в решении множества задач, связанных с обработкой естественного языка. Они широко используются для генерации текстов, анализа документов, поддержки диалогов и ответов на вопросы. Одной из важных особенностей таких моделей является возможность работать с контекстом — набором входных данных, на основе которых формируется ответ. В то время как контекст может иметь разную длину, обработка очень больших по объему текстов, например, правовых документов, кода или истории чатов, традиционно является сложной задачей из-за технических ограничений и больших затрат вычислительных ресурсов. Технология Cartridges предлагает принципиально новый и эффективный подход к работе с длинными контекстами, позволяя существенно экономить ресурсы и повышать производительность моделей.
В традиционном подходе, когда требуется анализировать длинный документ, весь текст помещается в окно контекста модели. Современные большие языковые модели поддерживают длину контекста около 100 тысяч до миллиона токенов, что позволяет работать с объемными корпусами данных. Однако такой метод не лишен недостатков. За счет большой длины контекста значительно растет объем требуемой оперативной памяти для хранения KV-кэша — структуры данных, которая используется во время работы модели для быстрого доступа к информации. Этот фактор усложняет и удорожает развертывание систем, особенно при необходимости обрабатывать множество разнообразных запросов на одном и том же корпусе текстов.
Идея Cartridges заключается в том, чтобы сменить парадигму использования KV-кэша. Вместо того чтобы динамически строить его во время каждого запроса, предлагается предварительно обучить компактный KV-кэш, относящийся к конкретному корпусу и загрузить этот «Картридж» при работе с моделью. Это позволяет зафиксировать и оптимизировать представление больших текстов в легковесной форме, которую можно многократно использовать без необходимости повторной обработки всего корпуса при каждом запросе. Таким образом, цена создания Картриджа амортизируется при множестве обращений к одному и тому же источнику. Первоначальные эксперименты с тренировкой Картриджа по классической задаче предсказания следующего токена на исходном корпусе не давали оправданных результатов и не могли полноценно заменить встроенное использование длинного контекста через in-context learning (ICL).
Для достижения высокой производительности команда разработчиков из разных научных и промышленных институтов предложила инновационную методику под названием self-study — самообучение. В рамках этого подхода осуществляется генерация искусственных диалогов, основанных на содержимом корпуса. Затем Картридж обучается на задаче контекстной дистилляции, что позволяет ему воспроизводить поведение in-context learning, но при значительно меньших вычислительных затратах. Self-study открывает новые горизонты в работе с длинными контекстами. Картриджи, обученные с использованием этого метода, достигают уровня производительности, сопоставимого с традиционным in-context learning.
При этом они уменьшают расход памяти почти в 40 раз и обеспечивают ускорение работы модели в 26 раз, что особенно важно при масштабировании систем и обслуживании большого числа запросов в реальном времени. Еще одно важное преимущество метода заключается в значительном расширении эффективной длины контекста. Например, на специализированном наборе тестов MTOB длина контекста при использовании Cartridges увеличивается с 128 тысяч до 484 тысяч токенов. Это преимущество дает большие возможности в области анализа больших текстовых масс без компромиссов в качестве генерации ответов. Особенно интересно, что Cartridges, обученные через self-study, обладают способностью к компоновке во время работы без необходимости повторного обучения.