LLMとは
モデルの定義
技術業界では、ChatGPTのような大規模言語モデル(LLM)が注目を集めています。 [Wikipedia] によると、LLMの定義は以下のようになっています。
大規模言語モデル(LLM)は、一般的な言語理解と生成の能力が特徴の言語モデルである。
LLMは、計算量の多い自己教師ありおよび半教師ありのトレーニングプロセス中に、 テキスト文書から統計的関係を学習することによってこれらの能力を獲得します。
LLMは、トランスフォーマーアーキテクチャに従う人工ニューラルネットワークです。 言い換えると、 LLMは、本やウェブサイト、ユーザーが生成したコンテンツなどの大規模なテキストデータセットでトレーニングされます。
これにより、自然な方法で初期プロンプトを継続する新しいテキストを生成できます。
LLM Modelは、基本的に多くのパラメータを持つニューラルネットワークです。
大まかに言えば、パラメータが多いほど、Modelは優れています。
私たちは常にModelのサイズ、つまりパラメータの数がよく話題になります。
例えば、GPT-3は1750億のパラメータを持ち、GPT-4は1兆を超えるパラメータがあると言われています。
Modelが具体的にどのようなものか
言語Modelはバイナリファイルです。

(from Andrej Karpathy's build a GPT model from scratch))
上の画像では、パラメータファイルはMetaのLlama-2-70bModelで、サイズは140GBで、70bのパラメータ(数字の形式)を含んでいます。
run.cファイルは推論プログラムで、Modelを問い合わせるための使用されます。
これらの超大規模Modelをトレーニングするのは非常に高価です。
GPT-3のようなModelをトレーニングするのに数百万ドルかかります。

(from Andrej Karpathy's build a GPT model from scratch))
現在、最も優れたModelであるGPT-4は、単一のModelではなく、複数のModelの混合物です。
各Modelは、特定のドメインでトレーニングまたはファインチューニングされ、 推論中に最高のパフォーマンスを発揮するために協力して動作します。
私たちの目標は、大規模言語Modelの基礎を理解し、学ぶことです。
幸いなことに、個人のコンピュータでははるかに少ないパラメータを持つModelをトレーニングすることができます。
[Let's Code LLM] セクションで、一緒にステップバイステップでコードを書いていきましょう。
モデルの推論
Modelがトレーニングされて準備が整ったら、ユーザーはModelに質問を投げかけます。
質問テキストは、140GBのファイルに渡され、文字ごとに処理され後、 最も関連性の高いテキストとして結果が返されます。
最も関連性の高いという意味は、 Modelが入力テキストの次の文字として最もありそうなテキストを返すという意味です。
例えば
"apple"は次の文字として返されます。
なぜなら、"I like to eat"の後に"apple"が最もありそうな文字だからです。
これは、Modelがトレーニングされた大規模なデータセットに基づいています。
上記で言及された本やウェブサイトを基に考えると、 このように理解できます。
"I like to eat apple"は、Modelが複数回"学習"した非常に一般的な文です。 "I like to eat banana"も一般的な文ですが、上記の文よりは一般的ではありません。
トレーニング中、Modelは次のように記録します。
"I like to eat"の後に"apple"が0.375の確率で現れることを記録しました。 "I like to eat"の後に"banana"が0.146の確率で現れることを記録しました。
これらの確率は、 パラメータModelファイルに保存された確率セットとして保存されます。 (確率は機械学習分野では重みと呼ばれることが多いです。)
つまり基本的に、LLM Modelは、与えられた文字とその関連するコンテキスト文字に確率分布を割り当てる確率的データベースです。
これは以前には不可能に思えたかもしれません。しかし、2017年に 《Attention is all you need》 という論文が発表されて以来、 非常に大規模なデータセットでニューラルネットワークをトレーニングすることにより、このような文脈理解を可能にするtransformer architectureが導入されました。
Modelアーキテクチャ
LLMの登場以前、ニューラルネットワークの機械学習は比較的小規模なデータセットで使用し、文脈理解の能力は限られていました。
これは、初期もModelが人間のようにテキストを理解する能力を持っていなかったためです。
論文が発表されたとき、それは言語翻訳を目的としたModelの訓練に向けられていました。
OpenAIのチームは、トランスフォーマーアーキテクチャが文字予測のための決定的な解決策であることを発見しました。
インターネットデータ全体でトレーニングされると、Modelは任意のテキストを文脈を理解し、 人間のように文章を緻密に完成されることができるようになりました。
以下の図は、Modelのトレーニングプロセス内部で何が起こっているかを示しています。

もちろん、私たちは最初にそれを見た時にすぐに理解することはできませんが、 これから、以下のトピックでその内容を詳しく見て行きます。
プログラム的な観点や数学てな詳細に入る前に、 Modelがどのように動作するかの概念とプロセスを正確に理解するために進めましょう。