Кот APICODIKAPICODIK
Новости

Корпус важнее объёма: как готовили данные для крымскотатарского ИИ

Как извлечь полезный текст из архивов, заметить примесь родственного языка и проверить машинные расшифровки: разбор опыта крымскотатарского проекта.

Найти книги и записи на малоресурсном языке — ещё не значит получить материал для обучения. В PDF может оказаться испорченный текст, в периодике — страницы на родственном языке, а в машинной расшифровке — ошибки, которые затем станут частью проверочного набора. В описанном на Хабре проекте крымскотатарских языковых и речевых моделей именно такие проблемы определяли следующий шаг разработки.

Автор рассказывает, как собирал два продукта: текстовый корпус для языковой модели и пары «звук — текст» для речевых задач. Главная линия этого опыта — не поиск одной особенно удачной модели, а последовательная проверка того, чему вообще можно доверять в данных.

Сначала инвентаризация, потом OCR

Первоначальная задача выглядела как массовое распознавание сканов. Однако проверка архива показала: около 79% крымскотатарских страниц уже имели текстовый слой. Для них требовался не новый OCR, а извлечение, исправление и оценка существующего текста.

Это существенно меняло порядок работы. Вместо запуска дорогой обработки всего архива можно было отдельно заняться страницами без слоя, а основной массив проверять другими средствами. При этом наличие извлекаемого текста само по себе не означало пригодность для обучения.

В кириллице встречались подмены твёрдого знака мягким внутри характерных сочетаний. В латинице — последствия неверного чтения кодировки. Автор исправлял обратимые повреждения, но сначала проверял правило на заведомо хорошем материале: корректный текст не должен был измениться. Похожие на ошибку сочетания, которые допустимы в заимствованиях, под общую замену не попадали.

Отдельно искали повторы по содержимому, а не названиям файлов. Сравнение страниц по последовательностям из восьми слов выявило 7% дублей. Для этого проекта дедупликация решала две задачи: не давать повторным публикациям лишний вес и не допускать, чтобы знакомый модели текст выдавался за новый на проверке.

Почему проверять пришлось каждую страницу

Качество внутри одной книги могло различаться: хорошая кириллическая часть соседствовала с плохо распознанной латиницей. Поэтому решение принималось на уровне страницы.

Одним из сигналов стала доля токенов, начинающихся со словарного слова. Проверка полного совпадения работала плохо: в агглютинативном языке к основе присоединяются окончания, и правильная словоформа необязательно представлена отдельной словарной статьёй. Префиксная проверка лучше отделяла пригодные страницы от испорченных.

Её дополняли показатели мусорных символов и подозрительных буквосочетаний. Автор не сводил всё в единую оценку, а калибровал правила на разных типах материала, включая чистый цифровой текст, хороший OCR и явно повреждённую книгу.

Но обнаружилось ограничение: словарь помогал оценить качество текста, а не гарантировать его язык. В контрольной проверке две из шести турецких книг прошли фильтр.

Родственный язык оказался труднее мусора

Проблема стала заметна и в ответах языковой модели. На одинаковых 524 запросах доля отслеживаемых турецких форм выросла с 0,27% у предыдущей версии до 2,02% у новой. Поиск тех же признаков в обучающих данных показал концентрацию примеси в отдельных источниках: на три из них приходилось 46% помеченных токенов.

По описанию автора, это была периодика, где могли соседствовать крымскотатарские и турецкие страницы, а также встречаться крымскотатарские тексты с турецкими особенностями записи. Обычный языковой фильтр такую смесь почти не замечал.

Вместо общего вопроса «похож ли текст на нужный язык?» понадобились более узкие проверки: есть ли формы, нехарактерные для крымскотатарского. Но и здесь отдельное срабатывание не становилось основанием для удаления. Требовался контекст всей строки, а спорные фрагменты отправлялись в карантин с указанием происхождения и причины отбора.

Автоматическую нормализацию автор тоже испытал — и откатил. Замена букв могла давать существующее крымскотатарское слово, но менять смысл. Словарь подтверждал допустимость результата, не подтверждая правильность исправления. Диалектные формы при этом сохраняли: совпадение с турецким не делало их чужими языку.

Две расшифровки — ещё не эталон

Для аудио без доступного текста использовали псевдоразметку: запись независимо обрабатывали две отдельно обученные модели разной архитектуры. Сегменты с почти совпадающими расшифровками становились кандидатами для корпуса.

Это давало способ использовать аудиокниги и эфиры, но не доказательство правильности текста. Автор прямо отмечает возможность общей ошибки двух моделей; спорные записи приходилось слушать человеку.

Другой риск обнаружился после фильтрации эфиров по уверенности распознавания. Среди прошедших материалов доля новостей выросла с 65,4% до 83,9%, а разговоров, передач и интервью сократилась с 25,9% до 10,2%. Фильтр предпочитал более привычную модели дикторскую речь. В следующем раунде долю новостей ограничили, а для разговорного материала смягчили порог.

Практический смысл этого эпизода — проверять не только качество оставшихся сегментов, но и состав выборки. Более строгий отбор здесь одновременно означал потерю части нужной разговорной речи.

Проверка качества тоже нуждалась в проверке

Некоторые прежние эталоны для живой речи создала старая распознавалка. Поэтому правильное расхождение новой модели с её ответом могло учитываться как ошибка.

Автор провёл слепое прослушивание спорных сегментов: две версии текста показывались в случайном порядке, а собственная расшифровка сохранялась до раскрытия их происхождения. В проверенном материале машинные эталоны содержали ошибки примерно в 15% слов.

Результаты улучшений тоже оказались неоднородными. На 40 коротких живых записях WER — доля ошибок в словах — снизился с 18,8% до 12,1%. На длинных разговорах старая и новая модели остались практически на одном уровне. Дополнительные часы сами по себе проблему не решили.

Где заканчивается автоматизация

Синтетическая речь улучшила результат на проверке из аудиокниг, но убедительного выигрыша на более жизненных записях автор не получил. Сгенерированные языковыми моделями диалоги могли проходить автоматические проверки и при этом оставаться непригодными после чтения носителем.

Для разработчиков этот кейс полезен прежде всего как схема контроля: проверять исходные материалы до дорогой обработки, сохранять происхождение фрагментов, отделять карантин от удаления, анализировать последствия фильтров и не считать машинный эталон окончательной истиной. Названия моделей, пороги и внутренние скрипты в публикации не раскрыты, поэтому это не готовый воспроизводимый рецепт. Но границы автоматизации показаны отчётливо: фильтры помогают сузить задачу, а решения о смысле, диалекте и правильности речи остаются за людьми.

Источники

Попробовать модели через APICODIK

Claude, GPT, Gemini, DeepSeek и другие модели по одному ключу, без VPN и с оплатой в рублях.