Обучите настраиваемую модель с помощью инструмента Sample Labeling

Это содержимое применимо к:Интеллектуальная обработка документов ✓v2.1.

Совет

  • Для более удобной работы и более высокого качества модели попробуйте Document Intelligence v3.0 Studio.
  • Студия версии 3.0 поддерживает любую модель, обученную с помощью маркированных данных версии 2.1.
  • Подробные сведения о переходе с версии 2.1 на версию 3.0 см. в руководстве по миграции API.
  • Чтобы приступить к работе с версией 3.0, ознакомьтесь с нашими краткими руководствами по REST API или SDK для C#, Java, JavaScript или Python.

В этой статье вы будете использовать REST API Document Intelligence и средство разметки образцов для обучения настраиваемой модели на данных, размеченных вручную.

Предварительные требования

Для выполнения этого проекта потребуются следующие ресурсы:

  • Подписка Azure — создайте бесплатную учетную запись.
  • После получения подписки Azure создайте ресурс Document Intelligence в портале Azure, чтобы получить ключ и конечную точку. После завершения развертывания выберите Перейти к ресурсу.
    • Вам потребуется ключ и конечная точка из ресурса, создаваемого для подключения приложения к API аналитики документов. Позже в этом кратком руководстве вы вставите ключ и конечную точку в код.
    • Вы можете использовать бесплатный тариф (F0), чтобы опробовать сервис, а позже перейти на платный тариф для использования в рабочей среде.
  • Минимум шесть документов одного типа. Эти данные используются для обучения модели и тестирования формы. Для выполнения инструкций из этого краткого руководства можно использовать образец набора данных (скачайте и разархивируйте файл sample_data.zip). Загрузите файлы для обучения в корень контейнера хранилища BLOB-объектов в учетной записи служба хранилища Azure со стандартным уровнем производительности.

Создание ресурса аналитики документов

Перейдите на портал Azure и создайте новый ресурс Document Intelligence. На панели Создать укажите следующие сведения:

Сведения о проекте Описание
Подписка Выберите подписку Azure, к которой предоставлен доступ.
Группа ресурсов Группа ресурсов Azure, которая содержит ваш ресурс. Вы можете создать новую группу или добавить ее в предустановленную группу.
Регион Расположение ресурса служб ИИ. Разные расположения могут увеличивать задержку, но не влияют на доступность среды выполнения ресурса.
Имя Описательное имя ресурса. Рекомендуется использовать описательное имя, например MyNameFormRecognizer.
Ценовая категория Плата за ресурс будет зависеть от выбранной ценовой категории и показателей использования. Дополнительные сведения см. в сведениях о ценах API.
Проверить и создать Нажмите кнопку "Проверить и создать", чтобы развернуть ресурс на портале Azure.

Получение ключа и конечной точки

Когда ресурс аналитики документов завершит развертывание, найдите и выберите его из списка всех ресурсов на портале. Ключ и конечная точка находятся на странице "Ключ и конечная точка " ресурса в разделе "Управление ресурсами". Сохраните оба значения во временном расположении перед переходом вперед.

Попробуйте

Попробуйте онлайн-инструмент маркировки образцов Document Intelligence:

Вам нужна подписка Azure (создайте ее бесплатно) и конечную точку ресурса аналитики документов и ключ, чтобы попробовать службу аналитики документов.

Настройте инструмент разметки образцов

Примечание.

Если данные в хранилище находятся за виртуальной сетью или брандмауэром, необходимо развернуть средство Sample Labeling службы Document Intelligence в виртуальной сети или за брандмауэром и предоставить ему доступ, создав управляемое удостоверение, назначаемое системой.

Вы используете подсистему Docker для запуска средства маркировки образца. Чтобы настроить контейнер Docker, сделайте следующее. Ознакомьтесь с общими сведениями о Docker и контейнерах.

Совет

Средство маркировки документов OCR также доступно в виде проекта с открытым исходным кодом на сайте GitHub. Это средство представляет собой веб-приложение TypeScript, созданное с помощью React + Redux. Чтобы узнать больше или внести свой вклад, см. репозиторий средства маркировки документов OCR. Чтобы опробовать этот инструмент в Интернете, перейдите на веб-сайт инструмента разметки образцов для аналитики документов.

  1. Для начала установите Docker на главный компьютер. В этом руководстве показано, как использовать локальный компьютер в качестве узла. Если вы хотите использовать службу размещения Docker в Azure, ознакомьтесь с руководством Развертывание примера средства маркировки данных.

    Главный компьютер должен отвечать следующим требованиям к аппаратному обеспечению.

    Контейнер Минимум Рекомендуется
    Пример средства создания меток 2 ядро, 4 ГБ памяти 4 ядро, 8 ГБ памяти

    Установите Docker на компьютере, выполнив соответствующие инструкции для вашей операционной системы:

  2. Получите контейнер инструмента Sample Labeling с помощью команды docker pull.

     docker pull mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1
    
  3. Теперь все готово к тому, чтобы запустить контейнер с помощью команды docker run.

     docker run -it -p 3000:80 mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1 eula=accept
    

    Эта команда делает инструмент для разметки образцов доступным в веб-браузере. Перейдите по адресу http://localhost:3000.

Примечание.

Вы также можете пометить документы и обучать модели с помощью REST API аналитики документов. Сведения об обучении по меткам и анализе с помощью REST API см. в статье Обучение по меткам с помощью REST API и Python.

Настройка входных данных

Для начала убедитесь, что все обучающие документы имеют одинаковый формат. Если у вас есть формы в разных форматах, рассортируйте их по вложенным папкам соответствующим образом. При обучении необходимо направить API в вложенную папку.

Настройка общего доступа к ресурсам независимо от источника (CORS)

Включите CORS для учётной записи хранилища. Перейдите к учетной записи хранения на портале Azure и выберите вкладку CORS на панели слева. В нижней строке укажите следующие значения. Выбрать Сохранить наверху.

  • Разрешенные источники = *
  • Допустимые методы = [выберите все]
  • Допустимые заголовки = *
  • Открытые заголовки = *
  • Максимальный возраст = 200

Настройка CORS на портале Azure

Подключитесь к инструменту «Sample Labeling»

Инструмент разметки образцов подключается к источнику (вашим исходным загруженным формам) и целевому расположению (созданным меткам и выходным данным).

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

Чтобы создать новое подключение, выберите значок "Новые подключения" (штекер) в левой области.

Заполните поля следующими значениями.

  • Отображаемое имя — имя подключения.

  • Описание — описание проекта.

  • URL-адрес SAS — URL-адрес с подписью общего доступа (SAS) для вашего контейнера Хранилище BLOB-объектов Azure. Чтобы получить URL-адрес SAS для данных обучения пользовательской модели, перейдите к ресурсу хранилища в портале Azure и выберите вкладку Обозреватель хранилища. Перейдите к своему контейнеру, щелкните его правой кнопкой мыши и выберите Получить подписанный URL-адрес общего доступа. Важно получить SAS для вашего контейнера, а не для самой учетной записи хранения. Убедитесь, что заданы разрешения на чтение, запись, удаление и перечисление, а затем щелкните Создать. Затем скопируйте значение из раздела URL во временное место. Оно должно быть в таком формате: https://<storage account>.blob.core.windows.net/<container name>?<SAS value>.

    Получение SAS URL-адреса

Параметры подключения средства разметки выборок.

Создание нового проекта

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

  • Отображаемое имя — имя проекта.
  • Маркер безопасности — нужен для хранения конфиденциальных параметров проекта, таких как ключи или другие общие секреты. Каждый проект создает маркер безопасности, который можно использовать для шифрования и расшифровки параметров конфиденциальных проектов. Маркеры безопасности можно найти в параметрах приложения, выбрав значок шестеренки в нижней части левой области.
  • Подключение к источнику — в нашем примере это подключение к хранилищу BLOB-объектов Azure, которое вы создали на предыдущем шаге и хотите использовать для этого проекта.
  • Путь к папке — необязательно — если исходные формы находятся в папке в BLOB-контейнере, укажите здесь имя папки
  • URI службы интеллектуальной обработки документов — URL-адрес конечной точки службы интеллектуальной обработки документов.
  • Ключ — ключ аналитики документов.
  • Описание — описание проекта (необязательно).

Новая страница проекта в средстве маркировки образцов.

Создание меток для форм

При создании или открытии проекта открывается главное окно редактора тегов. Редактор тегов разделен на три сегмента.

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

Выявление текста и таблиц

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

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

Визуализация таблицы в инструменте разметки образцов.

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

Применение меток к тексту

Затем вы создадите теги (метки) и примените их к текстовым элементам, которые нужно проанализировать моделью.

  1. Во-первых, с помощью панели редактора тегов создайте теги (метки), которые вы хотите определить.
    1. Щелкните +, чтобы создать новый тег.
    2. Введите имя тега.
    3. Нажмите клавишу ВВОД, чтобы сохранить тег.
  2. В основном редакторе выберите слова из выделенных текстовых элементов или обозначенного вами региона.
  3. Щелкните тег, который вы хотите применить, или нажмите соответствующую клавишу на клавиатуре. Цифровые клавиши назначены в качестве горячих клавиш для первых 10 тегов. Чтобы изменить порядок тегов, используйте значки со стрелками вверх и вниз на панели редактора тегов.
  4. Выполните следующие действия, чтобы пометить как минимум пять форм.

    Совет

    При создании меток для форм воспользуйтесь следующими советами:

    • К каждому выбранному текстовому элементу можно применить только один тег.
    • Каждый тег может применяться только один раз на каждую страницу. Если значение встречается несколько раз в одной и той же форме, создайте разные теги для каждого экземпляра. Например: "счет# 1", "счет# 2" и т. д.
    • Теги не могут охватывать несколько страниц.
    • Помечайте значения, отображаемые в форме; не пытайтесь разделить значение на две части двумя разными тегами. Например, поле адреса должно быть помечено одним тегом, даже если оно охватывает несколько строк.
    • Не включайте в поля с тегами ключи — только значения.
    • Данные таблицы должны обнаруживаться автоматически и будут доступны в окончательном выходном JSON-файле. Однако если модели не удается обнаружить все данные таблицы, вы можете также пометить эти поля вручную. Пометьте каждую ячейку в таблице другой меткой. Если в формах есть таблицы с разным количеством строк, обязательно пометьте по крайней мере одну форму с максимально возможной таблицей.
    • Чтобы искать, переименовывать, упорядочивать и удалять теги, используйте кнопки справа от значка +.
    • Чтобы снять примененный тег, не удаляя его, выберите прямоугольник с тегом в представлении документа и нажмите клавишу Delete.

Главное окно редактора инструмента разметки образцов.

Определение типов значений тегов

Вы можете задать ожидаемый тип данных для каждого тега. Откройте контекстное меню справа от тега и выберите тип. Эта функция позволяет алгоритму обнаружения делать предположения, повышающие точность обнаружения текста. Он также гарантирует, что обнаруженные значения возвращаются в стандартизованном формате в окончательных выходных данных JSON. Сведения о типе значения сохраняются в файле fields.json по тому же пути, что и файлы меток.

Выбор типа значения с помощью инструмента Sample Labeling

Сейчас поддерживаются следующие типы и разновидности значений:

  • string

    • no-whitespaces, alphanumeric (по умолчанию);
  • number

    • currency (по умолчанию);
    • Отформатировано как значение с плавающей запятой.
    • Пример: 1234.98 в документе форматируется в 1234.98 в выходных данных
  • date

    • dmy, mdy, ymd (по умолчанию).
  • time

  • integer

    • Отформатировано как целое значение.
    • Пример: число 1234.98 в документе преобразуется на выходе в 123498.
  • selectionMark

Примечание.

См. следующие правила форматирования даты:

Чтобы форматирование даты работало, необходимо указать формат (dmy, mdy, ymd).

В качестве разделителей даты можно использовать следующие символы: , - / . \. Пробелы нельзя использовать в качестве разделителя. Например:

  • 01.01.2020
  • 01.01.2020
  • 01/01/2020

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

  • 01.01.2020
  • 1-01-20

Если строка даты состоит из восьми цифр, разделитель необязателен:

  • 01012020
  • 01 01 2020

Месяц также может записываться в виде полного или сокращённого названия. Если используется название, символы-разделители необязательны. Однако этот формат может распознаваться менее точно, чем другие.

  • 01/янв/2020
  • 01янв2020
  • 01 янв 2020

Таблицы меток (только в версии 2.1)

Иногда данные лучше представлять в виде таблицы, а не в виде пар "ключ — значение". В этом случае можно создать тег таблицы, выбрав Добавить тег таблицы. Укажите, имеет ли таблица фиксированное количество строк или переменное число строк в зависимости от документа и определите схему.

Настройка тега для таблицы.

После определения тега таблицы пометьте значения ячеек.

Добавление подписи к таблице.

Обучить настраиваемую модель

Чтобы открыть страницу обучения, щелкните значок "Обучение" на левой панели. Затем нажмите кнопку Обучение, чтобы начать обучение модели. После завершения процесса обучения вы увидите следующие сведения:

  • Идентификатор модели — идентификатор модели, которая была создана и обучена. Каждый вызов обучения создает новую модель с уникальным идентификатором. Скопируйте эту строку в безопасное расположение; Вам потребуется, если вы хотите выполнять вызовы прогнозирования с помощью REST API или клиентской библиотеки.
  • Средняя точность, как характеристика точности модели. Точность моделей можно улучшить, присвоив метки большему числу форм и повторно выполнив обучение, чтобы создать новую модель. Мы рекомендуем для начала создать метки для пяти форм и добавлять новые формы по мере необходимости.
  • Список тегов и оценка точности для каждого из них.

Экран обучения.

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

Совет

Вы также можете выполнить процесс обучения, используя вызов REST API. Узнать, как это сделать, можно в разделе Обучение с помощью меток и Python.

Создать обученные модели

С помощью Model Compose можно создавать до 200 моделей с одним идентификатором модели. При вызове Analyze с составленным modelID служба Document Intelligence классифицирует отправленную вами форму, выбирает наиболее подходящую модель, а затем возвращает результаты для этой модели. Это очень удобная операция, если входящие документы могут относиться к одному из нескольких шаблонов.

  • Чтобы объединить модели в средстве разметки примеров, выберите на панели навигации значок «Объединение моделей» (стрелка слияния).
  • Выберите модели, которые вы хотите создать вместе. Модели со значком со стрелками уже являются составными моделями.
  • Нажмите кнопку Создать. Во всплывающем окне присвойте имя новой составленной модели и щелкните Составить.
  • После завершения операции созданная вами модель должна появиться в списке.

Представление взаимодействия с пользователем при составлении модели.

Анализ формы

Чтобы протестировать модель, выберите Analyze значок на панели навигации. Выберите исходный локальный файл. Найдите и выберите файл из примера набора данных, который вы ранее распаковали в тестовую папку. Затем нажмите кнопку Запустить анализ, чтобы получить прогнозируемые пары «ключ-значение», текст и таблицы в форме. Инструмент присваивает теги ограничивающим рамкам и указывает степень достоверности для каждого тега.

Снимок экрана: окно

Совет

Вы также можете запустить Analyze API с помощью вызова REST. Узнать, как это сделать, можно в разделе Обучение с помощью меток и Python.

Улучшение результатов

В зависимости от сообщаемой точности может потребоваться дополнительное обучение для улучшения модели. После завершения прогнозирования проверьте значения достоверности для каждого примененного тега. Если среднее значение точности на обучении высокое, но показатели уверенности низкие (или результаты неточны), добавьте файл прогнозирования в обучающий набор, разметьте его и повторите обучение.

Показатели средней точности, оценки достоверности и фактической точности могут быть нестабильными, если анализируемые документы отличаются от тех, которые использовались для обучения. Не забывайте, что некоторые документы выглядят одинаковыми для людей, но при этом отличаются для моделей ИИ. Например, если ваша форма имеет два варианта оформления и в наборе для обучения использовалось 20 % варианта А и 80 % варианта Б, на этапе прогнозирования оценки достоверности для документов варианта А будут, скорее всего, ниже.

Сохраните проект и продолжите позже

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

Получение учетных данных проекта

Перейдите на страницу параметров проекта (значок ползунка) и запишите имя маркера безопасности. Теперь перейдите к параметрам приложения (значок шестеренки), где отображаются все маркеры безопасности в текущем экземпляре браузера. Найдите маркер безопасности нужного проекта, а затем скопируйте и сохраните его имя и значение ключа в безопасном расположении.

Восстановление учетных данных проекта

Если вы хотите продолжить работу над проектом, сначала нужно создать подключение к тому же контейнеру хранилища BLOB-объектов. Для этого повторите шаги. Затем перейдите на страницу параметров приложения (значок шестеренки) и проверьте, есть ли там маркер безопасности нужного проекта. Если его нет, добавьте новый токен безопасности и скопируйте в него название токена и ключ из предыдущего шага. Щелкните Сохранить, чтобы сохранить параметры.

Возобновление проекта

Наконец, перейдите на главную страницу (значок дома) и щелкните Открыть облачный проект. Затем выберите подключение к BLOB-хранилищу и выберите файл .fott вашего проекта. Приложение загружает все параметры проекта, так как он имеет маркер безопасности.

Следующие шаги

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