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

生成AIと人間の協働による業務品質の確保

Daisuke Kawamura
January 11, 2025
490

 生成AIと人間の協働による業務品質の確保

100%の精度が求められる食べログのメニュー入稿業務において、生成AIと人が協働できるツール開発を行い、業務品質を確保した。この事例を通じて業務品質の確保に重要な要素を整理。

ドキュメント内の紹介リンク
P.6 日本最速でChatGPTプラグインを開発
https://tech-blog.tabelog.com/entry/first-challenge-tabelog-chatgpt-plugin-devleopment

P.7 Difyの導入
https://tech-blog.tabelog.com/entry/advent-calendar-20241207

P.30 採用ページ
https://hrmos.co/pages/kakakucom/jobs?category=1390564021132382208

Daisuke Kawamura

January 11, 2025
Tweet

Transcript

  1. © Kakaku.com Inc. All Rights Reserved. 自己紹介 河村 大輔 ▪

    所属 ▪ 経歴 • 株式会社 カカクコム • 食べログ開発本部 技術部 データサイエンスチーム 生成AIの社内利用を推進する活動を実施中 SIer(20年)、スタートアップ(2年)を経て現職に もともとはWebシステムに強みを持つフルスタックエンジニア 生成AIの可能性に魅力を感じ、現職に転身。 プライベートではスマホアプリ開発も手掛けており、 全アプリの累計ダウンロード数は150万を突破。
  2. © Kakaku.com Inc. All Rights Reserved. 5 食べログにおける主な生成AIの活用状況 サービス活用と業務効率化の2つの軸で生成AIを活用 2023/5

    (サービス活用) ChatGPT plugin(日本初) 2023/7 (サービス活用) AIチャット検索機能(β版) 2023/5 (業務効率化) GitHub Copilot導入 2023/12 (業務効率化) 店舗紹介記事の作成支援 2024/1 (業務効率化) ユーザ投稿画像の自動分類(CLIP) ※リリースプロジェクトのみ記載 2024/7 (業務効率化) (業務効率化) Difyチャットボットの全社導入 2024/9 (サービス活用) インバウンドページでの翻訳
  3. © Kakaku.com Inc. All Rights Reserved. 6 日本最速でChatGPTプラグインを開発 • ChatGPTプラグインを活用した機能を日本最速でリリース

    テ キ ス ト , 手 紙 自 動 的 に 生 成 さ れ た 説 明 日本初の挑戦〜食べログによるChatGPTプラグイン開発の舞台裏
  4. © Kakaku.com Inc. All Rights Reserved. 7 Difyの導入 • 全社員が利用できるチャットボットをDifyを用いて構築

    • Difyはオンプレサーバ上にDockerで構築 シ ー ン , 部 屋 , 記 号 , ス ト リ ー ト が 含 ま れ て い る 画 像 自 動 的 に 生 成 さ れ た 説 明 1000人超えの組織にDifyでチャットボットを導入した話と 生成AIアプリで全社の効率化を進めている話
  5. © Kakaku.com Inc. All Rights Reserved. 1. 高い品質が求められる業務で生成AIを活用するために 2. 対象業務と課題

    3. UI/UXの最適化 1. 現行作業の理解 2. OCR技術の活用 4. AIの最適化 1. モデル選択 2. 複数価格課題の精度向上 3. 税抜・税込課題の解決策模索 5. まとめ 9 目次
  6. © Kakaku.com Inc. All Rights Reserved. 1. 高い品質が求められる業務で生成AIを活用するために 2. 対象業務と課題

    3. UI/UXの最適化 1. 現行作業の理解 2. OCR技術の活用 4. AIの最適化 1. モデル選択 2. 複数価格課題の精度向上 3. 税抜・税込課題の解決策模索 5. まとめ 10 目次
  7. © Kakaku.com Inc. All Rights Reserved. 11 高い品質が求められる業務で生成AIを活用するために • 高品質が求められる業務では、全ての結果が合格水準を超えることが必須となる。

    • 生成AIは品質がばらつきやすく、そのまま業務のアウトプットとすることは難しい。 • 高品質が求められる業務では、確認・修正作業は不可欠である。
  8. © Kakaku.com Inc. All Rights Reserved. 12 実運用可能な確認・修正ツールの構築 業務で活用するには、確認・修正コストを減らすことが重要である それを実現するためには、業務理解や課題解決能力など、

    生成AI以外の要素も必要となる UI/UXの最適化 AIの最適化 業務の理解 幅広い課題解決能力 生成AIの知見 業務で求められる品質を踏まえ 修正作業を簡単・効率的に行えるよう最適化 AIの品質を高めて修正作業を削減したり、 UI/UXに合わせた出力にするなどの最適化 生成AIに限らない幅広い解決能力 作業内容・ドメインの理解 目標品質・妥協点の把握 生成AIのアウトプット品質の最大化 確認・修正コストの削減 実現に必要な要素
  9. © Kakaku.com Inc. All Rights Reserved. 1. 高い品質が求められる業務で生成AIを活用するために 2. 対象業務と課題

    3. UI/UXの最適化 1. 現行作業の理解 2. OCR技術の活用 4. AIの最適化 1. モデル選択 2. 複数価格課題の精度向上 3. 税抜・税込課題の解決策模索 5. まとめ 13 目次
  10. © Kakaku.com Inc. All Rights Reserved. 14 メニュー入稿業務について 飲食店様からメニュー画像の写真をいただき、 その内容を文字起こしして、データ投入している。

    飲食店様からの依頼に基づき、飲食店ページの作成支援を行っています。 その中のメニュー画面のデータを作成する業務が今回の対象です。 レストラン食べログ ★★★★★ 3.41 料理メニュー (税込価格) サンドイッチ パスタ カレーライス 900円 1,100円 1,000円 文字起こし作業を生成AIで代替する
  11. © Kakaku.com Inc. All Rights Reserved. 15 生成AIの文字抽出能力の把握 ChatGPT(gpt-4o)を用いて、さまざまな画像でどの程度のアウトプットが出せるのか確認してみた。 精度高く読めるメニューもあるが、読めないメニューも多い。アウトプット品質がバラバラ。

    横書き 縦書き 自由レイアウト 写真が多く、自由なレイアウト 手書き・達筆 手書きや毛筆などで書かれている 概ね良い。100点もある。 縦書きの構成を理解しておらず、 左から右に読んでしまう 抽出はできるが、順番の予測が難しい 読めない字が多い
  12. © Kakaku.com Inc. All Rights Reserved. 16 目次 UI/UXの最適化 AIの最適化

    業務の理解 幅広い課題解決能力 生成AIの知見 確認・修正コストの削減 実現に必要な要素 1. 高い品質が求められる業務で生成AIを活用するために 2. 対象業務と課題 3. UI/UXの最適化 1. 現行作業の理解 2. OCR技術の活用 4. AIの最適化 1. モデル選択 2. 複数価格の精度向上 3. 税込・税抜判定の精度向上 5. まとめ
  13. © Kakaku.com Inc. All Rights Reserved. 17 現行作業の理解 実際に作業している様子を見させてもらい、分析を実施 •

    メニューの写真を見ながら、文字起こし作業を手作業で実施。 • この作業の結果がそのままページに掲載される。一件も間違えられない。 準備 文字起こし 確認作業 1.準備 ・画像・エディタを開く ・全体感の確認 順番の制約などもあり、全画像を見 渡して作業順を考えておくなど 2.文字起こし ・エディタで文字入力 入稿用フォーマットは決まっており、 そのフォーマットに合わせてひたす ら文字入力を行う 3.確認作業 ・入力した内容のチェック作業 先頭から全メニューを対象に、入力 した文字列と画像を再度見比べ、誤 りがないか最終確認を実施。 指差し確認を実施している。 実際に作業している際の画面 エディタを開き、入稿用のフォーマットで文字起こし作業を行なっている 3.5 46.3 10.2 合計 60 作業時間(分) 唐揚げ定食 750 --- 生姜焼き定食 790 --- 麻婆豆腐定食 850 --- ミックスフライ定食 850 ---
  14. © Kakaku.com Inc. All Rights Reserved. 18 OCR技術の活用 注目したのはOCR技術 •

    OCR技術は、画像内の文字を読み取る技術であるが、 読み取った文字の位置情報も取得可能。 (右の図は位置情報を用いて枠を作ってみたサンプル) OCR機能を利用し、テキスト部分に赤枠を付与したサンプル 位置が取得できるので、様々な活用が可能 生成AIとOCR機能を活用することで、 確認作業を支援するツールが作れないか。 という方向で支援ツールの開発に着手! 照合作業(指差し確認)を実現したいが、 生成AIが抽出したメニューの位置がわからない。 生成AIは場所(座標)を答えてくれない。
  15. © Kakaku.com Inc. All Rights Reserved. 20 確認・修正作業を支援するために開発したツールの機能 位置情報がわかることで、下記機能を実現 •

    確認対象となるメニューの位置がわかるハイライト機能 • 作業済みであることがわかる消し込み機能 • OCRデータを用いた入力支援機能
  16. © Kakaku.com Inc. All Rights Reserved. 21 目次 UI/UXの最適化 AIの最適化

    業務の理解 幅広い課題解決能力 生成AIの知見 確認・修正コストの削減 実現に必要な要素 1. 高い品質が求められる業務で生成AIを活用するために 2. 対象業務と課題 3. UI/UXの最適化 1. 現行作業の理解 2. OCR技術の活用 4. AIの最適化 1. モデル選定 2. 複数価格課題の精度向上 3. 税抜・税込課題の解決策模索 5. まとめ
  17. © Kakaku.com Inc. All Rights Reserved. 22 1. モデル選定 •

    ChatGPT(gpt-4o)とClaude 3.5 Sonnetとの比較で特性がかなり異なっていた。 • 特に縦書き性能は業務でも重要なため、Claudeを採用している。 特製 中華そば \1,100 味玉 中華そば \950 特製 辛そば \1,100 ネギ 中華そば \1,030 岩のり 中華そば \1,080 特製 辛そば \1,100 券売機 ChatGPT gpt-4o 位置を見ておらず、 文字が同じものを探す。 Claude3.5 Sonnet 位置を見て判断している。 特製辛そば(¥1,100)の位置 ChatGPT gpt-4o 左から右に読んでしまう。 価格を読みとばすケース多発。 Claude3.5 Sonnet 右から左に読もうとする。 価格も読める。 料理名内に改行が含まれるなど、OCR結果において 料理名が1行に収まらないケースでのマッピング性能 縦書き画像における、料理名の抽出精度 特に抽出順と、価格の抽出精度に差が出る
  18. © Kakaku.com Inc. All Rights Reserved. 参考情報 (数ケース試したのみ) 23 1.

    モデル選定 • 生成AIとOCRデータのマッピング処理における性能比較 gpt-4o- 2024-08-06 claude-3.5-sonnet 20241022 マッピング性能 正しくないことがある 座標位置を考慮 縦書き対応 左から右に読む 右から左に読める 位置情報出力 できない できない gemini-2.0-flash-exp 座標位置を考慮 右から左に読める Bounding Box出力可能
  19. © Kakaku.com Inc. All Rights Reserved. 24 2. 複数価格課題の精度向上 •

    業務で利用しているルールをそのままプロンプトにしたところ、エラー頻出 唐揚げ定食 ・…1,000円 ・…1,100円 カレーライス : • フォーマットが指示通りにならない • 複数の価格を一つの価格欄に出力 • 複数の価格を複数のメニューに分けてしまう • 税抜・税込を複数の価格として出力 • 税抜価格のみを価格欄に出力 コーヒー(Hot/Ice) ・Sサイズ…500円 ・Lサイズ…600円 シャルドネ 樽からくるヴァニラの香り 1,210円 税込価格(数字) 料理名(文字列) 説明(文字列) データ構造 価格が複数ある場合 説明欄に”{サイズ}…{価格}円”という形式で出力 type Menu = { name: string, price: number, description: string } 料理名・説明・価格(税込価格)を抽出する。 価格が複数ある場合は説明欄に下記形式で出力する。 “・{サイズ}…{価格}円” 最終出力フォーマットは下記とする。 作成したプロンプト 価格が複数ある場合に 想定通りに出力できないケースが頻出 「複数の価格を複数のメニューに分けてしまう」の例 「税抜・税込を複数の価格として出力」の例 コーヒー(Hot/Ice) コーヒー(Hot/Ice) 500円 600円 コーヒー(Hot/Ice) 唐揚げ定食 カレーライス Sサイズ 500円 Lサイズ 600円 1,000円(1,100円) 900円(990円)
  20. © Kakaku.com Inc. All Rights Reserved. 25 2. 複数価格課題の精度向上 type

    Menu = { name: string, prices: Price[], description: string } type Price ={ size: string, price: number, } 料理名・説明・価格(税込価格)を抽出する。 価格が複数ある場合はsizeにそれらを識別する文字列を入れる。 最終出力フォーマットは下記とする。 プログラムで現状の業務データに変換 type Menu = { name: string, price: number, description: string } 料理名・説明・価格(税込価格)を抽出する。 価格が複数ある場合は説明欄に下記形式で出力する。 “・{サイズ}…{価格}円” 最終出力フォーマットは下記とする。 現状の業務データにとらわれず、実データをしっかり観察し、最適な出力フォーマットを定義する。 生成AIが出力しやすい型を用いることで、難しい指示がなくなり、クオリティが飛躍的に向上。
  21. © Kakaku.com Inc. All Rights Reserved. 26 3. 税抜・税込課題の解決策模索 •

    税抜・税込価格の課題は解決できず。 頻度は低いが発生した場合の影響が大きい。 唐揚げ定食 ・税抜…500円 ・税込…550円 • 税抜・税込を複数の価格として出力 • 税抜価格のみを価格欄に出力 右図のように直す必要がある。 全メニューで発生するため 作業工数への影響が大きい 解決できなかった課題 プロンプト改善では、 解決できませんでした…
  22. © Kakaku.com Inc. All Rights Reserved. 27 3. 税抜・税込課題の解決策模索 担当者が苦痛に感じていたのは

    「たくさんの手入力が大変」だった。 生成AIの品質向上はあきらめて… 生成AIの誤った出力を、 手入力なしに修正できる機能を開発 メニューに紐づいた全ての金額から 必要なものを選べるUIを作成 一括変更機能も作成 生成AIで解決できず、UIの工夫などあらゆる解決策を模索 運用可能な妥協点を提案
  23. © Kakaku.com Inc. All Rights Reserved. 28 目次 1. 高い品質が求められる業務で生成AIを活用するために

    2. 対象業務と課題 3. UI/UXの最適化 1. 現行作業の理解 2. OCR技術の活用 4. AIの最適化 1. モデル選択 2. 複数価格課題の精度向上 3. 税抜・税込課題の解決策模索 5. まとめ
  24. © Kakaku.com Inc. All Rights Reserved. 29 実運用可能な確認・修正作業の構築 業務で活用するには、確認・修正コストを減らすことが重要である それを実現するためには、業務理解や課題解決能力など、

    生成AI以外の要素も必要となる UI/UXの最適化 AIの最適化 業務の理解 幅広い課題解決能力 生成AIの知見 業務で求められる品質を踏まえ 修正作業を簡単・効率的に行えるよう最適化 AIの品質を高めて修正作業を削減したり、 UI/UXに合わせた出力にするなどの最適化 生成AIに限らない幅広い解決能力 作業内容・ドメインの理解 目標品質・妥協点の把握 生成AIのアウトプット品質の最大化 確認・修正コストの削減 実現に必要な要素 • OCR技術の統合 • UI/UX開発力 • 正しい業務ドメインを定義 • 運用可能な妥協点の提案 • モデル選定 • プロンプトエンジニアリング