Hugging Face опублікували практичний гайд про дотюнінг мовної моделі на 350 мільйонів параметрів методом GRPO до стабільних структурованих JSON-відповідей — якісного результату дослідники досягли приблизно за 100 кроків тренування, без кластера з десятків чи сотень GPU.

Для команд, що будують агентів чи інтеграції з API, structured output — не забаганка, а вимога: якщо модель повертає JSON із зайвою комою чи неправильним типом поля, увесь пайплайн падає на парсингу. Великі моделі типу GPT-5 чи Claude Opus 5 тримають формат майже завжди, але коштують дорого на кожен виклик. Малі моделі дешевші в інференсі, проте базово гірше тримають строгу структуру без додаткового тренування.

За даними Hugging Face, саме цю прогалину закриває гайд: недорогий рецепт, який перетворює компактну модель на надійний генератор структурованих відповідей під конкретну схему — без RLHF-масштабу витрат.

Що саме показали в гайді?

Hugging Face взяли базову модель розміром 350M параметрів і дотюнили її методом GRPO (Group Relative Policy Optimization) через бібліотеку TRL — власний інструментарій компанії для reinforcement learning поверх трансформерів. Задача — навчити модель стабільно повертати відповіді у заданому JSON-форматі, а не просто генерувати правдоподібний, але структурно зламаний текст.

Ключова цифра гайду — близько 100 кроків тренування до якісного результату. Це на порядки менше, ніж типові RL-прогони на десятки тисяч кроків для великих моделей, і означає, що весь експеримент реально прогнати на одній GPU-машині за прийнятний час.

Як GRPO змушує малу модель тримати формат?

GRPO — метод, який набув популярності завдяки DeepSeek-R1 і з тих пір активно переносять на менші задачі. На відміну від класичного PPO, GRPO не потребує окремої critic-моделі, що оцінює якість кожного кроку генерації, — натомість алгоритм генерує групу відповідей на один і той самий запит і порівнює їх між собою: кращі за групу отримують позитивну винагороду, гірші — негативну.

Для structured output така конструкція надійна, бо reward-функцію можна побудувати просто: чи валідний JSON, чи збігається схема (типи полів, обов'язкові ключі), чи відповідь відповідає очікуваному значенню. Модель не потребує людської розмітки переваг — reward обчислюється автоматично, детермінованим парсером схеми, що і робить весь цикл дешевим і швидким.

Кому це реально здешевить продакшн?

Найбільше вигравають команди з вузьким, повторюваним structured-output кейсом: витяг полів з рахунків, класифікація тікетів у CRM, генерація параметрів для виклику внутрішнього API, tool-calling у власному агенті. Якщо схема відповіді стабільна й відома заздалегідь, 350M-модель, дотюнена під неї, може замінити виклики великої моделі на порядок дешевше в інференсі — платите за токени в рази менше, залежно від провайдера великої моделі.

Це особливо актуально для агентних систем, де стабільний structured output — обов'язкова умова роботи, а не приємний бонус: як ми писали, розбираючи, чому agentic AI-пілоти застрягають у демо-пастці, саме крихкість на межі парсингу відповіді найчастіше ламає пайплайн при переході з демо в прод.

Компроміс очевидний: рецепт працює для вузької, наперед визначеної схеми. Для відкритих задач із розмитими вимогами до формату малу модель тюнити методом GRPO сенсу мало — там перевага великих моделей у генералізації нікуди не дівається.

Що з цим робити зараз?

Наша теза: GRPO-рецепт Hugging Face зсуває економіку structured-output задач у бік «тюнь маленьку модель під свою схему», а не «плати за велику модель на кожен запит». Для продуктових команд, що вже мають стабільну JSON-схему і потік трафіку, це прямий шлях скоротити рахунок за інференс без втрати надійності відповіді — головне, є готовий і відтворюваний рецепт, а не дослідницький прототип.

Якщо ви обираєте, яку базову модель тюнити під свій кейс, порівняння варіантів варто починати з нашого розбору Claude, Gemini, GLM і Qwen: як обрати модель без окремого research — це допоможе оцінити, чи вартий кейс власного тюнінгу, чи простіше лишитись на API великого провайдера.

Що таке GRPO простими словами?

GRPO (Group Relative Policy Optimization) — метод reinforcement learning для мовних моделей, який порівнює групу згенерованих відповідей на один запит між собою й підсилює ті, що отримали вищу винагороду, без окремої critic-моделі для оцінки кожного кроку.

Чи можна повторити цей рецепт на своїх даних?

Так, гайд від Hugging Face побудований як відтворюваний рецепт через бібліотеку TRL: потрібні базова мала модель, чітка схема очікуваної відповіді та детермінована reward-функція, яка перевіряє валідність і відповідність цій схемі.