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

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

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

Спільнота з відкритим кодом і дослідники зосереджуються на тому, як покращити точність OCR, простоту використання, інтеграцію з попередньо навченими моделями, розширення та гнучкість. Серед багатьох запропонованих фреймворків PaddleOCR останнім часом привертає все більшу увагу. Запропонована структура зосереджена на отриманні високої точності з одночасним балансуванням обчислювальної ефективності. Крім того, попередньо навчені моделі для китайської та англійської мов роблять його популярним на китайському ринку. Див Репо PaddleOCR GitHub для більш докладної інформації.

В AWS ми також запропонували інтегровані служби штучного інтелекту, які готові до використання без досвіду машинного навчання (ML). Щоб отримати текст і структуровані дані, такі як таблиці та форми, з документів, ви можете використовувати Текст Amazon. Він використовує методи ML для читання та обробки документів будь-якого типу, точного вилучення тексту, рукописного тексту, таблиць та інших даних без ручних зусиль.

Для дослідників даних, яким потрібна гнучкість використання фреймворку з відкритим кодом для розробки власної моделі OCR, ми також пропонуємо повністю керовану послугу ML Amazon SageMaker. SageMaker дає змогу впроваджувати найкращі практики MLOps протягом усього життєвого циклу ML, а також надає шаблони та набори інструментів, щоб зменшити недиференційовану важку роботу для запуску проектів ML у виробництво.

У цій публікації ми зосереджуємось на розробці налаштованих моделей у рамках 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. Вертикальний пошук. Ai.

У наступних розділах ми розглянемо, як точно налаштувати попередньо навчену модель за допомогою SageMaker.

Найкращі практики MLOps із SageMaker

SageMaker — це повністю керована служба машинного навчання. За допомогою SageMaker науковці та розробники даних можуть швидко та легко створювати та навчати моделі ML, а потім безпосередньо розгортати їх у керованому середовищі, готовому до виробництва.

Багато дослідників обробки даних використовують SageMaker для прискорення життєвого циклу машинного навчання. У цьому розділі ми покажемо, як SageMaker може допомогти вам від експериментів до виробництва ML. Дотримуючись стандартних кроків проекту ML, від експериментальної фрази (розробка коду та експерименти) до операційної фрази (автоматизація робочого процесу побудови моделі та конвеєрів розгортання), SageMaker може забезпечити ефективність на таких етапах:

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

Наведена нижче схема ілюструє цю архітектуру та робочий процес.

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

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

Перегляньте код у нашому GitHub сховище і README, щоб зрозуміти структуру коду.

Надання проекту SageMaker

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

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

  • Репозиторій коду для створення власних зображень контейнерів для обробки, навчання та висновків, інтегрований із інструментами CI/CD. Це дозволяє нам налаштувати наш власний образ Docker і надіслати його Реєстр контейнерів Amazon Elastic (Amazon ECR), щоб бути готовим до використання.
  • Конвеєр SageMaker, який визначає етапи підготовки даних, навчання, оцінки моделі та реєстрації моделі. Це готує нас до готовності до MLO, коли проект ML буде запущено в виробництво.
  • Інші корисні ресурси, як-от репозиторій Git для керування версіями коду, група моделей, яка містить версії моделі, тригер зміни коду для конвеєра побудови моделі та тригер на основі подій для конвеєра розгортання моделі.

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

Досліджуйте дані та створюйте код ML за допомогою ноутбуків SageMaker Studio

Ноутбуки SageMaker Studio — це блокноти для спільної роботи, які можна швидко запустити, оскільки вам не потрібно заздалегідь налаштовувати обчислювальні екземпляри та сховище файлів. Багато дослідників даних віддають перевагу використанню цієї веб-ідеї розробки для розробки коду ML, швидкого налагодження API бібліотеки та запуску роботи з невеликою вибіркою даних для перевірки навчального сценарію.

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

SageMaker надає потужну IDE; це відкрита платформа ML, на якій дослідники даних мають гнучкість у використанні бажаного середовища розробки. Для дослідників даних, які віддають перевагу локальній IDE, як-от PyCharm або Visual Studio Code, ви можете використовувати локальне середовище Python для розробки коду ML і використовувати 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 CodeBuild щоб зображення можна було створити та відправити в Amazon ECR.
  • Файл Docker, який використовується для складання Docker, містить усі залежності та навчальний код.
  • Точка входу train.py для сценарію навчання з усіма гіперпараметрами (такими як швидкість навчання та розмір пакету), які можна налаштувати як аргумент. Ці аргументи вказуються, коли ви починаєте навчальну роботу.
  • Залежності.

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

Навчіть модель за допомогою навчального SDK SageMaker

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

Навчальна робота містить кілька важливих відомостей:

  • URL-адреса сегмента S3, де ви зберігали навчальні дані
  • URL-адреса сегмента S3, де ви хочете зберегти вихідні дані завдання
  • Керовані обчислювальні ресурси, які SageMaker має використовувати для навчання моделей
  • Шлях Amazon ECR, де зберігається навчальний контейнер

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

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

Ми використовуємо спеціальний навчальний контейнер як точку входу та визначаємо середовище GPU для інфраструктури. Усі відповідні гіперпараметри детально описуються як параметри, що дозволяє нам відстежувати кожну окрему конфігурацію завдання та порівнювати їх із відстеженням експерименту.

Оскільки процес обробки даних дуже орієнтований на дослідження, зазвичай паралельно проводяться кілька експериментів. Для цього потрібен підхід, який відстежує всі різні експерименти, різні алгоритми та потенційно різні набори даних і гіперпараметри. Amazon SageMaker Experiments дозволяє організовувати, відстежувати, порівнювати й оцінювати свої експерименти з машинного навчання. Ми демонструємо це також у експерименти-поїзд-ноутбук.ipynb. Для отримання додаткової інформації див Керуйте машинним навчанням за допомогою Amazon SageMaker Experiments.

Розгорніть модель для обслуговування моделі

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

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

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

Щоб розгорнути спеціальне зображення, дослідники даних можуть використовувати SageMaker SDK, проілюстрований на

experiments-deploy-notebook.ipynb.

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

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

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

Ми надаємо приклад коду конвеєра, щоб проілюструвати реалізацію pipeline.py.

Конвеєр включає етап попередньої обробки для генерації набору даних, етап навчання, етап умови та етап реєстрації моделі. Наприкінці кожного конвеєра дослідники даних можуть захотіти зареєструвати свою модель для керування версіями та розгорнути найефективнішу. Реєстр моделей SageMaker забезпечує центральне місце для керування версіями моделей, каталогів моделей і ініціювання автоматичного розгортання моделі зі статусом затвердження конкретної моделі. Для отримання додаткової інформації див Реєструйте та розгортайте моделі за допомогою реєстру моделей.

У системі ML автоматизована оркестровка робочого процесу допомагає запобігти погіршенню продуктивності моделі, іншими словами, дрейфу моделі. Раннє та проактивне виявлення відхилень у даних дає змогу вживати коригувальні дії, наприклад перенавчати моделі. Ви можете запустити конвеєр SageMaker для повторного навчання нової версії моделі після виявлення відхилень. Тригер конвеєра також можна визначити Монітор моделі Amazon SageMaker, яка постійно стежить за якістю моделей у виробництві. Завдяки можливості збору даних для запису інформації Model Monitor підтримує моніторинг якості даних і моделі, упередження та моніторинг дрейфу атрибуції функцій. Докладніше див Моніторинг моделей на предмет даних і якості моделі, упередженості та пояснюваності.

Висновок

У цій публікації ми показали, як запустити фреймворк PaddleOCR на SageMaker для завдань OCR. Щоб допомогти науковцям із обробки даних легко підключитися до SageMaker, ми пройшли життєвий цикл розробки машинного навчання, починаючи від створення алгоритмів і закінчуючи навчанням і закінчуючи розміщенням моделі як веб-сервісу для висновків у реальному часі. Ви можете використати код шаблону, який ми надали, щоб перенести довільну структуру на платформу SageMaker. Спробуйте це для свого проекту ML і розкажіть нам про свої історії успіху.


Про авторів

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

Вбудований PaddleOCR із проектами Amazon SageMaker для MLOps для оптичного розпізнавання символів у документах, що засвідчують особу. PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Янвей Цуй, PhD, є спеціалістом з машинного навчання архітектором рішень у AWS. Він почав дослідження машинного навчання в IRISA (Дослідницький інститут комп’ютерних наук і випадкових систем) і має кілька років досвіду створення промислових додатків на основі штучного інтелекту для комп’ютерного зору, обробки природної мови та прогнозування поведінки користувачів в Інтернеті. У AWS він ділиться досвідом у галузі та допомагає клієнтам розкрити бізнес-потенціал та досягти практичних результатів за допомогою машинного навчання в масштабі. Поза роботою любить читати та подорожувати.

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

Часова мітка:

Більше від AWS Машинне навчання