Vertex AI Online Predictionを使用した ONEのレシート情報抽出モデルのサービング
WED株式会社 / thimi0412
EM / データエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
Online Prediction | 10名以下 | 2024年7月 | B to C |
利用機能 | Online Prediction |
---|---|
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2024年7月 |
事業形態 | B to C |
アーキテクチャ
アーキテクチャの意図・工夫
ONEのAPIとOCR、抽出を行うサービスの3つを、gRPCを使用してサービス間で接続して、OCRをするサービスがVertex AIのOnlinePredictionにリクエストを行い推論結果を受けとりONEのAPIにレスポンスを返しています。
旧OCRサーバーも同じクラスタ内のサービスとして存在していたので、0~100%の間で旧OCRサービスと新OCRサービスに対してリクエストを割り振れる設計にして、徐々に新OCRサービスに移行をできるようにしました。
詳しくはこちら: Railsサーバーのリクエスト先を重み付きで振り分けた話
導入の背景・解決したかった問題
導入背景
導入背景
従来のレシート情報の抽出する方法はルールベース(正規表現等)によるレシート情報を抽出を行っていたが、社内で独自に作成&チューニングを行ったLLMのモデルを使用したレシート情報抽出モデルをデプロイし、APIとして使用できるものを探していました。
詳しくはこちら: 国内最高精度のレシートデータを。独自OCR技術の誕生秘話
比較検討したサービス
- Databrick Model Serving
- Amazon SageMaker
選定理由
移行のスケジュールの観点やONEのサービス自体がGCPを元に構築されており、デプロイのフローやTerraformでの環境構築の環境が整っていたので採用しました。
導入の成果
改善したかった課題はどれくらい解決されたか
- ルールベース(正規表現等)での抽出からLLMのモデルを使用した抽出に変えることができ、OCRからレシート情報の抽出を全て置き換えることができた。
詳しくはこちら: LLMを用いたレシート情報抽出を本番導入した話
どのような成果が得られたか
- OCRの精度も向上し、より良いレシートデータを取得することができるようになった。
- デプロイの管理やモデルの切り替えが容易にできる。
導入時の苦労・悩み
GPUを使用するとスケーリングまで時間がかかる
今回はVertex AIのOnline PredictionにLLMのモデルをデプロイしています。GPUを使用しているのでレプリカ1台に対して1台GPUを付けてデプロイを行っています。レシートのOCRが増えるとモデルへのアクセスも増えるのでオートスケーリングの設定をしていますが、GPUを使用しているとスケールするまで10~20分ほどかかってしまします。
レシート買取が始まる時間だとOCRと推論のリクエストが増えるので、事前にAPIを使用してレプリカの数を増やして負荷に対応しています。
アクセス負荷が高まると5XX系のエラーが出る
負荷が高まってくると5XX系のエラーを返すことがあり、レシート情報の抽出が失敗してしまう時があります。なのでサーバー側でVertex AI側にリクエストを送る際にはリトライの設定をして、決められた回数リトライをするように作成しています。
GPUの割り当ての確保
GCPのコンソールから割り当てから確認できますがCustom model serving Nvidia T4 GPUs per region
の値を事前に申請を増やしておかないとスケーリングが失敗してしまいます。
デフォルトの値が14台
だったので14台より多く使用する場合は割り当ての申請を事前に行う必要があります。
詳しくはこちら: Vertex AI Online Predictionを運用してみての話
導入に向けた社内への説明
上長・チームへの説明
- 他の案としてモデルのサービングをGKE上にデプロイしてそこに対してリクエストを送るという案があり、GKEでGPUを使う実績がないことや保守運用の観点からVertex AI Online Predeictionを使用したほうが管理しやすくなるという説明を行なった。
- 今までGPUを使用したサービスがなかったのでそこのコスト感も含めて説明を行った。
活用方法
よく使う機能
- Vertex AI Online Prediction
- モデルのデプロイに使用
- Vertex AI Model Registry
- デプロイされるモデルのVersion管理
ツールの良い点
- モデルのデプロイやスケーリングが容易に行える
- メトリクスやレプリカ数の確認が容易
ツールの課題点
- GPUを使用すると制約がある
- ドキュメントが整備されていない
- モデルの環境依存があるので注意
ツールを検討されている方へ
手軽にモデルをデプロイできる点がいい点なのでまずは試しにデプロイをしてみることをお勧めします。使用するモデルや環境、GPUでエラーやデプロイの仕方も変わってくると思います。
今後の展望
まだAPIとしては存在するがUI側が追いついていない点やオートスケーリング等の設定がより柔軟に行えるようになることを期待しています。
WED株式会社 / thimi0412
EM / データエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
よく見られているレビュー
WED株式会社 / thimi0412
EM / データエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法