LLMとSLM:大規模言語モデルと小規模言語モデルの違い

Artificial Intelligence Muhammad Raza

言語モデルは、人間が使う自然言語を生成するためのAI計算モデルです。とはいえ、自然言語の生成は容易ではありません。

言語モデルは、確率的機械学習モデルとしてトレーニングされます。つまり、自然な文章になるように単語を並べるための確率分布を予測することで、人間の知能を模倣します。科学の領域では、言語モデルの評価として次の2点が重視されます。

  1. 知能の本質を理解していること
  2. その本質を、現実の人間との有意義な知的コミュニケーションという形で具現化していること

人間の知能の模倣という点では、自然言語処理(NLP)で今日最先端にあるAIモデルでも、チューリングテストに完全には合格していません。(チューリングテストでは、対話相手が人間であるかコンピューターであるかを被験者が区別できなければ合格になります。)

それでも、大ブームになっている大規模言語モデル(LLM)と、それほど盛り上がってはいないものの将来有望な小規模言語モデル(SLM)において、合格レベルにかなり近づいているのは興味深いことです。(SLMは「Small Language Model」または「Short Language Model」の略です。)

小規模言語モデルと大規模言語モデル

今日のAIブームに興味がおありなら、ChatGPTなどで使われるLLMのことはよくご存じでしょう。LLMを使った生成AIは、学術界から産業界、コンシューマー市場に至るまで、幅広い分野で注目されています。その大きな要因は、比較的複雑な対話を言語コミュニケーションの形で行える点にあります。

現在、LLMツールは、インターネット上の膨大な知識にアクセスするためのインテリジェントなマシンインターフェイスとして活用されています。LLMは、インターネット上の情報を使ってトレーニングされ、ユーザーのリクエストに応じて関連情報を抽出し、簡潔でわかりやすい知識として提供します。つまり、人間がインターネットで情報を検索し、何千ものWebページを読み通して、簡潔な最終結論を導き出すという作業を代わりに行ってくれるということです。

かつてLLMといえばOpenAI社のGPTやGoogle社のBERTでしたが、ChatGPTの登場によってようやく一般消費者がLLMを直接利用できるようになりました。

ChatGPTをはじめとする最近の生成AIツールは、プログラミングコードを生成できるようにトレーニングおよびチューニングされています。開発者はChatGPTを使って、完成されたプログラム機能を記述できます。ただし、テキストによるユーザープロンプトを通じて要件と制約を適切に指定することは必要です。

(関連記事:LLMのOWASPトップ10に対処してLLMのセキュリティを守る方法)

NLPのタイムライン
NLPモデルは、シンボリックNLP、統計的NLP、ニューラルNLPの3つに大別されます。

LLMの仕組み

LLMはどのような仕組みになっているのでしょうか。LLMを使って自然言語を生成するための主な手順を見ていきましょう。

ステップ1. 一般的な確率的機械学習

基本的な考え方としては、最も高い確率で正しい予測を生成するパラメーターを持つ数理モデルを開発します。

言語モデルにおいては、自然言語データの分布を予測します。目標は、学習後の自然言語確率分布を使用し、利用可能な文脈的知識(ユーザープロンプトの内容を含む)に基づいて、最も自然な単語の並びを生成できるようにすることです。

ステップ2. Transformerアーキテクチャとセルフアテンション(自己注意)機構

単語と文章の複雑な関係を学習するために、ChatGPTやBERTなどの最新の言語モデルでは、Transformerをベースにした深層学習アーキテクチャを採用しています。Transformerの基本的な考え方は、単語の並びを予測する際に、単語の重要度に基づいて重み付けした数値表現にテキストを変換するというものです。

ステップ3. 事前学習とファインチューニング

特定のタスク領域に合わせて集中的に言語モデルのファインチューニングとエンジニアリングを行います。このステップでのもう1つの重要な目的は、ヘイトスピーチや差別的な発言のような望ましくない出力を生むバイアスを排除することです。

このプロセスでは、以下の手順でモデルパラメーターを調整します。

  1. ドメイン固有の知識に基づいてモデルをトレーニングする

  2. 事前学習済みデータに基づいてモデルパラメーターを初期化する

  3. モデルのパフォーマンスを監視する

  4. モデルのハイパーパラメーターをさらにチューニングする

LLMとSLMの違い

LLMもSLMも、アーキテクチャ設計、トレーニング、データ生成、モデル評価において確率的機械学習の考え方に沿っています。

では、LLMとSLMの違いはどこにあるのでしょうか?

モデルのサイズと複雑さ

明らかに異なるのはモデルのサイズです。

この違いは、モデルアーキテクチャのトレーニングプロセスの違いによるものです。ChatGPTは、エンコーダー/デコーダーモデルスキームでセルフアテンション機構を使用しています。一方、Mistral 7Bはスライディングウィンドウアテンションを使用しており、デコーダーのみのモデルで効率的なトレーニングが可能です。

文脈理解とドメイン特異性

SLMは、ドメイン固有のデータを使ってトレーニングされます。そのため、複数の知識領域をまたいで文脈を包括的に理解するのは苦手ですが、特定の領域では優れた能力を発揮します。

一方、LLMは、より広いレベルで人間の知能を模倣することを目指しています。大規模なデータソースを使ってトレーニングされるため、特化型のSLMと比べ、あらゆる領域で比較的優れた成果を発揮する傾向があります。

つまり、LLMは汎用性が高く、プログラミングなどのダウンストリームのタスクに向いており、適合、改良、調整を通じてその理解を深めることができます。

リソース消費

LLMのトレーニングはリソースを大量に消費し、クラウド上に大規模なGPU計算リソースを用意する必要があります。ChatGPTをゼロからトレーニングするには、数千のGPUが必要になります。一方、SLMのMistral 7Bは、それなりの性能を持つGPUを1基搭載したローカルマシンで実行できます。それでも、70億パラメーターのモデルをトレーニングする場合は、複数のGPUで数時間かかります。

バイアス

LLMはバイアスがかかりがちです。適切なファインチューニングが行われず、インターネット上の誰でもアクセスできるデータをそのまま学習するためです。こうしたデータをトレーニングに使用すると、以下の問題が生じる可能性があります。

この問題をさらに複雑にしているのが、方言、地名、文法規則など、さまざまな要因によって、言語自体がバイアスを暗示する場合があることです。もう1つ一般的な問題が、モデルのアーキテクチャが原因でバイアスが意図せず入り込むことです。このような問題は見過ごされがちです。

一方、SLMは、比較的小規模でドメイン固有のデータセットでトレーニングされるため、LLMよりもバイアスが発生するリスクが低くなります。

推論の速度

SLMは、モデルのサイズが小さいため、ユーザーがローカルマシンで実行し、許容時間内に出力を生成できます。

一方、LLMでは、出力を生成するために複数の並列処理装置が必要になります。また、LLMにアクセスする同時ユーザー数が増えるほど、モデルの推論速度が低下する傾向があります。

LLMは万能?

その答えは、言語モデルの用途と利用可能なリソースによります。ビジネスの場で、コールセンターやカスタマーサポート向けのチャットエージェントに使用する場合は、LLMの方が適しているかもしれません。

一方、より専門性の高い用途では、SLMの方が優れているでしょう。

医療、法律、金融の分野ではどうでしょうか。これらの分野の用途では、専門性と機密性の高い知識が求められます。こうした知識に基づいてSLMを社内でトレーニングし、社内用途向けにファインチューニングすれば、規制の厳しい専門的な業界のドメイン固有のユースケースに対応するインテリジェントエージェントを構築できるでしょう。

このブログはこちらの英語ブログの翻訳です。

関連記事

SplunkはAIを何に使っているのか
AI
5 分程度

SplunkはAIを何に使っているのか

「SplunkはAIを何に使っているの?」という質問にお答えします。
CIO向けSplunk AI Toolkitガイド:後追い対応のITから予測型ITへ
AI
5 分程度

CIO向けSplunk AI Toolkitガイド:後追い対応のITから予測型ITへ

SplunkのAI Toolkitは、チームがインシデントを予測し、ダウンタイムを削減し、デジタルレジリエンスをエンタープライズ規模で実現できるよう支援します。
数週間から数分へ:AIを活用したデータ管理でデータインテリジェンスを加速
AI
5 分程度

数週間から数分へ:AIを活用したデータ管理でデータインテリジェンスを加速

Splunk Data Managementは、生のテレメトリをリアルタイムのインサイトへと変換し、セキュリティ運用、IT運用、ネットワーク保証、オブザーバビリティなどの分野における重要なユースケースを効果的にサポートします。