Chuyển đến nội dung chính

レッスン 5: LLM の詳細 - LLaMA、ミストラル、クウェン、ファイ

オープンソース LLM の詳細な比較: LLaMA 3、Mistral、Qwen 2.5、Phi-3/4。アーキテクチャの違い、ベンチマーク、使用例。 Ollama、vLLM を使用してローカルで実行します。商用モデル: GPT-4、クロード、ジェミニ。

2023 年、LLaMA の漏洩により、オープンソース AI が爆発的に増加します。 2025 年には、ラップトップでモデル 70B を実行できるようになります。 メタ、ミストラル、アリババ、マイクロソフトの間の競争により、状況は完全に変わりました。この記事では、アーキテクチャ、ベンチマーク、およびこれらのモデルを実際に実行する方法について詳しく説明します。 ollama run vLLM を使用して実稼働環境を提供します。

1. Landscape LLM 2024-2026 — オープンソース vs 商用

LLM Evolution Timeline:

2023 Q1         2023 Q3          2024 Q1-Q2        2024 Q3-2025      2025-2026
┌─────────┐   ┌──────────────┐  ┌──────────────┐  ┌─────────────┐  ┌─────────────┐
│ LLaMA 1 │──▶│ LLaMA 2      │─▶│ LLaMA 3      │─▶│ LLaMA 3.1-  │─▶│ LLaMA 4     │
│ GPT-4   │   │ Mistral 7B   │  │ Mixtral 8x22B│  │ 3.3, Qwen2.5│  │ Qwen 3      │
│ (leaked)│   │ Qwen 1,Phi-2 │  │ Phi-3,Claude3│  │ Mistral Lg  │  │ Phi-4       │
└─────────┘   └──────────────┘  └──────────────┘  └─────────────┘  └─────────────┘
GPT-4 chỉ     Open-source       Gap thu hẹp       Open ≈ Closed    Open dẫn đầu
qua API        bùng nổ          coding, math      nhiều task        nhiều benchmark
基準オープンウェイトクローズドソース
代表者LLaMA、ミストラル、クウェン、ファイGPT-4o、クロード 4、ジェミニ 2
コストインフラコスト、トークンごとの手数料なしトークンごとの支払い
カスタマイズ微調整、マージ、クオンタイズ制限付き (システム プロンプト、RAG)
プライバシーデータはオンプレミスに留まるAPI経由で送信されるデータ
こんな用途に最適プロダクションは自律的でドメイン固有です高速プロトタイプ、SOTA 品質

###1.1.用語を区別する必要がある

  • オープンソース: コード + 重み + トレーニング データ (まれ - OLMo、BLOOM のみ)
  • 無差別ウェイト: ウェイトはリリースされますが、トレーニング データはありません (LLaMA、Mistral、Qwen)
  • オープンアクセス: API 経由で無料で使用できますが、重みはダウンロードされません
  • 独自仕様: なし — API のみ (GPT-4、クロード)

2. アーキテクチャ パターン — デコーダのみ、MoE、GQA、RoPE、SWA

###2.1.デコーダのみ + GQA

Decoder-Only (GPT, LLaMA, Mistral):

Input tokens → Embeddings + RoPE
        │
        ▼
┌───────────────────────────────────────┐
│  Masked Self-Attention (causal)  │◄─ Chỉ nhìn tokens TRƯỚC
├───────────────────────────────────────┤
│  Feed-Forward (SwiGLU)           │
├───────────────────────────────────────┤
│  RMSNorm (pre-norm)              │
└───────────────────────────────────────┘
        │  × N layers (32-80)
        ▼
  Linear → Softmax → Next token

Grouped-Query Attention (GQA) — giảm KV cache:

MHA (cũ):        GQA (LLaMA 3):       MQA:
Q1 Q2 Q3 Q4      Q1 Q2 | Q3 Q4        Q1 Q2 Q3 Q4
│  │  │  │         \ | /   \ | /         \ |  | /
K1 K2 K3 K4        K1,2    K3,4           K_shared
V1 V2 V3 V4        V1,2    V3,4           V_shared
KV cache: 4×d     KV cache: 2×d         KV cache: 1×d

重要な洞察: GQA はキャッシュ KV を 4 ~ 8 分の 1 に削減しますが、品質はほとんど変わりません。これがモデル 70B がコンシューマ GPU で実行できる理由です。

###2.2.回転位置埋め込み (RoPE)

RoPE は、複素空間内でベクトルを回転させることで位置をエンコードします。利点: 自然な相対位置、コンテキストの長さを簡単に拡張できます。 LLaMA、Mistral、Qwen で使用されており、最新のすべての LLM の標準位置エンコーディングです。

###2.3.スライディング ウィンドウ アテンション (SWA) と MoE

SWA (Mistral): mỗi layer attend W tokens gần nhất
  Layer 1: window = 4096 → mỗi token "thấy" 4K tokens
  Layer N: effective range = N × W = 32 × 4096 = 131K tokens!
  Memory: O(n×w) thay vì O(n²) — tiết kiệm VRAM lớn

MoE (Mixtral 8×7B): sparse — chỉ activate 2/8 experts mỗi token
  Input → Router (gating) → top-2 experts → weighted sum
  Total params: 47B | Active: ~13B/token
  Speed ≈ 13B dense | Quality ≈ 70B dense
パターンで使用されるメリット
GQALLaMA 3、ミストラルキャッシュ KV が 4 ~ 8 倍に減少
ロープほとんどの LLMコンテキストの拡張は簡単です
SWAミストラル 7BO(n×w) メモリ
萌えミストラル、Qwen-MoE高速推論、スケーラブル
SwiGLULLaMA、ミストラルReLU よりも優れたアクティベーション

3. LLaMA ファミリ (メタ) — オープンソースの柱

LLaMA 1 (Feb'23)      LLaMA 2 (Jul'23)      LLaMA 3 (Apr'24)
├─ 7B-65B              ├─ 7B, 13B, 70B       ├─ 8B, 70B (15T tokens!)
├─ Research only       ├─ Commercial license  ├─ GQA, RoPE, 128K vocab
└─ Leaked → bùng nổ   └─ RLHF, 4K ctx       └─ 128K ctx (3.1), tool use

LLaMA 3.2 (Sep'24): 1B/3B (edge) + 11B/90B (vision!)
LLaMA 3.3 (Dec'24): 70B cải thiện multilingual, instruction following
特長ラマ3 8Bラマ3 70BLLaMA 3.1 405B
レイヤー3280126
隠れた薄暗い4096819216384
KVヘッド(GQA)8816
コンテキスト8K→128K8K→128K128K
トレーニングトークン15T+15T+15T+

LLaMA が重要な理由 最大のオープンソース AI エコシステム。ほとんどの微調整モデルは LLaMA ベースに基づいています: Alpaca (Stanford)、Vicuna (LMSYS)、CodeLlama、Llama-Guard (安全性)、WizardLM。主なイノベーション: RMSNorm (プレノーム)、SwiGLU アクティベーション、RoPE、GQA、128K 語彙。ライセンス: Llama Community — 7 億 MAU 未満は無料。

4. ミストラルファミリー — 効率こそが重要

Mistral AI (フランスのスタートアップ、元 DeepMind/Meta) — 哲学: 小さなモデル、大きなパフォーマンス。

モデルサイズタイプコンテキストハイライト
ミストラル 7B7B密32KSWA、LLaMA 2 13B に勝利
ミストラル 8×7B47B (13B アクティブ)環境省32K最初の MoE オープン
ミストラル 8×22B141B (39B アクティブ)環境省64K最強のオープンMoE
ミストラル・ラージ~120B密128KGPT-4付近
コードストラル22B密32Kコードに特化した

Mistral 7B のイノベーション: SWA (ウィンドウ = 4096) + GQA (8 KV ヘッド) + ローリング バッファ キャッシュ (固定メモリ、拡張なし) + プリフィル チャンキング → 7B モデルは、ほとんどのベンチマークで LLaMA 2 13B を上回ります。 Mixtral 8×7B は MoE が実用的であることを証明しています。速度は 13B 密度、品質はほぼ 70B 密度です。

5. Qwen Family (Alibaba) — 多言語チャンピオン

Qwen 2.5 (2024 年 9 月) は、Open LLM Leaderboard のトップに常にランクされており、特に多言語 (29 以上の言語、CJK、ベトナム語) に優れています。

特長詳細
サイズ0.5B → 72B (両方の MoE バージョン)
トレーニング18T トークン、厳選された多言語
コンテキスト128K ネイティブ (YARN RoPE)
コーディングQwen2.5-Coder — 最上位のオープン コーディング モデル
ライセンスApache 2.0 (最も普及している)
ツールの使用ネイティブ関数呼び出し、JSON モード

QwQ (32B) — OpenAI o1 スタイルの推論モデルですが、オープンウェイトです。答える前に、特に数学やコードなど、多くのステップを「考えて」ください。モデルは自らに質問し、各ステップを検証して、最終結果を出力します。

QwQ reasoning flow:
  Prompt: "Sum of primes < 20?"
  → "Let me think step by step..."
  → "Primes: 2, 3, 5, 7, 11, 13, 17, 19"
  → "Wait, is 9 prime? 9 = 3×3, no."
  → "Sum = 2+3+5+7+11+13+17+19 = 77"
  → "The answer is 77."
  
  Self-verification → fewer errors on complex tasks

6. Phi ファミリー (Microsoft) — 小型モデル、大きなパフォーマンス

哲学: データ品質 > モデル サイズ — 「教科書品質」 + 合成データでトレーニングします。

Phi Philosophy:  Web crawl (noisy) × Massive scale → okay model
                 vs
                 Curated data × Modest scale → GREAT model
モデルサイズコンテキストMMLUハイライト
ファイ22.7B2K56.7一部の 7B モデルを上回る
ファイ-3 ミニ3.8B128K68.8オンデバイス、拡張 ctx
ファイ-3 ミディアム14B128K78.0GPT-3.5付近
ファイ-3.5 MoE42B (6.6B アクティブ)128K78.9まばらなMoE
ファイ-414B16K81.414B は 70B と競合します!

Phi-4 は、MMLU 81.4、MATH 80.4、HumanEval 82.6 を達成しました。推論タスクでは、LLaMA 3.1 70B に相当します。秘密: 合成データ生成パイプライン は、大規模な LLM から高品質のトレーニング データを作成し、トレーニング前にフィルターと検証を行います。

7. 商用モデル — GPT-4o、クロード、ジェミニ

モデルコンテキスト強み価格(100万トーク)
GPT-4o128K汎用、高速2.5 ドルイン / 10 ドルアウト
GPT-4o-mini128K予算に優しい$0.15 / $0.60
o1 / o3200K深い推論$15 / $60
クロード 3.5 ソネット200Kコーディング、分析3ドル / 15ドル
クロード 4 オーパス200Kエージェント、ツールの使用$15 / $75
ジェミニ 2 フラッシュ1Mスピード、巨大なコンテキスト$0.075 / $0.30
ジェミニ 2 プロ2Mロングコンテキストキング$1.25 / $10

8. メガベンチマークテーブル

モデルMMLUヒューマンエヴァルGSM8KアリーナELO
GPT-4o88.790.297.81285
クロード 4 オーパス88.192.096.51290
ジェミニ 2 プロ87.585.096.01270
LLaMA 3.1 405B85.289.096.81210
クウェン 2.5 72B83.186.495.81190
ファイ4 (14B)81.482.695.31150
LLaMA 3.3 70B82.084.595.11180
ミストラル・ラージ81.282.093.01160
ファイ-3 ミニ (3.8B)68.858.582.51010

ベンチマークの説明: MMLU = 知識 57 科目、HumanEval = Python コード遺伝子、GSM8K = 数学的推論、Arena ELO = 実際の人間の好み (最も信頼性が高い)。

注意: ベンチマークは「ゲーム化」される可能性があります (トレーニング データの汚染、ベンチマーク固有の調整)。実際のユーザーからの Arena ELO が最も信頼できます。

9. LLM ローカルを実行します — Ollama、vLLM、llama.cpp

最も重要な部分: 実践。 LLM をコンピュータ上で直接実行する方法を学びます。

###9.1. Ollama — セットアップは 5 分

# Install
curl -fsSL https://ollama.com/install.sh | sh  # Linux
brew install ollama                              # macOS

# Chạy models
ollama run llama3.1          # LLaMA 3.1 8B (~4.7GB)
ollama run mistral           # Mistral 7B
ollama run qwen2.5           # Qwen 2.5 7B
ollama run phi4              # Phi-4 14B (~8GB)
ollama run qwen2.5-coder     # Coding optimized
ollama run llama3.1:70b      # 70B — cần ~40GB VRAM

###9.2. Ollama API — OpenAI 互換

from openai import OpenAI

# Ollama chạy OpenAI-compatible API tại localhost:11434
client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama",  # Không cần real key
)

response = client.chat.completions.create(
    model="llama3.1",
    messages=[
        {"role": "system", "content": "Trả lời ngắn gọn bằng tiếng Việt."},
        {"role": "user", "content": "GQA là gì trong Transformer?"},
    ],
    temperature=0.7,
)
print(response.choices[0].message.content)

###9.3. vLLM — 実稼働サービス

vLLM (カリフォルニア大学バークレー校) は最速の推論エンジンです。効率的な KV キャッシュ管理のために PagesAttendant を使用し、継続的なバッチ処理をサポートします。

pip install vllm

# Serve với OpenAI-compatible API
python -m vllm.entrypoints.openai.api_server \
    --model meta-llama/Llama-3.1-8B-Instruct \
    --port 8000 \
    --gpu-memory-utilization 0.9
# Gọi vLLM — same OpenAI format
client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy")
response = client.chat.completions.create(
    model="meta-llama/Llama-3.1-8B-Instruct",
    messages=[{"role": "user", "content": "Hello!"}],
)

###9.4. llama.cpp — CPU 推論と GGUF

llama.cpp (Georgi Gerganov) を使用すると、純粋な CPU または混合 CPU/GPU で LLM を実行できます。形式 GGUF は、量子化モデルの標準です。

brew install llama.cpp  # macOS

# Download GGUF model từ Hugging Face
huggingface-cli download \
  bartowski/Meta-Llama-3.1-8B-Instruct-GGUF \
  Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf \
  --local-dir ./models/

# Chạy interactive chat
llama-cli -m ./models/Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf \
  -c 4096 --chat-template llama3 -i

###9.5。ハグフェイストランスフォーマー

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_name = "microsoft/Phi-4"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name, torch_dtype=torch.bfloat16, device_map="auto",
)

messages = [{"role": "user", "content": "Explain MoE briefly."}]
inputs = tokenizer.apply_chat_template(
    messages, return_tensors="pt", add_generation_prompt=True
).to(model.device)
outputs = model.generate(inputs, max_new_tokens=300, temperature=0.7, do_sample=True)
print(tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True))

###9.6。比較ツール

ツール最適な用途スピード簡単GPU?
オラマ開発、実験良い⭐⭐⭐⭐⭐オプション
vLLM生産サービス⭐⭐⭐⭐⭐⭐⭐⭐はい
ラマ.cppCPU/エッジ良い⭐⭐⭐オプション
トランスフォーマー微調整、調査良い⭐⭐⭐⭐おすすめ

10. 量子化 — GGUF、GPTQ、AWQ

量子化により、モデルの重みの精度が低下します: FP16 (16 ビット) → INT4 (4 ビット)。結果: モデルが 3 ~ 4 倍小さくなり、推論が高速になりますが、品質が低下する可能性があります。これは、コンシューマ ハードウェアで大規模なモデルを実行する場合に必須のテクニックです。

LLaMA 3.1 8B (FP16): ~16 GB
        │
  ┌─────┼─────────────────┐
  ▼     ▼                 ▼
GGUF   GPTQ              AWQ
(CPU+) (GPU)              (GPU)
Q4_K_M: ~4.9GB   INT4: ~4.5GB   INT4: ~4.3GB
Best: llama.cpp   Best: HF        Best: vLLM
      Ollama            AutoGPTQ         Fastest
量子ビットサイズ(8B)品質使用例
Q3_K_M3-4~3.9 GB~90%限られた VRAM
Q4_K_M4-5~4.9 GB~95%スイートスポット
Q5_K_M5-6~5.7 GB~97%より良い品質
Q8_08~8.5 GB~99.5%ほぼロスレス
FP1616~16 GB100%ベースライン
# Tạo custom model với Ollama Modelfile
cat > Modelfile << 'EOF'
FROM llama3.1:8b-instruct-q4_K_M
PARAMETER temperature 0.7
PARAMETER num_ctx 8192
SYSTEM "Bạn là trợ lý AI, trả lời bằng tiếng Việt, ngắn gọn kèm ví dụ."
EOF

ollama create my-assistant -f Modelfile
ollama run my-assistant "Giải thích MoE là gì?"

経験則: ほとんどのユースケースでは Q4_K_M を使用してください。さらなる品質が必要: Q5_K_M。 VRAM 制限: Q3_K_M。

11. 適切なモデルを選択する — デシジョン ツリー

「最適なモデル」は存在しません。ユースケース、予算、ハードウェアに応じて 最適なモデル があるだけです。

START: Bạn cần gì?
├─► Prototype nhanh → GPT-4o-mini / Claude 3.5 Sonnet (API)
├─► Production on-premise
│   ├─ GPU (A100+)  → vLLM + LLaMA 3.1 70B / Qwen 2.5 72B
│   └─ No GPU       → Ollama + Phi-4 (Q4) / LLaMA 3.1 8B (Q4)
├─► Coding → Qwen2.5-Coder (local) / Claude 4 (API)
├─► Multilingual (CJK, Vietnamese) → Qwen 2.5
├─► Mobile/Edge (<4GB) → Phi-3 Mini / LLaMA 3.2 1B-3B
├─► Math/Reasoning → QwQ 32B / o1-mini (API) / Phi-4
└─► Longest context → Gemini 2 (1M-2M) / Claude 4 (200K)

11.1。ハードウェア要件

モデルサイズVRAM (FP16)VRAM (第 4 四半期)RAM (CPU)
1-3B4GB2GB4GB
7-8B16GB6GB8GB
13-14B28GB10GB16GB
70-72B140GB42GB64GB
405B810GB230GB256GB以上
MacBook M-series (8GB):   → Phi-3 Mini, LLaMA 3.2 3B (Q4)
MacBook M-series (16GB):  → LLaMA 3.1 8B (Q4), Mistral 7B
MacBook M-series (32GB):  → Phi-4, Qwen 2.5 14B (Q4)
RTX 4090 (24GB):          → LLaMA 3.1 8B (FP16), 70B (Q4)
A100 (80GB):              → LLaMA 3.1 70B (FP16)
8× H100:                  → LLaMA 3.1 405B (FP16)

概要

Key Takeaways:

1. ARCHITECTURE: Decoder-only + GQA + RoPE = standard recipe
   MoE = quality lớn compute nhỏ | SWA = memory-efficient

2. OPEN-SOURCE FAMILIES:
   LLaMA (Meta) → ecosystem lớn nhất
   Mistral → efficiency king, SWA + MoE pioneer
   Qwen (Alibaba) → best multilingual, Apache 2.0
   Phi (Microsoft) → small model big performance

3. CHẠY LOCAL: Ollama (5 phút) → vLLM (production) → llama.cpp (CPU)

4. QUANTIZATION: Q4_K_M = sweet spot (3× nhỏ, ~95% quality)

5. Không có "best model" — chỉ có "best fit" cho context cụ thể

演習

演習 1: モデルの実行と比較 (30 分)

  1. Ollama をインストールし、3 つのモデルをプルします。 llama3.1、 qwen2.5、 phi4
  2. 3 つすべてに同じ質問をします (例: 「トランスフォーマーを 5 つの文で説明してください」)
  3. 応答品質、速度、スタイルを比較する

演習 2: Ollama API 統合 (30 分)

  1. OpenAI SDK を使用して Ollama ローカルを呼び出す Python スクリプトを作成します。 2.実装する compare_models(prompt, models) — 同じプロンプトを複数のモデルに送信し、結果 + 経過時間を返します。
  2. 各モデルの トークン/秒 を測定します

演習 3: 量子化の実践 (20 分)

  1. ベトナム語のシステム プロンプトを使用してカスタム Modelfile を作成します
  2. モデルの構築: ollama create my-assistant -f Modelfile
  3. モデルの実行時に VRAM/RAM の使用量を測定します。

演習 4: モデルの選択 (20 分)

各シナリオのモデルとデプロイメントを選択し、その理由を説明します。

  1. ヘルスケア チャットボット — データはオンプレミスで、低予算で、正確である必要があります
  2. モバイル AI アシスタント — Android 4GB RAM、オフライン モード
  3. 研究ラボ — 中国語 + 英語の論文、長いコンテキストを分析します (>50,000 トークン)
  4. 電子商取引のサポート — 1 分あたり 1000 以上の同時リクエスト、高速応答
  5. コード レビュー ツール — 50 人の開発者チームの PR をさまざまな言語でレビューします

演習 5: ベンチマーク調査 (20 分)

  1. アクセス Open LLM Leaderboard
  2. 上位 5 モデルを比較します。どのモデルがどのベンチマークをリードしていますか? 3.「隠れた宝石」を見つける:15B未満だが高ランクのモデル
  3. 傾向を分析した短いレポートを作成します: MoE 対高密度、小規模対大規模