Привет, Хабр!
В июне 2025 года команда из Гонконгского университета выложила открытые модели Polaris-4B-Preview и Polaris-7B-Preview, обученные с нуля на reasoning-задачах с использованием Reinforcement Learning. Эти модели не просто догоняют топовые коммерческие аналоги вроде Claude-Opus и Grok-3-Beta — они их обгоняют. Причём на архитектуре всего в 4 миллиарда параметров.
Все это результат продуманного инженерного подхода. В этой статье коротко рассмотрим, как авторам Polaris удалось:
извлечь максимум из открытых данных,
обеспечить стабильное масштабирование reasoning-моделей,
обойти ограничения на длинные CoT без дообучения,
и при этом не развалить RL.
Анализ сложности данных: фундамент устойчивого обучения
Обучение языковых моделей с подкреплением (RLHF или GRPO) традиционно страдает от одной системной ошибки: отсутствие баланса между лёгкими и сложными задачами. Большинство датасетов либо чрезмерно тривиальны, либо не поддаются решению даже сильными моделями.
В Polaris подошли к этому вопросу с инженерной строгостью. Они построили оценку сложности каждого примера в выборке на основании автономного вывода.
def estimate_difficulty(model, prompt, n=8):
outputs = [model.generate(prompt, temperature=0.6) for _ in range(n)]
return sum(is_correct(output) for output in outputs) / n
Чем выше доля правильных решений, тем проще задача. Таким образом, можно вычислить точечную метрику сложности на каждый пример, не прибегая к ручной разметке.
Зеркальное J-распределение
Результаты анализа распределения сложности оказались крайне показательными.

Модель на 1.5B параметров чаще проваливает задачи — распределение сложности принимает форму, зеркально напоминающую букву J: большинство задач крайне сложные.
Модель на 7B параметров, напротив, решает подавляющее большинство задач без ошибок. Распределение превращается в обычное J-распределение: всё слишком просто.
Один и тот же датасет по-разному "читается" моделями разной мощности. Для одной он слишком трудный, для другой — банален.
Фильтрация: формирование эффективного обучающего корпуса
Авторы сформировали три подвыборки на основе DeepScaleR-40K.

Полный набор: содержит 40 000 задач, с доминированием простых (8/8).
Фильтрованный: убраны все задачи с 8/8 решений, остаётся 26 000 задач.
Агрессивно отфильтрованный: остаются только те задачи, где менее половины решений успешны. 19 000 задач.
Тесты показали: слишком лёгкий или слишком сложный корпус одинаково бесполезен. Лучший результат даёт сбалансированная, отфильтрованная по сложности выборка.
Rollout-диверсификация и контроль температуры
Обучение с подкреплением предполагает сравнение хороших и плохих траекторий. Если модель генерирует однотипные ответы — никакого обучающего сигнала не возникает. Поэтому необходимо управлять разнообразием выборок, особенно в задачах reasoning, где одна и та же цель может быть достигнута разными логическими путями.
Метрики и управление diversity
Для оценки диверсификации использовалась метрика distinct-4
— доля уникальных 4-грамм по отношению к общему числу токенов.

Авторы протестировали зависимости между:
температурой генерации (
temperature
)точностью (
mean@32
)разнообразием (
distinct-4
)
Результаты показали, что низкая температура (t=0.6
) дает стабильность, но подавляет разнообразие. Рост температуры до 1.4–1.5
даёт всплеск разнообразия, при этом точность не проседает критично. При t>1.55
начинается коллапс: модель генерирует шум.
Динамическая адаптация температуры
Интересный ход: Polaris не фиксирует temperature
, а постепенно увеличивает её на каждой фазе обучения, адаптируясь к уменьшению энтропии модели (модель начинает генерировать одно и то же).
Стадия | Polaris-4B | Polaris-7B |
---|---|---|
1 | 1.4 | 0.7 |
2 | 1.45 | 1.0 |
3 | 1.5 | 1.1 |
Адаптивный механизм позволяет удерживать познавательный горизонт модели открытым, не давая ей застревать в уже найденных паттернах.
Масштабирование вывода: CoT без дообучения
Chain-of-Thought требует длинного вывода. Но обучать RL на последовательностях 32–52K токенов — дорого и неэффективно. Проблема в том, что даже если задан max_seq_len=52K
, в реальности большинство батчей не доходит до этой длины (clip_ratio < 10%
).
Решение Polaris — использовать инференсное масштабирование, сохранив тренировку на коротких примерах.
Yarn: позиционная экстраполяция RoPE
Для этого используется Yarn, схема масштабирования Rotary Position Embeddings:
"rope_scaling": {
"attn_factor": 1.0,
"factor": 1.5,
"rope_type": "yarn"
}

Yarn позволяет на inference использовать длины, в полтора раза превышающие обучающие, без потери точности.
Результаты тестов на задачах AIME:
Длины >32K:
Без Yarn: точность падает до 26%
С Yarn: растёт до 50%+
Фактически, это позволяет применять "train-short, test-long" стратегию без переобучения.
Устойчивость RL: как Polaris справляется с нулевым градиентом
Обучение моделей рассуждения через Reinforcement Learning, особенно с маленьким размером rollout-батча (n=8
), сталкивается с одной системной проблемой: разреженность наград. В задачах на математическое мышление, CoT, логический вывод — неудачи случаются часто. И бывает, что на один и тот же prompt модель 8 раз подряд выдаёт неверный ответ. Результат: batch без положительных примеров → нулевой градиент → потерянный шаг обучения.
В традиционном GRPO или PPO это приводит к стагнации: модель не получает сигнала, не знает, куда двигаться. А повторное прогоняние тех же промптов — дорого и неэффективно.
В Polaris были предложены два простых, но мощных способа преодоления этого "эффекта пустого батча".
Rollout Rescue Buffer: мягкое введение памяти в RL
Каждая задача в обучающем корпусе в Polaris имеет ассоциированный буфер успешного ответа. Это кэш, где сохраняется последний известный корректный вывод для данного prompt'а, полученный на любом этапе обучения.
Сценарий работы:
Модель генерирует 8 rollout'ов для задачи X.
Все они оказываются неуспешными (
accuracy == 0/8
).Если для задачи X в прошлом был успешный rollout — он берётся из буфера.
Один из 8 текущих провальных rollout'ов заменяется этим буферным.
Замена делается не полностью — только один из 8 rollout'ов. Это не нарушает статистику RL, потому что reward всё равно применяется выборочно.
Результат: батч всегда содержит хотя бы один сигнал обучения, и модель получает ненулевой градиент, даже если "сегодня ей не идёт".
Intra-Batch Informative Substitution:
Второй механизм работает внутри текущего батча — без использования внешней памяти. Если часть задач оказалась "информативной" (т.е. среди 8 rollout'ов есть как минимум один успешный), а другая часть полностью провалена, Polaris делает следующее:
Находит "информативные" примеры — задачи с mix из 0 и 1 reward.
Эти примеры дублируются и подставляются на место "мертвых" задач (0/8).
Таким образом, весь батч наполняется примерами, от которых можно получить полезный градиент.
Оба механизма — Rollout Rescue и Intra-Batch Substitution — решают проблему reward sparsity при небольших batch-size. Замены работают только в рамках already validated outputs, reward-функция остаётся бинарной, и никакой генерации "из будущего" не происходит.
Эффект в обучении:
Значительно меньше "мёртвых шагов"
Устойчивый рост reward на каждой итерации
Повышение sample efficiency RL
Отказ от KL и Entropy
Вместе с мерами по устойчивости, в Polaris отказались от двух популярных, но проблемных компонентов в RLHF:
Почему был убран KL
KL-дивергенция между текущей политикой и SFT-моделью используется во многих RLHF-реализациях (включая PPO) для стабилизации. Но в задачах reasoning это становится тормозом: модель ограничена рамками SFT-поведения и не может исследовать новые стратегии рассуждения.
В Polaris KL полностью убран, чтобы модель могла отклоняться от SFT и формировать новые логические цепочки — особенно если они нестандартные, но правильные.
Почему был убран Entropy loss
Идея поощрять энтропию в output'ах на практике оборачивается нестабильностью:
На поздних этапах RL энтропия может расти хаотично
Это ведёт к коллапсу: модель начинает выдавать случайные токены
В Polaris отказались от энтропийного поощрения, сосредоточившись на чистом outcome-based reward.
Вместо всего этого используется surrogate loss с upper clipping bound, аналогичный DAPO.
Результаты и сравнение
Чтобы оценить эффективность моделей Polaris, авторы провели серию тестов на популярных математических бенчмарках, включая AIME24, AIME25, Minerva Math, Olympiad Bench и AMC23. Все тесты проводились по строгим, воспроизводимым условиям: по 32 прогонки для каждой задачи (или 4/8 — где указано), с едиными sampling-параметрами.
Все модели запускались в следующих условиях, кроме Qwen3, где применялись более консервативные значения по умолчанию:
sampling_params = SamplingParams(
temperature=1.4,
top_p=1.0,
top_k=20,
max_tokens=90000 # ~90K токенов: для CoT максимальная длина критична
)
Polaris-4B не просто обгоняет другие модели «в среднем» — он делает это на высоких температурах и длинных ответах, где большинство baseline начинают деградировать.
Базовый тест включал задачи вроде:
Every morning Aya goes for a 9-kilometer-long walk...
Suppose Aya walks at s + 1/2 kilometers per hour.
Find the number of minutes the walk takes her, including t...
Такие задачи требуют цепочек логических рассуждений, рассуждения на уровне алгебры, дробей, времени, скорости — типичная задача CoT, где без грамотного вывода на десятки токенов ответ невозможен.
Результаты по всем бенчмаркам
Модель | AIME24 avg@32 | AIME25 avg@32 | Minerva avg@4 | Olympiad avg@4 | AMC23 avg@8 |
---|---|---|---|---|---|
Deepseek-R1-Distill-Qwen-7B | 55.0 | 39.7 | 36.7 | 56.8 | 81.9 |
AReal-boba-RL-7B | 61.9 | 48.3 | 39.5 | 61.9 | 86.4 |
Skywork-OR1-7B-Math | 69.8 | 52.3 | 40.8 | 63.2 | 85.3 |
POLARIS-7B-Preview | 72.6 | 52.6 | 40.2 | 65.4 | 89.0 |
Deepseek-R1-Distill-Qwen-32B | 72.6 | 54.9 | 42.1 | 59.4 | 84.3 |
Qwen3-32B | 81.4 | 72.9 | 44.2 | 66.7 | 92.4 |
Qwen3-4B | 73.8 | 65.6 | 43.6 | 62.2 | 87.2 |
POLARIS-4B-Preview | 81.2 | 79.4 | 44.0 | 69.1 | 94.8 |
Polaris-4B обходит всех в своём классе
Модель с 4B параметрами показывает лучшую точность по всем задачам, включая:
AIME25: 79.4% (против 65.6% у Qwen3-4B)
Minerva Math: 44.0% (на уровне Qwen3-32B)
Olympiad Bench: 69.1% — абсолютный рекорд
AMC23: 94.8% — результат, ранее достижимый только у 32B моделей
Это выдающийся результат, особенно учитывая, что речь идёт о модели, которую можно развернуть на одном потребительском GPU (24–48 GB VRAM).
Polaris-4B почти догоняет Qwen3-32B, но весит в 8 раз меньше
При меньшем количестве параметров Polaris-4B даёт:
На AIME25 — более высокий результат, чем Qwen3-32B
На Minerva и Olympiad — почти идентичные цифры
Это показывает, что подход Polaris к выбору задач, управлению сложностью и длиной вывода даёт непараметрическое преимущество: модель использует свои возможности более эффективно.
Polaris-7B опережает всех конкурентов на 7B
Хотя разрыв между Polaris-7B и Qwen3-32B ожидаемо велик, в своей весовой категории модель обходит все аналоги, включая:
Deepseek-7B (на 13% ниже на AIME24)
Skywork и AReal-boba — тоже уступают по всем показателям
Длинный вывод — ключевой фактор
Если ограничить max_tokens
стандартным 4096 или 8192, Polaris теряет большую часть своего преимущества. Именно за счёт генерации длинных, разветвлённых цепочек рассуждений (до 90K токенов) модель проявляет свою силу.
Отсюда практический вывод: если вы тестируете reasoning-модель, ограничивая длину вывода — вы не тестируете её вовсе.
Чему можно научиться у Polaris
Сложность данных — не метрика, а инструмент. Сбалансированное распределение критично для эффективности RL.
Sampling temperature — управляемая ось обучения, не просто фиксированная гиперпараметрическая настройка.
Inference-time RoPE scaling даёт прирост без затрат на переобучение.
Небольшие инженерные хаки (buffer, swap) радикально улучшают стабильность RL.
Не все loss-функции полезны. Иногда лучше убрать регуляризаторы, чем на них полагаться.
Ссылки
Polaris-4B-Preview на Hugging Face — финальная модель, доступная с inference API.
Исходный код обучения Polaris на GitHub — включает рецепты и пайплайн.
Блог-пост HKU NLP — оригинальный отчёт команды.
Если вам интересны современные достижения в области искусственного интеллекта и нейросетей, приглашаем вас посетить два предстоящих открытых урока, которые помогут лучше понять, как работают передовые модели и их практическое применение.
Первый урок — «Генерация изображений нейросетями: как работают современные модели?» — пройдет 16 июля в 20:00. Здесь вы узнаете о современных архитектурах нейросетей и принципах генерации изображений.
Второй урок — «Искусственный интеллект для службы поддержки пользователей» — состоится 21 августа в 20:00. В рамках этого урока вы узнаете, как применять ИИ для автоматизации и улучшения работы с клиентами.
Чтобы ознакомиться с полным списком курсов и выбрать подходящую программу по Data Science и машинному обучению, заходите в каталог. А чтобы не пропустить новые открытые уроки, следите за обновлениями в календаре открытых мероприятий.