🧠

【図解】ChatGPTなど、TransformerのLLMの仕組み

に公開

はじめに

世界的にLLMの導入が進んでいますが、
意外と仕組みは知られていないと感じています。

ですが、仕組みを知っていれば、
思わぬ失敗を防いだり、よりよい活用ができると考えています。

そこで、この記事を書くことにしました。

O'Reillyの「直感 LLM」で学んだことが中心になります。(良著でした)

https://www.oreilly.co.jp/books/9784814401154/

LLMとは

ChatGPTやGeminiの背後にあるものです。

Large Language Modelの略であり、大規模言語モデルと訳されます。

Transformerとは

ChatGPTやGeminiのLLMのベースになるものです。

この記事では、Transformerを通して、LLMの仕組みを書いていきます。

Transformerは簡単に言うと、
「テキストを入力すると、それに応じたテキストを出力するもの」です。

トークンとは

コンピューターで扱いやすいよう、LLMはテキストをトークンに分割します。

トークナイザーと呼ばれるものが、この分割を行います。

OpenAI Platformでトークナイザーの挙動を実際に確認できます。

フォワードパスとは

Transformerでは、トークンごとに、順番にテキストを生成します。

1回の計算で、1つのトークンが生成されますが、この計算をフォワードパスと呼びます。

フォワードパスは「つぎのトークンの予測」のため、
LLMの本質は「トークンの予測を繰り返しているだけ」と言えます。

フォワードパスの仕組み

フォワードパスでは、つぎのモジュールを通して、トークンの確率を計算します。

  • トークナイザー
  • Transformerブロック
  • LMヘッド

確率の計算には、後述の埋め込みが利用されます。

最終的には、計算した確率をもとに、トークンを選択します。

埋め込みとは

トークンの意味を、ベクトルで表現したものです。

(.91, -.11, .19, .94, -.51)など、数値のベクトルで意味を表現します。

つぎの図がイメージですが、実際は数百を超える次元のベクトルになります。

デコード戦略とは

計算した確率をもとに、トークンを選択するとき、
どのトークンが選択されるかは、デコード戦略で決まります。

もっとも単純な戦略は貪欲法であり、確率の高いトークンを選択します。

貪欲法にはtemperatureというパラメーターがあり、
出力が単調にならないよう、選択のランダム性を制御することができます。

  • temperatureの数値が0のとき
    • 1番目に高い確率のトークンだけが選ばれる
    • プロンプトが同じであれば、毎回の出力も同じになる
  • temperatureの数値が0でないとき
    • 1番目だけでなく、2番目や3番目に高い確率のトークンも選ばれる
    • プロンプトが同じでも、毎回の出力は変わる
    • 数値が大きければ、出力の多様性が高まり、数値が小さければ、出力の一貫性が高まる

さいごに

弊社でも、LLMの活用が進んでいますが、表面的な理解で扱うのではなく、
特性や仕組みを理解したうえで、適切に活用することが大事になると考えています。

また、LLMの仕組みだけでなく、プロンプトエンジニアリングの基本も書きました。

ぜひ読んでいただきたいです!

Accenture Japan (有志)

Discussion