Slide 1

Slide 1 text

契約書画像からの情報抽出に特化した 視覚接地モデルを育てる話 Sansan株式会社 技術本部 研究開発部 Data Analysisグループ 研究員 ⼭内 敏嗣

Slide 2

Slide 2 text

⼭内 敏嗣(Satoshi Yamauchi) Sansan 株式会社 技術本部 研究開発部 Data Analysisグループ 研究員 京都⼤学⼤学院⼯学研究科電気⼯学専攻修⼠課程修了。 在学中は制御理論研究に取り組む。⾃動⾞メーカーでの品質保証業務を 経た後、制御システムベンダーでベイズ統計や機械学習を活⽤したモデル 予測制御システム内で⽤いる予測モデルの⾃動更新技術の研究開発に従事。 現在は契約書データ化のためのVLMの研究開発やチームリーダーを務める。

Slide 3

Slide 3 text

アジェンダ - 背景 - Contract Oneとデータ化 - データ化フローと運⽤しているモデル - 内製視覚接地モデルCelloについて - 課題:Cello を育てるための矩形データがない - 矩形データを作るための施策 - 施策① Viola の attention スコアの活⽤ - 施策② Cello⾃⾝の⽣成矩形の活⽤

Slide 4

Slide 4 text

この発表で伝えたいこと - 視覚接地モデル(Visual Grounding Model)学習のための、⼈⼿アノテー ションの矩形データを⼤量に作れなくても、⾃動で作成するために、他の モデルの出⼒(VQAモデルやOCRモデル)や⾃⾝の出⼒矩形を活⽤するこ とができる。 - 内製の視覚接地モデルを育てるために試⾏錯誤していることを紹介する。

Slide 5

Slide 5 text

背景:Contract One とデータ化 - Sansanは、契約AXサービス「 Contract One」を提供している。 - Contract Oneは、契約書をアップロードするだけで、契約書を⾼い精度で データ化し、契約データベースを構築できるサービスである。 - データ化:契約書から、タイトル・契約相⼿・締結⽇・有効期間といった ⼀般的な契約管理のために重要な9項⽬を抽出する。 抽出結果 タイトル:委託契約書 契約相⼿:Sansan株式会社, Yonyon株式会社 有効期間:2024年4⽉1⽇~2025年3⽉31⽇ ・・・

Slide 6

Slide 6 text

背景:データ化フローと運⽤しているモデル 以下のモデルが導⼊されている。(*) • Viola:フルスクラッチで事前学習し、VQAタスクでFTした内製VLM • Cello:フルスクラッチで事前学習し、Visual GroundingタスクでFTした内製 VLM *他に、オープンウェイトモデルをVQAタスクでFTしたLalamoというモデルも運⽤している。

Slide 7

Slide 7 text

背景:ViolaとCelloの違い

Slide 8

Slide 8 text

背景:なぜCelloが必要なのか? - Celloによる⾼精度な視覚接地が実現できると、VQAモデルでは実現できなか った以下の機能が実現できる。 ① 推論根拠が記載されている ページの特定。 契約相⼿は? 契約書 ② 根拠矩形をオペレータ向けの ハイライト機能として提供。 ③ OCR 校正による精度向上。 Sansan株式会社 契約相⼿は? 契約書 > Nine OCR(内製 OCR )との 連携(右図)を⽬指せる。 Sansan株式会社

Slide 9

Slide 9 text

背景:Cello開発のこれまで - 経済産業省・NEDO の国家プロジェクト GENIAC (*)の基盤モデル開発 事業 第3期に採択され、事前学習まで完了した。 - GENIACでFTも実施していたが、契約書ドメインでは前述の3機能全てを 実現できる精度には⾄っていない。 - そこでGENIAC第3期完了後の現在も更なる精度改善を⾏なっている。 GENIAC 第3期 事前学習 現在 契約書ドメインFT 3機能全てリリース Phase * GENIAC(Generative AI Accelerator Challenge) 主に⽣成AIのコア技術である基盤モデルの開発に対する計算資源の提供や、データやAIの利活⽤に 向けた実証調査の⽀援等を実施するプロジェクト。(URL: https://geniac.meti.go.jp/)

Slide 10

Slide 10 text

課題:Cello を育てるための矩形教師データがない - 学習には(⽂書画像, 質問テキスト, 回答テキスト, 矩形)が必要となる。 回答テキストはオペレータタスクなのでデータが溜まる。 - ⼀⽅、矩形作成はContract Oneのオペレータタスクになっておらず、追加 タスクにするにしてもアノテーションコストが⼤きくスケールしづらい。 - ⾃動で作る⼿段として OCR+ルールベースがあるが、以下の⽋点がある。 - 同じ⽂字列が複数箇所に現れ、どれが根拠か判定することが難しい。 - 項⽬によっては納品結果の⽂字列がそのまま書かれておらず、ルールベース も作りづらい。

Slide 11

Slide 11 text

検証している2つの施策 - 施策①:Viola の attention スコアの活⽤ - 既存モデルの内部情報を教師にする - 施策②:Cello⾃⾝の⽣成矩形の活⽤ - Reward rAnked Fine Tuning

Slide 12

Slide 12 text

施策①:Viola の attention 活⽤の検討 - Violaが⾼精度で項⽬⽂字列を抽出できるため、その内部情報を活⽤できないかと考えた。 - Violaのattentionを確認すると、根拠⽂字列の位置でスコアが⾼くなる傾向があることがわかった。 - 以下の図は、契約関係者のとある1⽂字を⽣成する際のヒートマップ。

Slide 13

Slide 13 text

施策①:Violaのattention を⽤いた矩形データの作り⽅ - attentionの特性を活かし、より信頼できる矩形のみを選択する。 質問:締結⽇は? 回答:2024年4⽉1⽇ 画像: OCR + ルールベース Viola attentionが最⼤の画像パッチに 最も近い矩形のみを採⽤する。

Slide 14

Slide 14 text

施策①:矩形に現れた変化 - 8ページ以下の契約書約6 万件で本⼿法で学習し、 矩形にどのような変化が あるか定性評価した。 - 契約締結⽇の矩形が妥当 な位置に変わっている。 - これまで付いていなかっ た、⾃動更新条項や有効 期間の矩形が粗くとも付 くようになっている。 適⽤前 適⽤後

Slide 15

Slide 15 text

施策②:Cello⾃⾝の⽣成矩形の活⽤ - Cello ⾃らサンプリングして学習データを作る⼿法も施策として考えた。 - 矩形が妥当かどうかは Viola を使って判定できる可能性がある。 - まずRLを考えたが、Celloは独⾃アーキテクチャのため既存のRLライブラ リを流⽤できず、実装・検証のコストが⼤きいと考えた。 - ⼀⽅、Reward rAnked Fine Tuning (RAFT) [Dong et al, 2023]という⼿法 は導⼊が容易で、今回のケースと相性が良いと考えた。 - パイプライン(次スライド)にSFTを組み込むのみなので、既存の学習コード を流⽤できる。 Dong et al, RAFT: Reward rAnked FineTuning for Generative Foundation Model Alignment, 2023

Slide 16

Slide 16 text

施策②: Reward rAnked Fine Tuning (RAFT) - 以下のサイクルをひたすら繰り返す⼿法。それぞれデータセットの かたまり単位で処理される。 Sample Select 現在のモデルで候補⽣成 ⼊⼒:𝑥 モデル 𝑝!!"# 𝑦|𝑥 最⼤報酬サンプルのみ採⽤する。 𝑦" FT⽤データ 𝑖 = arg max 𝑟 𝑥, 𝑦 ⋮ $%& ' ' 𝑥, 𝑦'$%& 𝑦# 候補 𝑦" ⋮ 𝑦# Train 選定済みデータでFTし、モデルを更新する 𝑥, 𝑦'$%& FT 新モデル 𝑝!'() Trainが他のフェーズと分離 しているため、既存の学習 コードを流⽤できる。

Slide 17

Slide 17 text

式から解釈するSFT / RL / RAFT の違い 最⼤化したい⽬的関数 勾配(簡単のため符号は省略) SFT 𝐸 (,* ∼, log 𝑝! 𝑦|𝑥 𝐸 (,* ∼, ∇! log 𝑝! 𝑦|𝑥 RL (⽅策勾配法) 𝐸(∼, 𝐸*∼-* *|( 𝑟 𝑥, 𝑦 𝐸(∼, 𝐸*∼-* *|( 𝑟 𝑥, 𝑦 ∇! log 𝑝! 𝑦|𝑥 RAFT 𝐸(∼, 𝐸*∼-* +,- *|( 𝑓 𝑟 𝑥, 𝑦 log 𝑝! 𝑦|𝑥 𝐸(∼, 𝐸*∼-* +,- *|( 𝑓 𝑟 𝑥, 𝑦 ∇! log 𝑝! 𝑦|𝑥 𝑓: ℝ → 0, 1 は報酬から2値化する処理 • SFTは⼊出⼒ 𝑥, 𝑦 が所与で、サンプルごとの勾配は1で重み付けされている。 • RLは所与なのは⼊⼒𝑥のみで、モデル⾃⾝の出⼒で学習する代わりに、サンプルごとの勾配を報酬で 重み付けする。 • RAFTは⼊⼒𝑥が所与でモデル⾃⾝の出⼒で学習するが、サンプルごとの勾配を報酬に基づいて バイナリ化(つまり採⽤/棄却)した値で重み付けする。

Slide 18

Slide 18 text

今回⽤いた選定⼿法 推論矩形を⽤いて 2つの画像を作成 画像1 それぞれで推論 (該当箇所をマスク) 委託契約書 Viola 委託契約書 ― (ブランク) 抽出根拠がないので 何も答えられないこ とを期待。 画像2 (該当箇所以外をマスク) 委託契約書 元の画像 + 推論矩形 Viola 最低限抽出根拠があ れば正しく回答でき 委託契約書 (正解⽂字列) ることを期待。 以下の優先順位で選定する。 ① 画像1の推論結果がブランク and 画像2の推論結果が正解⽂字列の中で、矩形⾯積がより⼩さい。 ② ①を満たすものがない場合、画像1でブランクを想定としたloss+画像2で正解⽂字列を想定したlossが⼩さい。

Slide 19

Slide 19 text

施策②:実験設定 - 施策①で作ったモデルをベースとして、8ページ以下の契約書約1万件で本⼿法で 学習し、矩形の変化を定性評価した。 - RAFTの設定 - Iteration数:3回 - 項⽬ごとのsample数K(難しい項⽬は多くした) > タイトル、契約相⼿、締結⽇、⾦額:3 > 有効期間および⾃動更新条項:8 - 各iterationでの学習step数(うまくいっているか様⼦を⾒つつ増やすことにした) > 1iteration⽬:15000回 > 2iteration⽬:25000回 > 3iteration⽬:46421回

Slide 20

Slide 20 text

施策②:矩形に現れた変化 - 有効期間条項の⾒当違い な矩形が低減されている 事例が確認できた。 - ⼀⽅で、右の図の契約締 結⽇のように、正しく抽 出できなくなっている項 ⽬も⼀部観測された。 適⽤前 適⽤後

Slide 21

Slide 21 text

定量評価 - 4ページ以下の契約書20件にCelloの推論矩形を描画し、⽬視で正しく矩形 が付与できた件数をカウントした。表の各要素は正解率(正解件数)を表す。 - 改善している項⽬が多いが、⼀部の項⽬で正解率の低下が確認された。 条件 タイトル 締結⽇ 契約相⼿ ⾦額 有効期間(*) ⾃動更新(*) 施策なし(base model) 0.90 (18) 0.85 (17) 0.65 (13) 0.90 (18) ー ー + 施策①(attention活⽤) 0.95 (19) 0.95 (19) 0.65 (13) 0.85 (17) 0.50 (10) 0.95 (19) + 施策②(RAFT) 0.95 (19) 1.00 (20) 0.80 (16) 0.80 (16) 0.50 (10) 0.85 (17) (*) base modelが未学習の項⽬なので評価できない

Slide 22

Slide 22 text

残っている課題 - 各施策で改善している項⽬もあれば悪化する項⽬も⼀部確認されたので、 その原因解析と、各⼿法の得意・不得意を考慮した、より良い組み合わせ ⽅を確⽴すること。 - より多様な矩形サンプルを⽣成できるようなサンプリング⼿法を 検討すること。 - データ化パイプラインに組み込んだ最終KPIでの評価はできるが、モデル 単体での矩形の精度の評価がまだやりにくいため、確⽴すること。

Slide 23

Slide 23 text

まとめ - 内製の視覚接地モデルCelloを育てるために、⾃動で矩形データを作成す る以下の⼿法を検討した。 - 施策①:Viola の attention スコアを活⽤した矩形選択 > OCR+ルールベースで発⽣する誤った矩形の除去に有効であることがわかった。 > 納品結果と⽂書中の表記が⼤きく異なり矩形を作りにくい項⽬も、多少粗くとも 矩形データが作れることがわかった。 - 施策②:Cello⾃⾝の⽣成矩形を活⽤したRAFT > 有効期間条項のような施策①で粗く出⼒できるようになった矩形をより対象条項 に沿うように調整することに有効である⽰唆を得た。 > 契約相⼿のような難しい項⽬でも矩形の精度改善への有効である⽰唆を得た。

Slide 24

Slide 24 text

Sansan 技術本部 採⽤情報 https://media.sansan-engineering.com/