# Як GRPO навчає 350-мільйонну модель точного JSON за 100 кроків

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

- Опубліковано: 3 вересня 2026 р. (2026-09-03T13:42:39.366520+00:00)
- Розділ: Практика
- На основі публікації: [Hugging Face](https://huggingface.co/blog/grpo-with-trl-ifstruct)
- Видання: AiiN (https://aiin.news)
- URL: https://aiin.news/article?slug=%D1%8F%D0%BA-grpo-%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D1%94-350-%D0%BC%D1%96%D0%BB%D1%8C%D0%B9%D0%BE%D0%BD%D0%BD%D1%83-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C-%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B3%D0%BE-json-%D0%B7%D0%B0-100-%D0%BA%D1%80%D0%BE%D0%BA%D1%96%D0%B2

---

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

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

[За даними Hugging Face](https://huggingface.co/blog/grpo-with-trl-ifstruct), саме цю прогалину закриває гайд: недорогий рецепт, який перетворює компактну модель на надійний генератор структурованих відповідей під конкретну схему — без 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 обчислюється автоматично, детермінованим парсером схеми, що і робить весь цикл дешевим і швидким.

- Немає окремої critic-мережі — менше пам'яті й обчислень на крок
- Reward автоматичний і детермінований — не потрібна ручна розмітка
- Група відповідей на промпт дає стабільніший сигнал, ніж одна відповідь проти базової лінії

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

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

Це особливо актуально для агентних систем, де стабільний structured output — обов'язкова умова роботи, а не приємний бонус: як ми писали, розбираючи, [чому agentic AI-пілоти застрягають у демо-пастці](https://aiin.news/article?slug=чому-agentic-ai-пілоти-застрягають-у-демо-пастці), саме крихкість на межі парсингу відповіді найчастіше ламає пайплайн при переході з демо в прод.

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

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

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

Якщо ви обираєте, яку базову модель тюнити під свій кейс, порівняння варіантів варто починати з нашого розбору [Claude, Gemini, GLM і Qwen: як обрати модель без окремого research](https://aiin.news/article?slug=claude-gemini-glm-і-qwen-як-обрати-модель-без-окремого-research) — це допоможе оцінити, чи вартий кейс власного тюнінгу, чи простіше лишитись на API великого провайдера.

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

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

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

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

---

Теги: AI, GRPO, HuggingFace, дотюнінг, JSON

Джерело: AiiN — https://aiin.news/article?slug=%D1%8F%D0%BA-grpo-%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D1%94-350-%D0%BC%D1%96%D0%BB%D1%8C%D0%B9%D0%BE%D0%BD%D0%BD%D1%83-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C-%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B3%D0%BE-json-%D0%B7%D0%B0-100-%D0%BA%D1%80%D0%BE%D0%BA%D1%96%D0%B2. Цитуючи, посилайтесь на канонічний URL.
