Инструменты5 сентября 2026 г., 07:19 МСК🤖 Auto

Как за 100 шагов GRPO улучшить LFM2.5-350M на 7%: рецепт для слабых GPU

Исследователи из LiquidAI показали, как с помощью Group Relative Policy Optimization (GRPO) и библиотеки TRL заставить маленькую модель (350M параметров) строго соблюдать JSON-схемы, повысив точность с 22.6% до 29.7%.

Баннер новости 6832

Проблема: «Слепота» к схемам у малых моделей

Структурированный вывод (structured output) — критически важная задача для интеграции LLM в production-системы. Однако малые модели часто игнорируют сложные JSON-схемы, выдавая «сырой» текст или нарушая типы данных. В исследовании LiquidAI использовалась модель LFM2.5-350M (гибридная архитектура attention/convolution), которая до тонкой настройки показывала лишь 22.6% успеха на бенчмарке IFStruct (тест 2000 сэмплов). Это означает, что в 77% случаев модель выдавала невалидный или несоответствующий схеме результат.

Решение: GRPO-файн-тюнинг за 100 шагов

Команда применила метод Group Relative Policy Optimization (GRPO) через библиотеку TRL. Ключевые параметры эксперимента:

  • Данные: 500 сэмплов из набора nvidia/Nemotron-RL-instruction_following-structured_outputs.
  • Аугментация: 40% данных дополнены инструкцией «вернуть вывод в fenced code block», 20% преобразованы в задачи с выводом в виде top-level массива.
  • LoRA-адаптер: обучалось всего ~6 млн параметров (1.66% от модели) с рангом r=16 и альфа 32. Целевые модули: q_proj, k_proj, v_proj, out_proj, in_proj, w1, w2, w3.
  • Обучение: 100 шагов, 8 генераций на группу, размер батча оптимизирован под 16 GB VRAM (подходит для бесплатных тарифов Colab/Kaggle).

Функция вознаграждения (Reward Function)

Результат оценивался по трем метрикам, суммируемым с весами [1.0, 0.5, 2.0]:

  1. json_format_reward (вес 1.0): 1.0 за точное соответствие формату (raw JSON или code block), 0.2 за парсируемый, но неверный формат, 0.0 за невалидный JSON.
  2. field_count_reward (вес 0.5): 1.0 за точное совпадение количества полей, линейное снижение за отклонения.
  3. schema_validation_reward (вес 2.0): Штраф за каждое нарушение JSON Schema, частичный кредит за покрытие required-ключей.

Результаты: Таблица сравнения

После 100 шагов обучения модель научилась лучше соблюдать структуру. Ниже приведено сравнение базовой модели и модели после GRPO-файн-тюнинга на бенчмарке IFStruct:

Метрика LFM2.5-350M (Base) LFM2.5-350M (GRPO Fine-tuned)
Общий успех (Overall) 22.6% (452/2000) 29.7%
JSON формат 18.0%
YAML формат 27.2%
Wrapper key 28.5%
Bare list 16.6%

Хотя абсолютный прирост кажется modest (+7.1%), для модели в 350 миллионов параметров это значительный скачок, демонстрирующий, что RL-оптимизация может компенсировать недостаток размера модели в задачах строгого соблюдения инструкций.

Почему это важно для разработчиков

Этот рецепт доказывает, что не обязательно использовать огромные модели (70B+) для задач, требующих строгого JSON-вывода. Легковесный RL-файн-тюнинг на слабых GPU позволяет получить модель, которая:

  • Требует минимум ресурсов для инференса (локальный запуск на MacBook M5 Max через llama.cpp).
  • Генерирует предсказуемый вывод, упрощая парсинг в downstream-системах.
  • Обучается за счет времени, сопоставимого с одним коротким epoch SFT, но с более сложной функцией потерь.

Полный код и ноутбук доступны на GitHub в репозитории LiquidAI.

Источник: Hugging Face blog ↗