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

RAG の研究を元に予測する、これからのエンジニアに求められるスキル

RAG の研究を元に予測する、これからのエンジニアに求められるスキル

2024/06/01 JAWS-UG 山梨 登壇資料。
生成AI の流行で話題となった RAG の研究から、これからのエンジニアに求められるスキルについて考察しました。

issei.hamada

June 02, 2024
Tweet

More Decks by issei.hamada

Other Decks in Technology

Transcript

  1. Who am I ? Issei Hamada • 神奈川県 横浜市 出身

    • アドバンステクノロジーさんとの仕事を通して、山梨に縁を頂きました • ソニーグループ史上初の Japan AWS Ambassador を拝命 • 最近ハマっているAWSサービスは AWS Amplify です Sonybiz Networks Corporation
  2. イントロダクション ⚫生成 AI に対して最も期待されるユースケース 「FAQ」 6 User 生成 AI 「RAG」

    について学ぶと、これからの生成 AI 活用で 何が求められるのかを理解出来る
  3. 7 ⚫本日の目標 !! 1 「RAG」 の基本を 理解する 「RAG」 という分野で、 どんな事が研究されている

    のかを知る これからのエンジニアに 求められるスキルについて 考える 2 3 本日のゴール Gen AI Journey イントロダクション
  4. 「RAG」 の基本 検索の精度 回答生成の信頼性 拡張が困難 ⚫初期 RAG の課題 • 検索精度の向上が難しい

    • 再現性を確保できない • 検索結果からハルシネーションを 生成する事がある • 出力に偏りが発生し、品質・信頼 性の低下を招く • 取得した情報を様々なタスクに 統合する事が困難 • 出力が一貫しない 11
  5. 「RAG」 の基本 検索の精度 回答生成の信頼性 拡張が困難 ⚫初期 RAG の課題 • 検索精度の向上が難しい

    • 再現性を確保できない • 検索結果からハルシネーションを 生成する事がある • 出力に偏りが発生し、品質・信頼 性の低下を招く • 取得した情報を様々なタスクに 統合する事が困難 • 出力が一貫しない 12 この課題を克服する為、 様々なアプローチの研究が進んだ
  6. 「RAG」 の基本 ⚫(参考) RAGの研究 は ChatGPT の登場以降、凄まじいスピードで発展している (出典) Retrieval-Augmented Generation

    for Large Language Models: A Survey https://arxiv.org/abs/2312.10997 ⚫ 「葉」 の部分一つひとつがアルゴリズム ⚫ 2020年頃から少しずつ増え始め、2023 年の ChatGPT 登場以降、一気に増えている 13
  7. 「RAG」 研究における現在のパラダイム ⚫現在の RAG 分類 ⚫ アーキテクチャによって、三種類に大別される • Naive RAG

    • Advanced RAG • Modular RAG (出典) Retrieval-Augmented Generation for Large Language Models: A Survey https://arxiv.org/abs/2312.10997 15
  8. 「RAG」 研究における現在のパラダイム ⚫初期の RAG - Naive RAG ⚫ 最初に紹介した初期のアプローチ ⚫

    シンプルなワークフロー 1. 検索 2. 生成 3. 出力 (出典) Retrieval-Augmented Generation for Large Language Models: A Survey https://arxiv.org/abs/2312.10997 16
  9. 「RAG」 研究における現在のパラダイム ⚫Naive RAG を改良し、Advanced RAG が考案された ⚫ 検索精度向上の為、様々な改良を実施 •

    インデックス生成プロセスの改良 • 検索前後に処理を追加 (出典) Retrieval-Augmented Generation for Large Language Models: A Survey https://arxiv.org/abs/2312.10997 17 検索後処理 検索前処理
  10. 「RAG」 研究における現在のパラダイム ⚫Advanced RAG のざっくりイメージ ⚫ 検索精度向上の為、様々な改良を実施 • インデックス生成プロセスの改良 •

    検索前後に処理を追加 (出典) Retrieval-Augmented Generation for Large Language Models: A Survey https://arxiv.org/abs/2312.10997 18 検索後処理でデータを絞り込む 検索前処理で適切なデータを取得して、
  11. 「RAG」 研究における現在のパラダイム Query Expansion クエリ拡張 Query Transformation クエリ変換 Query Routing

    クエリルーティング ⚫適切なデータを取得する為の検索前処理 - クエリ最適化 19
  12. 「RAG」 研究における現在のパラダイム Query Expansion クエリ拡張 • ざっくり 「同じ事を、色々なパターンで何度も聞く」 手法 •

    クエリを複数生成して、並列に実行 • 複数のクエリを通じて幅広く結果を取得する事で、関連性の高い回答を 取得する ⚫適切なデータを取得する為の検索前処理 - クエリ最適化 20
  13. 「RAG」 研究における現在のパラダイム Query Expansion クエリ拡張 • (参考) LangChain での実装例: MultiQueryRetriever

    - 書かれているプロンプト: あなたは AI 言語モデルのアシスタントです。 あなたのタスクは、指定されたユーザー の質問から5つの異なるバージョンを生成し、 ベクトルデータベースから関連する ドキュメントを取得することです。 ユーザーの質問に対して複数の視点を生成すること で、 ユーザーは、距離ベースの類似性検索の制限の一部を克服します。 これらの 代替質問を改行で区切って入力してください。 元の質問: {question} ⚫適切なデータを取得する為の検索前処理 - クエリ最適化 https://python.langchain.com/v0.1/docs/modules/data_connection/retrievers/MultiQueryRetriever/ 21
  14. 「RAG」 研究における現在のパラダイム Query Transformation クエリ変換 • ざっくり 「検索前に入力を確認する」 アプローチ •

    ユーザーの入力をそのまま検索クエリとして扱うと、誤字・脱字や 表記揺れに よって検索精度が低下することが考えられる • ユーザーが入力した質問に変換を加えることで、ユーザーの意図をより正確に 反映したクエリに変換する ⚫適切なデータを取得する為の検索前処理 - クエリ最適化 22
  15. 「RAG」 研究における現在のパラダイム Query Transformation クエリ変換 • (参考) クエリ変換の実装例: Rewrite-Retrieve-Read -

    知識ベースとして Web 検索を挟むアプローチ - 対話履歴に基づいて Web 検索を行い、検索クエリ生成、対話生成と文章 補完の為の知識抽出を繰り返し実行する - 例: 「綾辻行人の文学的功績は?」 - (思考): 「綾辻行人について検索し、彼の執筆した書籍や経歴を調べる必要がある」 - (検索): 「綾辻行人は、日本の小説家・推理作家。京都府京都市出身。妻は……」 - (回答): 「綾辻行人の功績は、新本格派ミステリというジャンルを作り上げた点である。」 ⚫適切なデータを取得する為の検索前処理 - クエリ最適化 23 https://book.st-hakky.com/data-science/query-transformation/
  16. 「RAG」 研究における現在のパラダイム Query Routing クエリルーティング • ざっくり 「最適な解決策を実行する」 アプローチ •

    RAG の利用が進むにつれてデータが多様化する - グラフデータベース - リレーショナルデータベース - 画像 - 映像 …… etc • アプローチが充実するほど、ルーティングの仕組みが重要になる - メタデータルーター/フィルター - セマンティックルーター ⚫適切なデータを取得する為の検索前処理 - クエリ最適化 24
  17. 「RAG」 研究における現在のパラダイム Query Expansion クエリ拡張 Query Transformation クエリ変換 Query Routing

    クエリルーティング ⚫これらによって、たくさんの情報を取得できるようになった !! 25
  18. 「RAG」 研究における現在のパラダイム Query Expansion クエリ拡張 Query Transformation クエリ変換 Query Routing

    クエリルーティング ⚫これらによって、たくさんの情報を取得できるようになった !! 26 取得出来る情報、多くね …… ?
  19. 「RAG」 研究における現在のパラダイム ⚫Advanced RAG における検索後処理 ⚫ 関連する文書を全て LLM に取り込むと、情報過多に 陥り、重要な詳細への焦点が無関係なコンテンツによっ

    て薄れてしまう (出典) Retrieval-Augmented Generation for Large Language Models: A Survey https://arxiv.org/abs/2312.10997 28 検索後の処理で、重要な情報の選択、重要なセクションの 強調、処理されるコンテキストの短縮を行う
  20. 「RAG」 研究における現在のパラダイム ⚫適切なデータを絞り込む為の検索後処理 実装例: RAG-Fusion ⚫ クエリ拡張で取得した結果をランキングし、LLM へ渡す • 正確には、検索前後のどちらも含んだアプローチ

    • 作者曰く、「決定を下す前に全員の意見を聞くことを 主張する人物だと考えてください。」 https://towardsdatascience.com/forget-rag-the-future-is-rag-fusion-1147298d8ad1 30
  21. 「RAG」 研究における現在のパラダイム ⚫適切なデータを絞り込む為の検索後処理 実装例: RAG-Fusion ⚫ 例: 3 つのクエリ A,

    B, C から 1 つずつデータを取得した 場合、以下も考慮してランク付を行う • クエリ A から取得したデータと、クエリ B, C との関連性 • クエリ B から取得したデータと、クエリ A, C との関連性 • クエリ C から取得したデータと、クエリ A, B との関連性 https://towardsdatascience.com/forget-rag-the-future-is-rag-fusion-1147298d8ad1 31
  22. 「RAG」 研究における現在のパラダイム ⚫Advanced RAG のざっくりイメージ ⚫ 検索精度向上の為、様々な改良を実施 • インデックス生成プロセスの改良 •

    検索前後に処理を追加 (出典) Retrieval-Augmented Generation for Large Language Models: A Survey https://arxiv.org/abs/2312.10997 32 検索後処理でデータを絞り込む 検索前処理で適切なデータを取得して、
  23. 「RAG」 研究における現在のパラダイム ⚫Advanced RAG ⚫ 検索精度向上の為、様々な改良を実施 • インデックス生成プロセスの改良 • 検索前後に処理を追加

    (出典) Retrieval-Augmented Generation for Large Language Models: A Survey https://arxiv.org/abs/2312.10997 33 「工夫」って感じで、 親しみやすくない ?
  24. 「RAG」 研究における現在のパラダイム ⚫Modular RAG のワークフロー例 (出典) Retrieval-Augmented Generation for Large

    Language Models: A Survey https://arxiv.org/abs/2312.10997 35 Advanced RAG でお馴染みの アプローチもある 最適なワークフローを構成・実行
  25. 「RAG」 研究における現在のパラダイム RAG の種類 扱われている手法 最適解はまだ無い ⚫RAG 研究から感じて欲しかった事 • 目的はシンプル

    - いかに適切な情報を取得するか - いかに情報を整理して、質の良い 情報を LLM に連携するか • 意外と泥臭い事をやっている • プログラミングとは一味違った「工夫」 が多くて、理解しやすくない ? • ユーザの環境によって、最適な手法が 異なる • 現状は、自分の環境に合わせて自分で 最適な手法を見つけて実装する必要が ある 36
  26. これからのエンジニアに求められるスキル 既存の技術スタック ⚫ 生成 AI の一番の価値は、あらゆるサービスに組み込めて、ちょっと 便利にしてくれるところにある (と思う) ⚫ なので、そもそも基本的な技術スタックを理解していないと何も作れない

    • Web における音声データの取り回しや、ストリーム API の制御方法、データ経路 のセキュリティ、など ⚫ 一般的な技術スタックを積み重ねることも忘れないようにすべき 44
  27. 46 ⚫本日の目標 !! …… と言いましたが 1 「RAG」 の基本を 理解する 「RAG」

    という分野で、 どんな事が研究されている のかを知る これからのエンジニアに 求められるスキルについて 考える 2 3 本日のゴール Gen AI Journey 最後に
  28. 47 ⚫本日の目標 !! …… と言いましたが 1 「RAG」 の基本を 理解する 「RAG」

    という分野で、 どんな事が研究されている のかを知る これからのエンジニアに 求められるスキルについて 考える 2 3 本日のゴール Gen AI Journey 最後に こんなの建前です