Open23

RAG調査

bishopfuncbishopfunc

https://zenn.dev/knowledgesense/articles/034b613c9fd6d3

従来のRAGの課題として、「一度に複数のことを聞かれると、上手く答えられない」という課題がありました。これは、従来のRAGが「ユーザーの質問1回につき、1回までしかデータを検索できない」という、柔軟性を欠いた仕組みのせいで、発生する問題です[3]。
そこで、DeepRAGでは、マルコフ決定過程(MDP)[5]をRAGに導入することで、必要な分だけ、でも、十分な量、検索してから回答してくれるRAGを実現します。

  • 二分探索木形式

  • 模倣学習で検索回数を最小限にしつつ正確な回答を出す方法を学習

    • どう模倣学習してる?
      • LLM + ルール一定のルールで二分木を作成し、その軌跡データを保存
      • 報酬: 検索の正誤とコスト
      • 行動: 終了or継続, 検索or現在の知識利用
      • 状態: 質問, サブクエリ, 中間回答
      • 目的関数: 軌跡を模倣するため、サブクエリ→状態, サブクエリ, 文書, 状態→行動の確率の和を最大化
  • 知識境界の調整: こういう質問だったら検索すべき

    • どう定義される
      • 最適な軌跡のデータ(選好データ)を作成(これまでのステップで作成済み)し、DPO的な方式で学習
  • LLMの軌跡でLLMをfinetuningしているのか?

bishopfuncbishopfunc
  • bedrock: 純粋にLLMのエンドポイントっぽい、langchainから使えそう
  • segemaker: jupyterのスクリプトを実行できる、ソースとしてkendraも呼び出せるっぽい

知らなかったけどbedrock + langchain + segemaker + kendraで結構柔軟に使えそうだな

bishopfuncbishopfunc

aws抜きで考えるならlangchainエコシステムが良さそう
マルチモーダル ベクトル検索付きテンプレート
https://templates.langchain.com/?integration_name=rag-chroma-multi-modal
https://templates.langchain.com/?integration_name=rag-chroma-multi-modal-multi-vector
ChatUIとワークフロー付きのテンプレート
https://github.com/langchain-ai/langgraph-studio
https://github.com/langchain-ai/langgraph-example-pyproject
その他色んなテンプレート
https://langchain-ai.github.io/langgraph/concepts/template_applications/
langsmith
web上LLMOpsできるけど、容量制限やセキュリティを懸念するならDockerでself-host可能
https://docs.smith.langchain.com/self_hosting/installation/docker
https://book.st-hakky.com/data-science/langsmith-intro