TL;DR
TokenSqueeze — метод обучения моделей, который сжимает длинные цепочки рассуждений (chain-of-thought) в два раза без потери точности. Модели типа OpenAI-o1 и DeepSeek-R1 генерируют очень длинные reasoning traces для решения сложных задач — это даёт высокую точность, но съедает токены и замедляет работу. Существующие методы сокращения режут логические шаги вместе с водой, из-за чего падает качество.
Исследователи обнаружили: после определённого порога длина рассуждения перестаёт коррелировать с точностью. Модели "overthink" даже на простых задачах — генерируют избыточные шаги, которые не добавляют ценности. Проблема не в логике, а в многословности: одну и ту же мысль можно выразить в 50 токенах или в 20, сохранив смысл. Ключевой инсайт: для простых задач нужна короткая цепочка рассуждений, для сложных — длинная, и этот порог должен определяться адаптивно.
TokenSqueeze работает в три этапа: (1) отбирает reasoning traces адаптивно по сложности задачи — не просто "самый короткий правильный", а "достаточно короткий для этой сложности", (2) переписывает каждый шаг рассуждения более плотно, контролируя потерю информации через KL divergence, (3) обучает модель предпочитать краткие ответы через preference learning с length penalty. Результат: DeepSeek-R1-Distill-Qwen-7B сократил токены на 50% на бенчмарке MATH500 при той же точности.
Схема метода
⚠️ Это метод обучения модели (fine-tuning), не промпт-техника. Требует GPU, датасет, PyTorch.
ШАГ 1: Адаптивный отбор reasoning traces - Модель генерирует N вариантов решения задачи - Считается процент правильных ответов p - Порог отбора: q = α × (1 - p) — чем сложнее задача (меньше правильных), тем длиннее traces берутся - Формируются пары: короткий правильный (chosen) vs длинный неправильный (rejected)
ШАГ 2: Лингвистическое сжатие шагов - Каждый шаг рассуждения переписывается в 64 вариантах - Выбирается самый короткий вариант при условии: KL divergence < ε (смысл не изменился сильно) - Проверка через окно следующих 512 токенов — не поломалась ли логика
ШАГ 3: Обучение с length penalty - DPO (Direct Preference Optimization) с добавкой на длину - Loss функция штрафует длинные ответы: λ × log(len_rejected / len_chosen) - Баланс 50/50 с supervised fine-tuning на правильных примерах
Почему это работает (и что можно взять для промптинга)
Слабость LLM: Модели не умеют автоматически калибровать детальность рассуждений под сложность задачи. По умолчанию они генерят длинные traces даже там, где достаточно трёх шагов. Это "overthinking" — как отличник, который на вопрос "сколько будет 2+2" расписывает коммутативность сложения и историю арифметики.
Сильная сторона LLM: Модели хорошо следуют паттернам из обучающих данных. Если показать примеры "краткое решение = хорошо", они научатся генерить компактнее. Также модели отлично переформулируют мысли — один и тот же шаг можно выразить в 20 токенах вместо 50 без потери смысла.
Как метод использует это: TokenSqueeze обучает модель на парах "длинный verbose ответ vs короткий плотный ответ", где короткий сохраняет всю логику, но убирает воду. Ключевое отличие от других методов — адаптивность: для задачи с 90% правильных ответов (простая) берутся очень короткие traces, для задачи с 30% правильных (сложная) — более длинные. Это предотвращает "oversimplification" — вырезание важных логических шагов.
Extractable принципы для промптинга:
- Двухэтапное решение: Попроси модель сначала решить задачу подробно, потом сжать — "думай подробно, отвечай кратко"
- Адаптивная детальность: Попроси модель самой оценить сложность и выбрать глубину рассуждений
- Понимание: Длиннее ≠ точнее. После определённого порога избыточные шаги не улучшают результат, а только замедляют
Примеры применения принципов (не самого метода)
⚠️ TokenSqueeze сам по себе требует fine-tuning. Ниже — экстраполяции принципов на промптинг.
Задача: Разобрать бизнес-модель нового стартапа. Хочешь получить анализ — не простыню текста, а плотный разбор без воды.
Промпт:
Шаг 1: Проанализируй бизнес-модель стартапа [название]. Распиши подробно:
целевая аудитория, monetization, конкуренты, риски, метрики.
Шаг 2: Теперь сократи свой анализ в 2 раза. Убери повторы и общие слова,
сохрани все ключевые инсайты и логику. Каждое предложение должно нести
конкретную мысль.
Результат:
Модель сначала выдаст подробный анализ (300-400 слов), потом плотную версию (150-200 слов) без потери ключевых точек. Второй шаг заставляет модель переформулировать мысли компактнее — как intra-step refinement, только вручную.
Задача: Нужно решить сложную техническую проблему с интеграцией API. Не хочешь получить простыню кода и объяснений, но и не хочешь пропустить важные шаги.
Промпт:
Оцени сложность этой задачи по шкале 1-10: [описание проблемы с API]
Если 1-3 (простая): дай краткое решение без объяснений.
Если 4-7 (средняя): покажи ключевые шаги и код.
Если 8-10 (сложная): распиши подробно с пояснениями и альтернативами.
Выбери уровень детальности и реши.
Результат:
Модель сама калибрует глубину рассуждений. Для простого баг-фикса даст сразу код. Для сложной архитектурной задачи распишет подробно. Это аналог adaptive reasoning depth selection — только через мета-промпт, а не через fine-tuning.
Ограничения
⚠️ Метод требует fine-tuning: Нельзя применить в чате ChatGPT/Claude напрямую. Нужен доступ к весам модели, GPU для обучения, датасет с reasoning traces.
⚠️ Сжатие работает на reasoning-моделях: Исследование тестировали на DeepSeek-R1, которая обучена генерить длинные CoT. На обычных моделях (GPT-4, Claude) эффект будет слабее — они и так генерят короче.
⚠️ Риск oversimplification: Если параметр α слишком мал (выбираются слишком короткие traces), модель может потерять важные логические шаги. В эксперименте α=0.2 дал лучший баланс.
⚠️ LiveCodeBench показал меньше сжатия: На программировании (16.7% точности vs 13.4% у baseline) модель сжалась всего на 1.6% для правильных ответов против 50% на математике. Код менее избыточен, чем математические рассуждения.
Как исследовали
Команда взяла две модели (DeepSeek-R1-Distill-Qwen-7B и 1.5B) и обучила их методом TokenSqueeze. Для каждой задачи генерировали по 64 варианта решения, отбирали короткие правильные vs длинные неправильные. Потом каждый шаг правильного решения переписывали в 64 вариантах и выбирали самый короткий при условии KL divergence < ε (не сломался смысл). Обучали на 8× A100 GPU с learning rate 5×10⁻⁶, Adam optimizer.
Тестировали на четырёх бенчмарках: MATH500 (математика, 500 задач), AIME24/AIME25 (олимпиадная математика), LiveCodeBench (реальные задачи по программированию из 2024-2025). Сравнивали с baseline (оригинальная модель), Kimi-k1.5 (DPO), DAST, TrainEffi. Запускали 16 раз на каждую задачу с температурой 0.6 и усредняли результаты.
Главный результат: На MATH500 модель 7B сжала токены на 51% (с 3638 до 1773 токенов в правильных ответах) при падении точности всего на 0.4% (с 92.8% до 92.4%). На AIME24 точность выросла с 55.5% до 57.5% при сжатии на 31%. Это противоречит ожиданиям — обычно сжатие убивает точность.
Почему так вышло: Авторы объясняют, что oversimplification (чрезмерное упрощение) вредит, но overthinking (избыточные шаги) тоже вредит. Baseline модель генерировала много воды, особенно на простых задачах. TokenSqueeze убрал воду, оставил логику — на простых задачах это дало прирост точности, на сложных сохранило. Это подтверждает гипотезу: связь длины и точности нелинейная, после порога длина не помогает.
Интересная деталь: на модели 1.5B эффект слабее (44.9% сжатие на MATH500 vs 51.3% у 7B). Маленькие модели менее избыточны изначально — им нечего сжимать.
AUC метрика (area under curve) измеряла точность при ограничении на 32K токенов. TokenSqueeze показал лучший AUC почти везде — это значит при одинаковом бюджете токенов он решает больше задач правильно.
Адаптации и экстраполяции
Экстраполяция 1: Двухэтапный промпт "Думай подробно, отвечай кратко"
TokenSqueeze обучает модель сжимать reasoning traces. В чате можно симулировать это через два шага: сначала подробное рассуждение (используем мощь CoT), потом сжатие (убираем воду).
Задача: {твоя задача}
Шаг 1 - Черновик: Реши задачу максимально подробно. Распиши все шаги,
даже очевидные. Цель — не пропустить логику.
Шаг 2 - Сжатие: Перепиши своё решение в 2 раза короче. Правила:
- Сохрани ВСЕ логические шаги — ни один вывод не должен потеряться
- Убери повторы, общие слова, длинные объяснения
- Каждое предложение = конкретная мысль
- Если можешь сказать короче без потери смысла — сократи
Выдай только сжатую версию.
Где применять: Анализ документов, разбор кейсов, решение задач — когда нужна глубина рассуждений, но без простыни текста.
Экстраполяция 2: Адаптивная детальность через самооценку сложности
TokenSqueeze использует adaptive reasoning depth — подбирает длину trace под сложность задачи. В промпте можно попросить модель самой оценить сложность и выбрать детальность.
Задача: {твоя задача}
Шаг 1: Оцени сложность этой задачи по шкале 1-10, где:
- 1-3: тривиальная, очевидное решение
- 4-6: требует анализа, несколько шагов
- 7-9: сложная, много переменных или неочевидный путь
- 10: экстремально сложная, требует глубокого reasoning
Шаг 2: Выбери формат ответа:
- Если 1-3: дай только решение, без объяснений
- Если 4-6: покажи ключевые шаги (3-5 предложений)
- Если 7-9: подробный разбор с обоснованием каждого шага
- Если 10: исчерпывающий анализ со всеми альтернативами
Шаг 3: Реши задачу в выбранном формате.
Где применять: Когда работаешь с задачами разной сложности подряд — модель сама калибрует детальность. Экономит токены на простых задачах, сохраняет качество на сложных.
🔧 Техника: Явное указание "без воды" → фокус на плотности
В базовом промпте можно добавить явные инструкции на плотность текста. TokenSqueeze контролирует information density через KL divergence. В промпте контролируем через правила.
Реши задачу: {задача}
Требования к ответу:
- Каждое предложение несёт конкретную мысль (не общие слова)
- Нет повторов и перефразирований
- Если можно короче без потери смысла — пиши короче
- Цель: максимум информации в минимуме слов
Эффект: Модель генерит компактнее. Работает как мягкий аналог length penalty из TokenSqueeze objective.
Ресурсы
TokenSqueeze: Performance-Preserving Compression for Reasoning LLMs
Код: https://github.com/zhangyx1122/TokenSqueeze
Авторы: Yuxiang Zhang, Zhengxu Yu, Weihang Pan, Zhongming Jin, Qiang Fu, Deng Cai, Binbin Lin, Jieping Ye
Организации: Zhejiang University (State Key Lab of CAD&CG, School of Software Technology), Alibaba Cloud, Zhiyuan Research Institute
Релевантные методы упомянутые в исследовании: - Direct Preference Optimization (DPO) — базовый метод preference learning - Kimi-k1.5, Sky-T1-Flash — другие Long2Short методы - OpenAI-o1, DeepSeek-R1 — reasoning models с длинными CoT
