Встроенный PaddleOCR с проектами Amazon SageMaker для MLOps для оптического распознавания символов в документах, удостоверяющих личность, PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Встроенный PaddleOCR с проектами Amazon SageMaker для MLOps для оптического распознавания символов в документах, удостоверяющих личность

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

Сообщество и исследователи с открытым исходным кодом концентрируются на том, как повысить точность оптического распознавания символов, простоту использования, интеграцию с предварительно обученными моделями, расширение и гибкость. Среди множества предложенных фреймворков в последнее время все большее внимание привлекает PaddleOCR. Предлагаемая структура концентрируется на получении высокой точности при балансировании вычислительной эффективности. Кроме того, предварительно обученные модели для китайского и английского языков делают его популярным на китайском рынке. См. Репозиторий PaddleOCR на GitHub Больше подробностей.

В AWS мы также предложили интегрированные сервисы искусственного интеллекта, готовые к использованию без опыта работы с машинным обучением (ML). Чтобы извлечь из документов текст и структурированные данные, такие как таблицы и формы, вы можете использовать Амазонка Текст. Он использует методы машинного обучения для чтения и обработки документов любого типа, точно извлекая текст, почерк, таблицы и другие данные без каких-либо ручных усилий.

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

В этом посте мы сосредоточимся на разработке настраиваемых моделей в рамках платформы PaddleOCR в SageMaker. Мы рассмотрим жизненный цикл разработки машинного обучения, чтобы проиллюстрировать, как SageMaker может помочь вам построить и обучить модель и, в конечном итоге, развернуть модель как веб-службу. Хотя мы иллюстрируем это решение с помощью PaddleOCR, общие рекомендации верны для произвольных фреймворков, которые будут использоваться в SageMaker. В дополнение к этому сообщению мы также предоставляем пример кода в Репозиторий GitHub.

Фреймворк PaddleOCR

В качестве широко распространенной системы OCR PaddleOCR включает в себя обнаружение форматированного текста, распознавание текста и сквозные алгоритмы. Он выбирает дифференцируемую бинаризацию (DB) и сверточную рекуррентную нейронную сеть (CRNN) в качестве основных моделей обнаружения и распознавания и предлагает серию моделей, названных PP-OCR, для промышленных приложений после серии стратегий оптимизации.

Модель PP-OCR ориентирована на общие сценарии и формирует библиотеку моделей на разных языках. Он состоит из трех частей: обнаружение текста, обнаружение и исправление прямоугольника и распознавание текста, как показано на следующем рисунке в PaddleOCR. официальный репозиторий GitHub. Вы также можете обратиться к исследовательской работе PP-OCR: Практичная сверхлегкая система OCR чтобы получить больше информации.

Чтобы быть более конкретным, PaddleOCR состоит из трех последовательных задач:

  • Обнаружение текста – Целью обнаружения текста является определение местоположения текстовой области на изображении. Такие задачи могут быть основаны на простой сети сегментации.
  • Обнаружение коробки и исправление – Каждое текстовое поле необходимо преобразовать в горизонтальное прямоугольное поле для последующего распознавания текста. Для этого PaddleOCR предлагает обучить классификатор направления текста (задача классификации изображений) для определения направления текста.
  • Распознавание текста – После обнаружения текстового поля модель распознавателя текста выполняет вывод для каждого текстового поля и выводит результаты в соответствии с местоположением текстового поля. PaddleOCR использует широко используемый метод CRNN.

PaddleOCR предоставляет высококачественные предварительно обученные модели, сравнимые с коммерческими эффектами. Вы можете либо использовать предварительно обученную модель для модели обнаружения, классификатора направления или модели распознавания, либо вы можете точно настроить и переобучить каждую отдельную модель для вашего варианта использования. Чтобы повысить эффективность и результативность обнаружения традиционного китайского и английского языков, мы продемонстрируем, как можно настроить модель распознавания текста. Предварительно обученная модель, которую мы выбираем, ch_ppocr_mobile_v2.0_rec_train, которая представляет собой облегченную модель, поддерживающую китайский, английский и распознавание чисел. Ниже приведен пример результата логического вывода с использованием гонконгского удостоверения личности.

Встроенный PaddleOCR с проектами Amazon SageMaker для MLOps для оптического распознавания символов в документах, удостоверяющих личность, PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

В следующих разделах мы рассмотрим, как точно настроить предварительно обученную модель с помощью SageMaker.

Лучшие практики MLOps с SageMaker

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

Многие специалисты по данным используют SageMaker для ускорения жизненного цикла машинного обучения. В этом разделе мы покажем, как SageMaker может помочь вам от экспериментов до внедрения ML в производство. Следуя стандартным шагам проекта машинного обучения, от экспериментальной фразы (разработка кода и эксперименты) до эксплуатационной фразы (автоматизация рабочего процесса сборки модели и конвейеров развертывания), SageMaker может повысить эффективность на следующих этапах:

  1. Исследуйте данные и создайте код машинного обучения с помощью Студия Amazon SageMaker ноутбуки.
  2. Обучите и настройте модель с помощью учебного задания SageMaker.
  3. Разверните модель с конечной точкой SageMaker для обслуживания модели.
  4. Организуйте рабочий процесс с помощью Конвейеры Amazon SageMaker.

Следующая диаграмма иллюстрирует эту архитектуру и рабочий процесс.

Встроенный PaddleOCR с проектами Amazon SageMaker для MLOps для оптического распознавания символов в документах, удостоверяющих личность, PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

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

Смотрите код в нашем Репозиторий GitHub и README для понимания структуры кода.

Подготовка проекта SageMaker

Вы можете использовать Проекты Amazon SageMaker чтобы начать свое путешествие. С помощью проекта SageMaker вы можете управлять версиями своих репозиториев Git, чтобы вы могли более эффективно сотрудничать между командами, обеспечивать согласованность кода и обеспечивать непрерывную интеграцию и непрерывную доставку (CI/CD). Хотя записные книжки полезны для построения моделей и экспериментов, когда у вас есть команда специалистов по данным и инженеров по машинному обучению, работающих над проблемой машинного обучения, вам нужен более масштабируемый способ поддержания согласованности кода и более строгого контроля версий.

Проекты SageMaker создают предварительно настроенный шаблон MLOps, который включает основные компоненты для упрощения интеграции PaddleOCR:

  • Репозиторий кода для создания пользовательских образов контейнеров для обработки, обучения и вывода, интегрированный с инструментами CI/CD. Это позволяет нам настроить наш пользовательский образ Docker и нажать на Реестр Amazon Elastic Container (Amazon ECR), чтобы быть готовым к использованию.
  • Конвейер SageMaker, определяющий этапы подготовки данных, обучения, оценки модели и регистрации модели. Это готовит нас к тому, чтобы быть готовыми к MLOps, когда проект ML пойдет в производство.
  • Другие полезные ресурсы, такие как репозиторий Git для управления версиями кода, группа моделей, содержащая версии моделей, триггер изменения кода для конвейера сборки модели и триггер на основе событий для конвейера развертывания модели.

Исходный код SageMaker можно использовать для создания стандартных проектов SageMaker или специального шаблона, который ваша организация создала для членов команды. В этом посте мы используем стандарт Шаблон MLOps для построения образа, построения модели и развертывания модели. Дополнительные сведения о создании проекта в Studio см. Создайте проект MLOps с помощью Amazon SageMaker Studio..

Исследуйте данные и создавайте код машинного обучения с помощью SageMaker Studio Notebooks

Записные книжки SageMaker Studio — это записные книжки для совместной работы, которые вы можете быстро запустить, поскольку вам не нужно заранее настраивать вычислительные экземпляры и хранилище файлов. Многие специалисты по данным предпочитают использовать эту веб-среду IDE для разработки кода машинного обучения, быстрой отладки API библиотеки и запуска приложений с небольшой выборкой данных для проверки сценария обучения.

В записных книжках Studio вы можете использовать предварительно созданную среду для распространенных платформ, таких как TensorFlow, PyTorch, Pandas и Scikit-Learn. Вы можете установить зависимости к предварительно собранному ядру или создать свой собственный постоянный образ ядра. Для получения дополнительной информации см. Установка внешних библиотек и ядер в Amazon SageMaker Studio. Блокноты Studio также предоставляют среду Python для запуска обучающих заданий SageMaker, развертывания или других сервисов AWS. В следующих разделах мы покажем, как использовать записные книжки Studio в качестве среды для запуска заданий обучения и развертывания.

SageMaker предоставляет мощную IDE; это открытая платформа машинного обучения, где специалисты по данным могут гибко использовать предпочитаемую среду разработки. Специалисты по данным, которые предпочитают локальную IDE, такую ​​как PyCharm или Visual Studio Code, могут использовать локальную среду Python для разработки кода машинного обучения и использовать SageMaker для обучения в управляемой масштабируемой среде. Для получения дополнительной информации см. Запустите задание TensorFlow в Amazon SageMaker с помощью PyCharm IDE. После того, как у вас будет надежная модель, вы можете применить лучшие практики MLOps с помощью SageMaker.

В настоящее время SageMaker также предоставляет Экземпляры записных книжек SageMaker в качестве нашего устаревшего решения для среды Jupyter Notebook. У вас есть возможность запустить команду сборки Docker и используйте локальный режим SageMaker для обучения на своем экземпляре ноутбука. Мы также предоставляем образец кода для PaddleOCR в нашем репозитории кода: ./train_and_deploy/notebook.ipynb.

Создайте собственное изображение с помощью шаблона проекта SageMaker.

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

Однако для специалиста по данным создание контейнера может оказаться непростым делом. Проекты SageMaker предоставляют простой способ управления пользовательскими зависимостями с помощью конвейера CI/CD для создания образов. При использовании проекта SageMaker вы можете вносить обновления в обучающий образ с помощью своего пользовательского контейнера Dockerfile. Пошаговые инструкции см. Создавайте проекты Amazon SageMaker с конвейерами CI/CD для создания образов.. Благодаря структуре, представленной в шаблоне, вы можете изменить предоставленный код в этом репозитории, чтобы создать учебный контейнер PaddleOCR.

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

Эти проекты имеют схожую структуру. Возьмем образ учебного контейнера в качестве примера; в image-build-train/ репозиторий содержит следующие файлы:

  • Файл codebuild-buildspec.yml, который используется для настройки Сборка кода AWS чтобы образ можно было создать и отправить в Amazon ECR.
  • Dockerfile, используемый для сборки Docker, который содержит все зависимости и обучающий код.
  • Точка входа в train.py для сценария обучения со всеми гиперпараметрами (такими как скорость обучения и размер пакета), которые можно настроить в качестве аргумента. Эти аргументы указываются при запуске задания обучения.
  • Зависимости.

Когда вы помещаете код в соответствующий репозиторий, он срабатывает Кодовый конвейер AWS построить для вас тренировочный контейнер. Пользовательский образ контейнера хранится в репозитории Amazon ECR, как показано на предыдущем рисунке. Аналогичная процедура применяется для создания логического изображения.

Обучите модель с помощью обучающего SDK SageMaker.

После проверки кода алгоритма и его упаковки в контейнер можно использовать задание обучения SageMaker, чтобы подготовить управляемую среду для обучения модели. Эта среда эфемерна, что означает, что вы можете иметь отдельные защищенные вычислительные ресурсы (например, GPU) или распределенную среду с несколькими GPU для запуска своего кода. Когда обучение завершено, SageMaker сохраняет полученные артефакты модели в Простой сервис хранения Amazon (Amazon S3), которое вы укажете. Все данные журнала и метаданные сохраняются на Консоль управления AWS, Студия и Amazon CloudWatch.

Учебное задание включает в себя несколько важных частей информации:

  • URL-адрес корзины S3, в которой вы сохранили данные обучения.
  • URL-адрес корзины S3, в которой вы хотите сохранить выходные данные задания.
  • Управляемые вычислительные ресурсы, которые SageMaker должен использовать для обучения модели.
  • Путь Amazon ECR, в котором хранится обучающий контейнер.

Для получения дополнительной информации о вакансиях по обучению см. Модели поездов. Пример кода для учебного задания доступен по адресу эксперименты-поезд-ноутбук.ipynb.

SageMaker создает гиперпараметры в CreateTrainingJob запрос доступен в контейнере Docker в /opt/ml/input/config/hyperparameters.json .

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

Поскольку процесс обработки данных в значительной степени ориентирован на исследования, обычно несколько экспериментов выполняются параллельно. Для этого требуется подход, который отслеживает все различные эксперименты, разные алгоритмы и потенциально разные наборы данных и гиперпараметры. Amazon SageMaker Experiments позволяет организовывать, отслеживать, сравнивать и оценивать эксперименты машинного обучения. Мы демонстрируем это и в эксперименты-поезд-ноутбук.ipynb. Для получения более подробной информации см. Управляйте машинным обучением с помощью экспериментов Amazon SageMaker.

Разверните модель для обслуживания моделей

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

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

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

Чтобы развернуть пользовательский образ, специалисты по данным могут использовать SageMaker SDK, как показано на

эксперименты-развертывание-ноутбук.ipynb.

В create_model запрос, определение контейнера включает ModelDataUrl параметр, определяющий расположение Amazon S3, в котором хранятся артефакты модели. SageMaker использует эту информацию, чтобы определить, откуда копировать артефакты модели. Он копирует артефакты в /opt/ml/model каталог для использования вашим кодом вывода. serve и predictor.py — это точка входа для обслуживания с артефактом модели, который загружается при запуске развертывания. Для получения дополнительной информации см. Используйте свой собственный код логического вывода с услугами хостинга.

Организуйте свой рабочий процесс с помощью SageMaker Pipelines

Последний шаг — обернуть ваш код сквозными рабочими процессами машинного обучения и применить лучшие практики MLOps. В SageMaker рабочая нагрузка построения модели, направленный ациклический граф (DAG), управляется SageMaker Pipelines. Pipelines — это полностью управляемая служба, поддерживающая оркестрацию и отслеживание происхождения данных. Кроме того, поскольку конвейеры интегрированы с SageMaker Python SDK, вы можете создавать свои конвейеры программно, используя высокоуровневый интерфейс Python, который мы использовали ранее на этапе обучения.

Мы предоставляем пример конвейерного кода, чтобы проиллюстрировать реализацию на конвейер.py.

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

В системе машинного обучения автоматизированная организация рабочего процесса помогает предотвратить снижение производительности модели, другими словами, дрейф модели. Раннее и упреждающее обнаружение отклонений данных позволяет предпринимать корректирующие действия, например переобучать модели. Вы можете запустить конвейер SageMaker для переобучения новой версии модели после обнаружения отклонений. Триггер конвейера также может быть определен Монитор моделей Amazon SageMaker, которая постоянно следит за качеством выпускаемых моделей. Благодаря возможности сбора данных для записи информации Model Monitor поддерживает мониторинг качества данных и моделей, смещение и мониторинг дрейфа атрибуции функций. Подробнее см. Мониторинг моделей на предмет качества данных и моделей, предвзятости и объяснимости.

Заключение

В этом посте мы показали, как запустить фреймворк PaddleOCR в SageMaker для задач OCR. Чтобы помочь специалистам по данным с легкостью внедрить SageMaker, мы рассмотрели жизненный цикл разработки машинного обучения, от построения алгоритмов до обучения и размещения модели в виде веб-службы для логического вывода в реальном времени. Вы можете использовать предоставленный нами код шаблона для переноса произвольного фреймворка на платформу SageMaker. Попробуйте его для своего проекта машинного обучения и расскажите нам о своих успехах.


Об авторах

Встроенный PaddleOCR с проектами Amazon SageMaker для MLOps для оптического распознавания символов в документах, удостоверяющих личность, PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Джуньи (Джеки) ЛИУ является старшим научным сотрудником в AWS. Имеет многолетний опыт работы в области машинного обучения. Имеет богатый практический опыт разработки и внедрения решений в построении моделей машинного обучения в области алгоритмов прогнозирования цепочки поставок, систем рекламных рекомендаций, OCR и NLP.

Встроенный PaddleOCR с проектами Amazon SageMaker для MLOps для оптического распознавания символов в документах, удостоверяющих личность, PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Янвэй ЦуйКандидат наук, специалист по проектированию решений по машинному обучению в AWS. Он начал исследования в области машинного обучения в IRISA (Исследовательский институт компьютерных наук и случайных систем) и имеет многолетний опыт создания промышленных приложений на базе искусственного интеллекта для компьютерного зрения, обработки естественного языка и онлайн-прогнозирования поведения пользователей. В AWS он делится опытом в этой области и помогает клиентам раскрыть потенциал бизнеса и добиться реальных результатов с помощью машинного обучения в любом масштабе. Вне работы любит читать и путешествовать.

Встроенный PaddleOCR с проектами Amazon SageMaker для MLOps для оптического распознавания символов в документах, удостоверяющих личность, PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Йи-Ан ЧЕН — разработчик программного обеспечения в Amazon Lab 126. Она имеет более чем 10-летний опыт разработки продуктов на основе машинного обучения в различных дисциплинах, включая персонализацию, обработку естественного языка и компьютерное зрение. Вне работы она любит заниматься длительным бегом и кататься на велосипеде.

Отметка времени:

Больше от Машинное обучение AWS