はじめに
普段仕事でAIやデータサイエンスに関わっていることや、また数学が好きではあるものの、最近数学っぽい数学に触れていないことや、仕事で生成AIに触れているのにまともに仕組みを理解していないなと思い、この記事を書きました。
今回、大規模言語モデルについて数学とからめながら理解しようと思い、3回にわたって記事にしようと思います。
第1回目は大規模言語モデルの概要と簡単な仕組みについて整理し、数学的な要素については次回以降まとめようと思います。
1. 大規模言語モデルとは
大規模言語モデル(LLM・Large Language Model)とは膨大なテキストデータを使って学習されたAIモデルを指します。
人間のように文脈を理解し、自然な文章を生成できることが特徴で、翻訳や要約、質問への応答、コード生成といったタスクに対応し、従来のAIのような特定のタスクやドメインに特化するだけでなく、幅広い分野で応用が利くことも特徴です。
2.従来のAIの違い
上記の説明の通り、大規模言語モデルでは幅広い分野のタスクに対応できる汎用性を持ちながら、個々の分野にも対応できる専門性も持ち合わせており、従来の機械学習やディープラーニングなどのAIと異なります。
大規模言語モデルが従来のAIと異なっているのは、トランスフォーマーモデル(Transformer)及び自己注意機構(Self-Attention Mechanism)を活用しているからです。トランスフォーマーモデルでは長いシーケンスデータを効率よく処理することで、文脈をより深く理解し、精度よくテキストを生成することができます。また、自己注意機構は文脈を精度よくとらえることができます。
従来のシーケンスデータ処理であるリカレントニューラルネットワーク(RNN)と比較して、トランスフォーマーモデルの強みは以下が挙げられると思います。
- 並列処理が可能
全単語を同時に処理できるため、学習速度を向上できる。 - 長文での精度が高い
遠くの単語同士の関連性をとらえるため、人間のような自然な文章を生成できる。 - スケーラブル
従来の機械学習モデルと比較して、大量のデータを学習すればするほど性能が向上するという特徴がある。
さて、ここからはトランスフォーマーモデルや自己注意機構について詳しく説明します。
3.仕組み
トランスフォーマーモデルは2017年にGoogleの論文"Attention is All You Need"で登場した、系列変換のためのニューラルネットワークです。系列とは順序を持った並びのことで、例えば文章は単語の系列であるとみなすことができます。トランスファーモデルは大きく分けてエンコーダとデコーダで構成されており、この2つが連携することで系列変換タスクを実行します。
ここからはエンコーダ及びデコーダについて説明します。
図1.トランスフォーマーモデルのアーキテクチャ
左側のエンコーダ及び右側のデコーダから構成されている。
Ashish Vaswani et al. (2017) "Attention Is All You Need" NeurIPS 2017 より画像の引用
3.1.エンコーダの仕組み
エンコーダでは入力系列の重要な特徴を抽出します。具体的には以下の処理を行います。
- トークン化
文章をトークンと呼ばれる単語など意味のある単位で分割します。 - トークンの埋め込み
各トークンをベクトルに変換することで、テキストを数値化することを指します。これはコンピュータが数値しか扱えないためです。ベクトルにより意味関係を表現することが可能で、次元が多いほど細かいニュアンスをとらえることができます。 - 自己注意機構
注意機構とは二つの系列の間で、各要素の関連度合いを計算する手法で、入力する文章のどの部分に注目すべきかを選択することで特徴量を抽出することができます。トランスフォーマーモデルでは同じ系列に対して注意機構を適用する自己注意機構を採用しています。入力テキストの文脈を考慮した表現を生成することができます。 - マルチヘッド注意機構
複数の注意機構であるヘッドが並列で動作し、各ヘッドでは異なる視点で情報に注目することで、多様な情報を処理することができます。 - 全結合層の適用
各ヘッドで得られた特徴量を結合することで情報を整理し最終的な出力を得ます。
3.2.デコーダの仕組み
デコーダではエンコーダで抽出した特徴をもとに系列を生成します。具体的には以下の処理を行います。
- トークンの埋め込み
エンコーダ同様、文章をトークン化・ベクトル化を実施します。 - 位置エンコーディング
トークンの埋め込みベクトルに、文中の位置情報を加えることで、トークンの順序が反映されます。 - マスク注意機構
デコーダでは「生成されていない未来のトークン」を参照できないため、そのトークンに対しマスクを適用し注意機構の計算を実施しないようにします。 - Source-Target注意機構
エンコーダの出力(Source)をもとに、デコードの出力(Target)を生成する際に使用されます。
Sourceの各要素とTargetの各要素の間の関連性を計算することで、Targetの各要素を生成する際に、Sourceのどの要素に注目すべきかを決定することができます。 - フィードフォワードネットワーク
注意機構で出力された値に対して、重ね付け変換の他、非線形変換により、モデル全体の表現力を向上させることができます。
複数の線形変換層と非線形活性化関数から構成されており、また入力から出力に向かって順方向に計算されていることから、この名前になっております。 - ソフトマックス関数によるトークン生成の決定
次に来るトークンの確率分布を出力し、その結果をもとに生成するトークンを決定します。
最後に
今回は、大規模言語モデルの概要及び仕組みについてまとめてみました。今まではフワッとした理解をしていましたが、構成要素や動作原理を含め詳しく理解できたかと思います。
次回以降は、各構成要素の数学的説明を加えながら整理しようと思います。
参考文献
- Ashish Vaswani et al. (2017) "Attention Is All You Need" NeurIPS 2017
