Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Classmethod Odyssey 登壇資料
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hiroki YAMAMOTO
July 19, 2024
Technology
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Classmethod Odyssey 登壇資料
Hiroki YAMAMOTO
July 19, 2024
More Decks by Hiroki YAMAMOTO
See All by Hiroki YAMAMOTO
実例で紹介するRAG導入時の知見と精度向上の勘所
yamahiro
8
11k
JAWS-UG Bedrock Claude Night
yamahiro
3
1.5k
DEIM2024 チュートリアル ~AWSで生成AIのRAGを使ったチャットボットを作ってみよう~
yamahiro
3
2.1k
RAGに関する知見
yamahiro
10
85k
Jagu'e'r Tech Writers Meetup #1
yamahiro
0
940
LangChain Japan Meetup
yamahiro
0
1.3k
【Developers IO Dey One】 Passregi CVの現在と取り組んできた改良
yamahiro
0
1.3k
re:Growth 2021 Amazon Store Amazing Points
yamahiro
0
1.1k
Other Decks in Technology
See All in Technology
Agentic Web
dynamis
1
130
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
210
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
形式手法特論:公平性制約の位相的特徴づけ #kernelvm / Kernel VM Study Kansai 12th
ytaka23
1
750
Platform engineering for developers, architects & the rest of us (AI agents)
danielbryantuk
0
180
サプライチェーンセキュリティの空白地帯 - 信頼できる”依存性”の未来を考える
rung
PRO
2
700
Dynamic Workersについて
yusukebe
2
590
Unlocking the Apps
pimterry
0
230
ChatworkとBPaaS 異なる特性で学んだAI機能開発の ベストプラクティス
kubell_hr
2
2.7k
Sony_KMP_Journey_KotlinConf2026
sony
2
210
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
0
180
AI Testing Talks: Challenges of Applying AI in Software Testing: From Hype to Practical Use
exactpro
PRO
1
130
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Building Adaptive Systems
keathley
44
3k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Evolving SEO for Evolving Search Engines
ryanjones
0
210
The Mindset for Success: Future Career Progression
greggifford
PRO
0
350
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Marketing to machines
jonoalderson
1
5.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Transcript
RAGの実用に向けた課題と知見を振り返りながら 次の生成AIの活用を考えてみる 2024.7.19 新規事業部 生成AIチーム 山本紘暉
Xへの投稿の際は、 ハッシュタグ #devio2024 でお願いいたします。 2 お願い
classmethod 自己紹介:山本紘暉 クラスメソッド株式会社 新規事業部 生成AIチーム 研究開発エンジニア 2020年 5月~ ・コンピュータビジョン 骨格検出や人物追跡
2023年 3月~ ・生成AIやLLM 最近はRAGに注力 「クラスメソッド 山本 ブログ」で検索 https://dev.classmethod.jp/author/yamamoto-hiroki/ 研究開発 ・最新研究と実適用の間の橋渡し ・妥当な期間・コスト・品質 ・着実に進めるために ・有り物だけでなく自作も 3
classmethod 導入をご支援した事例 4 https://classmethod.jp/cases/kusurinomadoguchi/ https://classmethod.jp/cases/optage/ 詳細はリンク先をご覧ください 「クラスメソッド 生成AI 事例」で検索
classmethod このセッションの内容 1.RAGの知見・課題(30分) ・1-1.はじめに・RAGの概要 ・1-2.回答改善の知見・課題 ・1-3.実用に向けた課題 2.次の生成AI活用に向けて(5分) ・2-1.Agent(RAGの次) ・2-2.データ活用のための準備(基盤づくり) 5
1.RAGの知見・課題
1-1.はじめに・RAGの概要
classmethod RAGとは LLM単体では知らないことを答えさせる (RAG:Retrieval Augmented Generation) 検索 で LLM を
拡張 8
classmethod LLMの問題点・RAGの目的 ユーザ 質問 誤った回答 LLM プログラム 質問 誤った回答 ユーザ
質問 正しい回答 LLM プログラム 質問 + 関連テキスト 正しい回答 参考 ドキュメント 検索 関連テキスト 通常 RAG 9
classmethod RAGの構成要素(ベーシックな構成) ユーザ 質問 回答 LLM プログラム 質問 + 関連テキスト
回答 参考 ドキュメント インポート 検索 システム 質問 関連テキスト 10
classmethod RAGのシステム構成(例:AWSの場合) AWS ユーザ Slack App Slack Notion アップロード ドキュメント
(PDF・ワードなど) Python プログラム (in コンテナ) App Runner Kendra インデックス S3 バケット Bedrock Anthropic Claude インポート 11
classmethod RAGを使ったチャットボットの動作(例) ユーザが社内情報に関して質問 ボットが社内情報を読んで回答 ボットは使用したドキュメントへのリンクも回答 (ユーザが元データを確認できる) 12
classmethod なぜRAG?(社会的なニーズが高い) 一般業務として困っている ・多くの会社で ・多くの部門で、多くの人が 「社内ドキュメントを検索して回答する」 という作業を効率化したい 13
1-2.回答改善の知見・課題
classmethod 今までお話した内容・ブログ記事 15 https://dev.classmethod.jp/articles/rag-knowledge-on- real-projects/ https://dev.classmethod.jp/articles/rag-seminar- presentation-20240424/
classmethod 来週もお話します(QAパート) 16 https://events.classmethod.jp/seminar/ab2f0395-fff7-48ec-8f59-be9b90592ba7/
classmethod データ・検索が大事 17 こっちを改善する方が有効 こっちよりも
classmethod 回答改善の例1:ファイルを小さく分割する 18 FAQ.csv FAQ_0.csv FAQ_1.csv FAQ_2.csv
classmethod 回答改善の例2:タグ付け・フィルタリングをする 19 起動手順 ・アプリを起動 ・リストをタップ ... 製品A マニュアル 起動手順
・アプリを起動 ・ファイルを確認 ... 製品B マニュアル 製品型番:A 製品型番:B 検索 サービス (フィルタリング)
classmethod 回答改善の例3:マルチモーダルモデルを使って文字起こし 20 詳細はこちらのブログをご覧ください https://dev.classmethod.jp/articles/read-powerpoint-document-with-claude-3/ # 経済産業省のMission ## 日本経済・国民の暮らしを豊 かにする
### 産業政策 - 人工知能、IoT、ヘルスケア - データ活用、中小企業 - 産業構造・・・ ### 通商・貿易 - EPA、TPP、インフラ輸出 - 新興国戦略、ルール形成 - 戦略・・・ ### 資源・エネルギー - 電力自由化、新エネ・省エネ - 原発、資源外交・・・ ### 手段 - 経済成長 - 産業競争力の強化 - イノベーション - 世界の富の取り込み - エネルギー安定供給 ### 目的 - 社会課題の解決 Ex.少子高齢化、貧困問題、 世界の不安定化 - 豊かな社会の実現
classmethod 研究動向:Advanced RAG・Modular RAG 21 https://arxiv.org/abs/2312.10997 Naive RAG Advanced RAG
Modular RAG
classmethod 世の中的にはAdvanced RAGが広がってきている 22 https://aws.amazon.com/jp/blogs/news/verifying-the- accuracy-contribution-of-advanced-rag-methods-on-rag- systems-built-with-amazon-kendra-and-amazon-bedrock/ https://dev.classmethod.jp/articles/knowledge-bases-for- amazon-bedrock-advanced-rag-capabilities/
classmethod Knowledge Basesのアップデート機能(概要) 回答改善のためのアップデートがたくさん ・高度な解析オプション(データの前処理) ・追加されたチャンキング戦略 ・Lambda関数を使用したカスタムチャンキング ・CSVファイルのメタデータのカスタマイズ ・クエリの分解 23
classmethod 実用で躓く点1 (データ):図が読み込めない ドキュメントには図が多い ・業務フロー・手順 ・操作説明・画面説明 ・組織図 多くの検索サービスが対応していない ・基本的に無視される ・図があったこともわからない
24
classmethod 対策 (データ):マルチモーダルモデルを使って文字起こし 画像部分をテキストに置き換える ・ドキュメントをパースし画像を取り出し、生成AIでテキストに変換 ・もとのドキュメントに入れ直す 実際にはうまくできないケースもあり、以下のような対策もあり ・前処理:「”[フロー図]”」のように、簡単に文字起こし ・プロンプト:「図は詳細を説明せず、記載箇所を回答して」 ・回答:「詳細はドキュメントのフロー図を見て確認してください」
25
classmethod 実用で躓く点2 (検索):抽出単位が細かく情報が落ちる ほとんどの場合、ファイル単位で情報がまとめている 逆にいうと、ファイル全体を読まないとわからない ・冒頭に書いてある(例:前提・システムの概要・用語説明) ・最後に書かれている(例:補助対象の資格一覧) それに対して、ほとんどの検索サービスは、チャンク単位で抽出する ・ヒットした周辺のテキストのみ ・前後のテキスト・冒頭の情報などがわからない
26
classmethod 実用で躓く点2 (検索):抽出単位が細かく情報が落ちる 27 資格取得に関する規則 ..... 申請方法 ・ワークフローから申請してください 対象資格と補助額 ・別表を記載のある資格のみ申請可能
です。対応する額を入力してください ..... 別表 応用情報技術者の資格を取っ たのですが、補助金の申請方 法を教えてください ヒット しやすい ヒット しにくい 資格名 補助額 基本情報技術者 全額 応用情報技術者 半額
classmethod 対策 (検索):ファイル単位で抽出する 検索ヒットしたチャンクではなく、ファイルパスを取得 そのファイルを全て読み込んで、プロンプトに書き込む 28 資格取得に関する規則 ..... 申請方法 ・ワークフローから申請してください
対象資格と補助額 ・別表を記載のある資格のみ申請可能 です。対応する額を入力してください ..... 別表 .....
classmethod 補足:ファイル単位で抽出する コストが気になる場合、以下のような方式もあり ・小さいモデルで、ファイルを読み込み、関連情報を抽出する ・大きいモデルで、要約して回答を生成する 29 GPT-4o mini GPT-4o 資格取得に関する規則
..... 申請方法 ・ワークフローから申請してください 対象資格と補助額 ・別表を記載のある資格のみ申請可能で す。対応する額を入力してください ..... 別表 ..... 資格取得に関する規則 ..... 申請方法 ・ワークフローから申請してください 対象資格と補助額 ・別表を記載のある資格のみ申請可能で す。対応する額を入力してください ..... 別表 ..... 資格取得に関する規則 ..... 申請方法 ・ワークフローから申請してください 対象資格と補助額 ・別表を記載のある資格のみ申請可能で す。対応する額を入力してください ..... 別表 .....
classmethod 補足:検索エンジンを使わなくても良いかも チャンク検索ではなくファイル検索もあり ・ファイルパスのみから選択させる ・(要約を追加しても良いかも) 特に、ファイル数が多くない場合・使用頻度が低い場合に有効 ・数百ファイル程度・各ファイルが10ページ程度 ・1000回/月程度 ・ドキュメント読み込みのコストが上がるが、 検索エンジンのランニングがコストがなくなる
30
classmethod 補足:検索エンジンを使わなくても良いかも 31 以下は会社のドキュメントファイルです。 ユーザの質問に回答するのに必要な情報が書かれてい るファイルを選択し、番号を教えてください <ドキュメント> ・規則集/ ・第1章/ ・第1節/
・社員就業規則.pdf [0] ・制度運用規程.pdf [1] ・従業員職種名称規程.pdf [2] ・特別休暇付与基準.pdf [3] ... ・健康診断/ ・検診機関一覧.pdf [281] ・提携医療機関一覧(首都圏).pdf [282] ・健康診断申込書.pdf [283] ・検診項目一覧.pdf [284] ・実施案内.pdf [285] <ユーザの質問> 11月に入社しました。有給はいつ付与されますか? ファイルを選択させる場合の プロンプト(1回で選択させる) → そこそこ上手く選択してくれた フォルダを選択させて、 ファイルを選択させる方法もあり (複数回で選択させる) ファイルの要約を追加しても良い
classmethod ちなみに:弊社は全額補助されます 補足:なぜ回答できたのか ・ドキュメントに書かれていること:IPAの資格は対象です(応用情報とは書いてない) ・生成AIが、応用情報はIPAの資格に含まれることから、推論して答えてくれた 32
classmethod 実用で躓く点3 (検索):複数のファイルにまたがった質問 ある情報がヒットすると、それのみをもとに回答してしまう ユーザからすると別の情報がないように思えてしまう ・例:申請できる補助金が2種類(会社・労組)あるが、1つのみ回答 対策:検討中(難しいと感じています、、) ・該当の情報が1つのみか、それ以上あるのか、判断させるのは難しい ・単純にヒットさせる件数を増やすだけでも一定の効果はあるが、 不十分な印象
33
classmethod 実用で躓く点4 (回答生成):暗黙的な情報 学習していない・ドキュメントにない情報は回答できない ・社内用語・専門用語・暗黙知:生成AIが間違って解釈しやすい ・コンテキスト:ユーザの質問にも、ドキュメントにも含まれてる よくある対策:用語集を作る・FAQを作る ・人力での作業が必要(高いコスト) ・生成AIを使って作成することもできる(が、質はそこそこ) 34
classmethod 補足:暗黙的な情報 回答に関係する情報(社内情報に関するQAの場合) 質問本文 メタデータ コンテキスト 暗黙知 明文化 (ドキュメント) 暗黙知
明文化 (ドキュメント) 業務知識 社内知識 暗黙知 業界の常識 ドキュメント 本文 メタデータ コンテキスト 通常のQAシステムの 対象範囲 通常のQAシステムの 対象範囲 エンタープライズ検索で 検索できる(しやすい)範囲 システムが使用している情報は、人間に比べてごく一部 35
classmethod 1-2.回答改善の知見・課題 のまとめ PoC検証が行われていて、知見がたまり始めた 実用に向けた回答改善として、Advanced RAGが広まってきていて、 サービスのアップデートなどで、RAGの改善しやすくなってきた ただ、ユースケースやデータに合わせて選択・改良する必要や、 根本的に解くのが難しい課題があり、まだまだ改善の余地がある 36
1-3.実用に向けた課題 (回答改善以外の部分)
classmethod 言いたいこと:ここが大変 実用に向けては、回答の質以外にも 満たしてほしい要件・機能がたくさんある ただ、世の中ですべて満たすサービスがない → 個々のサービスを調査・検証して、選択しながら 不足点を埋める(自作する)必要がある 今後のアップデートもキャッチアップする必要がある 38
classmethod よくある構成 自社データ サービス 39 AWS 検索 サービス チャット アプリ
App Runner Kendra
classmethod こういう構成が良さそう 自社データ サービス 40 クラウド データ 基盤 検索 エンジン
検索 プログラム チャット アプリ
classmethod こういう構成が良さそう(例) 自社データ サービス 41 AWS データ 基盤 検索 エンジン
検索 プログラム チャット アプリ App Runner RDS S3 ※ 検討中の内容です。実現できるとは限りません
classmethod こういう機能・観点が必要そう 自社データ サービス 42 クラウド 権限情報 の取得 データ分析 データ
基盤 検索 エンジン 検索 プログラム クエリ変換 再検索 認証 コネクタ 抽出処理 クエリレート コスト データ退避・復帰 アクセス 権限設定 チャット アプリ 前処理 チャンキング 検索手法 フィードバック ユーザ応対 ドキュメント 整理 アクセス制御 フィルタリング メタデータ の取得
classmethod こういう運用が必要そう 43 クラウド データ管理 格納データの確認 前処理結果の確認 フィードバック集計・評価 システム評価 自社データ
サービス データ 基盤 検索 エンジン 検索 プログラム チャット アプリ +セキュリティ
classmethod 機能観点1:データ取り込み(コネクタ・メタデータ・権限) 使用したいデータサービスに対応しているか 取り込み範囲は指定できるか、妥当な形式か メタデータ・権限情報も取り込めるか 直感と同じ設計になっているか 44
classmethod 機能観点1:データ取り込み(コネクタ・メタデータ・権限) [不足感がある例] ・Knowledge Basesだと対応は5種類のみ ・S3・Web・Confluence・SharePoint・Salesforce ・KendraでBOXに接続すると、デフォルトでは格納データを全て取得。 パターンを網羅して設定する必要がある(手間) ・KendraでSlackの権限情報を取得すると 直近で発言したユーザしか許可されない
(パブリックチャンネルであっても) 45 なかなか簡単に 使えるものがない
classmethod Tips:データ取り込み Kendraのコネクタ ・メリット:対応サービスが多い ・オススメの使い方:コネクタを使ったデータ吸い出し ・Custom Document Enrichment の PreExtraction
・データサービスから吸い出したデータをS3に出力できる ・別の検索サービス(OpenSearch Seavice・RDS)で使う ・要確認な点:データ形式・対象・範囲 46 https://aws.amazon.com/jp/blogs/machine- learning/enrich-your-content-and-metadata-to- enhance-your-search-experience-with-custom- document-enrichment-in-amazon-kendra/
classmethod 機能観点2:検索エンジン(コスト・退避/復帰) RAGシステムのコストの大半:検索エンジン そもそものコストが高いと、費用対効果が悪くなる ・安い検索エンジン・サービスを探す必要がある データを退避・復帰させる機能があれば、コストを節約できる [嬉しい例] ・Pineconeの料金設定(価格感) ・RDSのスナップショット機能 47
こういった機能が 他のサービスにもあると 嬉しい
classmethod 機能観点3:認証(アクセス権限・アクセス制御) 認証プロバイダが複数存在する場合がある ・データソース(ここも複数存在しうる) ・Webアプリ 難しい点 ・検索処理でアクセス制御する必要がある(どう適用するか?) ・それぞれのプロバイダが異なるとき、どのようにマッピングするか? ・どう管理するか? 48
まだまだ 調査・悩み中
classmethod 補足:認証(アクセス権限・アクセス制御) 以下のような回避方法もあり ・アプリ側で権限設定 ・バックエンド側でデータを選択 (= フィルタリング・制限) 49 総務用 ボット
経理用 ボット 法務用 ボット 総務用 データ 経理用 データ 法務用 データ 共通 データ
classmethod 機能観点4:ユーザへの応対 応答部分がプログラム(固定処理を実行するだけ) ・どんな入力があっても ・1回だけ検索をして、必ず回答する ユーザが期待しているのは、もう少しAIチックな動作 ・問題を解決する・整理する・聞き返す・再検索する 直接検索・回答生成を行うのではなく、AIが表に立って応対 ・検索をツールとして使う、Agentのような動作 50
まだまだ 検証・悩み中
51 補足:ユーザへの応対 https://dev.classmethod.jp/articles/discussion-on-needs-for-g-of-rag/ https://dev.classmethod.jp/articles/estimate-user-intention-in-genai-bot-with-rag/
classmethod 運用観点1:データ前処理 データ前処理の確認 ・生成AI(マルチモーダルモデル)を使って、 ドキュメントを文字起こしする、というのが主流になりそう ・運用では、人目で確認する必要がでてくる そのためのワークフローがあると便利 AI前処理 → AI確認
→ 運用担当者 → 業務担当者 エスカレーションできると、負荷を分散できそう 52 こういった機能が あると良さそう
classmethod 運用観点2:格納データの確認、管理 検索エンジンに取り込んだデータが、どうなっているかわからない ・どのデータが・どのようなチャンクに分割されて ・どんなメタデータがついているか メタデータの操作が面倒 一覧で表示されて、簡単に操作できると嬉しい ・あるフォルダ内のドキュメントに一括タグ付け 53 こういった機能が
あると嬉しい
classmethod 運用観点3:評価 実際のユーザのフィードバックを集計・評価する ・どこに困っているのか分析、集計 ”精度”を評価・比較する ・モデルを変更したり、プロンプトを変えたときに ・評価用データを用意したら、一気に回答生成を実行 ・AIで一次評価し、人目でチェック ・原因・要因を分析し、数値化したり、対策箇所を挙げる 54
こういった 機能が必要
classmethod 1-3.実用に向けた課題 のまとめ 実用しようとすると、様々な観点での検討が必要 まだ全部を満たすサービスがないので、不足点は自作する必要あり ・そのために、サービスの機能・性能を、細かく調査・検証 55
2.次の生成AI活用に向けて
2-1.Agent(RAGの次)
書いてはみたものの、一般的なことしか 書けなかったので割愛いたします m(_ _)m
2-2.データ活用のための準備 (基盤づくり)
classmethod 今後の生成AI マルチモーダル ・画像・動画・音声 ・世の中のデータの ほとんどが利用可能 ・入力も出力も ・ほぼリアルタイムに どの生成AIでもデータが基本 ・RAGにも・Agentにも・他の生成AIにも
https://openai.com/index/hello-gpt-4o/
classmethod 生成AIのためのデータを準備しておく1 何がデータなのか考えなおす ・テキスト以外の業務データ:画像・音声・動画も 例:設計図・電話対応の音声・ ・普段のコミュニケーション(社内チャット・オンライン会議) ・普段の作業(パソコンの操作) ※プライバシーに配慮しつつ
classmethod 生成AIのためのデータを準備しておく2 データを整理しておく ・社内データをリストアップして、置き場所を決めるだけでも十分 ・場所さえ決まっていれば、AIを使って整理もできる (今後できるようになりそう) 大層な話ではなく、どこに・何を置くのか決める (どこに何があるかわかる状態にする) 62
classmethod RAGの話で言えば インデックス・サービスの中に、 データが閉じめられているケースがほとんど → 活用できない 社内ドキュメントを取り出して集める 前処理しておく → 他の生成AIを使った活用
このための準備としても、RAGをやっていくと良さそう 63 RAGで利用 他で利用
64 補足:なぜRAG?(生成AI活用のステップアップとして) 生成AI導入の流れ ・まず個人レベルの作業を 効率化する ・次に業務を任せてみる 質問回答から始める (社内の合意形成を図る) ・その後、専門業務を任せる 専門業務レベル
(専門システムを構築) 一般業務レベル (パッケージを導入) 個人レベル (ChatGPT・Copilotを利用) 広まってる 今ここ そろそろ
classmethod このセッションのまとめ RAGの回答改善がしやすくなってきた、知見も出てきた ただ、まだまだ難しい課題もある RAGの実用に向けて、回答改善以外に不足している点がたくさんある 今後埋めていきたい RAG以外の生成AI活用に向けて、データの準備をしておきたい 65