Slide 1

Slide 1 text

Sansan株式会社 部署 名前 Sansan株式会社 技術本部 研究開発部 齋藤 慎⼀朗 Large Vision Language Modelを⽤いた ⽂書画像データ化作業⾃動化の検証、運⽤ 渋谷 Biz × AI:ビジネスにおける AI 利活用 事例勉強会 第3回

Slide 2

Slide 2 text

- 契約書、ニュースからの情報抽出 - 趣味 - ランニング(10/26に横浜マラソンでフルに初挑戦します。) - Kaggle(Notebooks Master, Competitions Expert) - 最近 - LLM、LVLMの検証やリリースに取り組めて仕事楽しい! 齋藤 慎⼀朗 Sansan株式会社 技術本部 研究開発部 シニアリサーチャー @sinchir0 X(旧Twitter)

Slide 3

Slide 3 text

- 皆さんが抱きそうな疑問とその対策を、 今回のプロジェクトを経た経験を踏まえて紹介します。最後に改めて説明します。 - 該当する箇所がきたら、次のようなアイコンで⽰します。 問題 対策 レスポンスが遅くて、 うちのプロダクトだと使えないよ... - 自身がシステム設計に入り、リクエストとレスポンスの 間の時間を稼ぐ。 - 高速化の技術を使う(Flash Attention, vLLM)。 GPUの運用費用が高すぎて、 うちだと割に合わないよ... - 導入した際の価値(=A)を試算する。 - 運用時のコスト(=B)を試算する。 - A - Bを計算し、メリットが出るようタスクを設計する。 Large Vision Language Model(LVLM)運⽤の際にありそうな課題とその対策 GPU運⽤費⽤ の悩みの解決策 レスポンス の悩みの解決策

Slide 4

Slide 4 text

Sansan株式会社は、名刺交換を通じてつながった相⼿の異動情報を⾃動でお届けし、 ユーザーが連絡を取るべき最適なタイミングに気付けるよう⽀援するサービスを提供している。 背景 「Sansan」サービスにて異動情報を伝える画⾯の例

Slide 5

Slide 5 text

本サービスは、主にPDFにて発表される⼈事異動情報を ⾼い精度でデータ化することで実現している。 背景 ⼈事異動に関するお知らせ ⼈事異動(2025年4⽉1⽇付) 各位 当社は、取締役会にて、次の通りの⼈事異動を決 議致しましたのでお知らせいたします。 氏名 新役職 旧役職 やまだ たろう 山田 太郎 研究開発部 部長 研究開発部 副部長 ⼈事異動(2025年5⽉1⽇付) 氏名 新役職 旧役職 さとう じろう 佐藤次郎 データ部 部長 兼 エンジニア部 顧問 データ部 部長 PDFで発表される⼈事異動情報のイメージ

Slide 6

Slide 6 text

背景 - データ化は、2マッチ⽅式で実施される。 - 異なる⼈が、同じデータに対して2回⼊⼒を⾏う。 - 2回の⼊⼒結果が⼀致した結果が、ユーザーに提供される。2回の⼊⼒結果がずれ た場合は、⼈による最終チェックを⾏い、提供される。 ⼊⼒1(⼈間) ⼊⼒2(⼈間) ⼊⼒1と2がずれた場合、確認 データ化結果 ⼭⽥ ⼭⽥ - ⼭⽥ 太郎 次郎 太郎 太郎 データ化の流れの例

Slide 7

Slide 7 text

課題 - 従来、本データ化作業は複雑であり、その多くを⼈⼿で⾏っていた。 - 汎⽤的な⽣成AIを⽤いた⾃動化も⾏われているが、その精度は⼀定ラインで留まり、 活⽤範囲が限定されていた。

Slide 8

Slide 8 text

シンプルなデータの例 { "発令⽇":"2025-04-01", "姓":"⼭⽥", "名":"太郎", "会社名": "Yonyon株式会社", "姓(ふりがな)": "やまだ", "名(ふりがな)": "たろう", "新役職":"研究開発部 部⻑", "旧役職":"研究開発部 副部⻑" } 課題 ⼈事異動に関するお知らせ ⼈事異動(2025年4⽉1⽇付) 各位 当社は、取締役会にて、次の通りの⼈事異動を決 議致しましたのでお知らせいたします。 氏名 新役職 旧役職 やまだ たろう 山田 太郎 研究開発部 部長 研究開発部 副部長 会社名 Yonyon株式会社 代表者名 ⽥中太郎

Slide 9

Slide 9 text

複雑なデータの例1 - 情報が構造化されず、テキストで記載される。 どのテキストがどの項⽬に該当するかが不明確である。 { "発令⽇":"2025-04-01", "姓":"⽥中", "名":"太郎", "会社名": "Yonyonシステムズ株式会社", "姓(ふりがな)": "", "名(ふりがな)": "", "新役職":"監査役", "旧役職":"取締役" } 課題 ⼈事異動に関するお知らせ 各位 新⼈監査役【2025年4⽉1⽇付 ()は現職】 ⽥中 太郎(Yonyonシステムズ株式会社 取締役)※ ※ 2025年3⽉31⽇付にて、Yonyonシステムズ株式会社 取締役を退任 会社名 Yonyon株式会社 当社は、株主総会にて、監査役の異動について下 記の通り決議致しましたのでお知らせいたします。

Slide 10

Slide 10 text

{ "発令⽇":"2025-04-01", "姓":"佐藤", "名":"次郎", "会社名": "Yonyon株式会社", "姓(ふりがな)": "さとう", "名(ふりがな)": "じろう", "新役職":"データ部 部⻑ 兼 エンジニア部 顧問", "旧役職":"" } 課題 ⼈事異動に関するお知らせ 各位 複雑なデータの例2 - ⼈事異動の対象が、例えば下線部など、別の条件で限定される。 表の中のどこがデータ化対象かの判断が難しい。 ⼈事異動【下線部: 変更箇所】 当社は、取締役会にて、次の通りの⼈事異動を決 議致しましたのでお知らせいたします。 氏名 役職名 やまだ たろう 山田 太郎 研究開発部 部長 さとう じろう 佐藤次郎 データ部 部長 兼 エンジニア部 顧問

Slide 11

Slide 11 text

⼊⼒1(⼈間) ⼊⼒2(⼈間) ⼊⼒1と2がずれた場合、確認 データ化結果 ⼭⽥ ⼭⽥ - ⼭⽥ 太郎 次郎 太郎 太郎 - 2マッチ⽅式の2つの⼊⼒のうち、1つの⼊⼒を機械に代替させる。 - ⾼い精度で機械の⼊⼒を⾏うために、LVLMに対し、⼤量の正解データを学習させる。 ⼿法 従来 新規 ⼊⼒1(機械) ⼊⼒2(⼈間) ⼊⼒1と2がずれた場合、確認 データ化結果 ⼭⽥ ⼭⽥ - ⼭⽥ 太郎 次郎 太郎 太郎

Slide 12

Slide 12 text

1. 精度要件の決定 -> モデル単体の精度が90.0%以上 2. モデルの選定 -> Qwen2.5-VL-7B-Instruct 3. 運⽤環境の決定 4. コストメリットがあるかどうかの試算 5. 性能検証 -> 従来よりも約10%pt改善 6. ⾼速化の実施 7. 開発 8. 作業時間削減の検証 -> 30%削減 9. リリース、運⽤ -> 嬉しいFeedbackをもらった、継続した改善が必要である プロジェクトの進め⽅ 時間の関係で⼀部だけ話します。

Slide 13

Slide 13 text

1. 精度要件の決定 -> モデル単体の精度が90.0%以上 2. モデルの選定 -> Qwen2.5-VL-7B-Instruct 3. 運⽤環境の決定 4. コストメリットがあるかどうかの試算 5. 性能検証 -> 従来よりも約10%pt改善 6. ⾼速化の実施 7. 開発 8. 作業時間削減の検証 -> 30%削減 9. リリース、運⽤ -> 嬉しいFeedbackをもらった、継続した改善が必要である プロジェクトの進め⽅ 時間の関係で⼀部だけ話します。

Slide 14

Slide 14 text

まず、GPUインスタンスをAWS g5.xlarge(メモリ 24GB)と仮決めした。 次に想定される⼊⼒量に対して、OOMせずに推論が可能なことを確認した。 運⽤環境の決定 Flash Attention 2 + 量⼦化でVLLMはどこまで軽くなる?ローカル運⽤に向けた画像枚数とメモリ使⽤量の検証 より引⽤ 想定 GPU運⽤費⽤ の悩みの解決策

Slide 15

Slide 15 text

1. 精度要件の決定 -> モデル単体の精度が90.0%以上 2. モデルの選定 -> Qwen2.5-VL-7B-Instruct 3. 運⽤環境の決定 4. コストメリットがあるかどうかの試算 5. 性能検証 -> 従来よりも約10%pt改善 6. ⾼速化の実施 7. 開発 8. 作業時間削減の検証 -> 30%削減 9. リリース、運⽤ -> 嬉しいFeedbackをもらった、継続した改善が必要である プロジェクトの進め⽅ 時間の関係で⼀部だけ話します。

Slide 16

Slide 16 text

- 現在の作業に必要な費⽤は、約X万円/年である。 - 作業を約半分にできれば、Y万円/年のコスト削減に繋がる。 - 想定の運⽤環境であるg5.xlargeをオンデマンドインスタンスで利⽤した場合、 コストは約120万/年である。常時稼働は必要ないため、より安くできる。 - よって、(Y - 120) /年程度のコストメリットが⾒込める。 これは⼗分⼤きい数字であるため、取り組む意味があると判断した。 コストメリットがあるかどうかの試算 GPU運⽤費⽤ の悩みの解決策

Slide 17

Slide 17 text

1. 精度要件の決定 -> モデル単体の精度が90.0%以上 2. モデルの選定 -> Qwen2.5-VL-7B-Instruct 3. 運⽤環境の決定 4. コストメリットがあるかどうかの試算 5. 性能検証 -> 従来よりも約10%pt改善 6. ⾼速化の実施 7. 開発 8. 作業時間削減の検証 -> 30%削減 9. リリース、運⽤ -> 嬉しいFeedbackをもらった、継続した改善が必要である プロジェクトの進め⽅ 時間の関係で一部だけ話します。

Slide 18

Slide 18 text

- vLLM、量⼦化による⾼速化の検証を⾏った。 - vLLMを利⽤し、量⼦化を⾏わない場合が最も⾼速だった。 - これは、検証したGPU環境である g6.xlargeがInt8やInt4ではなく、Float16の計算に最適化さ れていることが原因だと考える。 ⾼速化の実施 ⼿法 レイテンシ(秒 / データ)↓ スコア↑ ベースライン(KV Cache + Flash Attention) 18.24s 0.961 vLLM 2.35s 0.963 vLLM (AWQ 4bit 量⼦化) 4.41s 0.952 vLLM, 量⼦化によるレイテンシの違い ※ バッチ処理で検証したが、本番はオンライン処理であり、検証よりもレイテンシが遅い。約5(秒 / データ)である。 レスポンス の悩みの解決策

Slide 19

Slide 19 text

- インスタンスの違いによる⾼速化の検証を⾏った。 - g5.xlargeが最も⾼速だった。 - これは、g6.xlargeよりもg5.xlargeの⽅がメモリ帯域幅が⼤きいことに起因していると 考える。 ⾼速化の実施 ⼿法 メモリ(GB) レイテンシ(秒 / データ)↓ スコア↑ vLLM, g6.xlarge 24 2.35s 0.963 vLLM, g5.xlarge 24 1.60s 0.961 インスタンスによるレイテンシの違い レスポンス の悩みの解決策

Slide 20

Slide 20 text

1. 精度要件の決定 -> モデル単体の精度が90.0%以上 2. モデルの選定 -> Qwen2.5-VL-7B-Instruct 3. 運⽤環境の決定 4. コストメリットがあるかどうかの試算 5. 性能検証 -> 従来よりも約10%pt改善 6. ⾼速化の実施 7. 開発 8. 作業時間削減の検証 -> 30%削減 9. リリース、運⽤ -> 嬉しいFeedbackをもらった、継続した改善が必要である プロジェクトの進め方 時間の関係で⼀部だけ話します。

Slide 21

Slide 21 text

リクエストを⾮同期で処理するために、次のシーケンス図に⽰す構成とした。 開発 データ化結果 データ化結果取得 リクエスト SQS ⼈事異動データ化システム SQS Worker LVLM API(vLLM) 処理 S3 k8s データ化 リクエスト メッセージ リクエスト データ化結果 データ化結果をJSON ファイルで保存 最⼤1時間待機 レスポンス の悩みの解決策 レスポンス の悩みの解決策

Slide 22

Slide 22 text

問題 対策 レスポンスが遅くて、 うちのプロダクトだと使えないよ... - システム設計のタイミングから⼊り、 リクエストとレスポンスの間の時間を稼ぐ。 - ⾼速化の技術を使う(Flash Attention, vLLM) GPUの運⽤費⽤が⾼すぎて、 うちだと割に合わないよ - 導⼊した際の価値を試算する。(A) - 運⽤時のコストを試算する。(B) - A - Bを計算し、メリットが出るようタスクを設計する。 今回のPJで学んだ知⾒まとめ LVLM運⽤の際にありそうな課題とその対策(再掲) 最後は、LVLMを使いたいという気合い💪

Slide 23

Slide 23 text

Sansan 技術本部 募集ポジション紹介 https://media.sansan-engineering.com/

Slide 24

Slide 24 text

No content