Applied AI ServicesのコンポーネントであるAzure Form Recognizerの公式の使用事例を読んでみた。
Azureのアーキパターン事例集はむちゃくちゃ充実している。この記事ではAzure Form Recognizer を使用してドキュメント処理を自動化するを写経していく。
Azure Cognitive Searchについて公式入門を以下の記事で読んだ。
【目次】
- ∨実現することとアーキ図
- ∨データインジェスト
- ∨データエンリッチメント
- ∨分析と可視化
- ∨Azure Well-Architected Frameworkへの適合性
- ∨Azure公式のAI+機械学習事例集
- ∨まとめ
実現することとアーキ図
実現することは以下。領域としては自然言語処理の応用。emailとかSNSデータとか、テキストではあるけれども、上手く抽出しないとタグとか取れてしまうし、共通部分とか後利用で使い所がないので、前処理で必要な部分だけを抜き出したい、というシナリオは現実世界における応用としては割とニーズが多いケースみたい。
自動化されたドキュメント処理パイプラインをビルドするためのスケーラブルで安全なソリューションの概要について説明します。 このソリューションでは、データの構造化された抽出用に Azure Form Recognizer を使用します。 自然言語処理 (NLP) モデルとカスタム モデルは、データをエンリッチします
アーキ図は以下。Form Recognizerを使って構造化されていない”何か”からテキストを抽出する。Azure Cognitive Serviceで抽出したテキストデータをエンリッチした後、indexesし検索可能な状態とする。クライアントアプリケーションからはCognitive Serviceの全文検索、またはベクトル検索が利用可能。
データインジェスト
以降、アーキ図の番号ごとにストーリーが展開されていく。
1.Webアプリケーション経由のインジェスト
これ前にお仕事で考えたw App ServiceにWebアプリをホストして、そこに画像やpdfなどのコンテンツを投げてもらう。コンテンツに対するバリデーションやバックエンドのセキュリティ保護が論点となるが、Webアプリなのでここは完璧にこなせる。UIが自由になるので、既存のシステムに同化して埋め込むことが出来るので良いと思う。Webアプリのバックエンドに送りそこから前処理開始。
2.Form Recognizerとのやりとり
バックエンドはForm RecognizerのRESTful APIにリクエストを送りレスポンスを処理する。
このフェーズでは、コンテンツの認識モデルをカテゴライズしておく必要がある。Azureは「ドキュメント インテリジェンス レイアウト モデル」という認識パターンを用意している。(こういう名前の付け方が良くないんだと思うんだよな。インテリジェンスとか..) モデル毎に用意されたForm RecognizerのRESTful APIにリクエストするイメージかな。
- ドキュメント レイアウト分析
- 請求書モデル
- 領収書モデル
- ID ドキュメント モデル
- 名刺モデル
- 一般的なドキュメント モデル(Preview)
3.バックエンドによるレスポンス値の評価
Form Recognizerのレスポンスには、未加工のデータと、付与したconfidence values(信頼値度)、Customer evaluation(顧客評価)なんか一緒に返ってくるらしい。Form Recognizerが「ちょっと怪しい(信頼値度が低い)」と判定したものについて、こんな風に認識したけどあってます??ってUIに出して、手動でOK/NGを付与するフローが書かれてる。なるほど。。
OKなら結果をCosmosDBにストア。フロントからは後で履歴を確認できるようにする。
4. Blob経由のインジェスト
こちらはより開発工数が少ないパターン。やはりオブジェクトストレージにアップロードしてその先の処理をする、というのがインジェストの王道ではないかと思う。Azure Logic Appsを使ってEmailの添付ファイル(pdf、画像など)を抽出し、Azure Data Factory、AzCopyを使ってBlobに転送する。
5. Blob配置をトリガにForm Recognizerに転送
こちらも説明不要なぐらい王道なやり方。ファイル配置をトリガにAzure Functionsを起動しForm Recognizerに転送する。応答を使ってこんな風に認識したけどあってます??を始める。
6. Blob経由の結果の永続化
こちらも、OKならCosmosDBに結果をストアし、履歴を確認できるようにする。
データエンリッチメント
前段のデータインジェスト結果をCosmosDBから受け取り処理を行う。
1. 固有表現認識(NER)、ドメイン依存エンティティの抽出
来た! NLPの情報抽出と呼ばれる要素技術。言語や文化に依存するところがある。例えば、Webサイトから住所を抽出したい、といった時、その文字列が住所であるかを判定しタグ付けする。その他、人名、組織名、地名、日付、時間表現、数量、金額、パーセンテージ、など、タグ付けする。
太郎は5月18日の朝9時に花子に会いに行った。
<PERSON>太郎</PERSON>は<DATE>5月18日</DATE>の<TIME>朝9時</TIME>に<PERSON>花子</PERSON>に会いに行った。
Azureには、NER、個人情報、キー フレーズ抽出、正常性に関するテキスト分析、プレビュー中のカスタム NER、感情分析、意見マイニングなどのエンリッチメントが用意されている。これらはAzure Cognitive Service for Language APIが担当する。
カスタムモデルによるエンリッチメント
AKS上でAzureMLを動かす図が付いている。1.の既成のエンリッチメントで不足な場合は何でも自由にやれるAzureMLでモデルのトレーニング・推論をさせるケース。Azure MLは過去にかなり使ったことがあるが、オンライン推論、バッチ推論の両方に対応できる。
CosmosDBへ永続化
次段以降に備えて、エンリッチの結果をCosmosDBに保存する。
分析と可視化
なんか急に投げやりになって面白い。構造化されていない生データ、Form Recognizerで抽出したテキスト、エンリッチしたデータなどをCosmosDBから取得して利用する。
このフェースでAzure Cognitive Searchのindexes対象とする。図ではPowerBIによる可視化も示唆されている。
Azure Well-Architected Frameworkへの適合性
Azureクラウドのシステム化で考慮すべき観点一覧。urlはこちら。
読めばわかるのでいったん省略。
Azure公式のAI+機械学習事例集
なんかすごいな。Azure気合入ってると思う。
- ブラウザー情報を分析してセキュリティとアクセシビリティの分析情報を得る
- コンベヤ ベルトに関するリアルタイムの異常検出の実装
- Durable Functions を使用してドキュメントの識別、分類、検索を自動化する
- Azure Form Recognizer を使用してドキュメント処理を自動化する
- 医療フォームを自動化する
- PDF フォーム処理の自動化
- Computer Vision と Azure Machine Learning を使用してビデオ コンテンツを分析する
- ML.NET と Blazor を使用した野球の意思決定分析
- Azure Machine Learning パイプラインを使用したディープ ラーニング モデルのバッチ スコアリング
- Azure での Python モデルのバッチ スコアリング
- R モデルを使用したバッチ スコアリングによる売上の予測
- Azure Databricks での Spark モデルのバッチ スコアリング
- Azure 上のカスタム ドキュメント処理モデル
- ホテル予約用チャットボットの構築
- Power Platform を使用したシチズン AI
- AI と機械学習コンピューティングをオンプレミスとエッジにデプロイする
- 機械学習モデルを複数のデータ ソースにデプロイする
- Azure AI サービスを使用して顧客生涯価値とチャーンを決定する
- Azure でのディープ ラーニング モデルの分散トレーニング
- 機械学習モデルの分散ハイパーパラメーター チューニング
- Azure Machine Learning でのドナーと患者の照合
- エッジ上での製造用エンドツーエンドのコンピューター ビジョン
- エンタープライズ グレードの会話型ボットの作成
- Power Automate と AI Builder を使用したオブジェクトからのテキスト抽出
- Azure でのイメージの分類
- 手術のリスク予測を実装する
- AI 用の Azure 医療ブループリントを実装する
- Spark を使用した Azure での大規模な多数モデルの機械学習 (ML)
- Azure Machine Learning を使用した大規模な多くのモデルの機械学習について説明します。
- Azure Machine Learning を使用した Python モデル用の MLOps
- 機械学習を使用して映画のレコメンデーション システムを構築する
- Azure Cognitive Search を使用してファイル コンテンツとメタデータのインデックスを作成する
- Azure ネットワーク セキュリティを使用して MLOps ソリューションをセキュリティで保護する
- 従来の自動化された機械学習手法を使用して病院の再入院率を予測する
- 学生の帰属を予測する
- 品質保証
- Azure でリアルタイムの機械学習推論とローコード Web アプリケーション UI を使用してアーキテクチャを構築する
- Azure 上でリアルタイム レコメンデーション API を構築する
- Python の機械学習モデルを使用したリアルタイム スコアリング
- R 機械学習モデルを使用したリアルタイム スコアリング
- 規制対象の業界で AI と機械学習のイニシアチブを拡大する
- 規制対象データのリサーチ環境をセキュリティで保護する
- 音声テキスト変換の文字起こしパイプラインを構築して、録音された会話を分析する
- ソーシャル メディア分析ソリューションをビルドしてデプロイする
まとめ
AzureのAIサービスはやたら力が入っていると思う。使用事例を追うだけでもだいぶイメージがつく。この記事では、Applied AI ServicesのコンポーネントであるAzure Form Recognizerの公式の使用事例を読んでみた。