Размер контекста языковой модели определяет, сколько информации она способна учесть при ответе. В контекст входит не только сам вопрос, но и системные инструкции, история диалога, служебные данные. Понимание этих ограничений помогает правильно строить запросы и работать с длинными документами: разбивать их на части, перефразировать, избегать потери важных деталей. Материал объясняет, что именно занимает место в контексте, почему длинный текст не помещается целиком, как модель ведёт себя при переполнении, чем контекст отличается от памяти между сессиями и какими способами можно обработать большой объём данных без потери смысла.
Контекст модели — это вся информация, доступная ей в момент генерации ответа. Кроме текста вопроса, в него входят системные инструкции, которые задают стиль и правила поведения, история предыдущих сообщений в текущем диалоге, а также служебные данные, такие как разделители реплик и маркеры ролей. Если пользователь ранее задавал уточняющие вопросы или модель отвечала с учётом предыдущих сообщений, все эти данные сохраняются в контексте до тех пор, пока не будет превышен допустимый объём.
Модель не различает, какая часть контекста важнее: она обрабатывает всё одновременно. Поэтому длинные системные инструкции, подробная история обсуждения или избыточные пояснения в предыдущих репликах сокращают место, доступное для нового документа. Пользователь, который задаёт короткий вопрос после длинной переписки, может столкнуться с тем, что модель «забывает» начало беседы, хотя в рамках одного запроса это единый контекст.
У каждой модели есть максимальный размер контекста, измеряемый в количестве токенов — единиц текста, таких как слова, части слов или знаки препинания. Этот предел задаётся архитектурой и вычислительными ресурсами. Документ, превышающий этот объём, не может быть обработан целиком: модель физически не способна удержать всю информацию одновременно.
При попытке передать слишком длинный текст система обычно обрезает его, оставляя начало или конец, либо отказывается обрабатывать запрос. Обрезка приводит к потере важных фрагментов: если ключевая информация находится в середине документа, модель её не увидит. Поэтому перед отправкой большого текста нужно оценить его размер относительно лимита и применить методы сокращения или разбиения.
Когда объём информации превышает допустимый, модель применяет стратегию усечения. Чаще всего удаляются самые ранние сообщения или первые части документа, поскольку считается, что ближайшие к запросу данные важнее. Однако это не всегда верно: если в начале были заданы условия задачи или определены термины, их потеря искажает ответ.
Переполнение может проявляться по-разному: модель начинает противоречить сказанному ранее, игнорировать часть инструкций или давать ответ, основанный только на последних фрагментах текста. В некоторых сервисах система предупреждает о превышении лимита и предлагает сократить запрос. Чтобы избежать таких ситуаций, стоит заранее проверять длину документа и при необходимости делить его на логические блоки.
Контекст — это временное хранилище, действующее только в рамках текущего диалога. После завершения сессии или начала нового чата контекст обнуляется, и модель не помнит предыдущие разговоры. Память между разговорами, если она предусмотрена сервисом, работает иначе: определённые сведения о пользователе или ключевые факты сохраняются в отдельном хранилище и подгружаются в контекст при новых сессиях.
Память не расширяет контекст автоматически. Она лишь добавляет в него заранее отобранные данные, что также занимает место. Если объём сохранённой информации велик, это может сократить пространство для текущего запроса. Пользователю важно понимать, что модель не «помнит» всё подряд: она оперирует только тем, что помещено в контекст, включая явно загруженные фрагменты памяти.
Самый распространённый способ обработки длинного документа — разбиение на логические фрагменты: главы, разделы или абзацы, каждый из которых помещается в контекст. После этого фрагменты можно обрабатывать последовательно, передавая модели по одному и сохраняя результаты. Важно, чтобы деление происходило по смысловым границам, а не механически, иначе возможна потеря связности.
Другой подход — иерархическая обработка: сначала модель получает краткое содержание всего документа или его структуру, затем обрабатывает каждый фрагмент с учётом общего контекста. Некоторые сервисы позволяют загрузить документ целиком, но внутри автоматически разбивают его на части и объединяют результаты. Однако при таком методе могут теряться перекрёстные ссылки между удалёнными друг от друга разделами.
Выбор способа зависит от задачи. Для суммаризации подходит последовательное реферирование частей с последующим слиянием. Для вопросно-ответной работы над документом эффективнее сначала найти релевантные фрагменты, а затем передать их модели вместе с вопросом. В любом случае нужно контролировать, чтобы суммарный объём контекста не превышал допустимый.
