Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Context Window

Контекстное окно — это максимальное количество токенов, которое модель может учитывать в одном запросе; в него входят промпт, история, документы и ответ.

Контекстное окно — это максимальное количество токенов, которое модель может учитывать в одном запросе. Для большой языковой модели (LLM) весь входной и выходной текст расходует этот лимит: системный промпт, определения инструментов, история беседы, извлечённые документы, вопрос пользователя и сгенерированный ответ. Текст за пределами окна вообще не попадает к модели. Поэтому чат-бот теряет начало очень длинной беседы, когда предыдущие ходы обрезают. Размер окон вырос с 2 048 токенов у GPT-3 до 128K токенов у GPT-4 Turbo в конце 2023 года и миллиона у Gemini 1.5 Pro от Google в 2024 году; Llama 4 Scout от Meta заявляет о 10 миллионах.

Что заполняет контекстное окно#

Токенизация разбивает текст на части слов; в английском на один токен в среднем приходится около четырёх символов. Поэтому окно на 128K токенов вмещает примерно 300 страниц текста. Визуально-языковая модель (VLM) также расходует токены на изображения — обычно сотни токенов патчей на изображение. Поэтому длинное видео заполняет окно гораздо быстрее, чем его расшифровка. Сгенерированные токены расходуют тот же лимит, а провайдеры отдельно ограничивают длину выходных данных в его пределах. Поэтому приложения, которые поддерживают длинные беседы или ИИ-агентов, собирают промпт на каждом ходу и решают, что оставить:

Почему размер окон ограничен#

С длиной растут две статьи расходов. Механизм самовнимания сопоставляет каждый токен со всеми остальными, поэтому вычисления для внимания растут квадратично относительно количества токенов. Во время генерации текста KV-кэш хранит ключи и значения каждого предыдущего токена: Llama 3.1 8B с 32 слоями и 8 головами ключей и значений размерностью 128 каждая хранит 128 КиБ на токен в 16-битной точности — или 16 ГиБ при максимальном окне в 131 072 токена, то есть больше, чем 16 ГБ, занимаемые весами модели.

Размер окна также определяется обучением. Модель, обученная на последовательностях длиной 8K токенов, никогда не видела позиции за их пределами. Чтобы расширить окно, нужно масштабировать её поворотные позиционные эмбеддинги (RoPE) методами вроде YaRN и ненадолго дообучить на более длинном тексте. Для обслуживания моделей с длинным контекстом используют методы экономии памяти: flash attention вычисляет точное внимание, не сохраняя полную матрицу оценок; внимание с группированными запросами (GQA) уменьшает KV-кэш; внимание со скользящим окном ограничивает область внимания каждого токена недавними соседями; а кольцевое внимание распределяет одну последовательность между множеством GPU.

Заявленный и фактический контекст#

Модель, принимающая миллион токенов, не обязательно одинаково хорошо использует их все. Исследование 2023 года Lost in the Middle показало, что модели лучше всего отвечают, когда нужный фрагмент находится в начале или конце промпта, и хуже всего — когда он расположен посередине. Тесты «иголка в стоге сена» (NIAH) измеряют, удаётся ли найти единственный вставленный факт на разной глубине и при разной длине контекста. Более сложный тест RULER показал, что на уровне 32K токенов удовлетворительно справились лишь 17 из моделей, заявлявших поддержку 32K токенов и выше. Постепенное ухудшение качества по мере роста входных данных называют деградацией контекста; генерация с дополнением извлечённой информацией (RAG) и инженерия контекста помогают противодействовать этому, помещая в окно только релевантные материалы.

Контекстные окна в обнаружении объектов с открытым словарём#

У текстовых кодировщиков в моделях компьютерного зрения тоже есть контекстные окна. Ultralytics YOLOE и YOLO-World кодируют промпт каждого класса с помощью текстового кодировщика семейства CLIP, чьё контекстное окно составляет 77 токенов. По умолчанию текстовый кодировщик Ultralytics обрезает более длинные промпты. Вот что отбрасывает тот же токенизатор CLIP:

import clip
from clip.simple_tokenizer import SimpleTokenizer

prompt = (
    "a warehouse worker wearing a yellow high-visibility vest, a white hard hat, blue gloves and clear safety "
    "glasses, standing beside a red forklift that carries wooden pallets stacked with brown cardboard boxes, "
    "under bright ceiling lights in a narrow aisle between tall metal shelves, next to a fire extinguisher "
    "mounted on the wall, a green emergency exit sign, an open loading dock door and a black dog"
)

# CLIP's BPE tokenizer wraps the text in start and end tokens
tokenizer = SimpleTokenizer()
print(f"Prompt length: {len(tokenizer.encode(prompt)) + 2} tokens")

# The text encoder reads a fixed 77-token window, so truncation drops the tail
tokens = clip.tokenize(prompt, truncate=True)[0]
kept = tokenizer.decode(tokens[1:-1].tolist())
print(f"Window: {len(tokens)} tokens ending in '{' '.join(kept.split()[-4:])}'")
print(f"'black dog' kept: {'black dog' in kept}")

В промпте 80 токенов, поэтому окно сохраняет первые 75 текстовых токенов и маркеры начала и конца, заканчивается словами «погрузочная платформа и» и отбрасывает фразу «чёрная собака», прежде чем кодировщик её увидит.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения