creating-visual-explainers/output/sample/llm.html

1143 lines
71 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex, nofollow, noarchive, nosnippet, noimageindex">
<meta name="googlebot" content="noindex, nofollow">
<meta property="og:title" content="LLM大規模言語モデルの仕組み">
<meta property="og:description" content="LLMの仕組みを、身近な例とビジュアルでわかりやすく図解します。">
<meta property="og:type" content="article">
<title>LLM大規模言語モデルの仕組み</title>
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><rect width='100' height='100' rx='20' fill='%23FFFFFF'/><rect x='8' y='8' width='84' height='84' rx='14' fill='none' stroke='%233B82F6' stroke-width='4'/><circle cx='32' cy='40' r='10' fill='%233B82F6' opacity='0.8'/><circle cx='68' cy='40' r='10' fill='%2360A5FA' opacity='0.8'/><rect x='25' y='62' width='50' height='6' rx='3' fill='%2394A3B8' opacity='0.6'/><rect x='30' y='74' width='40' height='6' rx='3' fill='%2394A3B8' opacity='0.3'/></svg>">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
ads: {
bg: '#FFFFFF',
surface: '#F8FAFC',
hover: '#F1F5F9',
border: '#E2E8F0',
accent: '#3B82F6',
'accent-light': '#2563EB',
text: '#1E293B',
muted: '#64748B',
dim: '#94A3B8',
positive: '#10B981',
negative: '#EF4444',
warning: '#F59E0B',
}
},
fontFamily: {
sans: ['"Noto Sans JP"', '"Hiragino Sans"', '"Hiragino Kaku Gothic ProN"', '"Yu Gothic UI"', '"Meiryo"', 'sans-serif'],
}
}
}
}
</script>
<style>
@media print {
.no-print { display: none !important; }
body { border-top: none !important; }
.rounded-xl { break-inside: avoid; }
.md\:flex-row { flex-direction: row !important; }
.md\:hidden { display: none !important; }
.hidden.md\:block { display: block !important; }
.md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.md\:mb-20 { margin-bottom: 5rem !important; }
.md\:py-16 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
.bg-clip-text.text-transparent {
-webkit-background-clip: initial !important;
background-clip: initial !important;
color: #2563EB !important;
-webkit-text-fill-color: #2563EB !important;
}
}
</style>
</head>
<body class="bg-ads-bg text-slate-600 antialiased leading-relaxed border-t-4 border-ads-accent">
<div class="no-print max-w-3xl mx-auto px-5 pt-2 flex justify-end">
<button onclick="window.print()" class="flex items-center gap-1.5 text-xs text-ads-dim hover:text-ads-accent transition-colors cursor-pointer">
<i data-lucide="download" class="w-3.5 h-3.5"></i>
PDF
</button>
</div>
<main class="max-w-3xl mx-auto px-5 py-10 md:py-16">
<!-- CONTENT_START -->
<!-- ============================================================ -->
<!-- HERO -->
<!-- ============================================================ -->
<div class="text-center mb-8 md:mb-10">
<div class="inline-flex items-center gap-2 bg-ads-accent/10 text-ads-accent-light px-4 py-1.5 rounded-full text-sm font-medium mb-6">
<i data-lucide="brain" class="w-4 h-4"></i>
AI・機械学習
</div>
<h1 class="text-3xl md:text-5xl font-black text-slate-900 tracking-tight mb-6">
<span class="bg-gradient-to-r from-blue-600 to-violet-600 bg-clip-text text-transparent">LLM</span>の仕組み
</h1>
<p class="text-lg text-ads-muted max-w-xl mx-auto leading-relaxed">
「ChatGPTってどういう仕組みなの」と聞かれて、うまく答えられない。<br>
ひとことで言うと ──
</p>
</div>
<!-- ============================================================ -->
<!-- ONE-PAGE SUMMARY -->
<!-- ============================================================ -->
<div class="bg-ads-surface border border-ads-border rounded-2xl p-6 md:p-10 mb-6">
<div class="text-center mb-8 md:mb-10">
<p class="text-xl md:text-2xl font-black text-slate-900 mb-2">
LLM = 膨大な文章を読んで<span class="text-ads-accent-light">「次の言葉」を予測する</span>AI
</p>
<p class="text-sm text-ads-muted">
大量のテキストから言葉の使い方を学び、人間のような文章を生み出す
</p>
</div>
<!-- Core flow: Input → LLM → Output -->
<div class="flex flex-col md:flex-row items-center justify-center gap-2 md:gap-0 mb-8">
<!-- Input -->
<div class="flex flex-col items-center w-36 p-3">
<div class="w-14 h-14 rounded-xl bg-blue-500/10 border border-blue-500/20 flex items-center justify-center mb-2.5">
<i data-lucide="message-square" class="w-7 h-7 text-blue-600"></i>
</div>
<div class="font-bold text-slate-900 text-sm">あなたの質問</div>
<div class="text-[11px] text-blue-600/70 mt-0.5">「明日の会議の議事録を書いて」</div>
</div>
<!-- Arrow 1 -->
<div class="flex items-center justify-center md:w-16 py-1 md:py-0">
<div class="flex flex-col items-center gap-0.5">
<span class="text-[9px] font-medium text-ads-accent tracking-wider">入力</span>
<i data-lucide="arrow-right" class="w-5 h-5 text-ads-accent hidden md:block"></i>
<i data-lucide="arrow-down" class="w-5 h-5 text-ads-accent md:hidden"></i>
</div>
</div>
<!-- LLM (centerpiece) -->
<div class="flex flex-col items-center w-44 p-4 bg-violet-500/5 border-2 border-violet-500/20 rounded-2xl">
<div class="w-16 h-16 rounded-2xl bg-violet-500/15 border-2 border-violet-500/30 flex items-center justify-center mb-2.5">
<i data-lucide="brain" class="w-8 h-8 text-violet-600"></i>
</div>
<div class="font-bold text-violet-700 text-base">LLM</div>
<div class="text-[11px] text-ads-muted mt-0.5 mb-2">文脈を理解し、次の言葉を予測</div>
<div class="text-[10px] text-ads-muted bg-white rounded-lg px-2.5 py-1 border border-ads-border/50">超高速の「穴埋めの天才」</div>
</div>
<!-- Arrow 2 -->
<div class="flex items-center justify-center md:w-16 py-1 md:py-0">
<div class="flex flex-col items-center gap-0.5">
<span class="text-[9px] font-medium text-ads-accent tracking-wider">出力</span>
<i data-lucide="arrow-right" class="w-5 h-5 text-ads-accent hidden md:block"></i>
<i data-lucide="arrow-down" class="w-5 h-5 text-ads-accent md:hidden"></i>
</div>
</div>
<!-- Output -->
<div class="flex flex-col items-center w-36 p-3">
<div class="w-14 h-14 rounded-xl bg-emerald-500/10 border border-emerald-500/20 flex items-center justify-center mb-2.5">
<i data-lucide="file-text" class="w-7 h-7 text-emerald-600"></i>
</div>
<div class="font-bold text-slate-900 text-sm">生成された文章</div>
<div class="text-[11px] text-emerald-600/70 mt-0.5">自然で的確な回答が届く</div>
</div>
</div>
<!-- Divider with label -->
<div class="flex items-center gap-4 mb-6">
<div class="flex-1 border-t border-ads-border/50"></div>
<div class="text-[11px] text-ads-dim font-medium">あなたも毎日触れている</div>
<div class="flex-1 border-t border-ads-border/50"></div>
</div>
<!-- Everyday examples as pills -->
<div class="flex flex-wrap justify-center gap-2 mb-8">
<div class="flex items-center gap-1.5 bg-white border border-ads-border rounded-full px-3.5 py-1.5 text-xs text-slate-700">
<i data-lucide="sparkles" class="w-3.5 h-3.5 text-violet-500"></i>
ChatGPT
</div>
<div class="flex items-center gap-1.5 bg-white border border-ads-border rounded-full px-3.5 py-1.5 text-xs text-slate-700">
<i data-lucide="languages" class="w-3.5 h-3.5 text-blue-500"></i>
翻訳アプリ
</div>
<div class="flex items-center gap-1.5 bg-white border border-ads-border rounded-full px-3.5 py-1.5 text-xs text-slate-700">
<i data-lucide="code" class="w-3.5 h-3.5 text-emerald-500"></i>
コード補完
</div>
<div class="flex items-center gap-1.5 bg-white border border-ads-border rounded-full px-3.5 py-1.5 text-xs text-slate-700">
<i data-lucide="search" class="w-3.5 h-3.5 text-amber-500"></i>
AI検索
</div>
<div class="flex items-center gap-1.5 bg-white border border-ads-border rounded-full px-3.5 py-1.5 text-xs text-slate-700">
<i data-lucide="pen-tool" class="w-3.5 h-3.5 text-red-500"></i>
文章要約・校正
</div>
</div>
</div>
<p class="text-center text-ads-muted mb-16 md:mb-20">
ここから先で、この仕組みをひとつずつ丁寧に解説していきます。
</p>
<!-- ============================================================ -->
<!-- SECTION 1: そもそもLLMって何 -->
<!-- ============================================================ -->
<section class="mb-16 md:mb-20">
<div class="flex items-center gap-3 mb-8">
<div class="flex items-center justify-center w-10 h-10 rounded-lg bg-blue-500/10 flex-shrink-0">
<i data-lucide="help-circle" class="w-5 h-5 text-blue-600"></i>
</div>
<h2 class="text-xl md:text-2xl font-bold text-slate-900">そもそもLLMって何</h2>
</div>
<p class="mb-6 leading-relaxed">
LLMは <strong class="text-slate-900">Large Language Model</strong>ラージ・ランゲージ・モデルの略で、日本語では「大規模言語モデル」と訳します。名前に含まれる3つの単語がそのまま特徴を表しています。
</p>
<!-- 名前の分解 -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 md:p-8 mb-8">
<h3 class="text-lg font-bold text-slate-900 text-center mb-8">名前に秘密がある ── 3つの単語を分解</h3>
<div class="flex flex-col md:flex-row items-stretch justify-center gap-4">
<div class="flex-1 bg-violet-500/10 border border-violet-500/20 rounded-xl p-5 text-center">
<div class="w-10 h-10 rounded-full bg-violet-500/20 flex items-center justify-center mx-auto mb-3">
<i data-lucide="database" class="w-5 h-5 text-violet-600"></i>
</div>
<div class="font-bold text-violet-700 mb-1">Large大規模</div>
<div class="text-xs text-ads-muted leading-relaxed">数千億〜数兆個の「パラメータ」(調整つまみ)を持つ。人間の脳の神経接続のように、膨大な情報の繋がりを記憶している</div>
</div>
<div class="flex-1 bg-blue-500/10 border border-blue-500/20 rounded-xl p-5 text-center">
<div class="w-10 h-10 rounded-full bg-blue-500/20 flex items-center justify-center mx-auto mb-3">
<i data-lucide="book-open" class="w-5 h-5 text-blue-600"></i>
</div>
<div class="font-bold text-blue-700 mb-1">Language言語</div>
<div class="text-xs text-ads-muted leading-relaxed">扱うのは「言葉」。人間が書いた文章を大量に読み込んで、言葉の使い方・つながり・ニュアンスを学習している</div>
</div>
<div class="flex-1 bg-emerald-500/10 border border-emerald-500/20 rounded-xl p-5 text-center">
<div class="w-10 h-10 rounded-full bg-emerald-500/20 flex items-center justify-center mx-auto mb-3">
<i data-lucide="box" class="w-5 h-5 text-emerald-600"></i>
</div>
<div class="font-bold text-emerald-700 mb-1">Modelモデル</div>
<div class="text-xs text-ads-muted leading-relaxed">数学的な計算の仕組み。入力されたテキストを受け取り、規則に従って処理し、結果を出力する「装置」のようなもの</div>
</div>
</div>
</div>
<p class="mb-6 leading-relaxed">
つまりLLMとは、<strong class="text-slate-900">膨大な量の文章データを読み込んで、「言葉の使い方」を身につけたAI</strong>です。では、「言葉の使い方を身につける」とは、具体的にどういうことでしょうか?
</p>
<p class="mb-8 leading-relaxed">
実は、LLMの基本動作は驚くほどシンプルです。やっていることはたった一つ ── <strong class="text-slate-900">「次に来る言葉を予測する」</strong>。これだけです。
</p>
<!-- 穴埋めアナロジー図 -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 md:p-8 mb-8">
<h3 class="text-lg font-bold text-slate-900 text-center mb-3">「穴埋めテストの天才」で考えるLLM</h3>
<p class="text-sm text-ads-muted text-center mb-8">LLMは文の続きを予測し続ける。たった一つの動作を超高速で繰り返している。</p>
<!-- 穴埋め問題 -->
<div class="bg-white border border-ads-border rounded-xl p-5 mb-6">
<div class="text-xs text-ads-dim font-medium mb-3">問題文</div>
<p class="text-lg font-bold text-slate-900 text-center">
「今日は天気が <span class="inline-block border-b-2 border-dashed border-violet-400 px-6 py-1 text-violet-600">???</span> ので、公園に <span class="inline-block border-b-2 border-dashed border-violet-400 px-6 py-1 text-violet-600">???</span>
</p>
</div>
<!-- LLMの頭の中 -->
<div class="flex flex-col md:flex-row gap-4 mb-6">
<div class="flex-1 bg-violet-500/5 border border-violet-500/15 rounded-xl p-5">
<div class="flex items-center gap-2 mb-3">
<i data-lucide="brain" class="w-4 h-4 text-violet-600"></i>
<div class="text-xs font-bold text-violet-700">LLMの頭の中1つめの空欄</div>
</div>
<div class="space-y-2">
<div class="flex items-center gap-2">
<div class="w-full bg-violet-500/10 rounded-full h-5 relative overflow-hidden">
<div class="bg-violet-500 h-full rounded-full w-[72%]"></div>
<span class="absolute inset-0 flex items-center px-3 text-[11px] font-medium text-slate-800">良い ── 72%</span>
</div>
</div>
<div class="flex items-center gap-2">
<div class="w-full bg-violet-500/10 rounded-full h-5 relative overflow-hidden">
<div class="bg-violet-400 h-full rounded-full w-[15%]"></div>
<span class="absolute inset-0 flex items-center px-3 text-[11px] font-medium text-slate-800">悪い ── 15%</span>
</div>
</div>
<div class="flex items-center gap-2">
<div class="w-full bg-violet-500/10 rounded-full h-5 relative overflow-hidden">
<div class="bg-violet-300 h-full rounded-full w-[8%]"></div>
<span class="absolute inset-0 flex items-center px-3 text-[11px] font-medium text-slate-800">穏やかな ── 8%</span>
</div>
</div>
<div class="flex items-center gap-2">
<div class="w-full bg-violet-500/10 rounded-full h-5 relative overflow-hidden">
<div class="bg-violet-200 h-full rounded-full w-[5%]"></div>
<span class="absolute inset-0 flex items-center px-3 text-[11px] font-medium text-slate-800">その他 ── 5%</span>
</div>
</div>
</div>
<div class="mt-3 text-xs text-ads-muted flex items-center gap-1.5">
<i data-lucide="check" class="w-3.5 h-3.5 text-violet-500"></i>
最も確率が高い「良い」を選択
</div>
</div>
<div class="flex-1 bg-blue-500/5 border border-blue-500/15 rounded-xl p-5">
<div class="flex items-center gap-2 mb-3">
<i data-lucide="brain" class="w-4 h-4 text-blue-600"></i>
<div class="text-xs font-bold text-blue-700">LLMの頭の中2つめの空欄</div>
</div>
<div class="space-y-2">
<div class="flex items-center gap-2">
<div class="w-full bg-blue-500/10 rounded-full h-5 relative overflow-hidden">
<div class="bg-blue-500 h-full rounded-full w-[68%]"></div>
<span class="absolute inset-0 flex items-center px-3 text-[11px] font-medium text-slate-800">行きましょう ── 68%</span>
</div>
</div>
<div class="flex items-center gap-2">
<div class="w-full bg-blue-500/10 rounded-full h-5 relative overflow-hidden">
<div class="bg-blue-400 h-full rounded-full w-[18%]"></div>
<span class="absolute inset-0 flex items-center px-3 text-[11px] font-medium text-slate-800">出かけたい ── 18%</span>
</div>
</div>
<div class="flex items-center gap-2">
<div class="w-full bg-blue-500/10 rounded-full h-5 relative overflow-hidden">
<div class="bg-blue-300 h-full rounded-full w-[10%]"></div>
<span class="absolute inset-0 flex items-center px-3 text-[11px] font-medium text-slate-800">散歩しよう ── 10%</span>
</div>
</div>
<div class="flex items-center gap-2">
<div class="w-full bg-blue-500/10 rounded-full h-5 relative overflow-hidden">
<div class="bg-blue-200 h-full rounded-full w-[4%]"></div>
<span class="absolute inset-0 flex items-center px-3 text-[11px] font-medium text-slate-800">その他 ── 4%</span>
</div>
</div>
</div>
<div class="mt-3 text-xs text-ads-muted flex items-center gap-1.5">
<i data-lucide="check" class="w-3.5 h-3.5 text-blue-500"></i>
「天気が良い+公園」の文脈で「行きましょう」を選択
</div>
</div>
</div>
<!-- 完成文 -->
<div class="bg-white border-2 border-emerald-500/30 rounded-xl p-5 text-center">
<div class="text-xs text-emerald-600 font-medium mb-2">完成</div>
<p class="text-lg font-bold text-slate-900">
「今日は天気が <span class="text-violet-600">良い</span> ので、公園に <span class="text-blue-600">行きましょう</span>
</p>
<p class="text-xs text-ads-muted mt-2">この「予測 → 選択」を1秒間に数百回繰り返すことで、長い文章が生まれる</p>
</div>
</div>
<p class="mb-4 leading-relaxed">
では、LLMが実際に使われている画面を見てみましょう。あなたもすでに見たことがあるはずです。
</p>
<div class="rounded-xl overflow-hidden border border-slate-700/50 mb-8">
<div class="flex items-center gap-3 bg-slate-800 px-4 py-2.5">
<div class="flex gap-1.5">
<div class="w-3 h-3 rounded-full bg-red-500/80"></div>
<div class="w-3 h-3 rounded-full bg-yellow-500/80"></div>
<div class="w-3 h-3 rounded-full bg-green-500/80"></div>
</div>
<div class="flex items-center gap-1.5 text-xs text-slate-400">
<i data-lucide="message-circle" class="w-3.5 h-3.5"></i>
AIチャット
</div>
</div>
<div class="bg-slate-900 p-5 space-y-4">
<!-- ユーザーの発言(右寄せ) -->
<div class="flex justify-end">
<div class="bg-blue-600 rounded-2xl rounded-tr-md px-4 py-2.5 max-w-xs">
<p class="text-sm text-white">東京の明日の天気を教えて</p>
</div>
</div>
<!-- AIの発言左寄せ -->
<div class="flex items-start gap-2.5">
<div class="w-7 h-7 rounded-full bg-emerald-500/20 flex items-center justify-center flex-shrink-0 mt-0.5">
<i data-lucide="bot" class="w-4 h-4 text-emerald-400"></i>
</div>
<div class="bg-slate-800 rounded-2xl rounded-tl-md px-4 py-2.5 max-w-sm">
<p class="text-sm text-slate-200">東京の明日の天気は<strong class="text-white">晴れ時々くもり</strong>、最高気温は<strong class="text-white">24°C</strong>の予報です。午後から雲が増える見込みですが、傘は必要なさそうです。</p>
</div>
</div>
<!-- 入力欄のモック -->
<div class="flex items-center gap-2 bg-slate-800/50 rounded-xl px-4 py-2.5 border border-slate-700/50 mt-2">
<span class="text-sm text-slate-500 flex-1">メッセージを入力...</span>
<i data-lucide="send" class="w-4 h-4 text-slate-500"></i>
</div>
</div>
</div>
<p class="mb-6 leading-relaxed">
このチャット画面の裏側で、LLMが「次に来る単語」を猛烈な速度で予測し続けています。
</p>
<p class="mb-6 leading-relaxed">
「なんだ、穴埋めをしているだけなのか」と拍子抜けするかもしれません。しかし、ここがポイントです。<strong class="text-slate-900">この単純な予測を、数兆語分の知識を使って、文脈を深く理解しながら行う</strong>からこそ、まるで人間が書いたかのような自然な文章が生まれるのです。
</p>
<p class="mb-8 leading-relaxed">
ここで言う「パラメータ」とは、LLMが学習を通じて調整する数値のことです。たとえるなら、巨大なミキサー卓音楽のミキシングコンソールについた無数のつまみ。1つ1つのつまみが「この単語の後にはこの単語が来やすい」といった知識を少しずつ記憶しています。つまみの数が多いほど、より繊細で正確な言語理解ができるようになります。
</p>
<!-- 数字カード -->
<div class="grid grid-cols-1 sm:grid-cols-3 gap-4 mb-8">
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 text-center">
<div class="text-3xl md:text-4xl font-black text-violet-600 leading-tight mb-2">1,750億</div>
<div class="text-sm text-ads-muted">GPT-3のパラメータ数</div>
<p class="text-[10px] text-ads-dim mt-2">出典: <a href="https://arxiv.org/abs/2005.14165" class="underline decoration-ads-dim/30 hover:text-ads-accent transition-colors">Brown et al., 2020</a></p>
</div>
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 text-center">
<div class="text-3xl md:text-4xl font-black text-blue-600 leading-tight mb-2">数兆語</div>
<div class="text-sm text-ads-muted">学習に使われた<br>テキストデータの量</div>
</div>
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 text-center">
<div class="text-3xl md:text-4xl font-black text-emerald-600 leading-tight mb-2">100万+</div>
<div class="text-sm text-ads-muted">最新LLMが一度に<br>処理できる文字数</div>
<p class="text-[10px] text-ads-dim mt-2">GPT-5, Claude, Geminiの最大コンテキスト長2026年時点</p>
</div>
</div>
<!-- ポイントボックス -->
<div class="bg-ads-accent/5 border border-ads-accent/20 rounded-xl p-5">
<div class="flex items-start gap-3">
<div class="flex items-center justify-center w-8 h-8 rounded-lg bg-ads-accent/10 flex-shrink-0 mt-0.5">
<i data-lucide="lightbulb" class="w-4 h-4 text-ads-accent-light"></i>
</div>
<div>
<p class="font-bold text-ads-accent-light mb-1">ここがポイント</p>
<p class="text-ads-muted leading-relaxed">
LLMの本質は<strong class="text-slate-800">「次の単語の予測」</strong>です。この単純な原理を、桁違いの規模(パラメータ数・データ量・計算量)で実行することで、要約・翻訳・プログラミング・質問応答まで、驚くほど幅広い言語タスクをこなせるようになりました。
</p>
</div>
</div>
</div>
</section>
<!-- ============================================================ -->
<!-- SECTION 2: LLMの中で何が起きているのか -->
<!-- ============================================================ -->
<section class="mb-16 md:mb-20">
<div class="flex items-center gap-3 mb-8">
<div class="flex items-center justify-center w-10 h-10 rounded-lg bg-cyan-500/10 flex-shrink-0">
<i data-lucide="settings" class="w-5 h-5 text-cyan-600"></i>
</div>
<h2 class="text-xl md:text-2xl font-bold text-slate-900">LLMの中で何が起きているのか</h2>
</div>
<p class="mb-6 leading-relaxed">
「次の言葉を予測している」ということはわかりました。では、LLMの内部では、具体的にどんな処理が行われているのでしょうか。テキストが入力されてから出力されるまでを、4つのステップに分解して見てみましょう。
</p>
<!-- 4ステップフロー図 -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 md:p-8 mb-8">
<h3 class="text-lg font-bold text-slate-900 text-center mb-8">入力から出力までの4ステップ</h3>
<div class="flex flex-col md:flex-row items-stretch justify-center gap-3 md:gap-0">
<div class="flex-1 bg-blue-500/10 border border-blue-500/20 rounded-xl p-4 text-center">
<div class="w-8 h-8 rounded-full bg-blue-500 text-white text-sm font-bold flex items-center justify-center mx-auto mb-3">1</div>
<i data-lucide="scissors" class="w-6 h-6 text-blue-600 mx-auto mb-2"></i>
<div class="font-bold text-blue-700 text-sm mb-1">トークン化</div>
<div class="text-xs text-ads-muted leading-relaxed">文章を「トークン」<br>という小さな単位に<br>分割する</div>
</div>
<div class="flex items-center justify-center md:w-10 py-1 md:py-0">
<i data-lucide="chevron-right" class="w-5 h-5 text-ads-dim hidden md:block"></i>
<i data-lucide="chevron-down" class="w-5 h-5 text-ads-dim md:hidden"></i>
</div>
<div class="flex-1 bg-purple-500/10 border border-purple-500/20 rounded-xl p-4 text-center">
<div class="w-8 h-8 rounded-full bg-purple-500 text-white text-sm font-bold flex items-center justify-center mx-auto mb-3">2</div>
<i data-lucide="grid-3x3" class="w-6 h-6 text-purple-600 mx-auto mb-2"></i>
<div class="font-bold text-purple-700 text-sm mb-1">ベクトル化</div>
<div class="text-xs text-ads-muted leading-relaxed">各トークンを<br>数値の列(ベクトル)<br>に変換する</div>
</div>
<div class="flex items-center justify-center md:w-10 py-1 md:py-0">
<i data-lucide="chevron-right" class="w-5 h-5 text-ads-dim hidden md:block"></i>
<i data-lucide="chevron-down" class="w-5 h-5 text-ads-dim md:hidden"></i>
</div>
<div class="flex-1 bg-violet-500/10 border border-violet-500/20 rounded-xl p-4 text-center">
<div class="w-8 h-8 rounded-full bg-violet-500 text-white text-sm font-bold flex items-center justify-center mx-auto mb-3">3</div>
<i data-lucide="brain" class="w-6 h-6 text-violet-600 mx-auto mb-2"></i>
<div class="font-bold text-violet-700 text-sm mb-1">Transformer処理</div>
<div class="text-xs text-ads-muted leading-relaxed">Attention機構で<br>単語同士の関係を<br>深く理解する</div>
</div>
<div class="flex items-center justify-center md:w-10 py-1 md:py-0">
<i data-lucide="chevron-right" class="w-5 h-5 text-ads-dim hidden md:block"></i>
<i data-lucide="chevron-down" class="w-5 h-5 text-ads-dim md:hidden"></i>
</div>
<div class="flex-1 bg-emerald-500/10 border border-emerald-500/20 rounded-xl p-4 text-center">
<div class="w-8 h-8 rounded-full bg-emerald-500 text-white text-sm font-bold flex items-center justify-center mx-auto mb-3">4</div>
<i data-lucide="sparkles" class="w-6 h-6 text-emerald-600 mx-auto mb-2"></i>
<div class="font-bold text-emerald-700 text-sm mb-1">次の言葉を出力</div>
<div class="text-xs text-ads-muted leading-relaxed">最も自然な「次の<br>トークン」を選んで<br>文章を組み立てる</div>
</div>
</div>
</div>
<p class="mb-6 leading-relaxed">
それぞれのステップをもう少し詳しく見てみましょう。
</p>
<!-- Step 1: トークン化 -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 mb-4">
<h4 class="text-sm font-bold text-slate-900 mb-4 flex items-center gap-2">
<span class="w-6 h-6 rounded-full bg-blue-500 text-white text-xs font-bold flex items-center justify-center flex-shrink-0">1</span>
トークン化 ── 文章をパーツに分解する
</h4>
<p class="text-sm text-ads-muted leading-relaxed mb-4">
コンピュータは「文章」をそのまま理解できません。まず、文章を<strong class="text-slate-800">「トークン」</strong>と呼ばれる小さな単位に分割します。トークンは単語そのものではなく、単語より少し小さいパーツです。英語の場合、だいたい1トークン = 4文字程度。日本語では1文字が1トークンになることもあります。
</p>
<div class="bg-white border border-ads-border rounded-lg p-4">
<div class="text-xs text-ads-dim font-medium mb-2">例: 「私はAIについて学んでいます」</div>
<div class="flex flex-wrap gap-1.5">
<span class="bg-blue-500/10 text-blue-700 text-xs font-medium px-2.5 py-1 rounded-md border border-blue-500/20"></span>
<span class="bg-blue-500/10 text-blue-700 text-xs font-medium px-2.5 py-1 rounded-md border border-blue-500/20"></span>
<span class="bg-blue-500/10 text-blue-700 text-xs font-medium px-2.5 py-1 rounded-md border border-blue-500/20">AI</span>
<span class="bg-blue-500/10 text-blue-700 text-xs font-medium px-2.5 py-1 rounded-md border border-blue-500/20">について</span>
<span class="bg-blue-500/10 text-blue-700 text-xs font-medium px-2.5 py-1 rounded-md border border-blue-500/20"></span>
<span class="bg-blue-500/10 text-blue-700 text-xs font-medium px-2.5 py-1 rounded-md border border-blue-500/20">んで</span>
<span class="bg-blue-500/10 text-blue-700 text-xs font-medium px-2.5 py-1 rounded-md border border-blue-500/20">います</span>
</div>
<p class="text-[10px] text-ads-dim mt-3">実際のトークン分割はモデルによって異なります。上記は概念的な例です。</p>
</div>
</div>
<!-- Step 2: ベクトル化 -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 mb-4">
<h4 class="text-sm font-bold text-slate-900 mb-4 flex items-center gap-2">
<span class="w-6 h-6 rounded-full bg-purple-500 text-white text-xs font-bold flex items-center justify-center flex-shrink-0">2</span>
ベクトル化 ── 言葉を数値に変換する
</h4>
<p class="text-sm text-ads-muted leading-relaxed mb-4">
コンピュータが処理できるのは数値だけです。そこで、各トークンを<strong class="text-slate-800">「ベクトル」</strong>数値の列に変換します。この操作を「埋め込みEmbedding」と呼びます。たとえるなら、言葉を「座標」に変換するようなものです。意味が近い言葉は座標上でも近い位置に配置されます。
</p>
<div class="bg-white border border-ads-border rounded-lg p-4">
<div class="text-xs text-ads-dim font-medium mb-3">言葉の座標イメージ</div>
<div class="flex flex-col md:flex-row gap-3">
<div class="flex-1 flex items-center gap-3 bg-purple-500/5 rounded-lg p-3">
<span class="text-xs font-bold text-purple-700 w-12 flex-shrink-0">「犬」</span>
<div class="flex gap-1 flex-wrap">
<span class="text-[10px] bg-purple-500/10 text-purple-600 px-1.5 py-0.5 rounded font-mono">0.82</span>
<span class="text-[10px] bg-purple-500/10 text-purple-600 px-1.5 py-0.5 rounded font-mono">-0.15</span>
<span class="text-[10px] bg-purple-500/10 text-purple-600 px-1.5 py-0.5 rounded font-mono">0.63</span>
<span class="text-[10px] text-ads-dim">...</span>
</div>
</div>
<div class="flex-1 flex items-center gap-3 bg-purple-500/5 rounded-lg p-3">
<span class="text-xs font-bold text-purple-700 w-12 flex-shrink-0">「猫」</span>
<div class="flex gap-1 flex-wrap">
<span class="text-[10px] bg-purple-500/10 text-purple-600 px-1.5 py-0.5 rounded font-mono">0.79</span>
<span class="text-[10px] bg-purple-500/10 text-purple-600 px-1.5 py-0.5 rounded font-mono">-0.12</span>
<span class="text-[10px] bg-purple-500/10 text-purple-600 px-1.5 py-0.5 rounded font-mono">0.58</span>
<span class="text-[10px] text-ads-dim">...</span>
</div>
</div>
</div>
<p class="text-[10px] text-ads-dim mt-3">「犬」と「猫」は意味が近いので、数値(座標)も似た値になる。実際のベクトルは数千〜数万次元。</p>
</div>
</div>
<!-- Step 3: Transformer -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 mb-4">
<h4 class="text-sm font-bold text-slate-900 mb-4 flex items-center gap-2">
<span class="w-6 h-6 rounded-full bg-violet-500 text-white text-xs font-bold flex items-center justify-center flex-shrink-0">3</span>
Transformer処理 ── 文脈を理解する頭脳
</h4>
<p class="text-sm text-ads-muted leading-relaxed mb-4">
ここがLLMの心臓部です。<strong class="text-slate-800">Transformerトランスフォーマー</strong>は2017年にGoogleの研究者が発表したAIの設計図アーキテクチャで、現在のほぼすべてのLLMがこの設計を採用しています。その中核にあるのが<strong class="text-slate-800">「Attentionアテンション = 注意機構)」</strong>と呼ばれる仕組みです。
</p>
<p class="text-sm text-ads-muted leading-relaxed mb-4">
Attentionが何をするかを、日常のたとえで説明します。あなたが「お金を<strong class="text-slate-800">銀行</strong>に預けた」という文を読むとき、「銀行」が「金融機関」のことだと瞬時にわかりますよね。しかし「川の<strong class="text-slate-800">土手</strong>に座った」と書いてあれば、「川岸」を想像するはずです。あなたは無意識に<strong class="text-slate-800">周囲の単語を見て、言葉の意味を判断</strong>しています。Attentionはまさにこれをやっています。
</p>
<p class="text-[10px] text-ads-dim mb-4">出典: <a href="https://arxiv.org/abs/1706.03762" class="underline decoration-ads-dim/30 hover:text-ads-accent transition-colors">Vaswani et al., "Attention Is All You Need", 2017</a></p>
<!-- Attention図 -->
<div class="bg-white border border-ads-border rounded-lg p-5">
<div class="text-xs text-ads-dim font-medium mb-4 text-center">Attention の動き ── 各単語が他の単語をどれだけ「注目」するか</div>
<div class="flex flex-col items-center gap-4">
<div class="flex flex-wrap justify-center gap-2">
<span class="bg-slate-100 text-slate-600 text-sm font-medium px-3 py-1.5 rounded-lg border border-slate-200">お金</span>
<span class="bg-slate-100 text-slate-600 text-sm font-medium px-3 py-1.5 rounded-lg border border-slate-200"></span>
<span class="bg-violet-500/15 text-violet-700 text-sm font-bold px-3 py-1.5 rounded-lg border-2 border-violet-500/30">銀行</span>
<span class="bg-slate-100 text-slate-600 text-sm font-medium px-3 py-1.5 rounded-lg border border-slate-200"></span>
<span class="bg-slate-100 text-slate-600 text-sm font-medium px-3 py-1.5 rounded-lg border border-slate-200">預けた</span>
</div>
<div class="flex items-center gap-2 text-xs text-ads-muted">
<i data-lucide="arrow-down" class="w-4 h-4 text-violet-500"></i>
「銀行」は「お金」と「預けた」に強く注目
</div>
<div class="flex flex-wrap justify-center gap-2">
<span class="bg-violet-500/20 text-violet-700 text-xs font-bold px-3 py-1 rounded-full">お金 ── 注目度: 高</span>
<span class="bg-violet-500/5 text-violet-600 text-xs px-3 py-1 rounded-full">を ── 注目度: 低</span>
<span class="bg-violet-500/20 text-violet-700 text-xs font-bold px-3 py-1 rounded-full">預けた ── 注目度: 高</span>
</div>
<div class="flex items-center gap-2 text-xs text-emerald-600 bg-emerald-500/5 border border-emerald-500/15 rounded-lg px-4 py-2">
<i data-lucide="check-circle" class="w-3.5 h-3.5"></i>
結論: この「銀行」は「金融機関」だと判断できる
</div>
</div>
</div>
</div>
<!-- Step 4: 出力 -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 mb-8">
<h4 class="text-sm font-bold text-slate-900 mb-4 flex items-center gap-2">
<span class="w-6 h-6 rounded-full bg-emerald-500 text-white text-xs font-bold flex items-center justify-center flex-shrink-0">4</span>
次の言葉を出力 ── 最も自然な続きを選ぶ
</h4>
<p class="text-sm text-ads-muted leading-relaxed">
Transformer層を何十回も通過して文脈を深く理解したら、最後に「次に来る最も自然なトークン言葉のパーツは何か」を計算します。語彙全体数万〜数十万語の中から確率を計算し、最も適切なトークンを1つ選びます。そして、その選んだトークンを文末に追加して、再びステップ1から繰り返す。<strong class="text-slate-800">この超高速なループ(毎秒数百トークン)によって、長い文章が生まれます。</strong>
</p>
</div>
<div class="bg-amber-500/5 border border-amber-500/20 rounded-xl p-5">
<div class="flex items-start gap-3">
<div class="flex items-center justify-center w-8 h-8 rounded-lg bg-amber-500/10 flex-shrink-0 mt-0.5">
<i data-lucide="info" class="w-4 h-4 text-amber-600"></i>
</div>
<div>
<p class="font-bold text-amber-700 mb-1">ちょっと補足: マルチヘッドAttention</p>
<p class="text-ads-muted leading-relaxed text-sm">
実際のLLMでは、1回の処理で複数のAttention注意の視点を同時に走らせます。これを<strong class="text-slate-800">「マルチヘッドAttention」</strong>と呼びます。たとえるなら、1人で本を読むのではなく、96人のチームが同じ文章を同時に読んで「文法の観点」「意味の観点」「トピックの観点」など、それぞれ異なる角度から分析している状態です。GPT-3では96個のAttentionヘッドが並列で動いています。
</p>
</div>
</div>
</div>
</section>
<!-- ============================================================ -->
<!-- SECTION 3: どうやって賢くなるのか -->
<!-- ============================================================ -->
<section class="mb-16 md:mb-20">
<div class="flex items-center gap-3 mb-8">
<div class="flex items-center justify-center w-10 h-10 rounded-lg bg-purple-500/10 flex-shrink-0">
<i data-lucide="graduation-cap" class="w-5 h-5 text-purple-600"></i>
</div>
<h2 class="text-xl md:text-2xl font-bold text-slate-900">LLMはどうやって賢くなるのか</h2>
</div>
<p class="mb-6 leading-relaxed">
LLMは生まれたときから賢いわけではありません。最初はランダムな数値の塊にすぎず、「あいうえお」すらまともに出力できません。そこから<strong class="text-slate-900">3つの段階を経て</strong>、私たちが使えるレベルまで成長します。
</p>
<p class="mb-8 leading-relaxed">
この3段階を、人間の成長にたとえると理解しやすくなります。
</p>
<!-- 3段階タイムライン -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 md:p-8 mb-8">
<h3 class="text-lg font-bold text-slate-900 text-center mb-8">LLMの成長 ── 3つのフェーズ</h3>
<div class="space-y-6">
<!-- Phase 1 -->
<div class="flex gap-4">
<div class="flex flex-col items-center">
<div class="w-10 h-10 rounded-full bg-blue-500 text-white text-sm font-bold flex items-center justify-center flex-shrink-0">1</div>
<div class="w-0.5 flex-1 bg-blue-500/20 mt-2"></div>
</div>
<div class="flex-1 pb-2">
<div class="inline-flex items-center gap-1.5 bg-blue-500/10 text-blue-700 px-3 py-1 rounded-full text-xs font-bold tracking-wide mb-3">
事前学習Pre-training
</div>
<h4 class="font-bold text-slate-900 mb-2">たとえ: 図書館の本をすべて読む子ども</h4>
<p class="text-sm text-ads-muted leading-relaxed mb-3">
インターネット上の膨大なテキストWikipedia、書籍、ニュース記事、Webサイト、コードなどを読み込み、「言語のルール」を学びます。このとき学んでいるのは特定の質問への答えではなく、<strong class="text-slate-800">「日本語とはこういう風に使う」「プログラミング言語はこういう構文」</strong>という言語の根本的なパターンです。
</p>
<div class="flex flex-wrap gap-2">
<span class="text-[10px] bg-blue-500/10 text-blue-600 px-2 py-0.5 rounded-full">Wikipedia</span>
<span class="text-[10px] bg-blue-500/10 text-blue-600 px-2 py-0.5 rounded-full">書籍・論文</span>
<span class="text-[10px] bg-blue-500/10 text-blue-600 px-2 py-0.5 rounded-full">Webページ</span>
<span class="text-[10px] bg-blue-500/10 text-blue-600 px-2 py-0.5 rounded-full">ソースコード</span>
<span class="text-[10px] bg-blue-500/10 text-blue-600 px-2 py-0.5 rounded-full">ニュース記事</span>
</div>
</div>
</div>
<!-- Phase 2 -->
<div class="flex gap-4">
<div class="flex flex-col items-center">
<div class="w-10 h-10 rounded-full bg-purple-500 text-white text-sm font-bold flex items-center justify-center flex-shrink-0">2</div>
<div class="w-0.5 flex-1 bg-purple-500/20 mt-2"></div>
</div>
<div class="flex-1 pb-2">
<div class="inline-flex items-center gap-1.5 bg-purple-500/10 text-purple-700 px-3 py-1 rounded-full text-xs font-bold tracking-wide mb-3">
ファインチューニングFine-tuning
</div>
<h4 class="font-bold text-slate-900 mb-2">たとえ: 家庭教師について「対話の仕方」を練習する</h4>
<p class="text-sm text-ads-muted leading-relaxed mb-3">
事前学習だけだと、LLMは「文章の続きを書く」ことはできますが、「質問に的確に答える」「指示に従って行動する」ことは苦手です。そこで、<strong class="text-slate-800">人間が作った高品質な「質問と回答のペア」</strong>を使って追加学習を行います。これにより「ユーザーが何を求めているか」を理解し、適切な形式で応答できるようになります。
</p>
</div>
</div>
<!-- Phase 3 -->
<div class="flex gap-4">
<div class="flex flex-col items-center">
<div class="w-10 h-10 rounded-full bg-emerald-500 text-white text-sm font-bold flex items-center justify-center flex-shrink-0">3</div>
</div>
<div class="flex-1">
<div class="inline-flex items-center gap-1.5 bg-emerald-500/10 text-emerald-700 px-3 py-1 rounded-full text-xs font-bold tracking-wide mb-3">
RLHF人間のフィードバックによる強化学習
</div>
<h4 class="font-bold text-slate-900 mb-2">たとえ: 先輩に「どっちの回答がいい?」と何千回も評価してもらう</h4>
<p class="text-sm text-ads-muted leading-relaxed mb-3">
RLHF = Reinforcement Learning from Human Feedback人間のフィードバックに基づく強化学習。同じ質問に対してLLMが複数の回答を生成し、人間の評価者が<strong class="text-slate-800">「こっちの方がわかりやすい」「こっちは正確」</strong>と評価します。その評価結果を使って「良い回答とは何か」の基準を学習します。安全性やマナーもこの段階で身につきます。
</p>
<p class="text-[10px] text-ads-dim">出典: <a href="https://arxiv.org/abs/2203.02155" class="underline decoration-ads-dim/30 hover:text-ads-accent transition-colors">Ouyang et al., "Training language models to follow instructions with human feedback", 2022</a></p>
</div>
</div>
</div>
</div>
<!-- Before / After 比較 -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-8">
<div class="bg-red-500/5 border border-red-500/20 rounded-xl p-6">
<div class="inline-flex items-center gap-1.5 bg-red-500/10 text-red-600 px-3 py-1 rounded-full text-xs font-bold tracking-wide mb-5">
<i data-lucide="x-circle" class="w-3.5 h-3.5"></i>
事前学習のみのLLM
</div>
<div class="space-y-4 text-sm">
<div>
<div class="text-xs text-red-600 font-medium mb-1">質問: 「東京タワーの高さは?」</div>
<div class="bg-white rounded-lg p-3 border border-red-500/10">
<p class="text-ads-muted leading-relaxed">東京タワーの高さは333メートルで、1958年に完成した。東京タワーは日本電波塔とも呼ばれ、観光名所としても知られている。東京タワーの周辺には芝公園があり...</p>
</div>
<p class="text-[11px] text-red-600/70 mt-2 flex items-center gap-1.5">
<i data-lucide="alert-circle" class="w-3.5 h-3.5"></i>
答えは合っているが、聞いていないことまで延々と続く
</p>
</div>
</div>
</div>
<div class="bg-emerald-500/5 border border-emerald-500/20 rounded-xl p-6">
<div class="inline-flex items-center gap-1.5 bg-emerald-500/10 text-emerald-600 px-3 py-1 rounded-full text-xs font-bold tracking-wide mb-5">
<i data-lucide="check-circle" class="w-3.5 h-3.5"></i>
RLHF後のLLM
</div>
<div class="space-y-4 text-sm">
<div>
<div class="text-xs text-emerald-600 font-medium mb-1">質問: 「東京タワーの高さは?」</div>
<div class="bg-white rounded-lg p-3 border border-emerald-500/10">
<p class="text-ads-muted leading-relaxed">東京タワーの高さは<strong class="text-slate-800">333メートル</strong>です。</p>
</div>
<p class="text-[11px] text-emerald-600/70 mt-2 flex items-center gap-1.5">
<i data-lucide="check" class="w-3.5 h-3.5"></i>
質問に対して的確に、簡潔に答えている
</p>
</div>
</div>
</div>
</div>
<div class="bg-ads-accent/5 border border-ads-accent/20 rounded-xl p-5">
<div class="flex items-start gap-3">
<div class="flex items-center justify-center w-8 h-8 rounded-lg bg-ads-accent/10 flex-shrink-0 mt-0.5">
<i data-lucide="lightbulb" class="w-4 h-4 text-ads-accent-light"></i>
</div>
<div>
<p class="font-bold text-ads-accent-light mb-1">気づきましたか?</p>
<p class="text-ads-muted leading-relaxed">
LLMが「賢く見える」のは、事前学習で言語能力を身につけた上に、ファインチューニングとRLHFで<strong class="text-slate-800">「人間にとって役立つ回答の仕方」</strong>を学んでいるからです。知識だけでなく、「コミュニケーション能力」も後から訓練されているのです。
</p>
</div>
</div>
</div>
</section>
<!-- ============================================================ -->
<!-- SECTION 4: 代表的なLLM -->
<!-- ============================================================ -->
<section class="mb-16 md:mb-20">
<div class="flex items-center gap-3 mb-8">
<div class="flex items-center justify-center w-10 h-10 rounded-lg bg-amber-500/10 flex-shrink-0">
<i data-lucide="layers" class="w-5 h-5 text-amber-600"></i>
</div>
<h2 class="text-xl md:text-2xl font-bold text-slate-900">代表的なLLM ── 今、誰が作っているのか</h2>
</div>
<p class="mb-8 leading-relaxed">
2026年現在、LLMの開発競争は激しさを増しています。特に大きな存在感を示しているのが、以下の3社です。それぞれのモデルには異なる強みがあり、用途に応じて使い分けるのが一般的になっています。
</p>
<!-- モデルカード -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-8">
<!-- GPT-5 -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6">
<div class="flex items-center gap-3 mb-4">
<div class="w-10 h-10 rounded-lg bg-emerald-500/10 flex items-center justify-center flex-shrink-0">
<i data-lucide="zap" class="w-5 h-5 text-emerald-600"></i>
</div>
<div>
<h3 class="font-bold text-slate-900">GPT-5シリーズ</h3>
<p class="text-xs text-ads-dim">OpenAI</p>
</div>
</div>
<div class="space-y-3 text-sm">
<p class="leading-relaxed text-ads-muted">ChatGPTの頭脳。世界で最も多くのユーザーに使われているLLMシリーズ。数学や論理的推論に特に強みを持ちます。</p>
<div class="flex flex-wrap gap-1.5">
<span class="text-[10px] bg-emerald-500/10 text-emerald-600 px-2 py-0.5 rounded-full font-medium">数学が得意</span>
<span class="text-[10px] bg-emerald-500/10 text-emerald-600 px-2 py-0.5 rounded-full font-medium">高速処理</span>
<span class="text-[10px] bg-emerald-500/10 text-emerald-600 px-2 py-0.5 rounded-full font-medium">幅広い用途</span>
</div>
</div>
</div>
<!-- Claude -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6">
<div class="flex items-center gap-3 mb-4">
<div class="w-10 h-10 rounded-lg bg-amber-500/10 flex items-center justify-center flex-shrink-0">
<i data-lucide="shield" class="w-5 h-5 text-amber-600"></i>
</div>
<div>
<h3 class="font-bold text-slate-900">Claude</h3>
<p class="text-xs text-ads-dim">Anthropic</p>
</div>
</div>
<div class="space-y-3 text-sm">
<p class="leading-relaxed text-ads-muted">安全性と正確性を重視して設計されたLLM。特にプログラミングと長文の処理に強く、開発者から高い支持を得ています。</p>
<div class="flex flex-wrap gap-1.5">
<span class="text-[10px] bg-amber-500/10 text-amber-600 px-2 py-0.5 rounded-full font-medium">コーディング最強</span>
<span class="text-[10px] bg-amber-500/10 text-amber-600 px-2 py-0.5 rounded-full font-medium">安全性重視</span>
<span class="text-[10px] bg-amber-500/10 text-amber-600 px-2 py-0.5 rounded-full font-medium">長文に強い</span>
</div>
</div>
</div>
<!-- Gemini -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6">
<div class="flex items-center gap-3 mb-4">
<div class="w-10 h-10 rounded-lg bg-blue-500/10 flex items-center justify-center flex-shrink-0">
<i data-lucide="eye" class="w-5 h-5 text-blue-600"></i>
</div>
<div>
<h3 class="font-bold text-slate-900">Gemini</h3>
<p class="text-xs text-ads-dim">Google</p>
</div>
</div>
<div class="space-y-3 text-sm">
<p class="leading-relaxed text-ads-muted">テキストだけでなく、画像・動画・音声も同時に理解できる「マルチモーダル」が最大の強み。Google検索やYouTubeとの連携も特徴です。</p>
<div class="flex flex-wrap gap-1.5">
<span class="text-[10px] bg-blue-500/10 text-blue-600 px-2 py-0.5 rounded-full font-medium">マルチモーダル</span>
<span class="text-[10px] bg-blue-500/10 text-blue-600 px-2 py-0.5 rounded-full font-medium">推論が得意</span>
<span class="text-[10px] bg-blue-500/10 text-blue-600 px-2 py-0.5 rounded-full font-medium">コスト効率</span>
</div>
</div>
</div>
<!-- オープンソース -->
<div class="bg-ads-surface border border-ads-border rounded-xl p-6">
<div class="flex items-center gap-3 mb-4">
<div class="w-10 h-10 rounded-lg bg-violet-500/10 flex items-center justify-center flex-shrink-0">
<i data-lucide="unlock" class="w-5 h-5 text-violet-600"></i>
</div>
<div>
<h3 class="font-bold text-slate-900">オープンソースLLM</h3>
<p class="text-xs text-ads-dim">MetaLlama、Mistral 他</p>
</div>
</div>
<div class="space-y-3 text-sm">
<p class="leading-relaxed text-ads-muted">ソースコードや学習済みモデルが公開されており、誰でも無料で利用・改良できます。企業が自社サーバーで動かし、データを外部に出さずに使えるのが大きなメリットです。</p>
<div class="flex flex-wrap gap-1.5">
<span class="text-[10px] bg-violet-500/10 text-violet-600 px-2 py-0.5 rounded-full font-medium">無料で利用可能</span>
<span class="text-[10px] bg-violet-500/10 text-violet-600 px-2 py-0.5 rounded-full font-medium">カスタマイズ自在</span>
<span class="text-[10px] bg-violet-500/10 text-violet-600 px-2 py-0.5 rounded-full font-medium">データが手元に残る</span>
</div>
</div>
</div>
</div>
<p class="mb-8 leading-relaxed">
2026年のトレンドとして注目すべきは、<strong class="text-slate-900">「1つのモデルですべてを賄う」のではなく、用途に応じて複数のモデルを使い分ける「マルチモデル戦略」</strong>が主流になりつつあることです。長い文書の分析にはGemini、コードの生成にはClaude、計算問題にはGPT-5、というように適材適所で使い分けます。
</p>
<div class="bg-amber-500/5 border border-amber-500/20 rounded-xl p-5">
<div class="flex items-start gap-3">
<div class="flex items-center justify-center w-8 h-8 rounded-lg bg-amber-500/10 flex-shrink-0 mt-0.5">
<i data-lucide="info" class="w-4 h-4 text-amber-600"></i>
</div>
<div>
<p class="font-bold text-amber-700 mb-1">ちょっと補足: LLMの学習コスト</p>
<p class="text-ads-muted leading-relaxed text-sm">
GPT-4クラスのLLMを1から学習させるには、数千〜数万台のGPU画像処理用の高性能チップを数ヶ月間フル稼働させる必要があり、<strong class="text-slate-800">学習コストだけで数千万〜数億ドル</strong>と推定されています。「AIは誰でも作れる」と言われますが、基盤モデルFoundation Modelの学習には莫大な資金と設備が必要です。
</p>
</div>
</div>
</div>
</section>
<!-- ============================================================ -->
<!-- SECTION 5: LLMの「できること」と「苦手なこと」 -->
<!-- ============================================================ -->
<section class="mb-16 md:mb-20">
<div class="flex items-center gap-3 mb-8">
<div class="flex items-center justify-center w-10 h-10 rounded-lg bg-emerald-500/10 flex-shrink-0">
<i data-lucide="scale" class="w-5 h-5 text-emerald-600"></i>
</div>
<h2 class="text-xl md:text-2xl font-bold text-slate-900">LLMの「できること」と「苦手なこと」</h2>
</div>
<p class="mb-8 leading-relaxed">
LLMは非常に強力ですが、万能ではありません。<strong class="text-slate-900">何が得意で、何が苦手なのか</strong>を正しく理解しておくことが、LLMを上手に活用するための第一歩です。
</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-8">
<!-- できること -->
<div class="bg-emerald-500/5 border border-emerald-500/20 rounded-xl p-6">
<div class="inline-flex items-center gap-1.5 bg-emerald-500/10 text-emerald-600 px-3 py-1 rounded-full text-xs font-bold tracking-wide mb-5">
<i data-lucide="check-circle" class="w-3.5 h-3.5"></i>
得意なこと
</div>
<ul class="space-y-3">
<li class="flex items-start gap-2.5">
<i data-lucide="check" class="w-4 h-4 text-emerald-600 mt-1 flex-shrink-0"></i>
<span class="text-sm"><strong class="text-emerald-700">文章の生成・要約</strong> ── 長い報告書を3行にまとめる、メールの下書きを作るなど</span>
</li>
<li class="flex items-start gap-2.5">
<i data-lucide="check" class="w-4 h-4 text-emerald-600 mt-1 flex-shrink-0"></i>
<span class="text-sm"><strong class="text-emerald-700">翻訳</strong> ── 多言語間の翻訳を、文脈を踏まえて自然に行う</span>
</li>
<li class="flex items-start gap-2.5">
<i data-lucide="check" class="w-4 h-4 text-emerald-600 mt-1 flex-shrink-0"></i>
<span class="text-sm"><strong class="text-emerald-700">プログラミング支援</strong> ── コードの生成、バグの発見、リファクタリング</span>
</li>
<li class="flex items-start gap-2.5">
<i data-lucide="check" class="w-4 h-4 text-emerald-600 mt-1 flex-shrink-0"></i>
<span class="text-sm"><strong class="text-emerald-700">質問応答</strong> ── 学習済みの知識の範囲内で質問に回答する</span>
</li>
<li class="flex items-start gap-2.5">
<i data-lucide="check" class="w-4 h-4 text-emerald-600 mt-1 flex-shrink-0"></i>
<span class="text-sm"><strong class="text-emerald-700">アイデア出し</strong> ── ブレインストーミングの壁打ち相手になる</span>
</li>
</ul>
</div>
<!-- 苦手なこと -->
<div class="bg-red-500/5 border border-red-500/20 rounded-xl p-6">
<div class="inline-flex items-center gap-1.5 bg-red-500/10 text-red-600 px-3 py-1 rounded-full text-xs font-bold tracking-wide mb-5">
<i data-lucide="alert-triangle" class="w-3.5 h-3.5"></i>
苦手なこと
</div>
<ul class="space-y-3">
<li class="flex items-start gap-2.5">
<i data-lucide="x" class="w-4 h-4 text-red-600 mt-1 flex-shrink-0"></i>
<span class="text-sm"><strong class="text-red-700">最新情報の取得</strong> ── 学習データ以降の出来事は知らない(リアルタイム検索は別機能)</span>
</li>
<li class="flex items-start gap-2.5">
<i data-lucide="x" class="w-4 h-4 text-red-600 mt-1 flex-shrink-0"></i>
<span class="text-sm"><strong class="text-red-700">正確な計算</strong> ── 複雑な数式の計算はミスする。電卓の方が確実</span>
</li>
<li class="flex items-start gap-2.5">
<i data-lucide="x" class="w-4 h-4 text-red-600 mt-1 flex-shrink-0"></i>
<span class="text-sm"><strong class="text-red-700">事実の正確性</strong> ── もっともらしいが間違った情報を生成することがある(ハルシネーション)</span>
</li>
<li class="flex items-start gap-2.5">
<i data-lucide="x" class="w-4 h-4 text-red-600 mt-1 flex-shrink-0"></i>
<span class="text-sm"><strong class="text-red-700">物理世界の体験</strong> ── 味、匂い、痛みなど、身体的な感覚は持っていない</span>
</li>
<li class="flex items-start gap-2.5">
<i data-lucide="x" class="w-4 h-4 text-red-600 mt-1 flex-shrink-0"></i>
<span class="text-sm"><strong class="text-red-700">「わからない」と認める</strong> ── 知らないことでも何か答えようとする傾向がある</span>
</li>
</ul>
</div>
</div>
<div class="bg-ads-accent/5 border border-ads-accent/20 rounded-xl p-5">
<div class="flex items-start gap-3">
<div class="flex items-center justify-center w-8 h-8 rounded-lg bg-ads-accent/10 flex-shrink-0 mt-0.5">
<i data-lucide="lightbulb" class="w-4 h-4 text-ads-accent-light"></i>
</div>
<div>
<p class="font-bold text-ads-accent-light mb-1">ハルシネーションとは?</p>
<p class="text-ads-muted leading-relaxed">
LLMが事実と異なる内容を、あたかも正しいかのように自信を持って出力する現象を<strong class="text-slate-800">「ハルシネーション(幻覚)」</strong>と呼びます。LLMは「次に自然な言葉を予測する」仕組みなので、事実確認を行っているわけではありません。「もっともらしい文章 = 正しい文章」とは限らない、ということを常に意識しておく必要があります。
</p>
</div>
</div>
</div>
</section>
<!-- ============================================================ -->
<!-- SECTION 6: よくある誤解 -->
<!-- ============================================================ -->
<section class="mb-16 md:mb-20">
<div class="flex items-center gap-3 mb-8">
<div class="flex items-center justify-center w-10 h-10 rounded-lg bg-red-500/10 flex-shrink-0">
<i data-lucide="alert-circle" class="w-5 h-5 text-red-600"></i>
</div>
<h2 class="text-xl md:text-2xl font-bold text-slate-900">よくある誤解</h2>
</div>
<p class="mb-8 leading-relaxed">
LLMについて学び始めると、多くの人が同じところで引っかかります。ここでは、よくある3つの誤解を取り上げて、正しい理解に修正します。
</p>
<div class="space-y-4">
<!-- 誤解1 -->
<div class="bg-ads-surface border border-ads-border rounded-xl overflow-hidden">
<div class="flex items-center gap-3 px-6 py-4 bg-red-500/5 border-b border-ads-border/50">
<div class="w-6 h-6 rounded-full bg-red-500/10 flex items-center justify-center flex-shrink-0">
<i data-lucide="x" class="w-3.5 h-3.5 text-red-600"></i>
</div>
<h3 class="font-bold text-red-700 text-sm">誤解: 「LLMは人間のように"考えて"いる」</h3>
</div>
<div class="px-6 py-5">
<div class="flex items-start gap-3">
<div class="w-6 h-6 rounded-full bg-emerald-500/10 flex items-center justify-center flex-shrink-0 mt-0.5">
<i data-lucide="check" class="w-3.5 h-3.5 text-emerald-600"></i>
</div>
<div>
<p class="text-sm font-bold text-emerald-700 mb-2">実際は:</p>
<p class="text-sm text-ads-muted leading-relaxed">
LLMは「思考」しているのではなく、<strong class="text-slate-800">膨大なテキストから学んだ統計的パターンに基づいて、最も確率の高い次の単語を選んでいるだけ</strong>です。人間のような意識や理解は持っていません。「考えているように見える」のは、学習データの規模が桁違いに大きいことと、Transformerの文脈理解能力が高いためです。出力の質が高いことと、「思考」していることは別物です。
</p>
</div>
</div>
</div>
</div>
<!-- 誤解2 -->
<div class="bg-ads-surface border border-ads-border rounded-xl overflow-hidden">
<div class="flex items-center gap-3 px-6 py-4 bg-red-500/5 border-b border-ads-border/50">
<div class="w-6 h-6 rounded-full bg-red-500/10 flex items-center justify-center flex-shrink-0">
<i data-lucide="x" class="w-3.5 h-3.5 text-red-600"></i>
</div>
<h3 class="font-bold text-red-700 text-sm">誤解: 「LLMはインターネットをリアルタイムで検索している」</h3>
</div>
<div class="px-6 py-5">
<div class="flex items-start gap-3">
<div class="w-6 h-6 rounded-full bg-emerald-500/10 flex items-center justify-center flex-shrink-0 mt-0.5">
<i data-lucide="check" class="w-3.5 h-3.5 text-emerald-600"></i>
</div>
<div>
<p class="text-sm font-bold text-emerald-700 mb-2">実際は:</p>
<p class="text-sm text-ads-muted leading-relaxed">
LLMの知識は<strong class="text-slate-800">学習時に読み込んだデータに基づいて</strong>います。会話のたびにインターネットを検索しているわけではありません。学習データに含まれていない最新のニュースや出来事については答えられません。ただし、ChatGPTの「ブラウジング機能」やGeminiの「Google検索連携」のように、<strong class="text-slate-800">別途検索機能を組み合わせる</strong>ことで最新情報を取得できるようになっている製品もあります。LLMそのものの機能と、製品としての追加機能は区別して理解することが大切です。
</p>
</div>
</div>
</div>
</div>
<!-- 誤解3 -->
<div class="bg-ads-surface border border-ads-border rounded-xl overflow-hidden">
<div class="flex items-center gap-3 px-6 py-4 bg-red-500/5 border-b border-ads-border/50">
<div class="w-6 h-6 rounded-full bg-red-500/10 flex items-center justify-center flex-shrink-0">
<i data-lucide="x" class="w-3.5 h-3.5 text-red-600"></i>
</div>
<h3 class="font-bold text-red-700 text-sm">誤解: 「LLMは質問の文章をそのままコピーして返している」</h3>
</div>
<div class="px-6 py-5">
<div class="flex items-start gap-3">
<div class="w-6 h-6 rounded-full bg-emerald-500/10 flex items-center justify-center flex-shrink-0 mt-0.5">
<i data-lucide="check" class="w-3.5 h-3.5 text-emerald-600"></i>
</div>
<div>
<p class="text-sm font-bold text-emerald-700 mb-2">実際は:</p>
<p class="text-sm text-ads-muted leading-relaxed">
LLMは学習データをそのまま丸暗記しているわけではなく、<strong class="text-slate-800">言語のパターンや構造を「圧縮」して記憶</strong>しています。たとえるなら、料理のレシピを何千冊も読んだシェフが、レシピ本を見ずに新しい料理を作れるようなものです。LLMの出力はその場で新しく「生成」された文章であり、データベースから検索・コピーしたものではありません。だからこそ、同じ質問でも毎回少し違う回答が返ってくるのです。
</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ============================================================ -->
<!-- SECTION 7: まとめ -->
<!-- ============================================================ -->
<section>
<div class="flex items-center gap-3 mb-8">
<div class="flex items-center justify-center w-10 h-10 rounded-lg bg-ads-accent/10 flex-shrink-0">
<i data-lucide="check-circle" class="w-5 h-5 text-ads-accent-light"></i>
</div>
<h2 class="text-xl md:text-2xl font-bold text-slate-900">まとめ ── 覚えておきたい3つのこと</h2>
</div>
<p class="mb-8 leading-relaxed">
長い図解を読んでいただきありがとうございます。最後に、この記事で伝えたかったことを3つに絞ってまとめます。
</p>
<div class="space-y-4 mb-10">
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 border-l-4 border-l-violet-500">
<div class="flex items-start gap-4">
<div class="text-2xl font-black text-violet-500 leading-none flex-shrink-0 mt-1">01</div>
<div>
<h3 class="font-bold text-slate-900 mb-2">LLMの正体は「次の単語予測マシン」</h3>
<p class="text-sm text-ads-muted leading-relaxed">
膨大なテキストから「言葉の使い方」を学び、「次に来る最も自然な言葉」を予測し続ける。この単純な原理を、桁違いの規模で実行することで、翻訳・要約・プログラミング・対話まで、驚くほど多様な言語タスクをこなしています。
</p>
</div>
</div>
</div>
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 border-l-4 border-l-blue-500">
<div class="flex items-start gap-4">
<div class="text-2xl font-black text-blue-500 leading-none flex-shrink-0 mt-1">02</div>
<div>
<h3 class="font-bold text-slate-900 mb-2">Transformerとattentionが鍵</h3>
<p class="text-sm text-ads-muted leading-relaxed">
LLMが「文脈を理解できる」のは、Transformer内部のAttention機構のおかげです。文中のすべての単語の関係性を同時に見渡し、「この言葉は前後のどの言葉と関係が深いか」を瞬時に判断します。これにより、同じ単語でも文脈に応じて異なる意味を正しく解釈できます。
</p>
</div>
</div>
</div>
<div class="bg-ads-surface border border-ads-border rounded-xl p-6 border-l-4 border-l-emerald-500">
<div class="flex items-start gap-4">
<div class="text-2xl font-black text-emerald-500 leading-none flex-shrink-0 mt-1">03</div>
<div>
<h3 class="font-bold text-slate-900 mb-2">強力だが万能ではない</h3>
<p class="text-sm text-ads-muted leading-relaxed">
LLMは「考えている」のではなく「予測している」。そのため、もっともらしいが間違った回答ハルシネーションを出すこともあります。LLMを上手に使うとは、その得意・不得意を理解した上で、得意な部分をフルに活用し、苦手な部分は人間が補うことです。
</p>
</div>
</div>
</div>
</div>
<div class="text-center bg-gradient-to-b from-violet-500/5 to-transparent border border-violet-500/10 rounded-xl p-8 md:p-10">
<i data-lucide="sparkles" class="w-8 h-8 text-violet-600 mx-auto mb-4"></i>
<p class="text-lg font-bold text-slate-900 mb-3">LLMは「道具」です。使いこなすのは、あなたです。</p>
<p class="text-ads-muted max-w-lg mx-auto leading-relaxed">
次にChatGPTやClaudeを使うとき、「この裏側で、数千億のパラメータが文脈を読み取って、次の単語を選んでいるんだな」と想像してみてください。LLMの仕組みを知っているだけで、より的確な質問ができるようになり、より良い回答を引き出せるようになります。
</p>
</div>
</section>
<!-- CONTENT_END -->
</main>
<footer class="max-w-3xl mx-auto px-5 pb-10 pt-6 border-t border-ads-border/30">
<p class="text-xs text-ads-dim text-center">AI-Driven School の図解ツールで作成</p>
</footer>
<script src="https://unpkg.com/lucide@latest"></script>
<script>lucide.createIcons();</script>
</body>
</html>