地平線まで行ってくる。

記録あるいは忘備録。時には検討事項。

メモ:論文を見ながらRAGを実装してみる。RAG+: Enhancing Retrieval-Augmented Generation with Application-Aware Reasoning

RAG+: Enhancing Retrieval-Augmented Generation with Application-Aware Reasoningという手法の論文が発表されていましたので試してみます。とにかく、動くところまで実装してみます。この方法のポイントは、RAGとして与えるコンテキストを、KnowledgeとApplicationの2つとして取り扱う点にあります。Queryから得られた参照すべきコンテキストをKnowledgeだけではなくApplicationも与えることでより、効果的な答えを生成するアイデアです。

 

シンプルで効果もありそうです。コンテキストをこの2つに分類し、適切なベクトルストアを構築できればです。今回は、単純にチャンクしたデータをこの2種類に分類し、2つのベクトルストアに収納します。そのIDを連携させます。

 

LLMのモデルは、ollama公式の gemma3:4b-it-qat

embeddingのモデルは、 intfloat/multilingual-e5-small

と軽いものを使って構築します。どの程度使えるかも実験です。

 

ArXivからRAGなどの7本程度の論文(PDF)からベクトルデータを作成しました。

 

RAG+はシンプルなアイデアです。なので、利用するデータによって、KnowledgeとApplicationの内容の調整もしやすそうです。例えば、Knowledgeが法律本文でApplicationが法律の具体的な解釈例や具体例といった具合です。また、ApplicationからもKnowledgeを参照できるようにしておけば、入力Queryに対してApplicationでhitすると、そのKnowledgeを参照できる実装とすれば回答の質の向上も期待できそうです。

 

ベクトルストア構築に負担はかかりますが、比較的にソースとする論文なりの内容を残したまま、利用しやすい形でデータを構成できるのは利点ではないでしょうか。

 

arxiv.org

 

生成例:

What is RAG? Discuss its applications and consider whether Qwen can be used as the LLM in this context.

Final Answer
Answer: RAG is a retrieval-augmented generation approach. It enhances LLMs' awareness of retrieval requirements through self-calibration, decomposing queries into subqueries, using binary tree search for data synthesis, and iteratively consolidating passages to strengthen context and improve reliability. Its applications include enhancing accuracy and efficiency in retrieval-augmented generation. Qwen can be used as the LLM in this context. Explanation: The document describes RAG as a method that improves LLMs by decomposing queries, using binary tree search, and consolidating passages. It's used in retrieval-augmented generation. The document doesn’t specify whether Qwen can be used as the LLM, but it is a possible option.

 

作成したコード:

github.com

 

過去の記事:

bwgift.hatenadiary.jp