このブログ記事では、非エンジニアのマネージャー向けに、RAGとFine-tuningの違いを理解しやすい形で説明します。具体的な例を用いて、これらの技術がどのように異なるのか、そしてビジネスへの応用方法について解説します。
はじめに
RAGやFine-tuningという技術は、生成AIに特定のデータを読み込ませて特化型AIを構築したいときに必要になる知識です。
それぞれデータを参照するという意味合いでは似た目的のために使われる技術なのですが、AIの精度やランニングコストに大きな差があります。
RAGとは?
生成AIにおけるRAG(Retrieval-Augmented Generation)は、既存の情報をベクトル化して保持し、プロンプトとの近似度を図り出力する技術です。これにより、大量のデータから高速で必要な情報を引き出し(検索し)、その情報をもとに新たなテキストを生成することができます。
メリット
- AIの精度が高い傾向: RAGは、膨大な情報から近似する知識を複数抽出し、それらをプロンプト内に含め、LLMに選ばせるアプローチです。これにより、より正確で豊富な情報を含むテキストを生成することが可能です。
- 高度なカスタマイズ性: 特定のタスクや質問に対して、最も関連性の高い情報を用いて回答を生成できるため、カスタマイズ性が高いです。
デメリット
- ランニングコストが高い: 生成AIはトークン量による重課金型の課金形態になります。RAGの場合は、近似しちえる情報をプロンプトに入れてLLMに質問することになるため、自ずとトークン料金が高くなってしまう、新しいテキストを生成する過程では計算資源を大量に消費するというデメリットがあります。
- データベースの質に依存: 生成される内容の質は、検索されるデータベースの質に大きく依存します。
Fine-tuningとは?
一方、生成AIにおけるFine-tuningは、既存のモデルを特定のタスクやデータセットに合わせて学習するプロセスです。この方法では、モデルが新しい情報やタスクに対してより良いパフォーマンスを発揮するように微調整されます。
メリット
- 特定のタスクへの適応性: モデルを特定のニーズやデータセットに合わせて調整できるため、タスクのパフォーマンスが向上します。
- ランニングコストが安価で済む: RAGがプロンプト内に近似しているデータを含めるのに対し、Fine-tuningは学習し暗記するアプローチを取っています。そのため、トークン量を必要以上に消費する必要がないためランニングコストが下がる傾向にあります。
デメリット
- AIの精度が高くなりにくい: 人間と同様、暗記するアプローチを取っているためAI自体の精度には限界があります。RAGとFine-tuningを組み合わせて構築したときに、RAGのみで開発したときよりも精度が下がったというレポートもあるようです。
- データセットの質と量: 効果的なFine-tuningには、高品質で十分な量のトレーニングデータが必要で、データセットの用意にコストがかかってしまいます。
よりわかりやすく例を用いた説明
RAGは、司法試験を合格しなければならない学生がカンニングペーパーを持ち込んで試験に臨むようなものです。この時、学生は広範囲の情報源(カンニングペーパー)から、必要な情報を迅速に取り出し、問題に対応します。ですが、膨大な六法全書の中から高速で近似した内容を探すのは大変です。そこで、六法全書の内容をベクトル化し、調べたい内容と似ている内容をベクトル近似で探し出しています。
一方で、Fine-tuningは、同じ学生が一夜漬けで勉強することに似ています。一夜漬けなので探す手間は一切かかりませんが、答える精度には限界があります。
ベクトル化とは?
RAGのプロセスでは、検索を行うために「ベクトル化」が必要となります。これは、テキストなどのデータを数値のベクトルに変換することを意味します。変換されたベクトルは、ベクトルデータベース内で管理され、検索や比較が行われます。
LangChain
現在、LLMを取り巻く環境には、多種多様なフレームワークのライブラリが存在しています。特に注目すべきライブラリには、以下のようなものがあります。
- LangChain
- LlamaIndex
- Sementic Kernel
これらのツールはすべて、LLMと他のサービスとを結びつけることを目的としたフレームワークであり、連携対象となるサービスに基づいて、多様な処理を高い抽象レベルの関数を用いて容易にコーディングできる、非常に機能豊富なライブラリとして設計されています。これらのフレームワークの中でも、特に古株とされるLangChainが提供する主要な連携サービスを見てみると、以下のような特徴があります。
最後に
いかがだったでしょうか?
弊社では
明確に「生成AIで〇〇をしたい!」は無いけど、何か生成AIを使って取り組みたい!
というご要望にお応えしております。
これまでお取引させていただいた企業様も、ご相談時にはやりたいことが決まっていなかったことが多くあります。
ご相談を受け、一緒に考えさせていただく中で、生成AIとどこが相性が良いのか、それを構築するためにはどのようなデータが必要なのかを「無料お問い合わせ」にてお受けしております。
まずは、ページ右上の「無料お問い合わせ」にてご相談を承っておりますので、お気軽にご連絡ください。