Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バクラクのAI-OCR機能を支えるアノテーションの仕組み

Tomoaki
September 20, 2023

 バクラクのAI-OCR機能を支えるアノテーションの仕組み

2021年のプロダクトリリースから約2年半、導入者数は6000社を突破しデータ数も急速に増える中、AI-OCR機能の精度を担保をするために様々な取り組みをしてきました。今回はデータのアノテーションという観点でリリース前から現在までの取り組みの変遷を紹介します。

Tomoaki

September 20, 2023
Tweet

More Decks by Tomoaki

Other Decks in Technology

Transcript

  1. © 2023 LayerX Inc. 3 3 自己紹介 画像を入れてね 北岡 知晃(Tomoaki

    Kitaoka) 2019年〜現在 株式会社LayerX バクラク事業部 • MLチーム Software Engineer • バクラクのリリース初期から AI-OCR機能の開発 趣味 • 運動(クロスフィット・ウエイトリフティング) • ソーイング @tapioca_pudd
  2. © 2023 LayerX Inc. 5 * 資本準備金含む ** 全事業含む 会社名    

    代表取締役  創業      資本金* 拠点 関連会社 取得認証 | 株式会社LayerX(レイヤーエックス) | 代表取締役CEO 福島 良典    代表取締役CTO 松本 勇気 | 2018年 | 112.6億円 | バクラク事業、Fintech事業、Privacy Tech事業 | 東京本社・中部支社・関西支社・九州支社 | 三井物産デジタル・アセットマネジメント   三井物産、LayerX、三井住友信託銀行、SMBC日興証券、JA三井リースによる合弁会社 | 情報セキュリティマネジメントシステム、      JIIMA認証 提供プロダクト IS 747702 / ISO 27001 次世代プライバシー保護/秘匿化技術 国土交通省の「不動産情報の更なる 利活用に向けた調査・検証業務」における プライバシー保護技術検証も受託 バクラク事業 企業活動のインフラとなる 法人支出管理( BSM)SaaSを 開発・提供 Fintech事業 三井物産/三井住友信託銀行等との 合弁会社にて証券事業を展開 デジタル証券で資産運用できるサービス 「ALTERNA」を提供 Privacy Tech事業 LayerXの概要
  3. © LayerX Inc. 7 バクラクシリーズとは 支出管理業務を一元管理できる経理業務支援サービス ワークフローから支払までの業務を一本化し、業務効率化と法令対応の両立を実現 請求書の発行と受取 のツールを統一。 発送もカンタン。

    「請求書支払」「経費 精算」「カード支払」の 手間を効率化。振込 データも自動作成。 一度登録された仕訳 データを学習して自 動入力。 電子帳簿保存法に対 応し、電子上で保管が 可能。紙の管理の手 間を削減。 請求 支払い 仕訳 保管 ワークフローと各種 支払いツールを連携 し、内部統制を強化。 ワークフロー
  4. © LayerX Inc. 8 バクラクシリーズラインナップ 稟議・支払申請・経費精算 仕訳・支払処理効率化 法人カードの発行・管理 帳票保存・ストレージ 帳票発行

    * 経費精算のSlack連携は申請内容の通知のみ ・AIが領収書を5秒でデータ化 ・スマホアプリとSlack連携あり ・領収書の重複申請などミス防止機能 ・AIが請求書を5秒でデータ化 ・仕訳・振込データを自動作成 ・稟議から会計までスムーズに連携 ・年会費無料で何枚でも発行可 ・インボイス制度・電帳法対応 ・すべての決済で1%以上の還元 ・AIが書類を5秒でデータ化 ・あらゆる書類の電子保管に対応 ・電子取引・スキャナ保存に完全対応 ・帳票の一括作成も個別作成も自由自在 ・帳票の作成・稟議・送付・保存を一本化 ・レイアウトや項目のカスタマイズも可能
  5. © LayerX Inc. 9 仕訳データ 振込データ ⼊⾦データ 取引先 発注 請求

    発注 請求 債権管理 債務管理 従業員 経理 バクラクは、企業取引の前段となる「稟議の統⼀」と「債権‧債務の⼀元管理」が可能 従業員‧経理のそれぞれが係る業務領域において、なめらかな業務連携により企業経営を加速させます ※ 開発予定の機能を含む 銀⾏ 会計ソフト 請求書 処理 経費精算 振込 稟議 法⼈ カード 請求書 発⾏ 稟議 (※) 仕訳 (※) ⼊⾦消込 (※) 仕訳 バクラクシリーズの全体像
  6. © LayerX Inc. 10 シリーズ累計導入社数 6,000社以上 卸売・小売 士業事務所 非営利法人 製造

    不動産・物品賃貸 情報通信 建設・運輸 施設・店舗運営 金融・保険 製造 建設・運輸 卸売・小売 不動産・物品賃貸 施設・店舗運営 士業事務所 情報通信 金融・保険 非営利法人 ※一部企業様を抜粋して掲載しています(2023年5月時点)。
  7. © 2023 LayerX Inc. 12 解決したい課題 • 請求書に記入されている項目(支払期日や支払金 額、取引先名など)を目視で確認して、ミスなく入 力・管理することはとても負荷の高い仕事

    ◦ 対応する枚数が数十、数百枚と増えるにつ れてミスが起こりやすい ◦ 帳票のフォーマットが多種に渡り読み取る ことが単純に大変 ◦ ミスは許されないためダブルチェック等確 認作業にもコストがかかってしまう 受けとった請求書を手入力でデータ化するという負荷の大きい作業をバクラクにする
  8. © 2023 LayerX Inc. 14 AI-OCR機能の入力と出力 請求書ファイル (画像・PDF) 請求書に記載の 項目ごとの値

    500,000 2021/02/28 株式会社テンプレ 支払期日 支払金額 取引先名 請求書ファイルを入力し、請求書に記載の必要項目ごとの値を出力してユーザーに提示
  9. © 2023 LayerX Inc. 15 AI-OCR機能で解いているタスク 請求書ファイル (画像・PDF) 請求書に記載の 項目ごとの値

    { “bbox”: [{"x": 0.3421, "y": 0.567},...], "word": “2021/2/28” },... 請求書内の 文字と座標 項目推定 文字検出 文字認識 500,000 2021/02/28 株式会社テンプレ 支払期日 支払金額 取引先名 「文字検出・文字認識」と「項目推定」のタスクに分解
  10. © 2023 LayerX Inc. 17 AI-OCR機能の実現方法 請求書ファイルの アップロード (画像・PDF) 請求書に記載の

    項目ごとの値を 推定する { “bbox”: [{"x": 0.3421, "y": 0.567},...], "word": “2021/2/28” },... 外部APIを使用して 請求書内の 文字と座標を取得 500,000 2021/02/28 株式会社テンプレ 支払期日 支払金額 取引先名 文字検出を行ってから項目推定を行う二段階で推定 1 2 3 文字検出 項目推定
  11. © 2023 LayerX Inc. 18 リリース初期の項目推定(ルールベースのモデル) • ドメイン知識を駆使してルールベースで愚直に実装していた。 ◦ スピード感が求められるスタートアップにおいては正しい。

    • 一箇所変更するとこれまで読み取れていたものが読み取れなくなったりとルールが複雑化。 • 職人芸のような作業であり、特に新しく入ったエンジニアは改修が難しく属人化してしまう。 「請求日」の右側に 日付があったら請求日 「合計金額」の右側に 金額があったら支払金額 辛い
  12. © 2023 LayerX Inc. 19 直近の項目推定(機械学習ベースのモデル) • 多様なフォーマットの書類に順応するために機械学習ベースのモデルを開発 • RoBERTa,

    LayoutLM系のモデルを検討 • 2022/04にキックオフし、2022/10から機械学習ベースのモデルに順次移行 LayerXにおける機械学習を活用した OCR機能の改善に関 する取り組み https://arxiv.org/pdf/1810.04805
  13. © 2023 LayerX Inc. 23 「ユーザーが採用した値」を正解データとする上での問題 ルールベースOCR 必ずしも「ユーザーが採用した値」が「請求書に記載の値」に一致するとは限らない OCRが 読み取った値

    必要に応じて ユーザーが修正 ユーザーに表示 ユーザーが 採用した値 正解データとして利用できそう! 請求書に記載の値 真の正解データ
  14. © 2023 LayerX Inc. 24 顧客が真に求めている出力(ユーザーが採用する値) ケース1 支払期日として2021年2月28日(日)を検出 顧客「実際に支払うのは平日の26日(金)だから変更しないと!」 ケース2

    支払金額として500,000円を検出 顧客「実際に支払うのは源泉税10.21%を差し引いた448,950円だから変更しないと!」 ユーザーが本当に欲しいのは「請求書に記載の値」ではなく「実際の運用に即した値」
  15. © 2023 LayerX Inc. 27 リリース前〜初期:スプレッドシートフル活用 2021/01 2021/04 2021/11 2022/05

    2022/08 2023.09 • 事業が存続するかもわからない、データセットもゼロからのスタート • MVP作成のために最初はスプレッドシートにてアノテーションを行った • 体制はエンジニア中心 (2~3名)
  16. © 2023 LayerX Inc. 28 リリース前〜初期:スプレッドシートフル活用 • 良かったこと ◦ 素早く構築できた

    ◦ リグレッションテストもデータセットを csvで出力してS3にセットすることで高速に構築 ◦ 簡単な分析(集計やご検知の分析など)やグラフの作成が容易だった ◦ エンジニアがアノテーションもすることで同時にドメイン知識を獲得することができた • 問題点 ◦ ファイルを別でプレビューして照らし合わせるのが大変 ◦ ローカルにファイルを落とす作業があり、セキュリティ的に懸念あり ◦ 件数が増えてくると分析内容の管理が大変になる
  17. © 2023 LayerX Inc. 29 リリース1年目〜2年目: アノテーション基盤の内製(v1) 2021/01 2021/04 2021/11

    2022/05 2022/08 2023.09 • ファイルをプレビューしながらアノテーショ ンできるシステムを構築 • ファイルに対してメモやタグをつける機能 を搭載 • 体制は専任のアノテーター 1名 + エンジニ アが不定期が参加 • まだルールベースのモデルが中心
  18. © 2023 LayerX Inc. 30 リリース1年目〜2年目: アノテーション基盤の内製(v1) • 良かったこと ◦

    スプレッドシートの問題点を解決 ▪ ローカルへのファイルのダウンロードなしでファイルをプレビューしながらアノテーションが 可能に ▪ メモやタグづけをすることでファイルの管理が圧倒的に楽に ◦ OCRで読み取った値で事前に項目を埋めておくことで、 OCRが間違えてる項目のみ修正するだ けになり、アノテーションコストが大幅減 ◦ 内製したことにより後から便利な機能を色々追加実装できた • 問題点 ◦ マルチモーダル系の機械学習モデルの検討を始めるにあたり、後から座標の情報も保存したく なった ◦ 事前アノテーションによりコストは減ったものの、大量のデータを扱うので少しの手入力がスピー ドと品質の低下につながっていた
  19. © 2023 LayerX Inc. 31 そもそもなぜ内製したのか • エンジニアがアノテーションすると同時に OCRに失敗しているファイルのエラー分析を同時にできるアノ テーション基盤が欲しかったから

    • 従来のアノテーションツールは、アノテーション作業のみに特化しており、 OCRの過程で生成される中 間生成ファイルの情報やデバッグも同時にできる基盤が欲しかったから • 元々アプリケーション開発をしていたエンジニアで構成されたチームだったので、内製のハードルが低 かったから
  20. © 2023 LayerX Inc. 32 リリース2年目〜現在: アノテーション基盤の内製(v2) 2021/01 2021/04 2021/11

    2022/05 2022/08 2023.09 • UIはさほど変わらないが、 v1から根本 的作り直した • 画像から正解ラベルに対応する座標の アノテーションが可能に • 複数のモデルの結果をサジェスト • 座標内の文字列を抽出し、サジェストす ることで手入力を撲滅 • 体制は専任のアノテーター 3名
  21. © 2023 LayerX Inc. 34 リリース2年目〜現在: アノテーション基盤の内製(v2) • 良かったこと ◦

    v1の課題が解決 ▪ 座標のアノテーションが可能になりマルチモーダルのモデルの開発に活用できるように なった ▪ 事前アノテーションが誤っていても、座標内から文字列を抽出することで手入力が不要に なった ◦ 複数のモデルの読み取り結果を表示することで、アノテーターの入力補助がより強化され、エン ジニアはモデル間の性能比較が可能になった • 問題点 ◦ 専任のアノテーターが増え、新規のアノテーターのオンボーディング、アノテーター間でアノテー ションのルールの共有の難易度が高い ◦ お客様や提供サービスが増加したことにより、多様な書類のアノテーションが必要になっており、 アノテーションの難易度自体が高くなっている
  22. © 2023 LayerX Inc. 36 課題とこれから • 新規のサービスや新規の読み取り項目に、アノテーションツールが対応する必要がある ◦ →

    自由度が高い分メンテナンスのコストも ... • データは溜まっているがまだまだ活用しきれていない ◦ → いろんなデータセットでいろんなモデルの検証を進めている途中だが全然手が回っていな い... • モデルの検証はしたもののデリバリーまで持って行けてないプロジェクトも ◦ → デリバリーまで持っていくソフトウェアエンジニアが足りてない ...
  23. © 2023 LayerX Inc. 37 We are hiring!! ML・ML Opsに関するあらゆる職種がオープンしています。あなたの力を貸してください!

    • データエンジニア • アナリティクスエンジニア • データアナリスト • データサイエンティスト • 機械学習エンジニア • MLOpsエンジニア • etc カジュアル面談からお気軽にどうぞ 採用情報 カジュアル面談