まず相談する
まず相談する

LLM入門ガイド【後編】― AIカスタマイズの方法と学習の仕組み

この記事のポイント

  • AIのカスタマイズは「プロンプトの工夫 → RAG → ファインチューニング」の順に試すのが鉄則
  • RAG(検索拡張生成)を使えば、AIモデルを変更せずに独自データをもとにした回答が可能
  • LLMの学習は「事前学習 → SFT → RLHF」の3ステップで行われる

はじめに

「AIを自社のデータに合わせてカスタマイズしたいけど、何から始めればいい?」「ファインチューニングって聞くけど、難しそう」

そんな疑問を持つ方に向けて、この記事ではLLMを自分の目的に合わせてカスタマイズする3つの方法と、AIの学習の仕組みを初心者向けにやさしく解説します。

前編ではLLMの基本的な仕組みやローカルLLMの始め方を解説しました。まだ読んでいない方は、先にそちらをご覧いただくとスムーズです。

AIをカスタマイズする3つの方法

LLMを自分の目的に合わせたいとき、いきなり難しい方法に手を出す必要はありません。簡単な方法から順番に試すのが鉄則です。

Step 1: プロンプトエンジニアリング(すぐできる・無料)
  ↓ それでも足りなければ...
Step 2: RAG(少し手間・低コスト)
  ↓ それでも足りなければ...
Step 3: ファインチューニング(大変・高コスト)

この順番を守るだけで、無駄なコストと時間を大幅に節約できます。

Step 1: プロンプトエンジニアリング

プロンプト(指示文)の書き方を工夫するだけで、AIの回答は大きく変わります。モデル自体を変更する必要がないので、最もお手軽な方法です。

悪いプロンプト:
「プログラミングについて教えて」

良いプロンプト:
「あなたはプログラミングの先生です。
 中学生にもわかるように、Pythonの変数について
 具体例を3つ使って説明してください。」

主なテクニックは以下の4つです。

テクニック説明
役割を与えるAIに特定の専門家役を演じさせる「あなたは数学の先生です」
具体的に指示する曖昧さをなくして詳細に伝える「3つの箇条書きで」「100文字以内で」
例を示す期待する回答の形式を見せる「例: りんご → 果物」
ステップで考えさせる段階的に考えるよう指示する「ステップごとに考えてください」

プロンプトの工夫だけで解決できることは意外と多いので、まずはここから始めましょう。

Step 2: RAG(検索拡張生成)

RAGはRetrieval-Augmented Generation(検索拡張生成)の略です。AIに質問するとき、関連する資料を一緒に渡してあげる仕組みです。

教科書にたとえるとわかりやすいでしょう。

普通のAI:
  先生(AI)に質問 → 先生の記憶だけで回答(知らないことは答えられない)

RAGを使ったAI:
  先生(AI)に質問 → 本棚から関連する教科書を探す → 教科書を見ながら回答

たとえば、「うちの学校の文化祭はいつ?」と聞くと、RAGはまず学校のお知らせPDFから「文化祭は11月3日」という情報を見つけ出し、その情報とあわせてAIに質問を渡します。結果、AIは正確に「文化祭は11月3日です」と答えられるわけです。

RAGのメリット

RAGには4つの大きなメリットがあります。

  • ドキュメントを更新するだけでAIの知識も更新できる(最新情報に対応)
  • 「この資料にこう書いてあります」と出典を示せる(根拠を提示)
  • 資料に基づいて回答するのでハルシネーション(AIのウソ)が減る
  • ファインチューニングと違い、AIモデル自体を変更しなくてよい

社内マニュアルをAIに答えさせたい場合や、最新ニュースについて質問したい場合、特定の資料の内容について聞きたい場合に向いています。

どの方法を選ぶべきか

方法コスト難易度向いている場面
プロンプトエンジニアリング無料簡単回答の形式・口調・精度を改善したい
RAG低い普通独自のデータや最新情報をもとに回答させたい
ファインチューニング高い難しいモデルの根本的な振る舞いや専門性を変えたい

迷ったときは、次のフローチャートで判断できます。

プロンプトの工夫で解決できる?
  → YES → プロンプトエンジニアリングでOK
  → NO  → 外部の資料を参照させれば解決する?
             → YES → RAGを導入しよう
             → NO  → ファインチューニングを検討しよう

ファインチューニングは最終手段です。プロンプトとRAGで解決できるなら、わざわざモデルを再学習する必要はありません。コストも時間も節約できます。

ファインチューニングとは

ファインチューニング(Fine-tuning)は、すでに学習済みのAIモデルに追加で学習させて、特定の分野に強くする方法です。

料理でたとえるなら、基本のカレー(学習済みモデル)にスパイスを追加(ファインチューニング)して、自分好みの特製カレー(特化モデル)にするイメージです。

汎用LLM(何でもそこそこ答えられる)
  ↓ 医学の教科書データで追加学習
医療特化LLM(医学の質問にとても強い)に変化

ファインチューニングの目的は多岐にわたります。法律・医療・プログラミングなどの専門知識を教えること、敬語や関西弁など話し方を変えること、要約・翻訳・コード生成など特定のタスクに強くすること、会社独自のマニュアルやFAQを学習させることなどが代表的な例です。

フルファインチューニングとLoRA

ファインチューニングには大きく2つの方法があります。

フルファインチューニングはモデル全体のパラメータを更新する方法です。精度は高いものの、非常に多くの計算資源(GPU)が必要です。

一方、LoRA(Low-Rank Adaptation)/ QLoRAはモデルの一部だけを効率的に更新する方法です。少ない計算資源でもできるので、個人でも挑戦しやすくなっています。

フルファインチューニング: モデル全体を書き換え → GPUがたくさん必要
LoRA:                    一部だけ書き換え     → 家庭用GPUでも可能

個人で試すなら、LoRA / QLoRAから始めるのが現実的です。

GPUがなくても大丈夫 ― Google Colab

ファインチューニングや学習にはGPUが必要ですが、高価なGPUを持っていなくても大丈夫です。Google Colabを使えば、ブラウザだけでGPUを借りて学習を試せます。

Google Colab(Google Colaboratory)は、Googleが提供するブラウザ上でPythonを実行できるサービスです。ノートブック形式でコードを書いて実行でき、GPUも利用できます。

普通の学習環境:
  高性能PCを買う(数十万円〜)→ 環境を構築 → 学習を実行

Google Colab:
  ブラウザを開く → コードを書く → 学習を実行(GPUはGoogleが貸してくれる)

料金プラン

プラン料金GPU使用時間の目安
無料0円Tesla T4(VRAM 15GB)連続数時間程度
Colab Pro月額約1,500円T4 / V100(VRAM 16GB)より長時間使える
Colab Pro+月額約7,500円V100 / A100(VRAM 40〜80GB)バックグラウンド実行可

無料プランでも7BクラスのモデルをQLoRAでファインチューニングできます。

使い方

1. GoogleアカウントでGoogle Colabにログイン
2. 「ノートブックを新規作成」をクリック
3. メニューから「ランタイム」→「ランタイムのタイプを変更」
4. 「T4 GPU」に変更
5. コードを書いて実行

注意点と対策

注意点対策
無料版は使用時間に制限がある小さいモデル・少ないデータで試す
一定時間操作しないと切断されるこまめにモデルを保存する
無料のGPUは性能が限られるQLoRA(4bit量子化)で軽量化する
セッションが切れるとデータが消えるGoogle Driveにこまめに保存する

まずは無料プランで十分です。慣れてきて長時間の学習が必要になったらProを検討しましょう。

AIはどうやって学習するのか

ここからは少し技術的な話になりますが、LLMがどうやって「賢く」なるのか、その学習プロセスを見ていきましょう。LLMの学習は大きく分けて3つのステップで行われます。

ステップ1: 事前学習(Pre-training)

インターネット上の大量のテキスト(Wikipediaの記事、ニュースサイト、書籍、プログラムのソースコードなど)を読ませて、言語の基本を覚えさせます。文法のルール、言葉の意味や関係、世界の一般常識といったことを学びます。

この段階では「次の単語を予測する」という練習を何兆回も繰り返します。

ステップ2: 教師ありファインチューニング(SFT)

人間が作った「質問と理想の回答」のペアを使って、会話ができるように訓練します。

{
  "質問": "日本の首都はどこですか?",
  "回答": "日本の首都は東京です。"
}

このような例を何万〜何十万件も学習させます。事前学習で言語の知識を身につけたAIに、「人間との会話の仕方」を教えるステップです。

ステップ3: 人間のフィードバックによる強化学習(RLHF)

人間がAIの回答に「良い・悪い」の評価をつけて、より良い回答ができるように調整します。

AIの回答A: 「東京です」         → 人間の評価: ★★★☆☆
AIの回答B: 「日本の首都は東京です」 → 人間の評価: ★★★★★

→ AIは回答Bのような答え方を学ぶ

学習の全体像

ステップ1          ステップ2          ステップ3
事前学習       →    SFT          →    RLHF
(言語を覚える)      (会話を覚える)      (より良い回答を学ぶ)

大量のテキスト       Q&Aペア            人間の評価
数TBのデータ        数万〜数十万件      数千〜数万件

学習に使うデータは、人間が質問と回答を書く方法(品質が高い)、WikipediaやWebのデータを加工する方法、別のAIにデータを作らせる方法(合成データ)、多数の人にクラウドソーシングで作業を依頼する方法などで用意します。

LLMを一から作るには

LLMをゼロから作るのはとても大変ですが、仕組みを知っておくことは大切です。

必要な要素は5つあります。数TB(テラバイト)のテキストデータ、数百〜数千台のGPU、Transformerアーキテクチャによるモデル設計、Python + 深層学習フレームワークによる学習プログラム、そして数週間〜数ヶ月の時間と数億〜数百億円の資金です。

プログラミング言語とフレームワーク

AI開発のメインはPythonです。高速な計算処理にはC / C++が使われ、GPU並列計算にはCUDA(NVIDIA製GPU用)が使われます。

主要なフレームワークとしては、研究で最も使われているMeta製のPyTorch、Google製のTensorFlowとJAX、モデルの利用・学習を簡単にするHugging Face Transformersがあります。

イメージコード(Python)

実際のLLMはもっと複雑ですが、雰囲気を掴むためのイメージです。

# ※雰囲気を掴むためのイメージコードです
# ※実際に動かすにはもっと多くのコードが必要です

import torch
from transformers import AutoModelForCausalLM, Trainer, TrainingArguments

# 1. モデルの準備(既存の小さいモデルを使う例)
model = AutoModelForCausalLM.from_pretrained("small-model")

# 2. 学習データの準備
dataset = load_dataset("学習データのパス")

# 3. 学習の設定
training_args = TrainingArguments(
    output_dir="./my-model",       # 保存先
    num_train_epochs=3,            # 学習を何周するか
    per_device_train_batch_size=4, # 一度に学習するデータ数
)

# 4. 学習を実行
trainer = Trainer(model=model, args=training_args, train_dataset=dataset)
trainer.train()

# 5. できあがったモデルを保存
trainer.save_model("./my-custom-model")

LLMの心臓部にあたる技術がTransformer(トランスフォーマー)です。2017年にGoogleが発表した論文「Attention Is All You Need」で提案されました。文章の中の「どの単語がどの単語と関係しているか」を計算し、長い文章でも効率よく処理できるのが特徴です。

個人でLLMを作れるか

規模現実的?備考
超小型(〜1B)可能高性能GPU 1台で数日〜数週間
小型(1〜7B)厳しい複数のGPUが必要、数十万〜数百万円
中型(7〜70B)非現実的GPUクラスタが必要、数千万〜数億円
大型(70B〜)不可能大企業の資金力と設備が必要

まずは既存のオープンソースモデルをファインチューニングして、自分好みにカスタマイズするところから始めるのがおすすめです。

まとめ

AIのカスタマイズは、プロンプトエンジニアリング → RAG → ファインチューニングの順に試すのが鉄則です。多くの場合、プロンプトの工夫やRAGで十分な成果が得られます。

ファインチューニングが必要な場合でも、LoRA / QLoRAを使えば個人レベルでも挑戦でき、Google Colabを使えば高価なGPUがなくても始められます。

LLMの学習プロセス(事前学習 → SFT → RLHF)を理解しておくと、AIの得意・不得意がわかり、より適切なカスタマイズ方法を選べるようになります。

学習ロードマップ

前編・後編の内容をふまえて、ローカルLLMからAI開発までのステップをまとめます。

Step 1: LM StudioでローカルLLMを動かしてみる

Step 2: Ollamaをコマンドラインで使ってみる

Step 3: Pythonの基礎を学ぶ

Step 4: Hugging FaceのモデルをPythonから使ってみる

Step 5: LoRAでファインチューニングに挑戦する

Step 6: 小さな言語モデルを一から学習させてみる

関連記事


AI導入でお困りですか?

「AIを自社のデータでカスタマイズしたい」「RAGやファインチューニングの導入を検討している」

そんなご要望がありましたら、AI DARUMAにご相談ください。AIカスタマイズの検討から導入までをお手伝いします。

〒723-0062 広島県三原市本町 1丁目7-29 2階 コワーキングスペースarica内