はじめに
前回は、
「LLM(大規模言語モデル)とは?ChatGPTはどのように文章を作っているのか?」
について調べてみた内容をまとめました。
LLMについて調べていると、
- RAG
- ベクトル検索
- Embedding
- LangChain
など、聞き慣れない単語がたくさん出てきます。
その中でも特に気になったのが、
「RAG(Retrieval-Augmented Generation)」
です。
また、生成AIについて調べていると、
「ChatGPTは最新情報を知らない」
「学習データ以降のことは分からない」
という説明を見かけました。
正直なところ、
「インターネットにつながっているなら何でも知ってるんじゃないの?」
「なんで最新情報が分からないの?」
「RAGって何をしているの?」
という状態でした。
そこで今回は、
RAGについて調べてみて分かったこと
を、自分自身の整理も兼ねてまとめてみたいと思います。
この記事はこんな方におすすめ
- ChatGPTを利用している方
- RAGという言葉を初めて聞いた方
- AIエージェントに興味がある方
- LLMについて学習中の方
- 私と同じく「RAGって何?」という方
結論
調べてみて感じたのは、
「AIが外部の情報を調べてから回答する仕組み」
ということです。
生成AIは、
学習済みデータ
↓
回答
という流れですが、
RAGを利用すると、
質問
↓
外部情報を検索
↓
AIへ渡す
↓
回答
という流れになります。
イメージ
なぜ生成AIは最新情報を知らないの?
最初に疑問だったのが、
「ChatGPTって何でも知ってるんじゃないの?」
ということでした。
調べてみると、
LLMは事前に学習したデータを利用しているため、
大量の文章
↓
学習
↓
モデル完成
↓
利用開始
という流れになっているようです。
つまり、
モデルが完成した後に起きた出来事については、
知らない可能性があります。
例えば?
例えば、
2027年のワールドカップ優勝国は?
と質問した場合、
もしLLMがその情報を学習していなければ、
回答できません。
また、
今日の株価
今日の天気
今日のニュース
なども、
リアルタイムで学習しているわけではないため、
そのままでは回答できないようです。
RAGとは?
RAGは、
Retrieval-Augmented Generation
の略です。
日本語では、
検索拡張生成
と呼ばれています。
意味を分解すると、
| 単語 | 意味 |
|---|---|
| Retrieval | 検索 |
| Augmented | 拡張 |
| Generation | 生成 |
つまり、
「検索してから回答を生成する」
という仕組みになります。
RAGはどのように動く?
RAGの流れは、
次のようになります。
ユーザー
「社内規則を教えて」
│
▼
RAG
│
▼
PDFを検索
│
▼
必要な情報を取得
│
▼
LLM
│
▼
回答生成
LLMだけでは、
社内規則を知りません。
しかし、
RAGを利用してPDFを検索することで、
回答できるようになります。
ChatGPTはRAGを使っている?
最近の生成AIサービスでは、
RAGが利用されるケースが増えているようです。
例えば、
ChatGPT + Web検索
↓
最新ニュース取得
↓
回答
社内AI
↓
社内ドキュメント検索
↓
回答
という形です。
つまり、
「LLM単体ではなく、検索を組み合わせている」
ということになります。
AIエージェントとの関係
RAGについて調べていると、
AIエージェントとも相性が良いことが分かりました。
ユーザー
↓
AIエージェント
↓
RAG
↓
検索
↓
LLM
↓
回答
例えば、
「今月の売上を教えて」
という質問に対して、
AIエージェントが、
- Snowflakeを検索
- 必要なSQLを実行
- 結果を取得
- 回答を生成
ということも可能になります。
ベクトル検索とは?
RAGを調べると、
必ず出てくるのが、
ベクトル検索
です。
例えば、
有給休暇
↓
休み
↓
休暇
↓
年次有給休暇
のように、
言葉の意味が近いものを検索する仕組みです。
単純なキーワード検索ではなく、
「意味の近さ」
で検索できるようです。
RAGはどこで使われている?
調べてみると、
多くの企業で利用されていました。
| 用途 | 内容 |
|---|---|
| 社内FAQ | 社内規則検索 |
| 問い合わせ対応 | マニュアル検索 |
| カスタマーサポート | 製品情報検索 |
| 医療 | 論文検索 |
| 法務 | 契約書検索 |
| AIエージェント | DB検索 |
RAGがない場合
質問
↓
LLM
↓
分からない
RAGがある場合
質問
↓
検索
↓
最新情報取得
↓
LLM
↓
回答
個人的には、
「AIにカンニングペーパーを渡している」
というイメージを持ちました。
調べてみて感じたこと
最初は、
「ChatGPTは全部知っている」
と思っていました。
しかし、
調べてみると、
「学習済みデータしか知らない」
ということが分かりました。
そして、
RAGを利用することで、
- 最新情報
- 社内資料
- データベース
などを検索して回答できるようになるようです。
最近よく聞く、
「社内ChatGPT」
の多くは、
RAGを利用しているのかもしれません。
個人的な学習メモ
今のところ、
次の順番で学ぶと良さそうだと思っています。
統計学
↓
機械学習
↓
深層学習
↓
生成AI
↓
LLM
↓
RAG
↓
Function Calling
↓
AIエージェント
次は、
「Function Callingとは?AIがなぜツールを実行できるのか?」
について調べてみたいと思います。
まとめ
今回は、
RAGについて調べてみて分かったことをまとめてみました。
現時点では、
私自身もまだ勉強中ですが、
「AIが外部情報を検索してから回答する仕組み」
ということが分かりました。
今回調べてみて分かったこと
- RAGは検索拡張生成のこと
- LLMは最新情報を知らないことがある
- RAGは外部情報を取得して回答する
- 社内AIやFAQで利用されている
- AIエージェントとも相性が良い
- ベクトル検索が利用されることが多い
少しずつですが、
AIの仕組みがつながってきた気がしています。
次回は、
「Function Callingとは?AIがなぜツールを実行できるのか?」
について調べてみたいと思います。
