1
2

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について調べてみた

Posted at

はじめに

こんにちは!SIerに入社して1年目の新人エンジニアです。日々の業務で当たり前のように使われている用語で「えっ、それって何?」と思ったものを調べて、自分なりにまとめていきます。

今回は「RAG」について。

目次

RAGって何の略?

RAGは「Retrieval-Augmented Generation」の略で、日本語では「検索拡張生成」と訳されています。

簡単に言うと、RAGは大規模言語モデル(LLM)に外部の知識を検索して取り込ませる技術です。ChatGPTのような生成AIが自分の「記憶」だけでなく、外部データベースや資料から情報を引っ張ってきて、より正確で最新の回答を生成できるようにする方法なんです。

なぜRAGが必要なの?

生成AIモデル(LLM)にはいくつかの問題点があります。

  1. 知識の鮮度: LLMは学習時点の情報しか持っていない
  2. ハルシネーション: 自信満々に間違った情報を生成することがある
  3. 専門知識: 企業固有の情報や非公開情報は学習していない

これらの問題を解決するために、RAGでは外部の最新データや専門情報をその場で検索して活用します。例えば、社内文書や製品マニュアルなど、公開されていない情報をAIに「参照」させることができるんです!

RAGの仕組み

  1. ユーザークエリ受信: ユーザーが質問を入力
  2. 関連情報検索: 質問に関連する情報を外部ソースから検索
  3. コンテキスト組み込み: 検索結果を「コンテキスト」として質問に追加
  4. AI回答生成: コンテキスト付きの質問にLLMが回答を生成

つまり、AIが回答を生成する前に「ちょっと調べもの」をする機能を追加したようなものですね!

従来の生成AI:

ユーザー質問 → LLM → 回答(モデルの知識のみに基づく)

RAGを使った生成AI:

ユーザー質問 → 情報検索 → 検索結果をコンテキストとして追加 → LLM → 回答(モデルの知識+検索結果に基づく)

RAGの構成要素

  1. データソース: 検索対象となる文書やデータベース(社内文書、マニュアル、Webサイトなど)
  2. 埋め込みモデル(Embedding Model): テキストをベクトル(数値の配列)に変換するモデル
  3. ベクトルデータベース: 埋め込みベクトルを効率的に保存・検索するデータベース(Chroma、Weaviateなど)
  4. ベクトル検索エンジン: ユーザークエリに関連するドキュメントを見つけるシステム(AzureAISearchなど)
  5. 大規模言語モデル(LLM): 最終的な回答を生成するAIモデル(GPT-4、Claudeなど)

RAGのメリット

  1. 最新情報へのアクセス: モデルの学習後に発生した情報も活用できる
  2. 専門知識の活用: 社内文書や専門資料を参照できる
  3. ハルシネーションの軽減: 事実に基づいた回答が増え、AIの創作が減る
  4. コストパフォーマンス: 完全なファインチューニングよりも低コストで実現可能

まとめ

「RAG」という用語、最初は謎でしたが、調べてみると生成AIの性能と信頼性を大きく向上させる重要な技術だと分かりました。特に企業内の非公開情報や専門知識をAIに活用させる上で、現時点では最も現実的なアプローチだと思います。最近では、大手の事業会社がRAGを活用したAIソリューションを導入しているというニュース記事もよく見かけるようになり、技術としての普及も進んでいるようです。

参考資料

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?