Что ограничивают контекстные окна LLM и как RoPE их расширяет
Автоматический перевод
Эта статья была автоматически переведена с оригинальной английской версии.
Контекстное окно LLM ограничивает последовательность токенов, доступную для запроса на генерацию. API может задавать отдельные ограничения для входа и выхода или общее ограничение. Это не просто число токенов, обрабатываемых за один прямой проход: префилл по чанкам и декодирование с кэшем позволяют обрабатывать последовательность постепенно.
Инженерам, работающим с длинными документами, нужно проверять и ограничения длины последовательности модели, и то, насколько надёжно она использует нужную информацию.
Читайте опубликованные названия полей
В документации этих конкретных моделей указано следующее:
| Модель | Опубликованное ограничение | Отдельный максимум выхода |
|---|---|---|
| GPT-4.1 | Контекстное окно на 1,047,576 токенов | 32,768 токенов |
| Gemini 2.5 Pro | 1,048,576 входных токенов | 65,536 токенов |
Спецификации GPT-4.1 и Gemini 2.5 Pro используют разные названия. Не считайте эти числа одинаковыми правилами для общего бюджета токенов. Применяйте текущие ограничения выбранного API к сериализованному запросу, включая инструкции, инструменты, историю и, где применимо, мультимодальный контент.
Для модели с общим ограничением входа и выхода резервируйте место под выход до того, как допустить промпт к обработке. Длинный контекст также увеличивает потребление памяти обычным KV cache. Поддержка определённой длины последовательности не доказывает, что у вашей GPU достаточно памяти при нужном числе одновременных запросов.
Что меняют методы учёта позиции
Аттеншну нужна информация о позиции, чтобы различать порядок токенов и расстояние между ними. RoPE поворачивает векторы запросов и ключей на углы, зависящие от позиции. Поэтому их скалярные произведения зависят и от относительных позиций, и от содержимого. Каузальная маска ограничивает видимость будущих токенов; это не то же самое, что явное кодирование относительных позиций.
ALiBi вместо этого добавляет к оценкам аттеншна смещения, зависящие от расстояния. YaRN меняет масштабирование частот RoPE и адаптирует модель к более длинным контекстам. Эти методы проверяли в определённых условиях. Одно лишь изменение настройки контекста или коэффициента масштабирования не подтверждает надёжную экстраполяцию для любого чекпоинта.
Проверяйте поиск подтверждающей информации и точность выполнения задачи при разных длинах, включая факты в начале, середине и конце. Измеряйте TTFT, латентность последующих токенов, пиковое потребление памяти и поведение при обрезке. Если модель принимает запрос, но пропускает нужную информацию, запрос укладывается в ограничение размера, однако задача приложения не выполнена.
Инженерное руководство: контекстные окна и позиционные кодировки объясняет методы и исходные эксперименты.