SFT учит модель правильным ответам, но не штрафует за зацикливание. Dharma AI добавила один этап DPO поверх уже дообученных OCR-моделей — и дегенерация упала во всех пяти протестированных семействах, в лучшем случае с 1,61% до 0,20%.
Почему SFT не справляется с петлями повторений
SFT оптимизирует каждый токен по отдельности. Зациклившийся вывод — это последовательность локально вероятных токенов, и как целостный провал она в обучении никогда не помечается. Модель попадает в высоковероятный «аттрактор»: каждый следующий токен повторяет предыдущий, вероятность растёт, петля держится до упора в лимит длины. SFT этот аттрактор не разрушает — он просто не видит его как ошибку.
DPO оценивает вывод целиком. Зациклившаяся транскрипция явно помечается как «отклонённый» исход — и модель учится избегать именно этого паттерна на уровне завершения, а не отдельного токена.
Цифры и условия эксперимента
Тестировалось на структурированном OCR бразильского португальского текста. Исходные ставки дегенерации у open-source моделей разошлись широко: от менее 1% до более 33%. После SFT снижение было у большинства семейств, но до production-уровня не доходило ни в одном случае.
После дополнительного этапа DPO:
- Средний спад — 59,4% относительно уровня после SFT.
- Лучший результат — 87,6%: Nanonets-OCR2-3B снизил дегенерацию с 1,61% до 0,20%.
- Исключений нет — эффект зафиксирован во всех пяти протестированных семействах моделей.
Как строился обучающий набор
Пары «выбранное/отклонённое» сформировали автоматически из собственных сбоев модели. Правильная транскрипция — chosen, петля повторений — rejected. Никакой субъективной разметки: сигнал полностью объективный, потому что задача объективна — либо текст распознан правильно, либо нет.
Это отличает подход от стандартного DPO для чат-ботов, где пары оценивают люди по критериям полезности или безвредности. Здесь источник сигнала — сам документ и сам же провал модели.
DPO оказывается не только инструментом alignment-а, но и хирургическим средством против конкретного режима отказа — если есть чёткий бинарный сигнал «правильно/неправильно». Dharma AI, однако, не раскрывает, сколько пар chosen/rejected нужно для стабильного эффекта и как результат зависит от объёма документов в DPO-этапе. Без этих цифр воспроизвести подход на своей задаче — уже эксперимент, а не инженерия.