Как собрать preference датасет для задачи reasoning (математика, логика)? Важен процесс решения или только финальный ответ?
Краткий тезис
Для задач reasoning (математика, логика) preference датасет должен включать не только финальный ответ, но и пошаговую разметку процесса решения. Process Reward Model (PRM) значительно эффективнее Outcome Reward Model (ORM), так как позволяет выявить ошибки на ранних шагах и дать более информативный сигнал для RLHF-выравнивания. Сбор датасета требует аннотации каждого шага рассуждения, а не только бинарной оценки «правильно/неправильно» для всего решения.
| --- | --- | | 1 | «Сначала найдём площадь прямоугольника: 5 * 3 = 15» | 1 (верно) | | 2 | «Теперь вычтем площадь круга: 15 - π*2² ≈ 15 - 12.56 = 2.44» | 1 (верно) | | 3 | «Ответ: 2.44» | 1 (верно) |
Если на шаге 2 допущена ошибка (например, неверная формула), PRM присвоит 0 на этом шаге, и модель сможет скорректировать поведение, не дожидаясь финального ответа.
2. Outcome RM: только финальный ответ
ORM — это модель, которая оценивает только конечный результат (финальный ответ). Она не анализирует промежуточные шаги.
Ключевые характеристики:
- Гранулярность: Оценка на уровне эпизода (одна награда за всё решение).
- Сигнал: Бинарный (0/1) или непрерывный (например, точность ответа).
- Применение: Простые задачи, где важен только результат (например, классификация, генерация кода с тестами).
Пример разметки для ORM:
| Решение | Финальный ответ | Оценка (0/1) |
|---|---|---|
| «Сначала найдём площадь... (ошибка на шаге 2) → ответ 2.44» | 2.44 | 1 (если ответ совпал с эталоном) |
Проблема: Если ответ случайно совпал с правильным (например, из-за компенсации ошибок), ORM даст положительную награду, что введёт модель в заблуждение.
3. Для математики: PRM важнее (ошибка на первом шаге)
В задачах mathematical reasoning и logical reasoning критична корректность каждого шага. Ошибка на первом шаге (например, неверная интерпретация условия) делает всё последующее решение бессмысленным, даже если финальный ответ случайно совпал.
Почему PRM предпочтительнее:
- Раннее обнаружение ошибок: PRM может остановить генерацию на неверном шаге, экономя вычислительные ресурсы.
- Улучшение обучения: RL-алгоритмы (например, PPO) получают более плотный сигнал награды, что ускоряет сходимость.
- Интерпретируемость: Можно понять, на каком этапе модель «ломается», и доработать датасет.
Эмпирические данные: Исследования (например, Let’s Verify Step by Step, OpenAI, 2023) показывают, что PRM превосходит ORM на бенчмарках типа MATH и GSM8K на 10–20% по accuracy при одинаковом объёме данных.
4. Сбор: размечаем шаги, а не только ответ
Процесс сбора preference датасета для reasoning включает несколько этапов:
4.1. Генерация решений
Используйте LLM (например, GPT-4, Claude, Llama) для генерации множества вариантов решения одной задачи. Важно, чтобы решения были разнообразными по длине и стилю.
4.2. Сегментация на шаги
Разбейте каждое решение на логические шаги. Критерии:
- Один шаг = одно логическое действие (применение формулы, подстановка значения, вывод).
- Шаги должны быть атомарными (нельзя разделить дальше без потери смысла).
4.3. Аннотация шагов
Привлеките human annotator или используйте автоматическую разметку (например, через LLM-as-a-judge). Для каждого шага:
- Бинарная оценка: 0 (неверный шаг) или 1 (верный).
- Комментарий (опционально): Почему шаг неверен (например, «ошибка в арифметике», «неверная формула»).
4.4. Формирование preference пар
Для RLHF нужны пары «предпочтительное решение / непредпочтительное решение». Правила:
- Если в решении A все шаги верны, а в решении B есть ошибка на шаге 2, то A предпочтительнее.
- Если оба решения содержат ошибки, сравнивайте по первому неверному шагу (чем раньше ошибка, тем хуже).
4.5. Контроль качества
- Используйте inter-annotator agreement (Cohen’s Kappa > 0.7).
- Проводите adversarial validation: проверяйте, что модель не «жульничает» (например, не даёт правильный ответ с неверными рассуждениями).
5. Пет-проект для закрепления
Задача: Собрать preference датасет для задачи «Решение квадратных уравнений» (10–20 примеров).
Инструменты:
- Python (библиотеки:
json,random) - OpenAI API (или Ollama для локальной генерации)
- Label Studio (для ручной разметки)
Шаги:
- Сгенерируйте 5 решений для одного уравнения (например,
x² — 5x + 6 = 0) с помощью LLM. - Разбейте каждое решение на шаги (например, «вычисление дискриминанта», «нахождение корней»).
- Вручную оцените каждый шаг (0/1) и запишите в JSON-формат:
{ "problem": "x² — 5x + 6 = 0", "solutions": [ { "steps": [ {"text": "D = 25 — 24 = 1", "label": 1}, {"text": "x = (5 ± 1)/2", "label": 1}, {"text": "x1 = 3, x2 = 2", "label": 1} ], "final_answer": "3, 2" } ] } - Сформируйте preference пары: выберите два решения, где одно содержит ошибку на шаге 2 (например, неверное вычисление D).
- Сохраните датасет в формате, совместимом с Hugging Face Datasets.
Ожидаемый результат: Датасет из 10–20 задач с пошаговой разметкой и preference парами, готовый для обучения PRM.
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 877 | Общие принципы сбора preference данных |
Навигация
- Предыдущий: 998
- Следующий: 1000
- Индекс: 00. Индекс разборов zation)?|998]]
- Следующий: 1000
- Индекс: 00. Индекс разборов