はじめに
ここまでの第 1〜3 部では、
- LLM が何者なのか
- コンピュータが言葉をどうやって理解しているか
- LLM の中核である Transformer の仕組み
といった、「生成 AI の中身」にフォーカスしてきました。
この第 4 部では少し視点を変えて、**「LLM をさらに進化させ、有効活用するための技術」**という発展的な仕組みを見ていきます。
今回取り上げるのは、個人的に気になった次の 3 つです。
- MoE(Mixture of Experts)
- RAG(Retrieval Augmented Generation)
- ReAct(Reasoning and Acting)
この記事は生成 AI 初心者が書いており、技術的に正しくない記載・表現が全然ありえます。
また技術的な正しさよりも、初心者・非エンジニアでも理解できるような粒度を目指して書きました。こちらご留意下さい。
目次
キーワード
- 推論・学習
- LLM
- ニューラルネットワーク・ディープラーニング
- LLM と AI エージェントの違い
キーワード
- 自然言語処理とは
- 機械翻訳との関係
- 単語の意味を理解する仕組み(ベクトル・word2vec)
- 文章を理解する仕組み(RNN・エンコーダ・デコーダ・seq2seq・Attention)
キーワード
- Transformer の理解がなぜ重要か
- seq2seq と Transformer の違い
- Transformer の構造
- Transformer の学習の仕組み
第 4 部: 発展編 ← 今ココ
キーワード
- MoE
- RAG
- ReAct
4-1. MoE(Mixture of Experts)
LLM は大規模なほど賢くなりやすい一方で、学習も推論もコストが跳ね上がります。
そこで、「全部の知識を毎回フル稼働させる必要ある?」 という疑問から生まれたのが MoE です。
MoE(Mixture of Experts)は、ネットワークを複数の「専門家」に分け、入力に応じて使う部分だけ選ぶ仕組みです。
Transformer では、Feed Forward(次の単語を決めるための計算)部分に使われることが多いです。
巨大な 1 個のネットワークではなく、小さなネットワークを複数用意して必要なものだけ動かすイメージです。
その結果、
- パラメータ総数は大きいまま
- 実際に動く計算は小さくできる
という、いいとこ取りが可能になります。
人間に例えると、以下のような感じです
すべての質問に、全社員が会議に参加する会社
→ 内容に応じて、関係ある人・有識者だけが集まる会社
LLM を 「巨大化させ続ける」ための現実的な工夫 が MoE です。
4-2. RAG(Retrieval Augmented Generation
RAG の概要
LLM は「次に来る単語を確率で選ぶ」仕組みなので、学習していない事実・最新情報・社内データに弱いです。
そこで RAG は「知らないことは外部から調べてから答える」をやります。
RAG の流れ
RAG の流れは、ざっくりこうです。
- ユーザーが質問する
- その質問文をもとに、外部データベースを検索する
- 関連しそうな情報をいくつか取得する
- それらの情報を プロンプトとして LLM に渡す
- LLM が、それを踏まえて回答を生成する
つまり、**「調べ物をしてから文章を書く」**という、人間にかなり近い動きです。
ベクトル検索
RAG ではデータベースに問い合わせるとき、通常の検索ではなく ベクトル検索 がよく使われます。
キーワード一致だけでなく、「意味が近いかどうか」で探せるので、言い回しは違うけど内容が近い情報を拾いやすいです。
(ここで、第 2 部の埋め込みが活躍します)
外部検索ツールとの違い
Tavily などの外部検索ツールとの違いも整理しておきます。
RAG は「検索 → 取得 → プロンプトに入れる」までを含んだ**仕組み(設計)**の名前です。
一方で Tavily は「Web から情報を取ってくる道具」に近い存在です。
実運用では RAG は社内・内部 DB を対象にするケースが多く、Tavily 等のツール は Web 検索等で外部情報を検索したいときに使うというように使い分けられることがよくあります。
- RAG = どう調べて、どう使うかの考え方
- Tavily = 調べるための外部検索ツール
という関係です。
ただし設計としては、RAG は内部 DB に限定されず Web 検索も組み込めるので、例えば「Tavily などのツールを使った RAG」もありえます。
RAG が向いている場面
RAG が向いているのは、例えばこんな場面です。
- 社内ドキュメント検索
- 製品マニュアル Q&A
- 最新情報を扱うチャットボット
- 自分専用のナレッジ AI
「LLM を賢くする」というより、「LLM を安全に・実用的に使う」ための仕組みと言えるかもしれません。
4-3. ReAct
LLM は基本的に「頭脳」だけで、自分で行動できません。
そこで AI エージェント という考え方が出てきます。
ReAct(Reasoning and Acting) は、「考える」と「行動する」を交互に回す設計思想です。
ざっくり流れはこうです。
- 目的を確認する
- 次にやるべきことを考える(Reasoning)
- 必要なツールを使う(Acting)
- 結果を受け取り、再度考える
- 目的が達成されるまで繰り返す
例えば、
- Web 検索
- API 呼び出し
- ファイル操作
などを、LLM が「考えながら」使います。
ReAct によって、単なる文章生成・単発の質問応答から一歩進んで、
**「目的達成のために動く AI」**が実現できるようになります。
最近よく聞く
- AI エージェント
- コーディングエージェント
といったものの多くは、
この ReAct の考え方をベースに作られています。
まとめ:第 4 部を通して
重要なのは、今回紹介した仕組みがTransformer を置き換えるものではなく、
Transformer という「頭脳」を土台にしながら、
- どうスケールさせるか
- どう現実世界と接続するか
- どう自律的に使うか
という発展的・補完的な仕組みを提供している点です。
最後に
LLM について、これまで中身を理解することは正直敬遠していましたが、今回仕組みを文章に起こしたり図を書いたりしてみて、だいぶ理解が進んだ気がします。
個人的にはこういった形で準備をしつつ、今後 LLM を利用したサービスの開発であったり、「作る側」に回るチャンスを掴めることができれば良いなと思います。
ここまで読んでいただき、ありがとうございました。
読まれた方が、生成 AI の裏側を少しでも立体的にイメージできるようになっていれば嬉しいです。
