Модель может вернуть правдоподобное значение, которого нет в документе, перепутать похожие поля или изменить формат даты и суммы.
Надежный pipeline не принимает ответ как истину: каждое критичное поле связывается с фрагментом источника и проходит детерминированную проверку.
Какие расхождения нужно разделить
Ошибка может появиться до модели, внутри распознавания или уже при нормализации результата.
- Значение отсутствует в документе, но заполнено уверенным ответом.
- Номер договора перепутан с номером счета или приложения.
- Дата и сумма прочитаны верно, но преобразованы в неправильный формат.
- Одинаковый документ дает разные поля при повторной обработке.
Почему возникает проблема
Качество зависит от изображения, структуры документа, схемы ответа, контекста и правил постобработки.
- OCR потерял символы, таблицу или связь подписи с полем.
- Схема допускает свободный текст и не запрещает догадки.
- В запросе нет четких определений похожих реквизитов.
- Нормализация неверно трактует локаль, разделители или часовой пояс.
- Изменились модель, prompt или preprocessing без регрессионной проверки.
Пошаговая диагностика
Для каждой ошибки сохраните исходную страницу, промежуточный OCR и финальный структурированный ответ.
- Сравните пиксели документа с текстом и координатами OCR.
- Проверьте, был ли исходный фрагмент передан модели целиком.
- Зафиксируйте версию модели, prompt, schema и параметры запуска.
- Отделите буквальное извлечение от вычисляемых и нормализованных полей.
- Соберите набор ошибок по типу документа и конкретному полю.
Требуйте доказательство для каждого поля
Вместе со значением полезно сохранять страницу, цитату и координаты исходного фрагмента.
- Отсутствующее значение возвращается как null, а не угадывается.
- Каждое поле содержит ссылку на source span или bounding box.
- Буквальное значение хранится отдельно от нормализованного.
- Низкая уверенность или конфликт правил отправляет документ на проверку.
Как исправить проблему
Укрепите каждый этап: подготовку, извлечение, схему и детерминированную валидацию.
- Улучшите рендер, OCR и layout-анализ для проблемных страниц.
- Опишите поля строгой schema с допустимыми типами и null.
- Добавьте примеры сложных документов и различия похожих реквизитов.
- Проверяйте даты, валюты, контрольные суммы и связи между полями кодом.
- Используйте ручное подтверждение для критичных или неуверенных результатов.
Как проверить результат
- Каждое значение можно показать рядом с фрагментом исходника.
- Повторная обработка дает стабильный результат в допустимых пределах.
- Суммы, даты и идентификаторы проходят форматные и бизнес-проверки.
- Ошибочные документы не попадают автоматически в дальнейшие операции.
Типичные ошибки
- Оценивать качество по красивому JSON без сверки с документом.
- Просить модель обязательно заполнить каждое поле.
- Смешивать исходное значение и нормализацию в одном шаге.
- Обновлять модель без набора регрессионных документов.
Как предотвратить повторение
- Храните анонимизированный эталонный набор документов и ответов.
- Измеряйте точность отдельно по каждому критичному полю.
- Версионируйте модели, prompts, schemas и preprocessing.
- Мониторьте рост null, конфликтов и ручных исправлений.
Когда нужна помощь
Если AI извлекает поля не так, как в исходных документах, я разберу pipeline от OCR до schema, добавлю привязку к источнику и проверки, чтобы сомнительные значения не проходили дальше автоматически.