身分証明書PlatoBlockchainDataIntelligenceで光学式文字認識を実行するMLOps用のAmazonSageMakerProjectsを備えたオンボードPaddleOCR。 垂直検索。 愛。

身分証明書で光学式文字認識を実行するためのMLOps用のAmazonSageMakerプロジェクトを備えたオンボードPaddleOCR

光学式文字認識(OCR)は、印刷または手書きのテキストを機械でエンコードされたテキストに変換するタスクです。 OCRは、ドキュメントの電子化やID認証など、さまざまなシナリオで広く使用されています。 OCRは、重要な情報を登録するための手作業を大幅に削減し、大量のドキュメントを理解するための入力ステップとして機能するため、正確なOCRシステムはデジタルトランスフォーメーションの時代に重要な役割を果たします。

オープンソースコミュニティと研究者は、OCRの精度、使いやすさ、事前にトレーニングされたモデルとの統合、拡張、および柔軟性を改善する方法に集中しています。 提案されている多くのフレームワークの中で、PaddleOCRは最近ますます注目を集めています。 提案されたフレームワークは、計算効率のバランスを取りながら、高精度を取得することに重点を置いています。 さらに、中国語と英語の事前トレーニング済みモデルにより、中国語ベースの市場で人気があります。 を参照してください PaddleOCRGitHubリポジトリ のガイドをご参照ください。

AWSでは、機械学習(ML)の専門知識がなくてもすぐに使用できる統合AIサービスも提案しています。 ドキュメントからテキストやテーブルやフォームなどの構造化データを抽出するには、次のコマンドを使用できます。 アマゾンテキストラック。 ML技術を使用して、あらゆるタイプのドキュメントを読み取り、処理し、手動の作業なしでテキスト、手書き、表、およびその他のデータを正確に抽出します。

オープンソースフレームワークを使用して独自のOCRモデルを開発する柔軟性を求めるデータサイエンティスト向けに、フルマネージドMLサービスも提供しています。 アマゾンセージメーカー。 SageMakerを使用すると、MLライフサイクル全体でMLOpsのベストプラクティスを実装でき、MLプロジェクトを本番環境に移行するための差別化されていない手間のかかる作業を減らすためのテンプレートとツールセットが提供されます。

この投稿では、SageMakerのPaddleOCRフレームワーク内でカスタマイズされたモデルの開発に集中します。 ML開発ライフサイクルをウォークスルーして、SageMakerがモデルの構築とトレーニングを支援し、最終的にモデルをWebサービスとしてデプロイする方法を説明します。 このソリューションをPaddleOCRで説明しますが、SageMakerで使用される任意のフレームワークについては一般的なガイダンスが当てはまります。 この投稿に付随して、サンプルコードも提供しています GitHubリポジトリ.

PaddleOCRフレームワーク

広く採用されているOCRフレームワークとして、PaddleOCRには、豊富なテキスト検出、テキスト認識、およびエンドツーエンドのアルゴリズムが含まれています。 微分可能二値化(DB)と畳み込みリカレントニューラルネットワーク(CRNN)を基本的な検出および認識モデルとして選択し、一連の最適化戦略の後、産業用アプリケーション向けにPP-OCRという名前の一連のモデルを提案します。

PP-OCRモデルは、一般的なシナリオを対象としており、さまざまな言語のモデルライブラリを形成します。 これは、テキスト検出、ボックスの検出と修正、およびテキスト認識のXNUMXつの部分で構成されており、PaddleOCRの次の図に示されています。 公式GitHubリポジトリ。 研究論文も参考にできます PP-OCR:実用的な超軽量OCRシステム

具体的には、PaddleOCRはXNUMXつの連続したタスクで構成されています。

  • テキスト検出 –テキスト検出の目的は、画像内のテキスト領域を見つけることです。 このようなタスクは、単純なセグメンテーションネットワークに基づくことができます。
  • ボックスの検出と修正 –各テキストボックスは、後続のテキスト認識のために水平の長方形ボックスに変換する必要があります。 これを行うために、PaddleOCRは、テキスト方向分類子(画像分類タスク)をトレーニングしてテキスト方向を決定することを提案します。
  • テキスト認識 –テキストボックスが検出された後、テキスト認識モデルは各テキストボックスに対して推論を実行し、テキストボックスの場所に従って結果を出力します。 PaddleOCRは、広く使用されている方法CRNNを採用しています。

PaddleOCRは、商用効果に匹敵する高品質の事前トレーニング済みモデルを提供します。 事前にトレーニングされたモデルを検出モデル、方向分類器、または認識モデルに使用するか、個々のモデルを微調整して再トレーニングし、ユースケースに役立てることができます。 繁体字中国語と英語の検出の効率と効果を高めるために、テキスト認識モデルを微調整する方法を説明します。 私たちが選択する事前トレーニング済みモデルは ch_ppocr_mobile_v2.0_rec_train、軽量モデルで、中国語、英語、および数字の認識をサポートします。 以下は、香港身分証を使用した推論結果の例です。

身分証明書PlatoBlockchainDataIntelligenceで光学式文字認識を実行するMLOps用のAmazonSageMakerProjectsを備えたオンボードPaddleOCR。 垂直検索。 愛。

次のセクションでは、SageMakerを使用して事前トレーニング済みモデルを微調整する方法について説明します。

SageMakerでのMLOpsのベストプラクティス

SageMakerはフルマネージドのMLサービスです。 SageMakerを使用すると、データサイエンティストと開発者は、MLモデルをすばやく簡単に構築してトレーニングし、本番環境に対応した管理環境に直接デプロイできます。

多くのデータサイエンティストは、MLライフサイクルを加速するためにSageMakerを使用しています。 このセクションでは、SageMakerが実験からMLの生産化までどのように役立つかを説明します。 実験的なフレーズ(コードの開発と実験)から運用上のフレーズ(モデル構築ワークフローとデプロイメントパイプラインの自動化)まで、MLプロジェクトの標準的な手順に従って、SageMakerは次の手順で効率を高めることができます。

  1. データを探索し、MLコードを作成します Amazon SageMakerスタジオ ノートブック。
  2. SageMakerトレーニングジョブを使用してモデルをトレーニングおよび調整します。
  3. モデルを提供するために、SageMakerエンドポイントを使用してモデルをデプロイします。
  4. ワークフローを調整します AmazonSageMakerパイプライン.

次の図は、このアーキテクチャとワークフローを示しています。

身分証明書PlatoBlockchainDataIntelligenceで光学式文字認識を実行するMLOps用のAmazonSageMakerProjectsを備えたオンボードPaddleOCR。 垂直検索。 愛。

SageMakerはモジュール方式で使用できることに注意してください。 たとえば、ローカル統合開発環境(IDE)を使用してコードをビルドし、SageMakerでモデルをトレーニングしてデプロイしたり、独自のクラスターコンピューティングソースでモデルを開発してトレーニングしたり、ワークフローのオーケストレーションにSageMakerパイプラインを使用したりできます。 SageMakerエンドポイントにデプロイします。 これは、SageMakerが独自の要件に適応するためのオープンプラットフォームを提供することを意味します。

私たちのコードを参照してください GitHubリポジトリ コード構造を理解するためのREADME。

SageMakerプロジェクトをプロビジョニングする

あなたが使用することができます AmazonSageMakerプロジェクト あなたの旅を始めるために。 SageMakerプロジェクトを使用すると、Gitリポジトリのバージョンを管理できるため、チーム間でより効率的にコラボレーションし、コードの一貫性を確保し、継続的インテグレーションと継続的デリバリー(CI / CD)を実現できます。 ノートブックはモデルの構築と実験に役立ちますが、データサイエンティストとMLエンジニアのチームがMLの問題に取り組んでいる場合、コードの一貫性を維持し、より厳密なバージョン管理を行うためのよりスケーラブルな方法が必要です。

SageMakerプロジェクトは、事前構成されたMLOpsテンプレートを作成します。これには、PaddleOCR統合を簡素化するための重要なコンポーネントが含まれています。

  • CI / CDツールと統合された、処理、トレーニング、および推論用のカスタムコンテナイメージを構築するためのコードリポジトリ。 これにより、カスタムDockerイメージを構成してプッシュすることができます Amazon エラスティック コンテナ レジストリ (Amazon ECR)すぐに使用できるようになります。
  • データの準備、トレーニング、モデル評価、モデル登録の手順を定義するSageMakerパイプライン。 これにより、MLプロジェクトが本番環境に移行するときにMLOpsの準備が整います。
  • コードバージョン管理用のGitリポジトリ、モデルバージョンを含むモデルグループ、モデルビルドパイプラインのコード変更トリガー、モデル展開パイプラインのイベントベースのトリガーなど、その他の便利なリソース。

SageMakerシードコードを使用して、標準のSageMakerプロジェクト、または組織がチームメンバー用に作成した特定のテンプレートを作成できます。 この投稿では、標準を使用します イメージ構築、モデル構築、およびモデル展開用のMLOpsテンプレート。 Studioでプロジェクトを作成する方法の詳細については、を参照してください。 AmazonSageMakerStudioを使用してMLOpsプロジェクトを作成する.

SageMaker Studio Notebooksを使用してデータを探索し、MLコードを構築する

SageMaker Studioノートブックは、コンピューティングインスタンスとファイルストレージを事前に設定する必要がないため、すばやく起動できるコラボレーションノートブックです。 多くのデータサイエンティストは、このWebベースのIDEを使用して、MLコードを開発し、ライブラリAPIをすばやくデバッグし、トレーニングスクリプトを検証するために少量のデータサンプルで実行することを好みます。

Studioノートブックでは、TensorFlow、PyTorch、Pandas、Scikit-Learnなどの一般的なフレームワーク用に構築済みの環境を使用できます。 ビルド済みのカーネルに依存関係をインストールすることも、独自の永続的なカーネルイメージをビルドすることもできます。 詳細については、を参照してください。 AmazonSageMakerStudioに外部ライブラリとカーネルをインストールする。 Studioノートブックは、SageMakerトレーニングジョブ、デプロイ、またはその他のAWSサービスをトリガーするPython環境も提供します。 次のセクションでは、Studioノートブックを環境として使用してトレーニングおよび展開ジョブをトリガーする方法を示します。

SageMakerは強力なIDEを提供します。 これはオープンMLプラットフォームであり、データサイエンティストは好みの開発環境を柔軟に使用できます。 PyCharmやVisualStudioCodeなどのローカルIDEを好むデータサイエンティストの場合、ローカルPython環境を使用してMLコードを開発し、SageMakerを使用して管理されたスケーラブルな環境でトレーニングすることができます。 詳細については、を参照してください。 PyCharmIDEを使用してAmazonSageMakerでTensorFlowジョブを実行します。 ソリッドモデルを作成したら、SageMakerでMLOpsのベストプラクティスを採用できます。

現在、SageMakerは SageMakerノートブックインスタンス JupyterNotebook環境のレガシーソリューションとして。 Dockerビルドコマンドを実行する柔軟性があり、 SageMakerローカルモードを使用してノートブックインスタンスでトレーニングします。 また、コードリポジトリでPaddleOCRのサンプルコードを提供しています。 ./train_and_deploy/notebook.ipynb.

SageMakerプロジェクトテンプレートを使用してカスタムイメージを構築する

SageMakerは、ビルドおよびランタイムタスクにDockerコンテナーを広範囲に使用します。 SageMakerを使用して独自のコンテナを簡単に実行できます。 技術的な詳細については、をご覧ください。 独自のトレーニングアルゴリズムを使用する.

ただし、データサイエンティストとして、コンテナの構築は簡単ではない場合があります。 SageMakerプロジェクトは、イメージ構築CI/CDパイプラインを介してカスタム依存関係を管理するための簡単な方法を提供します。 SageMakerプロジェクトを使用する場合、カスタムコンテナのDockerfileを使用してトレーニングイメージを更新できます。 ステップバイステップの説明については、を参照してください。 イメージ構築CI / CDパイプラインを使用してAmazonSageMakerプロジェクトを作成します。 テンプレートで提供される構造を使用して、このリポジトリで提供されるコードを変更して、PaddleOCRトレーニングコンテナを構築できます。

この投稿では、処理、トレーニング、推論のためのカスタム画像を簡単に作成できることを紹介します。 GitHubリポジトリには、次のXNUMXつのフォルダーが含まれています。

これらのプロジェクトは同様の構造に従います。 例としてトレーニングコンテナの画像を取り上げます。 the image-build-train/ リポジトリには次のファイルが含まれています。

  • 設定に使用されるcodebuild-buildspec.ymlファイル AWS コードビルド イメージをビルドしてAmazonECRにプッシュできるようにします。
  • Dockerビルドに使用されるDockerfile。すべての依存関係とトレーニングコードが含まれています。
  • 引数として構成できるすべてのハイパーパラメーター(学習率やバッチサイズなど)を含む、トレーニングスクリプトのtrain.pyエントリポイント。 これらの引数は、トレーニングジョブを開始するときに指定されます。
  • 依存関係。

コードを対応するリポジトリにプッシュすると、トリガーされます AWS コードパイプライン あなたのためのトレーニングコンテナを構築します。 前の図に示すように、カスタムコンテナイメージはAmazonECRリポジトリに保存されます。 推論画像を生成するために同様の手順が採用されます。

SageMakerトレーニングSDKを使用してモデルをトレーニングします

アルゴリズムコードが検証されてコンテナにパッケージ化されたら、SageMakerトレーニングジョブを使用して、モデルをトレーニングするための管理対象環境をプロビジョニングできます。 この環境は一時的なものです。つまり、コードを実行するために、個別の安全なコンピューティングリソース(GPUなど)またはマルチGPU分散環境を使用できます。 トレーニングが完了すると、SageMakerは結果のモデルアーティファクトをに保存します Amazon シンプル ストレージ サービス (Amazon S3)指定した場所。 すべてのログデータとメタデータは AWSマネジメントコンソール、スタジオ、および アマゾンクラウドウォッチ.

トレーニングジョブには、いくつかの重要な情報が含まれています。

  • トレーニングデータを保存したS3バケットのURL
  • ジョブの出力を保存するS3バケットのURL
  • SageMakerでモデルトレーニングに使用するマネージドコンピューティングリソース
  • トレーニングコンテナが保存されているAmazonECRパス

トレーニングジョブの詳細については、を参照してください。 モデルのトレーニング。 トレーニングジョブのサンプルコードは、次のURLで入手できます。 実験-train-notebook.ipynb.

SageMakerは、 CreateTrainingJob のDockerコンテナで利用可能なリクエスト /opt/ml/input/config/hyperparameters.json ファイルにソフトウェアを指定する必要があります。

カスタムトレーニングコンテナをエントリポイントとして使用し、インフラストラクチャのGPU環境を指定します。 関連するすべてのハイパーパラメータはパラメータとして詳細に記述されているため、個々のジョブ構成を追跡し、実験の追跡と比較することができます。

データサイエンスプロセスは非常に研究指向であるため、複数の実験が並行して実行されるのが一般的です。 これには、試行されたすべての異なる実験、異なるアルゴリズム、および潜在的に異なるデータセットとハイパーパラメータを追跡するアプローチが必要です。 Amazon SageMaker Experimentsを使用すると、ML実験を整理、追跡、比較、評価できます。 これも 実験-train-notebook.ipynb。 詳細については、を参照してください。 AmazonSageMaker実験で機械学習を管理する.

モデルを提供するためにモデルをデプロイする

展開に関しては、特にリアルタイムモデルの提供に関しては、多くのデータサイエンティストは、運用チームの支援なしに実行するのは難しいと感じるかもしれません。 SageMakerを使用すると、トレーニング済みモデルを本番環境に簡単にデプロイできます。 SageMaker Python SDK。 モデルをSageMakerホスティングサービスにデプロイし、リアルタイム推論に使用するエンドポイントを取得できます。

多くの組織では、データサイエンティストは、エンドポイントインフラストラクチャの保守に責任を負わない場合があります。 ただし、モデルをエンドポイントとしてテストし、正しい予測動作を保証することは、実際にデータサイエンティストの責任です。 そのため、SageMakerは、このためのツールとSDKのセットを追加することで、デプロイのタスクを簡素化しました。

投稿のユースケースでは、リアルタイムでインタラクティブな低レイテンシの機能が必要です。 リアルタイム推論 この推論ワークロードに最適です。 ただし、それぞれの特定の要件に適応する多くのオプションがあります。 詳細については、を参照してください。 推論のためのモデルのデプロイ.

カスタムイメージをデプロイするために、データサイエンティストはSageMakerSDKを使用できます。

実験-デプロイ-ノートブック.ipynb.

create_model リクエストの場合、コンテナ定義には ModelDataUrl モデルアーティファクトが保存されているAmazonS3の場所を識別するパラメーター。 SageMakerはこの情報を使用して、モデルアーティファクトをコピーする場所を決定します。 アーティファクトをにコピーします /opt/ml/model 推論コードで使用するディレクトリ。 ザ serve & predictor.py はサービングのエントリポイントであり、デプロイメントの開始時にロードされるモデルアーティファクトが含まれます。 詳細については、を参照してください。 ホスティングサービスで独自の推論コードを使用する.

SageMakerパイプラインを使用してワークフローを調整します

最後のステップは、コードをエンドツーエンドのMLワークフローとしてラップし、MLOpsのベストプラクティスを適用することです。 SageMakerでは、モデル構築ワークロードである有向非巡回グラフ(DAG)は、SageMakerパイプラインによって管理されます。 Pipelinesは、オーケストレーションとデータ系統の追跡をサポートするフルマネージドサービスです。 さらに、パイプラインはSageMaker Python SDKと統合されているため、トレーニングステップで以前に使用した高レベルのPythonインターフェイスを使用して、プログラムでパイプラインを作成できます。

での実装を説明するためのパイプラインコードの例を提供します pipe.py.

パイプラインには、データセット生成の前処理ステップ、トレーニングステップ、条件ステップ、およびモデル登録ステップが含まれます。 各パイプラインの実行の最後に、データサイエンティストはモデルをバージョン管理に登録し、最高のパフォーマンスを発揮するモデルをデプロイすることができます。 SageMakerモデルレジストリは、モデルバージョンを管理し、モデルをカタログ化し、特定のモデルの承認ステータスを使用して自動モデル展開をトリガーするための中心的な場所を提供します。 詳細については、を参照してください。 モデルレジストリにモデルを登録してデプロイします。

MLシステムでは、自動化されたワークフローオーケストレーションは、モデルのパフォーマンスの低下、つまりモデルのドリフトを防ぐのに役立ちます。 データの偏差を早期かつプロアクティブに検出することで、モデルの再トレーニングなどの修正アクションを実行できます。 偏差が検出された後、SageMakerパイプラインをトリガーして、モデルの新しいバージョンを再トレーニングできます。 パイプラインのトリガーは、次の方法でも決定できます。 Amazon SageMakerモデルモニター、生産中のモデルの品質を継続的に監視します。 情報を記録するデータキャプチャ機能を備えたModelMonitorは、データとモデルの品質監視、バイアス、および機能属性ドリフト監視をサポートします。 詳細については、を参照してください。 データとモデルの品質、バイアス、説明性についてモデルを監視する.

まとめ

この投稿では、OCRタスク用にSageMakerでフレームワークPaddleOCRを実行する方法を説明しました。 データサイエンティストがSageMakerに簡単に参加できるように、アルゴリズムの構築からトレーニング、リアルタイム推論用のWebサービスとしてのモデルのホストまで、ML開発のライフサイクルを順を追って説明しました。 提供されたテンプレートコードを使用して、任意のフレームワークをSageMakerプラットフォームに移行できます。 MLプロジェクトで試してみて、成功事例をお知らせください。


著者について

身分証明書PlatoBlockchainDataIntelligenceで光学式文字認識を実行するMLOps用のAmazonSageMakerProjectsを備えたオンボードPaddleOCR。 垂直検索。 愛。Junyi(ジャッキー)LIU AWSの上級応用科学者です。 彼女は機械学習の分野で長年の実務経験があります。 彼女は、サプライチェーン予測アルゴリズム、広告推奨システム、OCRおよびNLP領域での機械学習モデルの構築におけるソリューションの開発と実装において、豊富な実務経験を持っています。

身分証明書PlatoBlockchainDataIntelligenceで光学式文字認識を実行するMLOps用のAmazonSageMakerProjectsを備えたオンボードPaddleOCR。 垂直検索。 愛。ヤンウェイ・ツイ、PhDは、AWSの機械学習スペシャリストソリューションアーキテクトです。 彼はIRISA(Research Institute of Computer Science and Random Systems)で機械学習の研究を開始し、コンピュータービジョン、自然言語処理、オンラインユーザー行動予測における人工知能を利用した産業用アプリケーションの構築に数年の経験があります。 AWSで、彼はドメインの専門知識を共有し、顧客がビジネスの可能性を解き放ち、大規模な機械学習で実用的な結果を推進するのを支援します。 仕事以外では、読書や旅行を楽しんでいます。

身分証明書PlatoBlockchainDataIntelligenceで光学式文字認識を実行するMLOps用のAmazonSageMakerProjectsを備えたオンボードPaddleOCR。 垂直検索。 愛。Yi-アンチェン アマゾンラボ126のソフトウェア開発者です。彼女は、パーソナライズ、自然言語処理、コンピュータービジョンなど、さまざまな分野にわたる機械学習主導の製品の開発に10年以上の経験があります。 仕事以外では、彼女は長時間のランニングやサイクリングが好きです。

タイムスタンプ:

より多くの AWS機械学習