10 ポイント 投稿者 ninebow 2024-10-29 | まだコメントはありません。 | WhatsAppで共有

小規模言語モデル(SLM)に関する包括的な研究 (Small Language Models: Survey, Measurements, and Insights)

論文紹介

近年の言語モデルの発展は、2つの傾向に分かれています。1つ目は大規模言語モデル(LLM, Large Language Model)で、数百万台規模のGPUを用いる大規模データセンターで運用されます。これらのモデルは高度な言語タスクを処理し、人工知能を用いて科学などの複雑な問題を解決することを目指しています。しかし、このようなLLMは高コストで膨大な計算資源を必要とし、個人向けデバイスへ配備するには現実的ではありません。

一方、小規模言語モデル(SLM, Small Language Model)は、リソース制約のあるデバイス、たとえばスマートフォン、タブレット、ウェアラブル機器などに配備できるよう設計されています。小型言語モデルの目標は、コスト効率が高く実用的な人工知能を提供することで、AIを誰もが容易に利用できるようにすることです。本論文はSLMに関する初の包括的な調査であり、ここ数年で公開された小型言語モデルを、技術的革新、性能、そしてデバイス上での実行コストの観点から分析しています。

小規模言語モデル(SLM)の構造、データセット、学習

小規模言語モデル(SLM, Small Language Model)概要

SLMは、大規模なパラメータを持つ言語モデルよりも小型でありながら、常識推論、数学的問題解決、インコンテキスト学習などのさまざまなタスクで性能を実証しています。これにより、デバイス上で直接実行可能な人工知能の可能性を示しています。

今回の研究では、2023年末から急増しているSLMを調査し、次の基準に従って59個のSLMを選定して、その性能やコストなどを検討しました。

  • SLMのモデルサイズは100M~5Bのモデルと定義し、評価可能な重みが公開されているモデルのみを対象とします。

  • 優れた性能と実運用への配備のため、デコーダ専用Transformerアーキテクチャを備えたモデルのみを対象とします。つまり、RWKVやMambaのようなアーキテクチャのモデルは含めていません。

  • 本調査は事前学習過程で獲得された基礎知識に焦点を当てているため、指示チューニング(Instruct Fine-tuned)版のみが提供されるモデル(Microsoft PhiおよびStabilityAI StableLM)を除き、ベースモデル(Base Model)のみを対象とします。

  • このほか、事前学習済みモデルをファインチューニングした派生モデルも除外します。

上記の基準に従って選定されたモデル一覧は以下のとおりです。

SLMのモデル構造(Model Architecture)

SLMのモデル構造はTransformerをベースにしつつ、さまざまな派生形を持っています。Transformerアーキテクチャの中核は、マルチヘッドアテンション(Multi-Head Attention, MHA)とフィードフォワードニューラルネットワーク(Feed-Forward Neural Network, FFN)です。MHAは入力データの異なる部分に注目できるようにし、並列処理の効率を高めます。近年のモデルでは、アテンション機構、FFN、活性化関数において次のような多様な試みが行われています。

  1. アテンション機構(Attention Mechanisms):

    • マルチヘッドアテンション(Multi-Head Attention, MHA): 入力データの複数の部分に同時に注意を向ける仕組みで、Transformerの中核です。
    • グループクエリアテンション(Group-Query Attention, GQA): アテンション計算の複雑さを減らすため、複数のクエリ値をグループ化する方式です。
    • マルチクエリアテンション(Multi-Query Attention, MQA): 各クエリに対して異なるキーと値の射影を許可することで計算複雑性を下げる方式です。
  2. フィードフォワードニューラルネットワーク(Feed-Forward Network, FFN):

    • 標準FFN(Standard FFN): 2つのレイヤーで構成されるシンプルなネットワーク構造です。
    • ゲート付きFFN(Gated FFN): 追加のゲート層を含め、性能を高めた構造です。
  3. フィードフォワードニューラルネットワークの次元拡張比率(The intermediate ratio of the FFN): 入力次元の大きさに対する隠れ層(hidden layer)の大きさを比率で表した値で、一般に次元拡張比率を示します。この比率が大きいほどFFNはより複雑なパターンを学習できますが、演算コストも増大します。標準FFNでは通常4程度、ゲート付きFFNでは2から8の間の比率を持ちます。

  4. 活性化関数(Activation Functions): SLMではReLU(Rectified Linear Unit)、GELU(Gaussian Error Linear Uni)、$GELU_{tanh}$、SiLU(Sigmoid Linear Unit)が主に使用されます。2022年にはReLUが、2023年にはGELUとその派生形が、そして2024年に入ってからはSiLUが活性化関数として最も広く使われています。

  5. レイヤー正規化(Layer Normalization): レイヤー正規化にはLayerNormとRMSNormが使われます。RMSNormの採用が次第に増えており、これはモデルの学習安定性を高めることに寄与します。

  6. 語彙サイズ(Vocabulary Size): 語彙サイズは、SLMが認識できる固有トークン(unique token)の数を意味します。最近のSLMは主に5万語以上の語彙サイズを持ち、語彙サイズが大きいほど性能が向上することが確認されました。

先に選定した59モデルについて、上記6つのバリエーションの分布が時間とともにどのように変化したかをまとめると、次のとおりです。

これらのモデル構造を見ていくことで、モデル構造における革新(Model Architecture Innovations)を確認できました。

  1. パラメータ共有(Parameter Sharing)

    • パラメータ共有は、大規模言語モデル(LLM)において、ネットワークの複数の層や構成要素で同一の重みセットを再利用するために用いられる手法です。このアプローチを用いると、モデル内のパラメータ数を大幅に削減でき、性能を維持しながら、より効率的な学習と推論につながる可能性があります。
    • Embedding-lm_head共有(Embedding-lm_head sharing): 埋め込みの重みを最終的なlm_headレイヤーと共有することは、最も一般的な重み共有手法です。これは単語埋め込み層の共有であり、RoPE(Rotary Position Encoding)とは何の関係もありません。GemmaやQwenのようなモデルはいずれもこの共有手法を使用しています。
    • レイヤー単位のAttention/FFN共有(Layer-wise Attention/FFN sharing): この方式では、同一の重みセットをモデルの複数レイヤーにわたって再利用します。これは、すべてのTransformerレイヤーが同じパラメータを共有するSLM/LLMでよく見られます。たとえば、MobiLLaMAはすべてのTransformerブロックのFFN重みを共有し、MobileLLMは隣接する2つのTransformerブロックのAttentionおよびFFN重みを共有します。
  2. レイヤー単位のパラメータスケーリング(Layer-wise Parameter Scaling)

    • この手法はOpenELMで提案・採用されました。従来のSLMはモデルの各Transformerレイヤーに対して同一の構成を使用するため、レイヤー間でパラメータが均一に割り当てられます。これらのモデルと異なり、OpenELMの各Transformerレイヤーは異なる構成(例: ヘッド数やFFNの次元)を持つため、モデルの各レイヤーで異なる数のパラメータを利用できます。これによりOpenELMは、より高い精度を達成するために、利用可能なパラメータ予算(available parameter budget)をより有効に活用できるようになります。
  3. 非線形性補償(Nonlinearity Compensation)

    • PanGu-$\pi$ は最新の言語モデルを分析し、特徴崩壊問題(feature collapse problem)の解決を目指しています。特徴崩壊問題とは、LLMのような高次元表現学習で発生する問題で、モデルが多様な入力に対して同一または非常によく似た特徴(feature)を学習してしまう現象を指します。PanGu-$\pi$ はこの特徴崩壊問題を解決するために、GELUやReLUなどの活性化関数に対して非線形性を補償できるようにし、レイヤー出力値の大きさをスケーリングすることで、出力値の変動幅を一定に保ちます。

> #### 主要インサイト: SLMのモデル構造には2つの主要な観察点があります:
> 1. 2024年8月時点で、一般的なSLMアーキテクチャは、GQA(Group-Query Attention)、SiLU活性化関数を用いたゲート付きFFN(Gated FFN)、2〜8のFFN拡張比率(Intermediate Ratio of FFN)、RMSNorm、5万以上の語彙サイズ(Vocabulary Size)を採用しています。ただし、これらの設定は主に経験的(empirical)なものであり、厳密かつ公開された検証は行われていません。
> 2. SLMにおけるトランスフォーマー構造の革新は限定的です。Embedding-lm_head共有手法を除けば、他の手法が従来のトランスフォーマー(Vanilla Transformer)構造より優れているという強力な証拠は観察されませんでした。また、複数の研究グループや企業で一般的に採用されたり研究されたりもしておらず、今後の検証が必要です。

学習データセット(Training Dataset)

SLMの性能は、学習に使用したデータセットに大きく依存します。この研究では、SLMモデルが使用する12の公開データセットを調査しました。

名前 トークン数 主要ドメイン 説明と用途
The Pile 825B 科学、学術論文、Webテキスト、法務文書 さまざまな小規模データセットを組み合わせたデータセットで、複数ドメインのテキストを含み、モデルの全体的な理解能力を向上させるために使用されます。
FineWeb-Edu 1.3T/5.4T 教育テキスト、教科書、教育資料 FineWebからフィルタリングした教育関連テキストで構成された大規模データセットで、学習および教育ドメイン関連タスクでモデル性能を向上させる目的で使用されます。
StarCoder 35B Pythonコード Pythonプログラミング言語で書かれたコードを含むデータセットで、コード生成やプログラミング関連タスクにおいてモデルを訓練するために使用されます。
Cosmopedia 25B 合成テキスト、教育資料 合成テキストで構成されたデータセットで、教科書、ブログ記事、ストーリー、WikiHowの記事などを含み、モデルが多様な文体やコンテキストを学習できるよう支援します。
RefinedWeb 5T Web文書、ニュース記事、ブログ、技術文書 CommonCrawlから抽出した高品質なWebデータを厳格にフィルタリングしたデータセットで、自然言語処理タスクにおける幅広いドメイン知識の学習に使用されます。
RedPajama 1.2T Webデータ、ニュース、ソーシャルメディア CommonCrawlのスナップショットから抽出した膨大なテキストデータを含み、Webテキストベースのモデル学習に使用されます。
Dolma - 重複除去済み英語テキスト MinHashアルゴリズムを用いて重複を除去した英語コーパスで、重複テキストを取り除いた精製データによってモデル性能を最適化するために使用されます。
WuDaoCorpora 4T 中国語テキスト 中国語データを基盤とする大規模コーパスで、3Tトークンの学習データと1.08Tの中国語文字を含み、中国語言語モデルの訓練に使用されます。
RoBERTa CCNewsV2 - ニュース記事 CommonCrawlのニュースデータセットの更新版で、最新のニュースデータに基づく自然言語処理タスクに使用されます。
PushShift Reddit - ソーシャルメディアデータ(Reddit投稿) Redditデータを収集・分析・保存するプラットフォームで収集されたデータで、ソーシャルメディア上の相互作用や対話型言語モデルの訓練に使用されます。
DCLM-baseline 1.35T Webテキスト Common Crawlから抽出した標準化コーパスで、事前学習済み言語モデル向けデータセットとして使用され、さまざまな評価タスクに適しています。
CulturaX 6.3T 多言語テキスト 167言語で構成された大規模な多言語テキストデータセットで、多言語モデル学習のための大規模テキスト資料として使用されます。

研究対象であるSLMが2022年から2024年までに事前学習データセットを使用した傾向を見ると、次のようになります。

2022年と2023年に最も広く使用された事前学習データセットはThe Pileでしたが、最近ではより多くのデータセットが提案され、選択肢が多様化していることがわかります。2024年に入ると、SLMの事前学習でThe Pileデータセットはもはや使われなくなっており、RefinedWebRedPajamaなどのデータセットが次第に広く使われるようになっています。これは、より高品質な事前学習データセットを構築するための研究とエンジニアリングの取り組みが活発に進められていることを示しています。

次に、使用した事前学習データセットによるSLMの性能を見てみました。直近3年間に公開されたSLMをパラメータ規模に応じて4つのグループ(<1B / 1B-1.4B / 1.5-2B / 2.5B-3B)に分類し、各グループ内で平均正確度(常識推論/理解と問題解決という2種類の正確度の平均)を基準に並べた結果は以下のとおりです。

これらの結果から、最近公開された2つのデータセットであるDCLM(DataComp-LM)FineWeb-Eduが、他のデータセットに比べて優れた性能を示していることがわかります。この2つのデータセットに共通する特徴は、モデルベースのデータフィルタリングを採用している点です。

また、コーディング能力はデバイス上に展開するSLMの主要タスクではないにもかかわらず、StarCoderのような事前学習データセットにコーディングデータが含まれることが少なくありません。これは、コーディングデータがモデルの推論能力向上に役立つ可能性があるという一般的な考えによるものかもしれません。

次に、事前学習に使用したトークン数とモデル規模、および事前学習に使用したトークン数と平均正確度を見てみました。

まず、モデル規模と学習に使用するデータ量(トークン数)の関係を研究したチンチラ則(Chinchilla Law)によれば、モデルのパラメータ規模と学習トークン数の最適比率は約20であるべきだと提案されています。たとえば、1Bモデルの場合は20Bトークン規模の学習データセットが必要だとされています。

2022年から2024年までに公開されたSLMの規模と学習トークン数を統計的に分析した結果(下図左の(a))によると、一般にモデルが大きいほど学習に使われるトークン数も多く、最新のモデルほど学習トークン数が増える傾向があります。注目すべき点は、SLMがモデル規模に関係なく、チンチラ則で提案されるよりはるかに多いトークン数(一般に1.5T以上)で学習されていることです。

SLMが事前学習に使用したトークン数と平均正確度を分析した結果(下図右の(b))を見ると、一般にこの2つの指標には正の相関(positive correlation)があり、これは学習トークン数が700B未満の場合に特に顕著です。しかし、学習トークン数が1Tを超える場合には、学習データの品質が学習トークン量よりも重要になるため、相関は弱まります。

> #### 主要なインサイト: SLM の学習データセットには、2つの主要な観察点があります。
> - 学習データの品質は SLM の性能にとって非常に重要であり、近年の SLM 研究でますます注目を集めています。一般に、SLM に対するデータ品質の影響は、通常、データ量やモデル構造よりも大きいです。データセット研究における注目すべき傾向は、モデルベースのフィルタリングを用いることであり、FineWeb-Edu(1.3T/5.4T)および DCLM-baseline(4T)が代表的な例です。この2つのデータセットで学習した SLM は、非公開データセットで学習した SLM と比べても競争力のある性能を示しました。
> - 近年の SLM は、モデルサイズにかかわらず大規模な学習トークン数(一般的に 1.5T 以上)を用いて学習されています。場合によっては、より少ないデータ量が使われることもあります。(例: Qwen2-0.5B は 12T のトークンを使用しましたが、Qwen2-1.5B は 7T のトークンしか使用していません。)これはチンチラ則と比べてかなり「過学習(over-training)」していることを意味し、このような過度な学習は、より多くの学習時間を投入して、より高性能な SLM(powerful SLM)を展開するために用いられています。

学習アルゴリズム(Training Algorithm)

SLM 学習のためのさまざまなアルゴリズムが存在します。主要な学習アルゴリズムとしては、Maximal Update Parameterization(μP)知識蒸留(Knowledge Distillation)二段階事前学習(Two Stage Pre-training) 戦略があります。

  1. Maximal Update Parameterization(μP): モデル初期化(initialization)やレイヤーごとの学習率(layer-wise learning rate)、活性化の大きさ(activation magnitude)などを制御することで、モデルレイヤーの幅(model's layer width)に関係なく安定した学習を保証します。この方法は学習の安定性を向上させるだけでなく、小規模モデルから大規模モデルへの学習ハイパーパラメータの転移可能性(transferability)も改善し、学習率(learning rate)などを同一のまま使用できるようにします。Cerebras-GPT はこの手法を用いてモデルを学習しています。

  2. 知識蒸留(Knowledge Distillation): 大規模言語モデル(LLM)で広く用いられる概念であり、大規模で複雑な教師モデルから有用な知識を抽出し、それをより小さく効率的な生徒モデルに学習させるものです。このような知識蒸留(KD)手法は、2つのモデルの出力差を最小化する形で動作し、生徒モデルが教師モデルの振る舞いと予測をおおむね学習することが中核となります。LaMini-GPT と Gemma-2 はこの手法を使用しました。

  3. 二段階事前学習(Two Stage Pre-training): その名の通り、異なる2段階を経てモデルを学習する学習戦略です。まず事前学習段階(Pretraining Phase)では、大規模な低品質データを用いて学習します。この過程では、より多くの計算資源を必要とします。その後のアニーリング段階(Annealing Phase)では、高品質で特定タスク中心の SFT(Supervised Fine-Tuning)データを事前学習データに混合して使用します。MiniCPM はこの手法を使用しています。

SLM の性能(Capabilities)

SLM の評価データセットと指標(Evaluation Datasets and Metrics)

この研究では、SLM の性能を評価するための 12 個のデータセットを、常識推論(Commonsense Reasoning)、問題解決(Problem-Solving)、数学的推論(Mathematics)の3分類に整理しています。

名前 種類 説明と用途
HellaSwag 常識推論 叙述理解をテストし、可能な文の完成を評価します。
TruthfulQA 常識推論 モデルが誤情報を提供しないかを評価するデータセットです。
Winogrande 常識推論 代名詞の曖昧性解消を通じて常識推論能力を評価するデータセットです。
CommonsenseQA 常識推論 日常知識を要する多肢選択式質問で構成された常識推論問題を提供します。
PIQA 常識推論 物理的な常識推論とオブジェクト相互作用を評価するデータセットです。
OpenBookQA 常識推論 科学知識と常識を組み合わせて解く必要があるオープンな科学問題を含みます。
BoolQ 常識推論 はい/いいえ質問を通じて常識および事実ベースの推論能力を評価します。
ARC Easy 問題解決 一般知識と推論をテストする簡単な科学問題を含むデータセットです。
ARC Challenge 問題解決 知識の統合が必要な複雑な科学試験問題を提供します。
MMLU 問題解決 多様な学問分野における問題解決能力を評価するデータセットです。
GSM8K 数学的推論 小学校レベルの数学的推論能力を評価するデータセットです。
Minerva Math 数学的推論 さまざまなテーマにおける高度な数学的推論能力を評価します。

評価時には、全評価データセットにおける正解予測数の比率を計算する正解率(Accuracy)を主要指標として使用します。常識推論、問題解決、数学タスクの分野では、正答を選択できたか、あるいはどれほど正確な解法を提示できたかを評価します。

SLM の全体的な性能(Overall Capabilities)

常識推論、問題解決、数学の3つの課題について、選定された SLM を対象に実験を行い、その進展を以下の図のように分析しました。全体として大幅な性能向上が確認され、具体的には各課題でそれぞれ 10.4%、13.5%、13.5% 向上しました。これに対して、オープンソースの大規模言語モデルである LLaMA モデルは、同期間で平均 7.5% の改善にとどまりました。

特に、非公開データセットで学習した Microsoft の Phi ファミリーは、7B 規模の最新 LLaMA 3.1 と同程度の性能(常識推論で 67.6%、問題解決で 72.4%)を達成し、他のすべてのモデルを上回る性能を示しました。数学分野ではなお一部差があるものの、一般的な推論分野では SLM と LLM の格差は急速に縮まっています。Qwen2 のような例外は存在しますが、一般にはモデルサイズが大きいほど性能が向上する傾向が見られます。

一部の先進的な SLM は非公開データセットを用いて学習していますが、常識推論タスクにおけるオープンソースモデルと非公開モデルの格差は徐々に縮まっています。たとえば SmolLM と DCLM-1B は、DCLM や FineWeb-Edu のような高品質データセットのおかげで、常識推論分野で非常に優れた性能を発揮しています(それぞれ 64.2%、63.8% を達成)。しかし、複雑な推論や論理を必要とするタスク、特に数学では、高品質データセットが不足しているため、依然としてかなりの差が見られます。

主要インサイト: SLMの発展における4つの主要な観察点があります:
  • 2022年から2024年にかけて、SLMはさまざまな言語タスクで大幅な性能向上を示しました。全体として顕著な改善が見られ、LLaMA-7B(バージョン1/2/3/3.1)の改善を上回っています。これらの結果は、On-Deviceで多様な下流タスク(Downstream Task)を解決できることへの期待を高めます。
  • Phiモデル群は、ほとんどのタスクで一貫して最先端性能(State-of-the-Art)を示しています。Phi-3-miniは2024年9月時点でLlama-3.1-8Bに匹敵する精度を達成しました。この性能はMicrosoftの綿密なデータエンジニアリングによるものと推定されますが、特定のデータセットに対する指示チューニング(instructive tuning)や潜在的な過学習(potential overfitting)に起因している可能性もあります。
  • 一般に、モデルサイズが大きいほど性能も向上しますが、Qwen2-1.5Bのような例外的なケースもあります。こうした例外は、より小さなモデルでも特定のタスクで優れた性能を発揮できることを示しています。
  • 常識推論の分野では、オープンソースのデータセットで学習したSLMの性能が、非公開SLMとの性能差を縮めつつあります。しかし、複雑な推論や論理が必要なタスクでは依然として大きな隔たりがあり、数学的推論に焦点を当てたデータセットが必要です.

コンテキスト内学習能力(In-Context Learning Capabilities)

コンテキスト内学習(In-Context Learning, ICL)は、SLMの重要な能力であり、与えられた入力コンテキストに基づいて新しいタスクを実行する能力です。常識推論と問題解決を含む8種類のタスクにおいて、さまざまなモデルと各モデルの2Bサイズの派生版を用いて、コンテキスト内学習(ICL)能力に関する実験を実施しました。一般に、SLMはすべての課題で相当な利点を得ることができました。ただし、HellaSwagPIQA のような単純なデータセットでは例外的に、ICLの例示数(ICL Shots)に関係なく類似した性能を示しました。それ以外では、平均して5つの例(5-shots)を用いたコンテキスト内学習は、すべてのタスクでゼロショット性能を2.1%向上させます。

代表的にはGemma2モデルが4.8%の精度向上を示し、最大の改善幅を記録しました。例外的にLaMiniモデルでは2%以上の性能低下が見られました。これは、LaMiniが学習データセットに過学習(overfitting)しており、追加の例を提示した際にノイズが発生する可能性がある、という仮説が立てられました。

一般に、SLMはモデルサイズが大きくなるほど、コンテキスト内学習性能(ICL Capability)が向上することが確認されました。

主要インサイト: SLMのコンテキスト内学習能力における2つの主要な観察点があります:
  • 一般に、ほとんどのSLMは一定水準のコンテキスト内学習能力を備えています。ただし、この能力の現れ方はタスクの種類によって異なります。ほとんどのSLMは Arc Challenge タスクでは大きく向上する一方で、HellaSwagPIQA のような場合には改善がごくわずかです。
  • SLMはモデルサイズが大きいほど、小規模モデルに比べてコンテキスト内学習能力が強い傾向を示します。LaMiniのような一部の小規模SLMでは、コンテキスト内学習を使用すると性能が低下する現象も見られます。

SLMの実行コスト(Runtime Cost)

SLMの 実行コスト(Runtime Cost) には、モデルを実際のデバイスで実行する際に発生するレイテンシー(latency)とメモリ使用量(memory footprint)が含まれます。本研究では、SLMのランタイム性能を評価し、さまざまなハードウェアでの実験結果を分析します。また、モデル構造(architecture)と量子化(quantization)が性能に与える影響を説明し、それによってSLMをリアルタイム環境でどのように最適化できるかを扱います。

実行コストを測定する際には、次の2種類のエッジデバイス(Edge Device)を使用しました。ドローンや小型ロボットなどのエッジデバイスで主に使用される Jetson Orin と、日常生活で人々が主に使用する スマートフォン であり、それぞれは次のとおりです:

デバイス名 ハードウェア種別 仕様(Specification)
Jetson Orin NX 16GB GPU 1024-core NVIDIA Ampere architecture GPU with 32 tensor cores, 16G DRAM
MEIZU 18Pro CPU Snapdragon 888, 8G RAM

また、各モデルの公式パラメータ数の測定方法が異なるため、著者らは llama.cpp で得られたパラメータ値を使用しました。推論時点では、プリフィル(prefill)段階とデコード(decode)段階に分けて測定しており、別途明記しない限り、プロンプト長は50、生成トークン長は50に設定しました。さらに、発熱による性能低下(thermal throttling)を避けるため、テストは10秒間隔で実施し、より大きなモデルを測定するために4-bit量子化(quantization)を適用しました。

  • レイテンシー測定: モデルのサイズに応じて、最初のトークン生成時間(prefill)と、それ以降の各トークン生成時間(decode)を測定します。
  • メモリ使用量測定: KVキャッシュとメモリバッファの使用量を測定し、モデルがどれほど多くのメモリを占有するかを分析します。

実行コスト概要(Overview)

本研究で扱うSLMの推論レイテンシー(Inference Latency)とメモリ使用量(Memory Footprint)の概要は次のとおりです:

  • Inference Latency(推論レイテンシー): SLMの推論レイテンシーは、モデルサイズに応じて0.1-1B、1-2B、2-3Bの3区間に分かれます。この区間内では、各モデルは類似したレイテンシーを示します。具体的には、モデルのアーキテクチャがレイテンシーに与える影響も大きいです。たとえば、Qwen2-0.5Bは同規模の他モデルより最初のトークン時間が1.46倍長く、Qwen1.5-0.5Bは逆に、より小さいモデルであるOpenELM-1.1Bと同様の性能を示します。

    • Prefill段階: 入力プロンプトが処理され、KVキャッシュが生成される段階で、複数トークンが並列に処理されます。
    • Decode段階: 生成された各トークンに基づいて次のトークンを予測する段階で、より多くのメモリ資源が必要です。
  • Memory Footprint(メモリ使用量): SLMのメモリ使用量は、モデルサイズとコンテキスト長(context length)によって変わります。特にBloom-560MやGemma-2Bのようなモデルは、非常に大きな語彙サイズ(256,000語)を持つため、より多くのメモリを使用します。一方、OpenELMシリーズはGQA(Group-Query Attention)を使用してKVキャッシュのサイズを削減することで、メモリ使用量を節約します。

> #### 主要なインサイト: SLMの実行コストについては、3つの主要な観察点があります。
> - モデルサイズに加えて、モデルアーキテクチャもレイテンシに影響します。たとえば、Qwen1.5-0.5BはQwen2-0.5Bよりパラメータ数が25.4%多いにもかかわらず、Jetson Orinでは31.9%高速に動作します。これは、SLMの開発時に配備先のハードウェアに合わせる必要があることを意味します。
> - モデルアーキテクチャが推論速度に与える影響は、デコード(Decode)段階よりもプリフィル(prefill)段階でより大きく現れます。これは、プリフィル段階のほうが演算密度が高く、デコード段階は主にメモリ依存(memory-bound)であるためです。モデルアーキテクチャの違いは、演算量が直接支配的な(compute-bound)シナリオにより影響しやすくなります。たとえば、より幅広く浅いモデルは、より高い演算並列性(computational parallelism)を持ちます。
> - 実行時のメモリ使用量は、一般にモデルサイズと線形相関(linearly correlated)があります。ただし、語彙サイズ(vocabulary size)がより大きい一部のモデルは、同程度のサイズの他モデルと比べてメモリ使用量が多くなります。たとえば、Bloomモデル群の語彙サイズは250,880で、ほとんどのモデルより5倍から8倍ほど大きくなっています。

量子化およびハードウェアの影響(Impact of Quantization and Hardware)

まず、5種類の量子化手法(Q8_0、Q6_K、Q5_K、Q4_K_M、Q3_K)と量子化前(FP16)のPhi-1.5モデルのレイテンシを測定し、量子化(Quantization)がSLMの実行コストに与える影響を調べました。

モバイルデバイスではint8演算のサポートが不十分な場合がありますが、それでもメモリアクセスのオーバーヘッドは効果的に削減できます。これは、低精度化によってデータ圧縮が起こり、その結果としてキャッシュ活用率が向上するためです。各手法はn-bitで量子化する方式で構成されており、Qn_K、Qn_K_Mはk-quant方式を用いて中程度のパラメータ数を持つモデルをnビットに量子化したもの、Qn_0は対称量子化を意味します。

Prefill段階における量子化の効果としては、プロンプト長が短い場合、量子化によってレイテンシが最低25%減少します。しかし、プロンプト長が長くなるにつれてこの効果は低下し、プロンプト長が50に近づくと、Q6_KとQ3_Kの量子化手法は、量子化されていないFP16モデルと同程度、あるいはそれ以上のレイテンシを示すこともあります。Q8_0、Q4_K_M、Q5_K方式は安定した性能向上を提供し、特にQ4_K_Mが最も良好な性能を示し、平均で50%のレイテンシ削減をもたらします。

Decode段階における量子化の効果は、より一貫した性能改善が見られ、レイテンシは最大75%低下し、最小でも17%の削減効果が現れます。また、Prefill段階と同様にQ4_K_M方式が最も効果的であり、Q6_Kが最も非効率的です。

> #### 主要なインサイト: SLMの量子化が実行コストに与える影響については、2つの主要な観察点があります。
> - 量子化の利点は、プリフィル(prefill)段階よりもデコード(decode)段階でより大きく現れます。モバイル機器における量子化は、主にメモリアクセスのオーバーヘッドを減らします。デコード段階はメモリ帯域幅の影響をより強く受けるため、演算の影響がより大きいプリフィル段階よりも、量子化による恩恵を受けやすくなります。
> - 量子化精度(Quantization Precision)が規則的(regular)であるほど性能が向上します。3-bit量子化は4-bit量子化より高い圧縮率を提供しますが、4-bit量子化のほうがPrefillおよびDecodeの両段階でより良い性能を示します。3-bit量子化の性能が低い理由は、不規則なビット幅(irregular bit-width)によってハードウェア最適化のサポートが不足し、データアラインメントおよびパディング(data alignment & padding)による追加オーバーヘッドが発生するためです。したがって、圧縮率は低くても4-bit量子化のほうが効率的であり、同様に5-bitおよび6-bit量子化も圧縮率は高いものの、8-bit量子化と同程度またはそれ以上の推論レイテンシを示します。

次に、Bloom-1B1モデルをJetson Orin NX 16GB(GPU使用)とMeizu 18 Pro(CPU使用)でテストし、ハードウェア(Hardware)がSLMの実行コストに与える影響を測定しました。

Prefill段階では、プロンプト長が短い場合、Jetson OrinはMeizu 18 Proより10倍から20倍高速な性能を示します。また、プロンプト長が長くなるほど、Jetsonの性能優位性はより明確になります。プロンプトが長くなるにつれて、どちらのデバイスでも最初のトークンを生成するまでの時間は線形的に増加しますが、Jetsonはより長いプロンプトでも安定した性能を維持します。

Decode段階では、生成トークン数の増加に伴ってMeizu 18 Proのトークンあたりレイテンシが急激に増加します。特に最初のトークンから10番目のトークンまでの間でレイテンシが急上昇し、その後はレイテンシが一定になります。このMeizu 18 Proにおける急激なレイテンシ上昇は温度上昇によるもので、DVFS(Dynamic Voltage and Frequency Scaling)またはサーマルスロットリング(Thermal Throttling)が電力消費と周波数を調整することで、計算効率が低下するためです。一方、Jetsonはより効率的な冷却システムのおかげで、30トークンが生成されるまではレイテンシの変動が小さく、その後になって初めてレイテンシの増加が観測されます。

> #### 主要なインサイト: ハードウェアがSLMの実行コストに与える影響については、2つの主要な観察点があります。
> - デコード(decode)段階では各トークンを逐次生成するのに対し、プリフィル(prefill)段階ではプロンプト内のトークンを並列処理できるため、GPU上でははるかに高速な性能を示します。
> - 長時間の推論処理では、Jetsonはスマートフォンと比べてより優れた性能安定性を示します。これは、Jetsonが比較的単純なハードウェア構造を持ち、放熱(heat dissipation)が容易であるためです。

レイテンシおよびメモリ分析(Latency and Memory Breakdown)

レイテンシをさらに細かく分類するため、Qwen1.5-0.5BとQwen2-0.5Bモデルについて、各層(layer)と演算(operation)が全体のレイテンシに占める割合を分析しました。

Qwen1.5-0.5BとQwen2-0.5Bモデルはサイズが近いものの、レイテンシに差があり、各モデルのレイテンシの詳細分析を通じて、各層(Embedding、Attention、FFN、LM_Head)が占める時間分布を測定しました。

プリフィル(Prefill)段階では、Qwen1.5モデルでAttention層がFFN層より大きな割合を占めています。これは、KVキャッシュのサイズ増加によりAttention層でより多くの演算が必要になるためです。一方、Qwen2モデルではFFN層がAttention層より大きな割合を占めています。これは、Qwen2モデルのFFN層の幅がより広いために起こる現象です。

デコード(Decode)段階では、Qwen1.5モデルのAttention演算の割合がさらに大きくなります。これは、生成されたトークンが以前に生成されたトークンと相互作用することで、より多くの演算が必要になるためであり、KVキャッシュのサイズが増加するほどこの傾向はさらに顕著になります。Qwen2モデルでは依然としてFFN層が最も多くの時間を占めていますが、これはFFNの演算幅が広がることで時間がより長くかかるためです。

演算子(operator)を分析すると、両モデルに共通して行列-ベクトル積演算(matrix-vector multiplication、mul_mat_vec_q)が全演算時間の80%以上を占めています。特にQwen2-0.5Bモデルでは、FFN層が広いため、mul_mat_vec_q演算の占める比率がさらに大きくなります。

また、メモリ(Memory)使用量を分析すると、次のようになります。

分析の結果、モデルサイズだけでなく、語彙サイズ(vocabulary size) もメモリ使用量に大きな影響を与えることが強調されています。モデルが使用する語彙サイズが大きいほど、出力層で使用される 演算バッファ(Compute Buffer) のサイズも大きくなります。たとえば、Bloom-560Mモデルの語彙サイズは250,880で、このため当該モデルの演算バッファサイズは492MBに達し、語彙サイズが32,000であるOpenELM-1.1Bと比べて3.5倍多くのメモリを使用します。

また、GQA(Group-Query Attention)を使用するモデルは、MHA(Multi-Head Attention)を使用するモデルよりも KV Cache が小さくなります。たとえば、OpenELM-3BモデルのKVキャッシュサイズは164MBで、これはStableLM-zephyr-3Bモデルより約3.9倍小さい値です。

コンテキスト長(context length) が長くなると、演算バッファ(Compute Buffer) および KV Cache がモデルのメモリ使用量を決定する主要因になります。Qwen2モデルシリーズでは、コンテキスト長が131,072に達すると、Compute BufferとKV Cacheが総メモリ使用量の83%から87%を占めます。これに対し、Qwen1.5モデルでは最大コンテキスト長32,768において、両要素が総メモリの85%から90%を占めます。

このような分析から、語彙サイズ(Vocabulary Size)とコンテキスト長(Context Length)がSLMのメモリ使用に与える影響を明確に把握でき、語彙サイズが大きくコンテキスト長が長いほど、メモリ使用量は急激に増加することが分かります。

結論と今後の研究の方向性

ここまで、100Mから5Bまでのサイズを持つ小規模言語モデル(SLM)について包括的な研究と性能測定を行い、モデルの性能や実行コストなどを評価してきました。これを通じてSLMの現在の成果と限界を分析し、今後研究が必要なさまざまな研究テーマを提示します。

  • SLMアーキテクチャとプロセッサの協調設計および最適化(Co-design and co-optimizations of SLM architecture and device processors.): SLMの性能は、与えられたモデルサイズ内であっても、アーキテクチャ構成によって大きく異なる可能性があります。たとえば、Transformerの深さと幅の比率、アテンションの種類、活性化関数などが実行速度に与える影響は非常に大きいです。特に、NPU(Neural Processing Unit)のような整数演算最適化プロセッサ上で効率的に実行できるよう、SLMを量子化する方法が重要です。最適な精度と速度のトレードオフを達成するためには、特定のハードウェアに合わせたアーキテクチャ設計と最適化が不可欠であり、事前学習前に速度最適化されたアーキテクチャを見つけることが一つの方向性になり得ます。

  • 高品質な合成データセットの構築(Constructing high-quality synthetic dataset): 最近公開されたDCLMやFineWeb-Eduのような事前学習データセットは、SLMの性能を大きく向上させました。これらのデータセットにおける中核的な革新は、大規模コーパスから高品質データをフィルタリングするために事前学習済みモデルを使用する点にあります。合成データに関する研究はまだ初期段階にあり、多くの可能性を秘めています。重複除去、フィルタリング、混合、評価といった標準化された合成データ管理プロセスの構築が急務です。

  • デバイス環境を考慮したChinchilla則の拡張(A deployment-aware Chinchilla law for model scaling): Chinchilla則によれば、モデル性能を最適化するには、モデルサイズと学習データの規模(トークン数)のバランス(約1:20)が必要ですが、SLMは限られたデバイスメモリと演算能力に合わせる必要があるため、学習データ量をはるかに多く用いる傾向があります。このアプローチはある程度までは有効ですが、学習データ量を無限に拡張できるわけではないため、最適なデータスケーリング手法を見つけることは依然として未解決の課題です。また、データ規模、学習および推論コストだけでなく、SLMのライフサイクルや経済的利益も考慮する必要があり、MoE(Mixture-of-Experts、専門家混合モデル)のようなスパース性(sparsity)を適用すると、この問題はさらに複雑になります。

  • パーソナライズのための継続的なオンデバイス学習(Continual on-device learning for personalization): SLMがデバイスに配備されると、デバイス内データ(On-Device Data)を活用して、データ漏えいを心配することなく、より高い性能やパーソナライズを実現できます。そのための第一のアプローチは、RAG(Retrieval-Augmented Generation)技法を用いてプロンプトに個人データを注入する方法です。この方法では、テキスト埋め込みの生成とプロンプト処理時間が増加し、パーソナライズ用データをデバイス上に長期間保存しなければならないという問題が生じます。第二のアプローチは、SLMをファインチューニングする方式で、パーソナライズに必要な知識をモデル重みに埋め込み、データをファインチューニング後に削除できます。しかし、オンデバイスでのファインチューニングはメモリおよびエネルギー消費が大きいため、深刻なリソース問題を引き起こす可能性があります。ゼロ次最適化(zeroth-order optimization)を適用してメモリ内に活性値を保存せず、推論段階でハードウェアアクセラレータを活用できる方法に関する研究などが考えられます。

  • デバイスとクラウドにおけるSLMとLLMの協調(Device-cloud SLM-LLM collaboration): SLMの能力は急速に発展していますが、クラウドで動作する大規模言語モデル(LLM)とのギャップは依然として存在します。これを解決するために、デバイスとクラウドの協調が重要な研究テーマとなるでしょう。直感的には、SLMはデバイス上で容易に解決できるタスクを処理し、クラウドLLMは複雑なタスクを処理するフィルタの役割を果たせます。しかし、SLMが処理できるタスクとそうでないタスクをどのように区別するかという意思決定モジュールが必要であり、デバイスとクラウドの適切な協調方式を見つけることについては、さらなる研究が必要です。

  • SLM性能評価の公平性の問題(Benchmarking SLMs fairly): SLMは、特にGSM8kのような広く使われているベンチマークで過学習の問題を抱えています。また、多くのSLMは非公開データセットを用いて学習しているため、その性能を公平に比較することが困難です。SLMは主にオンデバイス(On-Device)で実行されるため、クラウド環境とは異なるタスクを実行することになります。スマートフォンに配備されたSLMは、ユーザーデータに敏感なタスクを処理する傾向があり、このような特化タスク(ad-hoc task)は既存のベンチマークに含まれていないため、重要な評価項目から漏れてしまう問題があり得ます。

  • スパース性(Sparsity)を適用したSLM(Sparse SLMs): 現在、SLMにスパース性を適用した研究はほとんどありません。これは、LLMと比べてSLMは相対的に低いスパース性レベルになると予想され、スパース性を活用した高速化やメモリ節約の利点が限定的である可能性があるためです。また、MoE(Mixture-of-Experts、専門家混合モデル)のようなスパース性ベースのアーキテクチャは、メモリ使用量を減らす代わりに演算複雑性が増加する可能性があるため、メモリ制約のあるデバイスには適していないかもしれません。スマートフォンの外部ストレージ(例: フラッシュメモリ)を活用して固定重み(Cold Weights)を保存し、必要なときに読み込む方式でSLMをさらに拡張できますが、このような方法については、I/Oレイテンシの問題をはじめ、異種(heterogeneous)ハードウェアアクセラレータとの互換性を維持することなど、さらなる研究が必要です。

小規模言語モデルに関する包括的研究論文: Small Language Models: Survey, Measurements, and Insights

https://arxiv.org/abs/2409.15790

プロジェクトホームページ

https://ubiquitouslearning.github.io/TinyLLMLeaderBoard/#/slm

GitHubリポジトリ

https://github.com/UbiquitousLearning/SLM_Survey


この記事は GPT モデルで要約した内容に基づいており、原文の内容や意図と異なる形で整理されている可能性があります。ご関心のある内容であれば、原文もあわせてご参照ください。お読みいただく中で不自然な点や誤りを見つけられた場合は、コメントでお知らせいただけますと幸いです。 🤗

⚠️広告⚠️: 🔥PyTorch 韓国ユーザーコミュニティ🇰🇷 がまとめたこの記事は役に立ちましたか? 会員登録 すると、主要な記事をメール💌でお届けします! (基本は Weekly ですが、Daily に変更することも可能です。)

まだコメントはありません。

まだコメントはありません。