4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

一目でわかるRAG解説

Last updated at Posted at 2024-05-09

はじめに

LLMの活用方法の一つ、RAG(Retrieval-Augmented Generation)について説明する機会が多かったので、簡単な解説を作ってみました。

LLM…Large Language Model(大規模言語モデル)のことで、Chat GPTはLLMを使ったアプリケーション

RAGとは

rag1.jpg

①ユーザーが質問
動物園は何時から開いていますか

②質問に関連するデータを検索
検索方法は様々ありますが、質問文をそのまま使って文の類似度などで検索したり、質問文から検索ワードをLLMに生成させて検索したりします。
デファクトスタンダードのAzure OpenAIであれば、Azure環境のため、Azure AI Searchを使うことが多い印象です。

③質問に関連するデータを取得
ここでは、以下のデータが取得できたとします。
開園時間:9時~17時 休園日:水曜日(水曜日が祝日の場合は開園日となり翌日を休園日とする)、年末年始(12/29~1/3)

rag2.jpg

④取得したデータと合わせてプロンプトをLLMに投げる
ここがRAGのポイントです。
①のユーザーの質問③の取得したデータ、そして予め用意しておいたプロンプトを組み合わせて以下のようなプロンプト(文章)を作ります。


あなたは○○動物園について回答するアシスタントです。
質問に対して、参考情報を元に回答を作ってください。回答部分のみを生成してください。
参考情報を元に回答できない場合は、「わかりません。」と答えてください。
まず例を示します。
質問:入園料はいくらですか。
参考情報:入園料 大人:800円 子供:300円
回答:入園料は、大人800円、子供300円です。
では以下に回答してください。
質問:
動物園は何時から開いていますか
参考情報:開園時間:9時~17時 休園日:水曜日(水曜日が祝日の場合は開園日となり翌日を休園日とする)、年末年始(12/29~1/3)
回答:

rag3.jpg

⑤LLMの回答
④の質問からLLMが回答を作成します。試しに④にある質問を「」の中身まるごとChatGPTに投げてみてください。ちゃんと答えが返ってくるはずです。

LLMがやっているのは、情報抽出や要約といったタスクになります。
また、LLMが生成した回答に引用元をつけてあげるのがよいです。
BingのCOPILOTもインターネット検索を情報源とするRAGで、引用元のURLが表示されています。

④で作ったプロンプトには、いくつかのプロンプトテクニックと呼ばれるものが入っています。

prompt_technique.jpg

まとめ

RAGとは、質問及び質問の答えとなる情報が載っているデータを使ってLLMに答えさせる仕組みです。
検索したデータを使ってLLMに質問しているので、実は欲しい情報が入っているデータを検索できるかがポイントです。
実際のプロンプトを見てもらえばわかるように、プロンプト内に答えが書いてあって、LLMはその情報を整理して答えているだけです。
欲しい情報を検索できるかは様々な工夫があり、RAGシステムを開発する場合はそこの工夫がミソだったりします。

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?