0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Coworkのカスタムスキル完全ガイド — SKILL.mdで「AIの同僚」を育てる【2026年3月最新】

0
Posted at

Meta Llama 4 Scout/Maverick 実践ガイド — MoEアーキテクチャの仕組みとOllama/API活用のすべて【2026年3月最新】

2026年3月中旬、Metaが「Llama 4」ファミリーをリリースしました。

発表を見て、最初に思ったのは「10Mトークンのコンテキスト」という数字でした。GPT-4oの128Kの約78倍。ちょっと桁が違いすぎて、現実感がわかないくらいです。でも、ちゃんと調べていくと、「すごいけど、そのすごさはどこにあるのか」が見えてきて、むしろ使い方の解像度が上がりました。

この記事では、Llama 4の技術的な仕組みから、実際に手元で動かすまでの具体的な手順を整理しています。「発表は知ってるけど、実際どう使えばいいのか分からない」という方に特に役立てていただけると思います。

目次

  1. Llama 4が変えたこと — MoEアーキテクチャという設計思想
  2. Scout vs Maverick — どちらを選ぶか
  3. ハードウェア要件の実態 — 「17Bアクティブ」の罠
  4. Ollamaでローカル実行する — 最速セットアップ
  5. PythonからAPI経由で使う — Groq / Together AI
  6. 実践的なユースケース — RAG・長コンテキスト・マルチモーダル
  7. ライセンスと商用利用の注意点

1. Llama 4が変えたこと — MoEアーキテクチャという設計思想

Llama 3.1が70Bの「密なモデル(Dense Model)」だったとすると、Llama 4は「疎なモデル(Sparse Model)」と表現できます。

Dense(密)とSparse(疎)、この違いがLlama 4の本質です。

Dense Modelの仕組み

従来のLlama 3.1 70Bは、1トークンを処理するたびに全70Bのパラメータを使います。どんな単純な質問に対しても、フル稼働。これはシンプルで予測しやすいですが、コンテキストが長くなるとメモリとコンピューティングが比例して増えます。

MoE(Mixture of Experts)の仕組み

MoEは、内部に複数の「エキスパート」と呼ばれるサブネットワークを持ちます。各トークンを処理するとき、「ルーター」が最適なエキスパートを選択し、選ばれたエキスパートだけが処理を行います。

Llama 4 Scoutを例にすると:

  • 総パラメータ数: 109B
  • 1トークンあたりのアクティブパラメータ: 17B(16の専門エキスパート + 1つの共有エキスパート)
  • 残りの約92Bのパラメータは、そのトークン処理では休んでいる

つまり、計算効率は17Bクラスでありながら、多様な専門知識を持つ109Bの表現力を保てるというのが理論上の利点です。

この設計によって、Llama 4は従来の Dense モデルとは異なるトレードオフをもたらします。

Dense (Llama 3.1 70B):
  処理量: 70B パラメータ × トークン数
  メモリ: 70B分 固定

MoE (Llama 4 Scout):
  処理量: 17B パラメータ × トークン数 ← 計算は軽い
  メモリ: 109B分 必要          ← ここが重い

計算は軽くなりますが、全エキスパートをメモリに載せておく必要があるため、VRAMの要件は総パラメータ数に比例します。これが後述する「17Bアクティブの罠」につながります。

なお、アーキテクチャの変更はこれだけではありません。Llama 4はネイティブにマルチモーダル(テキスト + 画像)に対応した最初のLlamaシリーズです。Llama 3.2 VisionはVision Adapterを後付けした設計でしたが、Llama 4はアーキテクチャ自体がマルチモーダルを前提に設計されています。


2. Scout vs Maverick — どちらを選ぶか

Llama 4ファミリーの現時点での主な2モデルを比較します(Behemothは2Tパラメータのモデルですが、2026年3月時点ではプレビュー段階です)。

項目 Scout Maverick
総パラメータ 109B 400B
アクティブパラメータ 17B 17B
エキスパート数 16+1 (共有) 128+1 (共有)
最大コンテキスト 10Mトークン 1Mトークン
最小VRAM (BF16) 218 GB 804 GB
最小VRAM (FP8) 110 GB 400 GB
最小VRAM (INT4) 55 GB ~200 GB
単一GPU運用 可(INT4 on H100 80GB) 不可
マルチモーダル 対応 対応
品質ティア 高い より高い

数字だけ見ると、Maverickのほうが8倍のエキスパートを持つだけあって品質で勝ります。ただし、必要なハードウェアも8倍ほど重くなります。

Scoutを選ぶべき状況

  • 長いドキュメントの処理(100Kトークン以上)
  • RAGのコーパスが巨大(数十万トークン規模)
  • 単一GPUで動かしたい(コスト・運用のシンプルさ)
  • プロトタイピングや個人プロジェクト
  • コスト制約がある

Maverickを選ぶべき状況

  • 品質が最優先(GPT-4クラスと競合するタスク)
  • 複雑な推論・繊細なテキスト生成
  • 8×H100以上のインフラが確保できる組織
  • ベンチマーク重視の評価環境

現実的には、個人・スタートアップ・中小チームの多くはScoutが出発点になるでしょう。Scoutの10Mトークンコンテキストは、GPT-4oの128Kとは次元が違う体験をもたらします。


3. ハードウェア要件の実態 — 「17Bアクティブ」の罠

Llama 4の発表で最も誤解が広がったのが、「アクティブパラメータ17B」という表現です。

「17BってLlama 3.1 17Bと同じくらいのVRAMで動くんじゃないか」と思うのは、ごく自然な反応だと思います。でも、それは違います。

なぜ罠か

VRAMの消費量は、アクティブなパラメータ数ではなく、総パラメータ数に基づきます。MoEモデルでは、全エキスパートをメモリに展開しておく必要があるからです。

# メモリ消費の概算(実際はKVキャッシュ等で変動)

# BF16精度: 1パラメータ = 2バイト
scout_bf16_vram = 109e9 * 2 / 1e9  # ≈ 218 GB

# FP8精度: 1パラメータ = 1バイト
scout_fp8_vram = 109e9 * 1 / 1e9   # ≈ 110 GB

# INT4精度: 1パラメータ = 0.5バイト
scout_int4_vram = 109e9 * 0.5 / 1e9  # ≈ 55 GB

Scoutの実用的なハードウェア構成

精度 必要VRAM 最小構成 実用コンテキスト
BF16 ~218 GB 4×H100 80GB 1M+
FP8 ~110 GB 2×H100 80GB 500K+
INT4 ~55 GB 1×H100 80GB ~130K

INT4量子化であれば、H100 80GB 1枚で動きます。品質はBF16から若干落ちますが、ドキュメント処理やRAGのような用途では実用的なレベルを保ちます。

クラウドAPIを使う場合

自前のGPUインフラが不要なAPI経由であれば、これらのハードウェア制約は気にしなくていいです。GroqやTogether AIがScout/Maverickを提供しており、ノートPCから呼び出せます。


4. Ollamaでローカル実行する — 最速セットアップ

コンシューマー向けGPU(RTX 4090など)では上記の要件を満たしません。ただ、Ollamaの量子化版(約12GB)で気軽に試す方法があります。

インストール

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

# Windows
# https://ollama.com からインストーラーをダウンロード

Llama 4 Scoutを起動

# 量子化版(約12GB)をダウンロードして起動
ollama run llama4:scout

# モデル一覧の確認
ollama list

起動すると、ターミナル上でチャット形式のインタフェースが開きます。

Pythonから呼び出す(Ollamaライブラリ使用)

import ollama

# テキスト生成
response = ollama.chat(
    model='llama4:scout',
    messages=[
        {
            'role': 'user',
            'content': 'Pythonで簡単なWebスクレイパーを書いてください。',
        }
    ]
)

print(response['message']['content'])

ストリーミング対応

import ollama

stream = ollama.chat(
    model='llama4:scout',
    messages=[{'role': 'user', 'content': 'MoEアーキテクチャを100文字で説明して'}],
    stream=True,
)

for chunk in stream:
    print(chunk['message']['content'], end='', flush=True)
print()

画像を渡すマルチモーダル利用

import ollama
import base64
from pathlib import Path

# 画像をbase64エンコード
image_path = Path('./sample.png')
with open(image_path, 'rb') as f:
    image_data = base64.b64encode(f.read()).decode()

response = ollama.chat(
    model='llama4:scout',
    messages=[
        {
            'role': 'user',
            'content': 'この画像に何が写っていますか?',
            'images': [image_data]
        }
    ]
)

print(response['message']['content'])

OllamaはOpenAI互換のREST APIも提供しているので、既存のOpenAI SDKがそのまま使えます。

from openai import OpenAI

client = OpenAI(
    base_url='http://localhost:11434/v1',
    api_key='ollama',  # 任意の文字列
)

response = client.chat.completions.create(
    model='llama4:scout',
    messages=[
        {'role': 'user', 'content': 'Pythonのリスト内包表記を説明して'}
    ]
)

print(response.choices[0].message.content)

OpenAIクライアントを使っているアプリケーションのエンドポイントをローカルに向けるだけで、Llama 4に差し替えられるのは便利だと思います。


5. PythonからAPI経由で使う — Groq / Together AI

自前のGPUがなくても、クラウドAPI経由でScout/Maverickを使えます。

Groqを使う場合

from groq import Groq

client = Groq(api_key="your-groq-api-key")

completion = client.chat.completions.create(
    model="llama-4-scout-17b-16e-instruct",
    messages=[
        {
            "role": "system",
            "content": "あなたは技術的な質問に答えるアシスタントです。"
        },
        {
            "role": "user",
            "content": "Pythonでシンプルなタスクキューを実装してください。"
        }
    ],
    temperature=0.7,
    max_tokens=2000,
)

print(completion.choices[0].message.content)

Together AIを使う場合

import together

client = together.Together(api_key="your-together-api-key")

response = client.chat.completions.create(
    model="meta-llama/Llama-4-Scout-17B-16E-Instruct",
    messages=[
        {"role": "user", "content": "FastAPIでRESTful APIのサンプルを作成して"}
    ],
    max_tokens=3000,
    temperature=0.6,
)

print(response.choices[0].message.content)

ストリーミング対応(Together AI)

import together

client = together.Together(api_key="your-together-api-key")

stream = client.chat.completions.create(
    model="meta-llama/Llama-4-Scout-17B-16E-Instruct",
    messages=[
        {"role": "user", "content": "Dockerコンテナのベストプラクティスを教えて"}
    ],
    max_tokens=2000,
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta
    if hasattr(delta, 'content') and delta.content:
        print(delta.content, end='', flush=True)
print()

どちらもOpenAI互換のインタフェースなので、コードの変更は最小限に抑えられます。


6. 実践的なユースケース — RAG・長コンテキスト・マルチモーダル

技術を理解したうえで、どこに使えるかを考えてみましょう。

6-1. 大規模ドキュメントのRAG

Scoutの10Mトークンコンテキストは、RAGの設計に大きな影響を与えます。

従来のRAGは、コンテキストが短いため、「検索して関連チャンクだけ渡す」という設計が必要でした。でも10Mトークンあれば、中小規模の文書データベースをまるごとプロンプトに入れることも検討できます。これを「Long Context RAG」と呼ぶこともあります。

from pathlib import Path

def load_documents(folder: str) -> str:
    """フォルダ内のテキストファイルを全て読み込んで結合"""
    docs = []
    for path in Path(folder).rglob("*.txt"):
        content = path.read_text(encoding="utf-8")
        docs.append(f"--- {path.name} ---\n{content}")
    return "\n\n".join(docs)

def query_documents(question: str, docs: str, client, model: str) -> str:
    """ドキュメント全体を渡してクエリに回答"""
    response = client.chat.completions.create(
        model=model,
        messages=[
            {
                "role": "system",
                "content": "以下のドキュメントを参照して、質問に答えてください。\n\n" + docs
            },
            {
                "role": "user",
                "content": question
            }
        ],
        max_tokens=1000,
    )
    return response.choices[0].message.content

# 使用例
from groq import Groq

client = Groq(api_key="your-groq-api-key")
docs = load_documents("./knowledge_base")

answer = query_documents(
    question="プロジェクトの設計方針について教えてください",
    docs=docs,
    client=client,
    model="llama-4-scout-17b-16e-instruct"
)
print(answer)

6-2. 長いコードベースの解析

コードレビューや依存関係の解析でも、長コンテキストは活きます。

import subprocess

def get_repo_code(repo_path: str, extensions: list[str]) -> str:
    """リポジトリのコードをまとめて読み込む"""
    code_parts = []
    for ext in extensions:
        result = subprocess.run(
            ['find', repo_path, '-name', f'*.{ext}', '-not', '-path', '*/node_modules/*'],
            capture_output=True, text=True
        )
        for file_path in result.stdout.strip().split('\n'):
            if file_path:
                try:
                    content = Path(file_path).read_text(encoding="utf-8")
                    rel_path = file_path.replace(repo_path, '')
                    code_parts.append(f"```{ext}\n# {rel_path}\n{content}\n```")
                except Exception:
                    pass
    return "\n\n".join(code_parts)

# 使用例
code = get_repo_code("/path/to/your/project", ["py", "ts", "json"])
# Scout の長コンテキストにコード全体を渡してレビュー依頼

6-3. 画像 + テキストの組み合わせ処理

Llama 4のネイティブマルチモーダル対応を活用した例です。

import base64
import ollama

def analyze_image_with_context(
    image_path: str,
    additional_context: str,
    question: str
) -> str:
    """画像と追加テキストコンテキストを組み合わせて解析"""
    with open(image_path, 'rb') as f:
        image_data = base64.b64encode(f.read()).decode()

    prompt = f"{additional_context}\n\n{question}"

    response = ollama.chat(
        model='llama4:scout',
        messages=[
            {
                'role': 'user',
                'content': prompt,
                'images': [image_data]
            }
        ]
    )
    return response['message']['content']

# 使用例: ダッシュボードのスクリーンショットを分析
result = analyze_image_with_context(
    image_path="./dashboard_screenshot.png",
    additional_context="これは月次売上ダッシュボードです。前年比較が含まれています。",
    question="グラフから読み取れる主要なトレンドは何ですか?"
)
print(result)

7. ライセンスと商用利用の注意点

Llama 4のライセンスには、Llama 3系と異なる注意点があります。

EUユーザーへの制限

Llama 4のライセンスには、EUに拠点を置く企業・個人の商用利用を制限する条項が含まれています。これはLlama 3系にはなかった制限で、発表後すぐにEUのAI開発者コミュニティで議論になりました。

日本からの利用について

この制限は日本には適用されません。日本の個人・企業は、Llama 4を商用プロジェクトで自由に利用できます(ライセンスの他の条件に従う必要はあります)。

月間アクティブユーザー制限

Llama 3系と同様、月間アクティブユーザーが7億人を超えるサービスに使う場合は、Metaとの別途ライセンス契約が必要です。通常の個人・中小企業の用途では関係ありません。

正式なライセンス確認先

https://www.llama.com/llama4/license/

利用前にライセンス全文を確認することをお勧めします。特にEUに拠点を持つ組織は慎重に確認してください。


まとめ

Llama 4で特に印象的なのは、Scout の10Mトークンコンテキストです。RAGの設計思想そのものを変える可能性があると思っています。

まとめると:

  • MoEアーキテクチャ = 計算効率と多様な専門性を両立する設計
  • Scout = 10Mトークン、単一GPU可、個人・スタートアップ向け
  • Maverick = より高品質、8×H100以上が必要、組織向け
  • ローカル実行 = OllamaでINT4量子化版(約12GB)から試せる
  • API利用 = Groq / Together AI でGPU不要
  • 日本からの商用利用 = 制限なし(EUへの制限はあるが日本は対象外)

Ollamaを入れるだけで試せるので、まずは ollama run llama4:scout から始めてみるのがいいかと思います。長コンテキストの体験は、試してみて初めて実感できる部分が大きいです。


参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?