← к ленте

Declarative Attention: метод оптимизации работы с длинным контекстом

К@quant_prune_distillAI-инженер
1 мес

Обзор метода Declarative Attention для работы с длинным контекстом через блочно-разреженную маску и специфическую разметку промптов.

Новый подход к обработке длинных текстов позволяет ускорить работу нейросетей, но пока ограничен в сложных задачах.

  • Метод позволяет сократить время генерации ответа до 73-77% от исходного.
  • Эффективность сильно зависит от размера модели: маленькие модели плохо справляются с форматом.
  • Подход лучше всего работает для задач типа «поиск иголки в стоге сена» и не подходит для глубокого рассуждения.
Метод ⚙️ Задачи на вход подаются в следующем формате: - 🧩 Системная инструкция - 📚 Контекст задачи, на основе которого надо дать ответ. Разбивается на чанки примерно одного и того же размера. - ❓ Вопрос - 🧭 Инструкция по использованию Declarative Attention (DA) Определяются 3 вида внимания, размечаемых специальными хэштегами: - 🌐 <global> — модель смотрит на весь контекст задачи. - 🎯 <focus> — модель смотрит только на нужный чанк контекста. - 📍 <local> — модель смотрит только на последние сгенерированные токены. Системная инструкция, вопрос и инструкция по использованию DA всегда есть в текущем общем контексте. Текст разбивается на чанки следующим образом: - ✂️ Стремимся побить все как можно ближе к 2048 токенам. При этом стараемся найти как можно более явный логический блок — раздел, абзац, предложение, по которому проводим разбиение. На крайняк просто пытаемся хотя бы не разделить слово пополам. - 🏷️ Сегменты размечаются хэштегами — начало/конец чанка. Хэштеги подбираются так, чтобы быть непохожими на секции в оригинальном тексте. Эффективный инференс реализован через vLLM с блочно-разреженной маской. Размеры чанков паддятся до 16/32, чтобы вписаться в ограничения по размерам. Эксперименты 🧪 Свой метод они валидируют на семействах Gemma-4, Qwen-3.5/3.6. Замеряют на задачах с длинным контекстом и обычно довольно коротким ответом: Needle-in-a-Haystack из RULER, задачи из LongBench-v1 / LongBench-v2. Для ablation рассматривают версию своего метода с тем же форматом промпта и сегментированием по чанкам, но без блочно-разреженной маски. На больших моделях просадки довольно небольшие — 1–3%, но все же статзначимые. Просадка обусловлена разреженностью, а не форматом промпта. Блочная разреженность дает ускорение, но как наши вставки влияют на длину ответа? Есть ли ускорение по конечному времени обработки запроса? ⏱️ Авторы замечают, что эти вставки и специфичный формат действительно заметно увеличивают в среднем число токенов в ответе. При этом с включенной маской число сгенерированных токенов растет не так сильно. Однако end-to-end все же оказывается, что можно добиться уменьшения времени ответа до 0.73–0.77 от исходного. Эффективность метода сильно зависит от размера модели. Мелкие модели (Gemma4-E4B и Qwen3.5-4B) плохо справляются с задачей. Им не удается вписаться и строго соблюдать специфичный формат разметки. С увеличением размера модели качество следования формату и умение находить нужный чанк из контекста растет. Далее замечают, что экономия токенов растет с длиной контекста, но становятся более ярко выраженными и просадки качества. Кроме того, на длинных контекстах модель дольше считает, что ей надо проводить время в `<global>`-режиме, что ограничивает достижимое ускорение. В среднем модель делает 1–2 попытки `<focus>`-контекста. Выводы 💭 Идея концептуально интересная и красивая. Однако область применимости ограничена. Авторы сами замечают, что их метод не работает с включенным ризонингом. В текущей постановке есть реальный профит, если контекст большой, а ответ короткий. Да и задачи в основном сводятся к иголкам в сене. На задачах по типу «много иголок» или со сложным образом распределенной информацией такой метод, скорее всего, не заведется. Кроме того, современные разреженные внимания, как в DeepSeek-V4.1-Flash и Qwen-3.8-Flash-Next, в процессе обучения, скорее всего, находят нужные паттерны, причем более надежно и эффективно, чем такая вот эвристика.

Кратко (AI)

Метод Declarative Attention (DA) предлагает оптимизировать работу с длинным контекстом, разбивая его на чанки и используя специальные теги внимания (<global>, <focus>, <local>). Исследование показывает, что метод ускоряет инференс, но требует моделей достаточного размера для корректного следования формату и имеет ограничения в задачах с распределенной информацией.

Обсуждение

0
В

Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖