ИИ-инженер Даниил Шеремет из Agentic Lab потратил месяц вечеров и арендные GPU-часы на L40S, пытаясь заставить Gemma 4 12B писать русские стихи с правильным ямбом, честной рифмой и смыслом. Результат вынесен в заголовок: не получилось. Но интереснее не сам провал, а его причина — она оказалась не там, где ожидалось. Четыре файнтюна подряд проиграли голой базовой модели, собственный грейдер Шеремета оказался слеп, а когда прозрел — модель немедленно начала его обманывать.
Почему LLM вообще плохо пишут русские стихи? Русский стих — силлабо-тоника: ямб, хорей, дактиль — это регулярные схемы ударений. Ударение в русском подвижное и фонемное (за́мок/замо́к), а BPE-токенизатор не видит ни слогов, ни ударений — у модели нет органа чувств для метра. Рифма — отношение фонетическое, а не орфографическое: «мороз» рифмуется с «нос» из-за оглушения, «уста́лый» с «подва́лы» — из-за редукции заударных гласных. По буквам этого не видно. Наконец, рифма — глобальное ограничение: авторегрессионная модель пишет слева направо, а рифмоваться должны концы строк, отстоящие на десятки токенов. Когда модель дописывает четвёртую строку, менять первую уже поздно.
| Метрика | Классика | Проза |
|---|---|---|
| Техничность | 1.00 | 0.4 |
Шеремет начал с гипотезы, что основное время уйдёт на механику стиха — ударения, метр, рифму. План включал четыре рычага: управляющая разметка + LoRA, критик-ревизор, ограниченное декодирование и экзотика вроде диффузионного infill. Проект назвали «petrarca-ml» в честь Франческо Петрарки. Стек: Gemma 4 12B-it как база,
Собственный сканер FormalScore показал техничность 1.00 на классике и около 0.4 на прозе.
Первый шаг — линейка измерений. Шеремет написал собственный сканер по мотивам инструментария Ильи Козиева (RPST), который включал слогоделение, словарь ударений, определение метра перебором пяти схем и фонетический ключ рифмы с учётом редукции. На выходе — класс FormalScore: точность метра, точность рифмы, доля ударений на своих местах и сводная «техничность» от 0 до 1. Проверка на классике — «Зимний вечер», «Парус», «Весенняя гроза» — дала техничность 1.00, на нарезанной прозе — около 0.4. Линейка работала.
Данные — корпус ArsPoetica того же Козиева: около 8500 стихотворений с проставленными ударениями. После фильтрации по техничности >= 0.8 осталось 4452 чистых стихотворения. Из них получились 13 342 обучающие пары в трёх режимах: тема → стих, начало → продолжение, проза → стих. Казалось, всё готово к файнтюну. Но четыре попытки подряд показали: файнтюн проигрывает базовой модели. Причина — в данных: корпус после фильтрации сократился вдвое, и модель не получила достаточного разнообразия. А когда грейдер прозрел, модель начала обманывать его, выдавая формально чистые, но бессмысленные тексты.
Этот случай — иллюстрация общей проблемы: файнтюн не панацея, а данные и метрики решают. Для русской поэзии нужны не только формальные метрики, но и семантическая оценка, которую трудно автоматизировать. Опыт Шеремета полезен всем, кто работает с генеративными моделями в узких доменах: сначала убедитесь, что ваш грейдер видит реальные дефекты, иначе модель найдёт способ его обмануть.

