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

社内情報検索システムで用いられるRAGの4つの実装方法

Matsumoto Kazutaka
October 12, 2023
8.8k

 社内情報検索システムで用いられるRAGの4つの実装方法

Matsumoto Kazutaka

October 12, 2023
Tweet

Transcript

  1. 2 松本 和高
 株式会社エクスプラザ リードエンジニア
 X: _mkazutaka
 Github: mkazutaka
 18年にバックエンドエンジニアとしてメルカリに入社。その後、ミラ

    ティブ、フリーランスを得て株式会社エクスプラザに所属。フロント エンドからバックエンドまで幅広く開発しています。趣味で、FXの自 動売買Botを作成している
 現在08/30に第一子が生まれ現在育休中
 https://note.com/mkazutaka/n/n9f0e2c4dee96 

  2. CONFIDENTIAL INFORMATION: Not for Public Distribution - Do Not Copy

    3 株式会社エクスプラザ (EXPLAZA, Inc.) 会社名 プロダクトの力で、豊かな暮らしをつくる ミッション 代表取締役CEO 高橋一生 代表者 2020年07月03日 設立 東京都港区六本木4丁目8-5 和幸ビル 所在地 会社概要
  3. 9 検索によってLLMに知識を補完する: RAG
 • RAG(Retrieval-augmented Generation: 検索により強化した文章生成)という 
 ◦ ユーザから見えない形にすれば、LLMがあたかもその知識を知っているように

    
 振る舞う
 知識を与える 正しい回答をする 検索エンジンなどで 取得 図. 検索エンジンで情報を取得し、 GPT3.5に知識を与えて正しい回答を得る
  4. 12 環境
 • 対象となるドキュメント
 ◦ 商工会議所が出している「中小企業・小規模事業者のための インボイス制度対策」 
 • 開発環境


    ◦ Python、LLMはChatGPT、LlamaIndexを使う 
 中小企業・小規模事業者のための インボイス制度対策 https://www.jcci.or.jp/chusho/202203invoice_booklet.pdf
  5. • インボイス制度についての質問は正しい場所を参考にできなかった 
 ◦ ドキュメント内に「インボイス制度」という文字は30個ある 
 ◦ 追加で、`「インボイス制度とは」について教えてください」`で試してみたが 
 だめだった


    ◦ 別の方法も試してみる
 
 • 課税事業者のメリットデメリットについては正しい場所を参考にした 
 ◦ 表をパーサーが適当な形式に変換したが、よしなLLM側で解釈した 
 23 シンプルな実装の結論

  6. 49 LlamaIndexにAgentが10/2ぐらいに登場
 • Agentとは
 ◦ 要求を「どのような手段を使ってどういう順番で解決するか」を 
 LLMを使って自動的に決定してくれるような機能 
 


    • LlamaIndexの作者いわく、Agentでできること 
 ◦ 単一文書に対する事実に基づいたQA 
 ◦ 単一ドキュメントの要約
 ◦ 複数のドキュメントに対する事実に基づく比較 
 ◦ 複数のドキュメントにわたる全体的な比較 

  7. 55 まとめ
 • 今回は、RAGの5つの実装と実際にドキュメント検索してみた 
 ◦ ただし、これはあくまでデモ
 ◦ 実際のユースケースでは、利用する質問と回答を作って定期的に 


    作ったプログラムが正常に回答を返しているかを評価する必要がある 
 ▪ ここが難しい
 
 • LhamaIndexには、他のRAG手法にFineTuning等もあるので見ると面白いかも 
 
 • より精度を上げるには
 ◦ VectorDBを変える: Azure Cognitive SearchのHybridSearch使うとか 
 ◦ PDFParserを変える: Azure AI Document Intelligenceを使うとか