Нейросеть обработала для меня 2 884 записи. Через неделю после сдачи я нашёл в результате пять мегабайт того, что сам же отменил
Работа выглядела законченной: 2 884 карточки, все поля заполнены, всё открывается и работает, четыре слоя проверки пройдены. А через неделю я открыл готовый файл как обычный архив и нашёл внутри 172 звуковых файла MP3 — примерно пять мегабайт из 5,2 мегабайта общего веса. Ни одна карточка их не использовала. Это остатки решения, которое я сам отменил ещё в середине работы.
Все проверки этот случай пропустили, и дальше объясню, почему закономерно. Но сначала — сама процедура приёмки: она собралась на учебной задаче и переносится на любой массовый результат, который для вас готовит нейросеть или подрядчик с её помощью.
Задача, на которой всё проверялось
Я готовлюсь к ACCA — международной квалификации в области финансов, там вся терминология на английском. Чтобы учить термины системно, я собрал коллекцию для Anki. Anki — бесплатная программа интервального повторения: она показывает карточку с вопросом, вы вспоминаете ответ, открываете обратную сторону, и по тому, насколько легко вспомнилось, программа сама решает, когда показать эту карточку снова.
Исходником стали открытые русско-английские глоссарии с официального сайта ACCA. Черновую массовую работу — перевод, транскрипцию, разбор по полям — делала нейросеть Claude. В каждой карточке пять полей: английский термин, транскрипция, русский перевод, пример употребления, перевод примера. Шесть дисциплин, 2 884 карточки, около недели работы — не на перевод, он занял день, а на всё остальное: проверки, три подхода к озвучке, сборку.
Прочитать 2 884 записи подряд и решить, готов ли результат, невозможно — внимание кончается на третьей сотне. Оставить без проверки тем более нельзя: ошибка в такой базе тиражируется при каждом повторении, то есть заучивается. Значит, нужна процедура, которая ловит ошибки классами, а не поштучно.
Слой 1. Полнота: не «сколько строк», а «сходится ли счёт»
Claude обрабатывал глоссарии партиями по 150–250 записей и регулярно останавливался на лимитах. Продолжение с места остановки — обычная ситуация для любой нейросети, и именно на стыке партий записи теряются целиком.
Коварство в том, что пропажа не выглядит ошибкой. Файл открывается, карточки работают, просто их 2 690 вместо 2 884. Если не знать исходное число — не заметишь никогда.
Поэтому проверка полноты — это два счёта, а не один. Общее число записей против исходника. И отдельно сумма по разделам: у меня дисциплина с 480 терминами обязана дать 480 записей. Общее может сойтись, а внутри один раздел заберёт записи соседнего — так тоже бывает, и общий счёт этого не покажет.
Слой 2. Структура: самый недооценённый
В каждой записи ожидается один и тот же набор полей в одном и том же порядке.
Звучит банально, ловит худшее. Если одна партия возвращается как «термин — транскрипция — перевод», а следующая как «термин — перевод — транскрипция», импорт проходит без единой ошибки. Формально всё заполнено. Фактически перевод лежит в поле транскрипции у восьмисот записей подряд.
На десятке записей перестановку видно глазом. На трёх тысячах — только сплошной программной проверкой: каждое поле каждой записи сверяется с ожидаемым типом. Транскрипция начинается со скобки, перевод содержит кириллицу, пример длиннее термина — таких формальных признаков достаточно, чтобы поймать перестановку класса.
Отсюда правило, которое экономит больше всего времени: схема результата задаётся до массовой обработки, а не выводится из него после. Поля, порядок, допустимая длина, формат — письменно, до первой партии.
Слой 3. Выборка: ловим системное, а не случайное
Сплошная содержательная проверка трёх тысяч записей невозможна, и не нужна. Выборка строится не случайно, а по краям: из каждого раздела берутся записи с самыми короткими и самыми длинными значениями, аббревиатуры, термины с неоднозначным переводом.
Почему края: модель ошибается не равномерно, а правилами. Если она неверно обрабатывает аббревиатуры — она неверно обрабатывает их все. Одиночная опечатка стоит дёшево. Правило, применённое неверно к целому классу записей, стоит дорого, и именно его выборка по краям вытаскивает.
Такая проверка не гарантирует безошибочность базы — это надо понимать и не обещать себе лишнего. Она гарантирует отсутствие системных сбоев.
Слой 4. Конечный интерфейс, а не промежуточный файл
Таблица может быть безупречной, а результат — разваливаться там, где им пользуются.
У меня карточка в Anki на телефоне могла показывать русский перевод первым вместо английского термина или открывать ответ раньше вопроса — а смысл тренировки ровно в том, чтобы вспомнить перевод самому. В исходной таблице этого не видно вообще: там просто пять аккуратных полей. Дефект живёт в связке «данные — интерфейс», и ловится только прогоном в том виде, в котором результатом будут пользоваться.
Итог принимается в конечном интерфейсе. Промежуточный формат — не предмет приёмки.
Свод: четыре слоя одним взглядом
- Полнота — Сходятся ли оба счёта — общий и по разделам — Потерянные партии, перетёкшие разделы — Сотни записей исчезают молча
- Структура — Одинаковы ли поля и порядок во всех партиях — Перестановку полей на стыке партий — Данные в чужих полях у целых партий
- Выборка по краям — Верны ли записи в крайних и неоднозначных случаях — Системные ошибки правил — Класс записей испорчен одинаково
- Интерфейс — Работает ли результат там, где им пользуются — Дефекты связки данных и показа — Файл идеален, пользоваться нельзя
Пятый слой, которого у меня не было
Теперь про те пять мегабайт. Я делал три подхода к озвучке терминов: два первых голоса звучали механически, и я от них отказался — финальная версия работает через системный синтез речи Anki, без вшитых аудиофайлов. Но 172 файла от отменённых подходов остались лежать внутри готовой коллекции.
Четыре слоя пропустили это закономерно. Записи на месте — полнота сходится. Поля заполнены — структура верна. Выборка чиста, интерфейс работает. Все четыре слоя отвечают на вопрос «всё ли есть». А нужен был пятый вопрос: что осталось в результате от того, что мы отменили.
Модель добавляет новое решение поверх старого. Старое она не убирает — ни сама, ни по умолчанию.
На карточках цена находки — лишние мегабайты, смешно. Теперь перенесите это на финансовую модель, пережившую три версии допущений. Отменённый сценарий, который никто не удалил, продолжает влиять на итоговую цифру через забытую ссылку на скрытый лист. Разница с моим случаем неприятная: файл Anki можно открыть как архив и увидеть лишнее за минуту, а таблицу с цепочками формул — далеко не всегда.
Если вам сдают массовый результат, подготовленный с помощью нейросети — реестр, базу, выгрузку, модель, — процедура приёмки формулируется в одном абзаце. Его можно переслать исполнителю как есть:
Сама коллекция — 2 884 карточки по терминологии ACCA в шести дисциплинах — готова, и я отдаю её бесплатно. Напишите в комментариях слово ACCA — отвечу, как получить файл.
Артём Высоцкий, независимый финансовый директор. Коллекция подготовлена независимо на основе открытых глоссариев ACCA и к официальным учебным материалам ACCA не относится.