リンドくん
たなべ先生、最近ChatGPTとか使ってるんですけど、こういうAIってどうやって賢くなるんですか?普通のプログラムと違って、人間みたいに学習するって聞いたんですが...
たなべ
実はLLM(大規模言語モデル)の学習プロセスは、人間の学習とは少し違うんだ。でも、膨大なテキストデータから言葉のパターンを学んでいくという点では、自分たちが言語を身につけるプロセスと似ているかもしれないね。
今日はその仕組みを一緒に見ていこう!
ChatGPTやClaude、Geminiなど、最近のAI技術の進化は目覚ましいものがあります。
これらの大規模言語モデル(LLM: Large Language Model)は、まるで人間のように自然な会話ができますよね。
でも、こうしたAIはどうやって「賢く」なっているのでしょうか?プログラマーが一つ一つ会話パターンを書いているわけではありません。
実は、LLMは膨大なデータから自動的に言語のパターンを学習するという、従来のプログラミングとは全く異なるアプローチで作られているのです。
この記事では、LLMがどのようなプロセスで学習されるのか、その基本的な仕組みから実際の学習手順、さらには学習における失敗例まで、初心者の方にもわかりやすく解説していきます。
HackATAは、エンジニアを目指す方のためのプログラミング学習コーチングサービスです。 経験豊富な現役エンジニアがあなたの学習をサポートします。
✓ 質問し放題
✓ β版公開中(2025年内の特別割引)
リンドくん
先生、普通のプログラムだったら、if文とかで「こう聞かれたらこう答える」って書きますよね?LLMはそれとは違うんですか?
たなべ
その通り!従来のプログラミングはルールベースで、プログラマーが明示的に動作を指定するんだ。でもLLMはデータから自動的にパターンを学習するんだよ。
例えば、何億もの文章を読み込んで、「こういう文脈の後にはこういう言葉が来やすい」というパターンを自動的に見つけ出すんだ。
従来のプログラミングでは、開発者が明確なルールを書きます。例えば、簡単なチャットボットを作るなら以下のようなコードになります。
このアプローチの問題点は明確です。すべてのパターンを人間が事前に書かなければならないということです。
ユーザーが「天候教えて」と言ったら?「weather」と英語で聞いたら?無限にあるバリエーションに対応するのは不可能ですよね。
一方、LLMは全く異なるアプローチを取ります。膨大なテキストデータから統計的なパターンを学習することで、見たことのない文章にも柔軟に対応できるようになるのです。
LLMの学習を理解するには、まず機械学習という概念を知る必要があります。機械学習とは、コンピュータがデータからパターンを自動的に発見する技術のことです。
人間の学習に例えると分かりやすいでしょう。私たちが言語を習得する際、親が「これは『りんご』だよ」と何度も教えてくれます。
最初は分かりませんが、何度も経験するうちに、赤くて丸い果物を見ると「りんご」という言葉が自然に出てくるようになりますよね。
LLMの学習も似ています。大量のテキストを読み込むことで、「このような文脈では、次にこういう言葉が来る確率が高い」というパターンを統計的に学習していくのです。
リンドくん
でもコンピュータって数字しか理解できないですよね?どうやって文章を処理するんですか?
たなべ
鋭い質問だね!その通り、コンピュータは直接文字を理解できないんだ。
だからトークン化という処理で、文章を数字に変換するんだよ。これがLLMの学習における最も基本的なステップなんだ。
トークンとは、テキストを処理するための最小単位のことです。英語では単語単位、日本語では文字や部分文字列単位で分割されることが多いです。
例えば、「今日は良い天気ですね」という文章は、以下のようにトークン化されるかもしれません。
このように、各トークンには一意の数字(ID)が割り当てられます。LLMはこの数字の並びを学習するのです。
最近のLLMでは、サブワードトークン化という手法が使われています。これは単語をさらに細かい部分に分割する方法です。
例えば、「unhappiness(不幸)」という単語を以下のように分割できます。
この方法の利点は何でしょうか?新しい単語や造語にも対応できるということです。
たとえ「unhappiness」という単語を学習していなくても、「un」(否定の接頭辞)と「happiness」(幸せ)を知っていれば、意味を推測できるのです。
実際に、簡単なトークン化のイメージを見てみましょう。
このトークン化されたデータが、LLMの学習における「入力」となるわけです。
リンドくん
トークン化した後は、どうやって学習するんですか?
たなべ
ここからが本番だよ!
事前学習(Pre-training)という段階で、LLMはインターネット上の膨大なテキストデータを読み込んで、言語の基本的なパターンを学習するんだ。この段階で、文法や知識、推論能力の基礎が身につくんだよ。
事前学習は、LLMが言語の一般的な構造と知識を獲得する段階です。具体的には、以下のようなタスクを通じて学習します。
次の単語を予測する(Causal Language Modeling)最も一般的な学習方法は、前の単語から次の単語を予測するというタスクです。
LLMは何十億、何兆もの文章でこの予測タスクを繰り返すことで、言語のパターンを学んでいきます。
現代のLLMの学習には、想像を絶する量のデータが使用されます。
この膨大なデータから学習することで、LLMは以下のような能力を獲得します。
事前学習の概念を簡単なPythonコードで表現してみましょう。(実際のLLMははるかに複雑ですが、イメージとして)
実際のLLMはニューラルネットワークという複雑な数学的モデルを使用していますが、基本的な考え方は「大量のデータから次に来る言葉のパターンを学習する」という点で同じです。
リンドくん
事前学習だけで完成なんですか?
たなべ
いや、まだ途中なんだ。事前学習で言語の基礎は身についたけど、特定のタスクに特化させるためにファインチューニングという追加の学習を行うんだよ。
これで、質問応答やコード生成など、特定の用途に最適化されるんだ。
ファインチューニング(Fine-tuning)は、事前学習済みのモデルを特定のタスクやドメインに適応させるプロセスです。
例えば、以下のような用途に特化させることができます。
ファインチューニングでは、教師あり学習という方法が使われることが多いです。これは「正解」を明示的に与えながら学習する方法です。
このように、「こういう質問にはこう答える」という正解のペアを大量に用意して学習させます。
リンドくん
でも、AIって時々変な答えを返しますよね?それを防ぐ方法はあるんですか?
たなべ
素晴らしい疑問だね!そのためにRLHF(人間のフィードバックからの強化学習)という技術が使われるんだ。
これはChatGPTなどの最新AIで採用されている、とても重要な学習プロセスなんだよ。
RLHF(Reinforcement Learning from Human Feedback)は、人間の評価をもとにAIの振る舞いを改善する学習方法です。
プロセスは以下のようになります。
例えば、以下のような質問に対する回答を考えてみましょう。
人間の評価者は、おそらく回答Cを最も高く評価するでしょう。バランスが取れていて、柔軟性があり、決めつけていないからです。
RLHFを通じて、LLMはこのような「良い回答」のパターンを学習していきます。
リンドくん
学習がうまくいかないこともあるんですか?
たなべ
もちろんあるよ!実はAIの学習には様々な落とし穴があるんだ。
これらの失敗例を知ることで、AIの限界や注意点を理解できるようになるよ。
過学習とは、学習データを覚えすぎてしまい、新しいデータに対応できなくなる現象です。
例えば、こんな状況です。
これは、人間で言えば教科書を丸暗記したけど応用問題が解けないという状態に似ています。
学習データに偏りがあると、LLMもその偏りを学習してしまいます。
これは学習データがインターネット上のテキストから取られているため、そこに含まれる社会的なバイアスも一緒に学習してしまうからです。
LLMは時々、もっともらしいが事実ではない情報を生成することがあります。これを幻覚(ハルシネーション)と呼びます。
これは、LLMがパターンに基づいて「もっともらしい」文章を生成しているため、事実かどうかを確認する能力が不十分だからです。
新しいタスクを学習すると、以前学習した内容を忘れてしまう現象です。
この問題を解決するために、継続学習(Continual Learning)という研究分野が発展しています。
リンドくん
LLMの学習って、お金や電力はどれくらいかかるんですか?
たなべ
これは重要な視点だね。実はLLMの学習には莫大なコストがかかるんだ。
技術的な側面だけでなく、経済的・環境的な側面も理解しておくことが大切だよ。
大規模なLLMの学習には、想像を超える計算資源が必要です。
高額な学習コストは、AI技術の民主化を妨げる要因にもなっています。
しかし、以下のような取り組みも進んでいます。
リンドくん
なるほど!LLMの学習って本当に複雑で奥が深いんですね。
たなべ
そうなんだ。でも基本的な考え方は「大量のデータからパターンを学習する」というシンプルなものなんだよ。
これからAI技術はますます発展していくから、今のうちに基礎を理解しておくことが大切だね。
LLMの学習プロセスを理解することは、単なる技術的知識以上の価値があります。
AIの限界や可能性を正しく理解し、適切に活用していくことが、これからのエンジニアには求められます。
AI技術は急速に発展していますが、その根底にある「データからパターンを学習する」という基本原理は変わりません。
この基礎をしっかり理解しておけば、今後どんな新技術が登場しても、その本質を見抜けるようになるはずです。