この記事では、Mistral AIが開発したLLM「Mistral 7B」を紹介します。
Mistral AIは、2023年5月にフランスのパリで創業したAIスタートアップ企業です。そんなMistral AIが2023年9月に発表したLLMが「Mistral 7B」なのです。今回は、創業から4か月で発表したLLMについて、技術レポートをもとに解説していきます。
1.開発の背景
近年、自然言語処理技術の発展は著しく、特に大規模言語モデル(LLM)が大きく関わっています。こうした開発に注力しているのはGoogleやMicrosoftといった大企業だけではありません。さまざまなスタートアップ企業もLLMの開発に着手しています。近年のLLMの開発では、「モデルのサイズを大きくする」という手法が主流となっています。しかしながら、この手法には計算コストが大きくなってしまったり、推測の速度が遅くなってしまったりするなどといった欠点があります。そこで、Mistral AIは高効率かつ高性能なモデルの開発が重要であると考えました。この課題を解決するために、いくつかの技術を活用してMistral 7Bを開発しました。
2.モデルの構造について
はじめにMistral 7Bの基盤となるアークテクチャですが、これは他のLLMと同様に、Transformerアーキテクチャを使用しています。このTransformerをもとにいくつかの改善点を加えて「高効率かつ高性能」なモデルを開発していますが、その改良点をいくつか紹介します。
①Sliding Window Attention (SWA)
一つ目はSWAというメカニズムです。もしも、入力テキストをそのままの形で処理したらどうでしょうか。こんな手法では計算量が膨大になってしまいます。そこで、入力テキストを処理する際に、いくつかのトークンからなる「ウィンドウ」に分割し、それぞれのウィンドウ内でのAttentionスコアを計算します。それから、入力テキスト全体のAttentionスコアを順に計算していきます。これにより計算の複雑さが軽減され、モデルの効率が向上します。
②Rolling Buffer Cache
2つ目が「Rolling Buffer Cache」と呼ばれる仕組みです。モデルは入力テキストを計算・分析する段階で、KeyとValueを結び付けたデータを保管します。この方法のことをCache(キャッシュ)と呼びます。Transformerのデコーダ(新たに出力を生成する装置)において、入力トークンが長くなるほど計算量が増えてしまい、言語モデルの生成速度に悪影響を及ぼします。しかし、K(Key)-V(Value) Cacheを利用することで、新しいトークンだけに対して計算を行えばよくなり、効率が上がります。Mistral 7Bでは、こうしたCacheを利用しているだけでなく、ある一定のデータ量を超えると過去のデータを上書きすることで、Cacheに保管されるデータが増えすぎることを防いでいます。この上書き作業がRollingと呼ばれます。実際にこのRBCを活用することにより、Cache内のメモリーの使用量は8分の1に縮小できたと報告されています。
③Pre-fill and Chunking
入力のプロンプトが事前にわかっていた場合は、Key-ValueのCacheを事前に入力しておくことができます。これがPre-fillというものです。また、入力プロンプトが非常に長いときに、プロンプトを分割して処理するようになっています。これがChunkingです。
④Grouped-query attention (GQA)
最後にGQAというものを紹介します。GQAはTransformer内でのAttentionの計算をする際の工夫の一つです。従来のTransformerでは、Multi-head attentionという手法を取っていました。この手法では一つのトークンに対応するQueryベクトルと、それに対応するKeyベクトル、Valueベクトルのペアが1対1に対応していました。しかし、GQAではいくつかのQueryベクトルをグループ化(Grouped)したものに対応するKeyベクトルとValueベクトルを紐づけるため、これまでよりも容量が小さく済むようになっています。
下図の左側がMulti-head attentionで、従来の手法になります。逆に、複数のクエリをまとめて処理するMulti-query attentionという手法もありますが、Mistral 7Bで使用されているのはちょうど中間の技術にあたる、Grouped-query attention (GQA)ということになります。
[出典:GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints;https://arxiv.org/pdf/2305.13245]
3.モデルの性能の評価
Mistral 7Bの性能を評価するために、常識的な推論、一般教養(World Knowledge)、読解能力、数学、コーディング、その他のよく使われている総合的なベンチマークを測定しました。以下の図表で、その性能を確認してみましょう。
[出典:Mistral 7B;https://arxiv.org/pdf/2310.06825]
上の図では、各ベンチマークにおいて最も左側(オレンジ色)の棒グラフがMistral 7Bとなっています。注目すべき点としては、Mistral 7Bよりもモデルのパラメータ数が大きいLLaMA2 13Bと比較しても、ほとんどのベンチマークにおいてMistral 7Bが上回っているというところです。以下の表はさらに細かいベンチマーク評価を表しています。
[出典:Mistral 7B;https://arxiv.org/pdf/2310.06825]
この表では、太字の記録が項目内の最高記録となりますので、LLaMA 2との比較ではMistral 7Bの性能の方が高いことは再確認できます。コーディングの評価指標には「HumanEval」と「MBPP」の2つを使用しており、数学の評価指標には「MATH」と「GSM8K」の2つを使用しています。さらに注目すべき点は、コーディングと数学の能力がLLaMAと比較して高くなっているということです。
4.まとめ
この記事で紹介した「Mistral 7B」をまとめると以下のようになります。
- Mistral 7Bは、フランスのMistral AIが開発した最初のLLM である。
- Transformerを基盤とし、効率化のための工夫が施されている。
- 軽量なモデルだが、LLaMA2に匹敵する能力を持っている。
軽量かつ効率の良い言語モデルを開発するMistral AIのさらなる活躍に注目していきましょう!
Mistral AIの次なるモデル「Mixtral 8x7B」については以下のページをご覧ください。
【参考文献】
「GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints」