LLMとRAGの基礎 — AIをプロダクトに組み込むための第一歩
2分で読める
テック
LLMとは何か
LLM(Large Language Model)は、大量のテキストデータで学習された言語モデルです。ChatGPTやClaudeが代表的な例で、テキスト生成、要約、翻訳、コード生成など幅広いタスクをこなせます。
しかし、LLMには限界があります。
- 知識のカットオフ — 学習データ以降の情報を知らない
- ハルシネーション — もっともらしいが不正確な情報を生成することがある
- ドメイン固有知識の不足 — 自社独自のデータや業界特有の情報に弱い
RAGで限界を突破する
RAG(Retrieval-Augmented Generation)は、これらの限界を克服するアプローチです。
簡単に言えば「LLMに回答させる前に、関連する情報を検索して渡す」仕組みです。
RAGの基本フロー
- ユーザーの質問を受け取る
- ベクトルDBから関連ドキュメントを検索
- 検索結果をコンテキストとしてLLMに渡す
- LLMがコンテキストに基づいて回答を生成
ユーザー質問 → 検索(Vector DB) → LLM(質問 + 検索結果) → 回答
なぜRAGが有効なのか
- 最新情報の提供 — ドキュメントを更新するだけでLLMの回答も最新になる
- ハルシネーション削減 — 根拠となるドキュメントが明示されるため、検証可能
- コスト効率 — モデルのファインチューニングよりもはるかに低コスト
実装の第一歩
TypeScript + SupabaseでシンプルなRAGを構築する場合、必要なものは:
- Embedding API — テキストをベクトルに変換(OpenAI、Cohereなど)
- Vector Store — ベクトルを保存・検索(Supabase pgvector)
- LLM API — 回答を生成(Claude、GPTなど)
具体的な実装方法は次回の記事で詳しく解説します。
この記事は amaino.me の技術系コンテンツの第一弾です。質問やフィードバックはお気軽にどうぞ。