Byte Latent Transformer: Patches Scale Better Than Tokens
Abstract
我々は、Byte Latent Transformer(BLT)を紹介する。これは新しいバイトレベルのLLMアーキテクチャであり、初めてトークン化ベースのLLMのパフォーマンスを大規模に匹敵させ、推論効率と堅牢性を大幅に向上させたものである。 BLTはバイトを動的サイズのパッチにエンコードし、これらを主要な計算単位として使用する。 パッチは次のバイトのエントロピーに基づいてセグメント化され、データの複雑性が増す箇所により多くの計算とモデル容量を割り当てる。 我々は、8Bパラメータと4Tトレーニングバイトまでのバイトレベルモデルの初のflop制御されたスケーリング研究を提示する。我々の結果は、固定語彙なしで生のバイトでトレーニングされたモデルのスケーリングの実現可能性を示している。 データが予測可能な場合に動的に長いパッチを選択することで、トレーニングと推論の効率が向上し、推論と長尾の一般化に質的な改善が見られる。全体として、固定された推論コストに対して、BLTはパッチサイズとモデルサイズの両方を同時に拡大することで、トークン化ベースのモデルよりも大幅に優れたスケーリングを示している。
1 Introduction
我々は、バイトレイテント変換器(BLT)を紹介する。これは、生のバイトデータから学習するトークナイザーフリーのアーキテクチャであり、初めて大規模なトークン化ベースのモデルと同等の性能を達成し、効率性と堅牢性において大幅な改善を実現している(§6)。 既存の大規模言語モデル(llm)は、トークン化を除いてほぼ完全にエンドツーエンドで訓練されている。トークン化は、バイトを静的なトークンセットにグループ化するヒューリスティックな前処理ステップである。 このようなトークンは文字列の圧縮方法にバイアスをかけ、ドメイン/モダリティの感度(Dagan et al., 2024)、入力ノイズへの感度(§6)、正書法的知識の欠如(Edman et al., 2024)、多言語の不平等(Liang et al., 2023; Petrov et al., 2024; Limisiewicz et al., 2024)などの欠点につながる。
トークン化は、これまで不可欠であった。なぜなら、長いシーケンス長のために、バイトで直接llmを訓練することは大規模では禁止的にコストがかかるためである(Xue et al., 2022)。 先行研究では、より効率的な自己注意機構(El Boukkouri et al., 2020; Clark et al., 2022)や注意機構を用いないアーキテクチャ(Wang et al., 2024)(§8)を採用することでこれを緩和している。しかし、これは主に小規模モデルの訓練に役立つ。 大規模では、Transformerの計算コストは、注意機構のコストではなく、各バイトで実行される大規模なフィードフォワードネットワーク層によって支配される。
計算資源を効率的に配分するために、我々はバイトをパッチにグループ化する動的で学習可能な方法(§2)と、バイト情報とパッチ情報を混合する新しいモデルアーキテクチャを提案する。 トークン化とは異なり、BLTにはパッチのための固定語彙がない。 任意のバイトグループが、軽量な学習済みエンコーダーおよびデコーダーモジュールを介して潜在パッチ表現にマッピングされる。 我々は、これがトークン化ベースのモデルよりもより効率的な計算資源の配分をもたらすことを示す。
トークン化ベースのLLMは、すべてのトークンに同量の計算リソースを割り当てる。これは、効率性を犠牲にして性能を優先する方法である。なぜなら、トークンは必ずしも予測の複雑さと相関しない圧縮ヒューリスティクスによって生成されるからである。我々のアーキテクチャの中心にあるのは、モデルが必要な箇所に動的に計算リソースを割り当てるべきだという考えである。例えば、ほとんどの単語の語尾を予測するのに大規模なトランスフォーマーは必要ない。これらは、新しい文の最初の単語を選択する場合と比べて、比較的容易で低エントロピーな決定だからである。 この考えはBLTのアーキテクチャ(§3)に反映されており、3つのトランスフォーマーブロックがある:2つの小規模なバイトレベルのローカルモデルと1つの大規模な潜在トランスフォーマー(図2)である。 バイトをパッチにグループ化し、それによって計算リソースを動的に割り当てる方法を決定するために、BLTは次のバイト予測のエントロピーに基づいてデータをセグメント化し、比較的均一な情報密度を持つバイトの文脈化されたグループを作成する。
我々は、8Bパラメータと4Tトレーニングバイトまでのバイトレベルモデルの初めてのflop制御スケーリング研究を提示し、固定語彙トークン化なしでバイトからスケールでモデルをエンドツーエンドでトレーニングできることを示す。 全体として、BLTはLlama 3のトレーニングflop制御パフォーマンス111モデルの計算コストは、必要な浮動小数点演算(flops)の数を数えることで計算する。に匹敵し、推論時に最大50%少ないflopを使用する(§5)。 また、生のバイトを直接扱うことで、データの長いテールのモデリングに大きな改善をもたらすことを示す。BLTモデルは、トークナイザーベースのモデルよりもノイズの多い入力に対してより堅牢であり、正書法の知識、音韻論、低リソース機械翻訳タスクで実証されるように、文字レベルの理解能力が向上している(§6)。 最後に、BLTモデルでは、同じ推論flop予算を維持しながら、モデルサイズとパッチサイズを同時に増加させることができる。パッチサイズが長くなると、平均的に計算を節約でき、それをグローバルな潜在トランスフォーマーのサイズを大きくするために再配分できる。なぜなら、それはより少ない頻度で実行されるからである。我々は推論flop制御スケーリング実験を行い(図1)、トークン化ベースのアーキテクチャよりも著しく優れたスケーリング傾向を観察した。
要約すると、本稿は以下の貢献をする: 1) 我々は、計算を動的に割り当ててflop効率を改善するバイト潜在llmアーキテクチャであるBLTを導入する、 2) 8Bスケールまでのトレーニングflop制御パリティをLlama 3と達成しつつ、評価指標のわずかな損失と引き換えに最大50%のflop効率の向上を選択できることを示す、3) BLTモデルはllmのスケーリングの新次元を開き、固定推論予算を維持しながらモデルサイズをスケーリングできるようになる、4) BLTモデルの入力ノイズに対する改善された堅牢性と、トークンベースのllmが見逃す入力データのサブワード側面への認識を実証する。 我々はBLTのトレーニングおよび推論コードをhttps://github.com/facebookresearch/bltで公開する。
2 Patching: From Individual Bytes to Groups of Bytes
バイトをパッチに分割することで、BLTはコンテキストに基づいて動的に計算を割り当てることができる。 図3は、バイトをパッチに分割するいくつかの異なる方法を示している。 形式的には、パッチング関数は長さのバイト列を個のパッチの列に分割し、各を集合{0,1}にマッピングする。ここで1は新しいパッチの開始を示す。 トークンベースモデルとパッチベースモデルの両方において、データ処理の計算コストは主に主要なトランスフォーマーによって実行されるステップ数によって決定される。BLTでは、これは与えられたパッチング関数でデータをエンコードするのに必要なパッチの数である。 したがって、パッチの平均サイズ、つまり単にパッチサイズが、与えられたパッチング関数での訓練と推論の両方におけるデータ処理コストを決定する主な要因となる (§4.5)。 次に、我々は3つのパッチング関数を紹介する: パッチごとに固定数のバイトを使用するパッチング (§2.1)、空白パッチング (§2.2)、そして小規模なバイトlmからのエントロピーを用いた動的パッチング (§2.3)。最後に、インクリメンタルパッチングとトークン化がパッチングとどのように異なるかについて議論する (§2.4)。
2.1 Strided Patching Every K Bytes
おそらく、バイトをグループ化する最も直接的な方法は、MegaByte (Yu et al., 2023) で行われているように、固定サイズ のパッチにすることである。 固定ストライドは、トレーニングと推論の実装が容易であり、平均パッチサイズを変更するための簡単なメカニズムを提供し、したがって flop コストを制御しやすくする。 しかし、このパッチング関数には重大な欠点がある。 第一に、計算が最も必要な場所に動的に割り当てられない:コード内の空白のみを予測する場合にトランスフォーマーのステップ を無駄にしたり、数式のような情報密度の高いバイトに十分な計算を割り当てていない可能性がある。 第二に、これは同様のバイト列の一貫性のない、文脈に依存しないパッチングにつながり、例えば同じ単語が異なる方法で分割されることになる。
2.2 Space Patching
Slagle (2024) は、ストライド化パッチングに対する単純かつ効果的な 改善を提案している。これは、多くの言語で言語単位の自然な境界となる空白のようなバイト222 空白のようなバイトは、ラテン文字、数字、または utf-8 継続バイトではないバイトとして定義される。 さらに、各パッチには少なくとも1つの非空白のようなバイトが含まれていなければならない。 の後に新しいパッチを作成する。 スペースパッチングでは、潜在的なトランスフォーマーのステップ(つまり、より多くの flop)が各単語をモデル化するために割り当てられる。 これにより、単語が異なるシーケンス間で同じ方法でパッチ化され、空白の後に続く難しい予測に flop が割り当てられることが保証される。例えば、「魔笛を作曲したのは誰ですか? 」という質問の答えの最初のバイトを予測することは、「M」の後の残りのバイトを予測するよりもはるかに難しい。なぜなら、最初の文字が可能性の高い選択肢の数を大幅に減らし、「Mozart」という補完を比較的容易に予測できるようにするからである。 しかし、スペースパッチングはすべての言語やドメインを適切に処理することができず、最も重要なことに、パッチサイズを変更することができない。 次に、我々は単語の最初のバイトが通常最も予測が難しいという洞察を利用しつつ、パッチサイズを制御するための自然なメカニズムを提供する新しいパッチング方法を紹介する。
2.3 Entropy Patching: Using Next-Byte Entropies from a Small Byte LM
空白のような規則ベースのヒューリスティックに依存するのではなく、我々はデータ駆動型のアプローチを採用して、不確実性の高い次バイト予測を識別する。 我々はエントロピーパッチングを導入する。これはエントロピー推定値を使用してパッチ境界を導出する手法である。
BLTの訓練データで小規模なバイトレベルの自己回帰言語モデルを訓練し、バイト語彙に対するLM分布の下で次バイトのエントロピーを計算する:
(1) |
我々は、エントロピーが与えられた場合にパッチ境界を識別する2つの方法を実験した。1つ目は、図4に示されているように、全体的なエントロピー閾値を超える点を見つける方法である。2つ目は、前のエントロピーと比較して相対的に高い点を識別する方法である。2つ目のアプローチは、パッチ内でおおよそ単調減少するエントロピーを破る点を識別するとも解釈できる。
パッチ境界は、データ読み込み中に実行される軽量な前処理ステップで識別される。これは、エントロピーベースのパッチ境界を予測するために分類器が訓練されるNawrot et al. (2023)とは異なる。 我々の実験(§4)では、低エントロピーバイトと高エントロピーバイトを区別するためのこれら2つの方法を比較する。
2.4 The Byte-Pair Encoding (BPE) Tokenizer and Incremental Patching
我々のベースラインであるLlama 3を含む多くの現代のllmは、bpeのようなサブワードトークナイザーを使用している(Gage, 1994; Sennrich et al., 2016)。 我々は、トレーニング前に決定された有限の語彙から抽出されたバイトグループを指す「トークン」と、固定された語彙を持たない動的にグループ化されたシーケンスを指す「パッチ」を区別して使用する。 パッチとトークンの重要な違いは、トークンでは、モデルが基礎となるバイト特徴に直接アクセスできないことである。
トークン化ベースのモデルに対するBLTの重要な改善点は、語彙サイズと計算量のトレードオフを再定義することである。標準的なllmでは、語彙サイズを増やすことは、平均的により大きなトークンを意味し、したがってモデルのステップ数は少なくなるが、モデルの最終投影層の出力次元も大きくなる。このトレードオフにより、トークン化ベースのアプローチがトークンサイズと推論コストに大きな変化をもたらす余地はほとんどない。例えば、Llama 3は平均トークンサイズを3.7バイトから4.4バイトに増やしているが、これはLlama 2と比較して埋め込みテーブルのサイズを4倍に増やすコストがかかっている。
生成時、BLTは、バイトシーケンスの現在のステップがパッチ境界にあるかどうかを決定する必要がある。これは、潜在変換器を通じてより多くの計算が呼び出されるかどうかを決定するためである。この決定は、まだ生成されていないシーケンスの残りの部分とは独立して行われる必要がある。したがって、パッチングはバイトシーケンスをどのようにセグメント化するかを選択するために、将来のバイトへのアクセスを前提とすることはできない。形式的には、パッチングスキームが増分的パッチングの性質を満たすのは、以下を満たす場合である:
bpeは増分的パッチングスキームではない。同じプレフィックスが継続シーケンスに応じて異なるトークン化をされる可能性があるため、上記の性質を満たさない333特別な区切りトークンを使用してパッチ境界を示すことで、bpeを増分的パッチングスキームに変換できるが、バイトシーケンスの長さが増加する。。
3 BLT Architecture
BLTは、パッチ表現上で動作する大規模なグローバル自己回帰言語モデルと、バイト列をパッチにエンコードし、パッチ表現をバイトにデコードする2つの小規模なローカルモデルで構成されている(図2)。
3.1 Latent Global Transformer Model
潜在グローバルトランスフォーマーは、層を持つ自己回帰トランスフォーマーモデルであり、潜在入力パッチ表現の列を出力パッチ表現の列にマッピングする。本稿を通じて、我々は添字をパッチを表すために、をバイトを表すために使用する。グローバルモデルは、ブロック因果的注意マスク(Dubey et al., 2024)を使用し、これは現在の文書内の現在のパッチまでを含む範囲に注意を制限する。このモデルは事前学習および推論時に大部分のflopを消費するため、このモデルを呼び出すタイミングを選択することで、入力/出力の複雑さに応じて入力および出力の異なる部分に費やされる計算量を制御および変更することができる。
3.2 Local Encoder
ローカルエンコーダモデル(で表される)は、層を持つ軽量なトランスフォーマーベースのモデルであり、その主な役割は入力バイト列を効率的に表現力豊かなパッチ表現にマッピングすることである。 トランスフォーマーアーキテクチャからの主な変更点は、各トランスフォーマー層の後にクロスアテンション層を追加したことであり、その機能はバイト表現をパッチ表現にプールすることである(図5)。 まず、入力バイト列は行列を用いて埋め込まれ、と表される。 これらの埋め込みは、ハッシュ埋め込み(§3.2.1)の形で追加情報によって任意に拡張される。 一連の交互に配置されたトランスフォーマー層とクロスアテンション層(§3.2.2)が、これらの表現をグローバルトランスフォーマーによって処理されるパッチ表現に変換する。 トランスフォーマー層はローカルブロック因果アテンションマスクを使用する。各バイトは、一般的に動的パッチ境界を越えることはできるが文書境界を越えることはできない、固定ウィンドウの先行バイトに注目する。 以下のサブセクションでは、埋め込みとクロスアテンションブロックの詳細について説明する。
3.2.1 Encoder Hash n-gram Embeddings
各ステップで堅牢で表現力豊かな表現を作成する上で重要な要素は、先行バイトに関する情報を組み込むことである。 BLTでは、バイトを個別におよびバイトn-gramの一部として両方モデル化することでこれを実現している。 各ステップについて、我々はまずバイトグラムを構築する
(2) |
ここで、各バイト位置については3から8までである。444 以上のサイズのバイトグラムは、の場合は省略する。
次に、我々はハッシュ-gram埋め込みを導入する。これは、各サイズについて、すべてのバイト-gramをハッシュ関数を介して固定サイズの埋め込みテーブルのインデックスにマッピングする(Bai et al., 2010)。 得られた埋め込みは、バイトの埋め込みに加算され、正規化された後、ローカルエンコーダモデルへの入力として渡される。 我々は拡張された埋め込みを以下のように計算する
(3) | ||||
(4) |
我々はを-gramサイズの数に1を加えたもので正規化し、付録13で定義されているRollPolyHashを使用する。 セクション7では、異なるの値と埋め込みテーブルサイズについて、-gramハッシュ埋め込みの効果をflop制御されたスケーリング法則の傾向に対してアブレーション実験を行う。 ハッシュ-gram埋め込みに加えて、我々は頻度ベースの-gram埋め込みも実験し、この探索の詳細を付録14で提供する。
3.2.2 Encoder Multi-Headed Cross-Attention
我々はPerceiverアーキテクチャの入力クロスアテンションモジュール(Jaegle et al., 2021)に密接に従っているが、主な違いは、潜在表現が固定された潜在表現セットではなく、可変のパッチ表現に対応していること(図5)、および各パッチを構成するバイトにのみ注目することである。 このモジュールは、各パッチに対応するクエリベクトルで構成されており、これはパッチに対応するバイト表現をプールし、線形射影を行うことで初期化される。ここで、はエンコーダクロスアテンションヘッドの数である。 形式的には、パッチに対応するバイト列をとすると、我々は以下のように計算する
(5) | ||||
(6) | ||||
(7) | ||||
(8) |
ここで、はグローバルモデルによって処理されるパッチ表現を表し、各パッチに対応するバイト埋め込みをプールすることで初期化される。 、、、は、クエリ、キー、バリュー、出力に対応する射影であり、キーとバリューは前の層(最初の層の場合は)からのバイト表現の射影である。 我々は、各クエリがパッチ内のバイトに対応するキーとバリューにのみ注目するパッチング特有のマスキング戦略を使用する。とに対してマルチヘッドアテンションを使用し、パッチ表現は通常より大きな次元()を持つため、クロスアテンション時にを次元の複数のヘッドとして維持し、後でこれらの表現を次元に連結する。 さらに、クエリ、キー、バリューにはpre-LayerNormを使用し、このクロスアテンションモジュールでは位置埋め込みは使用しない。 最後に、クロスアテンションブロックの周りに残差接続を使用する。
3.3 Local Decoder
ローカルエンコーダーと同様に、ローカルデコーダー は 層を持つ軽量なトランスフォーマーベースのモデルであり、グローバルパッチ表現のシーケンス を生のバイト にデコードする。ローカルデコーダーは、以前にデコードされたバイトの関数として生のバイトのシーケンスを予測するため、バイトシーケンスに対してローカルエンコーダーが生成した隠れ表現を入力として受け取る。 これは、クロスアテンションとトランスフォーマー層の 個の交互の層を適用する。デコーダーのクロスアテンション層は、トランスフォーマー層の前に適用され、まずパッチ表現からバイト表現を作成し、ローカルデコーダーのトランスフォーマー層は結果として得られるバイトシーケンスに対して動作する。
3.3.1 Decoder Multi-headed Cross-Attention
デコーダーのクロスアテンションでは、クエリとキー/バリューの役割が入れ替わる。つまり、バイト表現がクエリとなり、パッチ表現がキー/バリューとなる。クロスアテンションの初期バイト表現は、最後のエンコーダー層のバイト埋め込み、すなわち として初期化される。層 の後続のバイト表現 は以下のように計算される:
(9) | ||||
(10) | ||||
(11) | ||||
(12) |
ここでも、 はグローバルモデルからの最終パッチ表現 に適用される線形変換と分割操作 に対して動作するキー/バリュー射影行列であり、 は前のデコーダートランスフォーマー層(または最初の層の場合は )からのバイト表現 に対して動作するクエリ射影行列であり、 は出力射影行列である。したがって、 となり、ここで は出力バイト数である。次のデコーダー表現 は、クロスアテンションブロックの出力 に対してデコーダートランスフォーマー層を使用して計算される。ローカルエンコーダーのクロスアテンションと同様に、我々はアテンションで複数のヘッドを使用し、事前のLayerNormを使用し、位置埋め込みは使用せず、クロスアテンションモジュールの周りに残差接続を使用する。
4 Experimental Setup
我々は、BLTとトークン化ベースのモデルを比較するために、慎重に制御された実験を設計した。特に、BLTがより長いシーケンスコンテキストを使用する可能性からの利点を得ないように注意を払った。
4.1 Pre-training Datasets
本稿で実験するすべてのモデルスケールは、2つのデータセットで事前学習されている:1) Llama 2データセット(Touvron et al., 2023)。これは、様々な公開ソースから収集された2兆トークンで構成され、品質向上のためにクリーニングとフィルタリングが行われている。2) BLT-1T:様々な公開ソースから収集された1兆トークンの新しいデータセットで、Datacomp-LM(Li et al., 2024)によってリリースされた事前学習データの一部も含まれている。前者は、Dubey et al. (2024)によって決定されたトークンの最適数に関するスケーリング法実験に使用され、BLTの最適なアーキテクチャ選択を決定するために用いられる。後者は、ダウンストリームタスクでLlama 3と比較するための完全な事前学習実行に使用される。これらのデータセットには、Metaの製品やサービスから収集されたデータは含まれていない。 さらに、トークナイザーベースのモデルのベースライン実験では、128Kトークンの語彙サイズを持つLlama 3トークナイザーを使用した。これは我々の実験において、Llama 2トークナイザーよりも強力なベースラインパフォーマンスを生成した。
4.2 Entropy Model
我々の実験におけるエントロピーモデルは、完全なBLTモデルと同じ訓練分布で訓練されたバイトレベルの言語モデルである。特に言及がない限り、我々は1億パラメータ、14層、隠れ次元512、512バイトのスライディングウィンドウ注意を持つトランスフォーマーを使用する。残りのハイパーパラメータは、我々のローカルおよびグローバルトランスフォーマーと同じである。我々は、セクション7で議論されているように、異なるモデルサイズ、受容野、およびアーキテクチャを実験した。特に、モデルの受容野が十分に小さい場合、訓練されたエントロピーモデルは効率的なルックアップテーブルにエンコードできる。
4.3 Entropy Threshold and Equalizing Context Length
エントロピーベースのパッチングを使用するモデルでは、事前学習データミックスにおいて所望の平均パッチサイズを達成するパッチング閾値を推定する。BLTでは、トークン化とは異なり、パッチサイズを任意に選択できるため、モデルが使用する文脈サイズに大きな影響を与える。 同じ平均文脈長を維持し、より大きなパッチサイズに不当な優位性を与えないようにするため、我々は各バッチのバイト数が期待値において一定になるようにしている。これは、より大きなパッチサイズを持つモデルのシーケンス長を短縮することを意味する。Llama 2データでは8kバイトの文脈を使用し、BLT-1Tデータセットでは、平均16Mバイトの同じバッチサイズを維持しながら、平均で文脈を16kバイトに増加させる。
平均バッチサイズは一定であるが、データのバッチをロードする際、動的パッチング手法はバイトとパッチの異なる比率を生み出す。 効率性の理由から、BLT学習の我々の実装では、より計算コストの高い潜在変換器におけるパディングステップを避けるため、パッチのバッチをパックしている。これにより、すべてのバッチが同じ数のパッチを持つことが保証される。学習中、我々は異常に大きなパッチを持つシーケンスによるメモリスパイクを避けるため、Llama 2およびBLT-1Tデータセットに対してそれぞれ12kおよび24kバイトにバイトシーケンスをパディングし、場合によっては切り捨てる。
4.4 Entropy Model Context
経験的に、我々はエントロピーパッチングを使用すると、多肢選択タスクのような構造化されたコンテンツにおいて徐々に大きなパッチが生成されることを発見した(図9のMMULUの例におけるパッチングを参照)。これらの変動は、エントロピーモデルの文脈に見られる繰り返しコンテンツによる低いエントロピーに起因する。そのため、パッチサイズ4.5のBLT-Entropyの大規模実行では、改行でエントロピー文脈をリセットし、文脈長の変化による「エントロピードリフト」の影響が少ない近似的単調性制約を使用する。この変更はエントロピーの計算方法にのみ影響を与えるが、エントロピー閾値の値を特定する手順は同じままである。
4.5 FLOPs Estimation
我々は、主にChinchilla (Hoffmann et al., 2022)からのトランスフォーマーのFLOP計算式に従っており、これにはフィードフォワード層、自己注意層のqkvo投影、注意の計算と出力投影のFLOPが含まれる。 注目すべき違いは、入力埋め込み層が密行列乗算ではなく効率的な検索として実装されていると仮定しているため、0-FLOP操作となることである。 先行研究に倣い、逆伝播のFLOP数は順伝播の2倍と推定している。
BLTモデルのバイトあたりのFLOPを計算するために、我々はローカルエンコーダートランスフォーマー、グローバル潜在トランスフォーマー、ローカルデコーダートランスフォーマーのFLOPを合計し、さらにエンコーダーとデコーダーのクロスアテンションブロックを加算する:
(13) | ||||
(14) | ||||
(15) | ||||
(16) | ||||
(17) |
ここで、はバイト単位のシーケンス長、はパッチサイズ、はキー/バリューに対するクエリの比率、はバイト次元に対するパッチ次元の比率、つまりグローバルモデル表現を形成するために連結されるローカルモデル分割の数(図5の)である。は出力投影の語彙サイズに対応し、これはローカルデコーダーでのみ使用される。 モジュールがバイトシーケンスまたはパッチシーケンスのどちらに適用されるかに応じて、注意は異なる文脈長を使用する。我々は各コンポーネントの注意のFLOPを適切に修正している。 トランスフォーマーFLOPとクロスアテンションFLOPの正確な計算式は付録12に記載されている。
4.6 Bits-Per-Byte Estimation
4.7 Transformer Architecture Hyperparameters
BLTのすべてのTransformerブロック、つまりローカルモデルとグローバルモデルの両方において、我々は主にLlama 3 (Dubey et al., 2024)のアーキテクチャに従っている。フィードフォワード層ではSwiGLU活性化関数(Shazeer, 2020)を使用し、自己注意層では回転位置埋め込み(RoPE)(Su et al., 2021)を (Xiong et al., 2024)とともに使用し、層正規化にはRMSNorm (Zhang and Sennrich, 2019)を使用している。ブロック因果や固定幅ブロック因果などの固定標準注意マスクを使用するすべての自己注意層にはFlash attention (Dao et al., 2022)を使用し、固定幅注意マスクのウィンドウサイズは512としている。我々のクロス注意層は動的なパッチ依存マスクを含むため、融合実装を生成し、トレーニングを大幅に高速化するためにFlex Attention555https://pytorch.org/blog/flexattentionを使用している。
4.8 BLT-Specific Hyperparameters
BLTモデルの有効性を研究するために、我々はスケーリングの傾向とダウンストリームタスクの評価という2つの方向で実験を行い、これらの実験のために400M、1B、2B、4B、8Bの異なるスケールのモデルを考慮する。これらのモデルのアーキテクチャハイパーパラメータは付録の表10に示されている。 我々はローカルエンコーダーの最初のクロスアテンション層のクエリを初期化するためにmax-poolingを使用する。すべてのBLTモデルに対して、ハッシュを単一のハッシュ関数で使用し、n-gramサイズは3から8の範囲である。我々はすべてのモデルに対して学習率を使用する。トークンモデルとBLTモデル間で同じ学習率を選択したのは、400Mと1Bのモデルスケールでからの間でハイパーパラメータ探索を行った結果、同じ学習率が最適であることが示されたためである。 Llama-2データのスケーリング傾向については、Dubey et al. (2024)が推奨するトレーニングバッチサイズまたはそれに相当するバイト数を使用する。最適化には、AdamW最適化器(Loshchilov and Hutter, 2017)を使用し、を0.9、を0.95に設定し、を使用する。我々は2000ステップの線形ウォームアップと学習率を0まで減衰させるコサインスケジュールを使用し、0.1の重み減衰を適用し、グローバル勾配クリッピングを閾値1.0で行う。
5 Scaling Trends
我々は、BLTモデルのさらなるスケーリングに情報を提供できるバイトレベルモデルのスケーリング傾向の全体像を提示する。 我々のスケーリング研究は、以下の方法でバイトレベルモデルに関する従来の研究の限界に対処することを目的としている:(a) 計算最適な訓練レジームの傾向を比較する、(b) 無視できない量の訓練データ(最大1Tトークン/4Tバイト)で一致する8Bモデルを訓練し、下流タスクで評価する、(c) 推論コスト制御設定でスケーリング傾向を測定する。 後のセクションでは、バイト列のモデリングによる具体的な利点を調査する。
5.1 Parameter Matched Compute Optimal Scaling Trends
Llama 2データセットを使用して、我々は1Bから8Bパラメータの範囲で4つの異なるサイズの様々な計算最適bpeおよびBLTモデルを訓練した。その後、訓練データ混合の代表的なサブセットに対する言語モデリング性能に対して訓練flopをプロットした。 bpeモデルは、Llama 3 (Dubey et al., 2024)によって決定されたモデルパラメータと訓練データの最適な比率を使用して訓練された。この計算最適セットアップは、理論的に与えられた訓練予算内で訓練データセットに対して最高の性能を達成するように設計されており(Hoffmann et al., 2022)、我々のモデルの堅牢なベースラインを提供する。 各bpeモデルに対して、我々は同じデータで対応するBLTモデルも訓練し、対応するbpeTransformerのサイズとアーキテクチャに一致するLatent Transformerを使用した。
図6(右)に示されているように、BLTモデルはそれらのbpeカウンターパートと同等かそれ以上の性能を示し、この傾向はモデルサイズとflopをスケールアップしても維持される。我々の知る限り、BLTは計算最適レジームでBPEベースのモデルと一致するスケーリング傾向を達成した最初のバイトレベルTransformerアーキテクチャである。したがって、これはbpeのパラメータと訓練計算の最適比率がBLTにも適用されるという我々の仮定を検証するものである、あるいは少なくともそれほど大きく外れていないことを示している。
アーキテクチャの改善と動的パッチングの両方がbpeのスケーリング傾向に一致するために重要である。図6(左)では、我々はスペースパッチングベースのモデルをLlama 3と比較している。我々はSpaceByte (Slagle, 2024)を、n-gram埋め込みとクロスアテンションを使用しないBLTスペースパッチングを用いて近似した。 SpaceByteはMegabyteを改善しているが、依然としてLlama 3には遠く及ばない。図6(右)では、アーキテクチャの変更と動的パッチングの両方からの改善を示している。BLTモデルは、スケールにおいてLlama 3のような最先端のトークナイザーベースのモデルと同等の性能を示している。
我々はまた、トークナイザーベースのモデルにおいて、トークナイザーの選択が性能に与える影響も観察した。つまり、同じ訓練データで訓練された場合、Llama-3トークナイザーを使用して訓練されたモデルはLlama-2トークナイザーを使用して訓練されたモデルよりも優れた性能を示す。
最後に、我々のBLTアーキテクチャは、かなり大きなパッチサイズを使用した場合、Llama 2と3の間の傾向を示す。Llama 2と3のbpeトークナイザーの平均トークンサイズはそれぞれ3.7バイトと4.4バイトである。対照的に、BLTは平均パッチサイズ6バイト、さらには8バイトでも同様のスケーリング傾向を達成できる。推論flopは平均パッチサイズに反比例するため、8バイトのパッチサイズを使用すると、推論flopを約50%削減できる。 より大きなパッチサイズのモデルは、モデルとデータサイズをスケールアップするにつれてより良い性能を示すようである。パッチサイズ8のBLTは1Bでbpe Llama 2と比較して大幅に劣る点から始まるが、7Bスケールではbpeよりも優れた性能を示す。これは、そのようなパッチサイズがさらに大きなスケールでより良い性能を示す可能性があり、おそらくモデルサイズと訓練計算が増加するにつれて、さらに大きなパッチサイズも実現可能であることを示唆している。
5.2 Beyond Compute Optimal Task Evaluations
スケーリング特性をさらに評価するために、我々は8BのBLTモデルを計算最適比を超えてBLT-1Tデータセット(より大規模で高品質なデータセット)で訓練し、標準的な分類および生成ベンチマークのスイートでパフォーマンスを測定する。評価のために、以下の常識推論、世界知識、コード生成タスクを選択する:
Classification tasks
Coding related generation tasks:
我々はMBPP(3ショット)(Austin et al., 2021)とHumanEval(0ショット)(Chen et al., 2021)のpass@1スコアを報告し、LLMのPythonコード生成能力を評価する。
|
|
|
|||||||
---|---|---|---|---|---|---|---|---|---|
Arc-E | 77.6 | 75.4 | 79.6 | ||||||
Arc-C | 53.3 | 49.8 | 52.1 | ||||||
HellaSwag | 79.1 | 79.6 | 80.6 | ||||||
PIQA | 80.7 | 81.1 | 80.6 | ||||||
MMLU | 58.1 | 54.8 | 57.4 | ||||||
MBPP | 40.2 | 37.6 | 41.8 | ||||||
HumanEval | 31.1 | 27.4 | 35.4 | ||||||
平均 | 60.0 | 58.0 | 61.1 | ||||||
訓練ミックスにおけるバイト/パッチ | 4.4 | 6.1 | 4.5 |
表1では、BLT-1Tデータセットで訓練された3つのモデルを比較している:bpe Llama 3トークナイザーベースのモデル、666我々は、Llama 2の32kボキャブラリーよりも性能が優れているため、128kボキャブラリーを持つLlama 3トークナイザーを選択した。およびBLTモデルの2つのバリアント。1つはスペースパッチングスキーム(BLT-Space)を採用し、もう1つはエントロピーベースのパッチングスキーム(BLT-Entropy)を使用している。これらは近似的な単調性制約を持ち、エントロピーモデルのコンテキストを改行で初期化している(4.4節で議論されている通り)。3つのモデルはすべて同等のフロップ予算で訓練されている。ただし、BLT-Entropyでは、推論時にエントロピーしきい値を0.6から0.1に調整しており、これによりより多くの推論ステップを犠牲にしてタスクパフォーマンスが向上することを見出している。
BLT-Entropyモデルは、同じバイト数で訓練されているにもかかわらず、7つのタスクのうち4つでLlama 3モデルを上回っている。この改善は、(1)動的パッチングによる訓練計算の効率的な使用、および(2)トークンではなくバイトレベルの情報を直接モデル化していることの組み合わせによるものと考えられる。
一方、BLT-Spaceは1つのタスクを除いてLlama 3トークナイザーを下回っているが、平均パッチサイズが6バイトと大きいため、推論フロップを大幅に削減している。 比較すると、bpeとエントロピーパッチングベースのモデルは、訓練データミックスにおいて約4.5バイトとほぼ同等の平均パッチサイズを持っている。同じ訓練予算で、より大きなパッチサイズのモデルは他の2つのモデルよりも30%多くのデータをカバーしており、これによりBLTが計算最適点からさらに離れる可能性がある。
Llama 2 | Llama 3 | Entropy ps=6 | Entropy ps=8 | Inference flops | Compute Optimal (Bytes) | Crossover (Bytes) |
---|---|---|---|---|---|---|
470m | 450m | 610m (1.2x) | 760m (1.6x) | 3.1E8 | 50B | 150B |
3.6B | 3.9B | 5.2B (1.3x) | 6.6B (1.7x) | 2.1E9 | 400B | 1T |
5.3 Patches Scale Better Than Tokens
BLTモデルでは、トレーニングと推論のflop予算を維持し、トレーニングデータ量を一定に保ちながら、モデルサイズとパッチサイズを同時に増加させることができる。パッチサイズを任意に増加させることは、固定語彙のトークンベースモデルの効率性のトレードオフから解放された、パッチベースモデル特有の機能である。これについては第2.4節で議論した。より長いパッチサイズは計算量を節約し、その節約分をグローバルな潜在変換器のサイズ拡大に再配分することができる。なぜなら、それはより少ない頻度で実行されるからである。
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HellaSwag オリジナル | 79.1 | 80.7 | 80.6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HellaSwag ノイズ平均 | 56.9 | 64.3 | 64.3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- AntSpeak | 45.6 | 61.3 | 57.9 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Drop | 53.8 | 57.3 | 58.2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- RandomCase | 55.3 | 65.0 | 65.7 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Repeat | 57.0 | 61.5 | 66.6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- UpperCase | 72.9 | 76.5 | 77.3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
音韻論-G2P | 11.8 | 18.9 | 13.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CUTE | 27.5 | 20.0 | 54.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 文字を含む | 0.0 | 0.0 | 55.9 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 単語を含む | 55.1 | 21.6 | 73.5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 文字削除 | 34.6 | 34.3 | 35.9 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 単語削除 | 75.5 | 84.5 | 56.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 文字挿入 | 7.5 | 0.0 | 7.6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 単語挿入 | 33.5 | 63.3 | 31.2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 正書法 | 43.1 | 0.0 | 52.4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 意味 | 65 | 0.0 | 90.5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- スペリング | 1.1 | - | 99.9 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- スペリング逆 | 30.1 |
6 Byte Modeling Improves Robustness我々は、直接的なバイトレベルの情報を持たないトークンベースのモデルと比較して、BLTの堅牢性も測定し、事前学習済みのトークンベースモデルをバイト化するアプローチを提示する。 6.1 Character-Level Tasksバイトレベルモデルを訓練する非常に初期の動機は、入力のバイトレベルノイズに対する堅牢性を活用し、また現在のトークナイザーベースのモデルが苦戦しているトークンの構成要素に対する認識を利用することでした。これらの現象を測定するために、我々は入力ノイズに対する堅牢性と文字(英語および多言語、数字や音素を含む)の認識の両方を評価するベンチマークで追加の評価を行います。これらの結果を表3に示します。 Noisy Data我々は、セクション5.2で説明したベンチマーク分類タスクのノイズ版を作成し、トークナイザーベースのモデルとBLTの堅牢性を比較します。 テキストにバリエーションを導入するために、5つの異なる文字レベルのノイズ付与戦略を採用しています:(a) AntSpeak:テキスト全体を大文字の空白区切り文字に変換します。(b) Drop:テキストからランダムに10%の文字を削除します。(c) RandomCase:テキスト全体で50%の文字をランダムに大文字に、50%を小文字に変換します。(d) Repeat:20%の文字を最大4回まで繰り返します。(e) UpperCase:テキスト内のすべての文字を大文字に変換します。 評価時には、各ノイズ付与戦略をプロンプト、補完、またはその両方に別々のタスクとして適用し、平均スコアを報告します。表3では、ノイズを付与したHellaSwag (Zellers et al., 2019)の結果を報告しており、BLTが堅牢性の面で全体的にトークナイザーベースのモデルを上回っていることがわかります。同じデータで訓練されたモデルに対して平均8ポイントの優位性があり、さらに遥かに大規模なデータセットで訓練されたLlama 3.1モデルをも上回っています。 Phonology - Grapheme-to-Phoneme (G2P)我々は、BLTのグラフェーム(単語を表す文字)の列をその単語の発音の転写(音素)にマッピングする能力を評価します。表3では、Phonology Bench (Suvarna et al., 2024)を使用した5ショット設定でのG2Pタスクの結果を示しており、BLTがこのタスクでベースラインのLlama 3 1Tトークナイザーベースモデルを上回っていることがわかります。
CUTE文字レベルの理解を評価するために、我々はBLTをCUTEベンチマーク (Edman et al., 2024)で評価します。このベンチマークは、構成の理解、正書法的類似性の理解、シーケンス操作能力の3つのカテゴリーに大きく分類されるいくつかのタスクで構成されています。このベンチマークは、ほとんどのトークナイザーベースのモデルにとって大きな課題となっています。なぜなら、これらのモデルはトークンのスペリングに関する知識を持っているように見えますが、この情報を効果的に利用してテキストを操作することに苦戦しているからです。表3は、BLT-Entropyがこのベンチマークで両方のBPE Llama 3モデルを25ポイント以上上回っていることを示しています。特に、我々のモデルは文字操作タスクで卓越した能力を示し、両方のスペリングタスクで99.9%を達成しています。BLTがLlama 3.1の16分の1のデータで訓練されているにもかかわらず、このような大幅な改善が見られることは、文字レベルの情報がBPEモデルにとって学習が困難であることを示しています。 図7は、Llama 3トークナイザーモデルが苦戦しているが、我々のBLTモデルがうまく機能しているいくつかのシナリオを示しています。 単語の削除と挿入は、BPEがより良いパフォーマンスを示す唯一の2つのタスクです。このような単語操作はバイトレベルモデルにとって直接的ではないかもしれませんが、その差はそれほど大きくなく、文字から単語を構築する方が逆よりも容易である可能性があります。我々はすべてのタスクで同じ評価セットアップを使用し、Huggingfaceのオリジナルのプロンプトを使用しています。BPEモデルは追加のプロンプトエンジニアリングから恩恵を受ける可能性があります。 Low Resource Machine Translation我々は、FLORES-101ベンチマーク (Goyal et al., 2022)から6つの主要な言語ファミリーと21の低リソース言語(様々な文字体系を持つ)への翻訳および翻訳元としてのBLTを評価し、表4にSentencePiece BLEUを報告します。 我々の結果は、BLTがLlama 3トークナイザーで訓練されたモデルを上回り、英語への翻訳で全体的に2ポイントの優位性を、英語からの翻訳で0.5ポイントの優位性を達成していることを示しています。主要な言語ペアでは、BLTはLlama 3と同等かわずかに優れたパフォーマンスを示しています。しかし、BLTは低リソース言語ファミリー内の多数の言語ペアでLlama 3を上回っており、長尾のバイトシーケンスへの一般化におけるバイトモデリングの有効性を強調しています。
7 Ablations and Discussion本節では、BLTのアーキテクチャ選択を正当化するアブレーションと、BLT-1Tデータセットで訓練された8Bパラメータのモデルのパッチングスキームおよびハイパーパラメータについて議論する。 Entropy Model Hyper-parametersエントロピーモデルのサイズと文脈窓長の変化がスケーリング性能に与える影響を調査するため、我々は1mから100mパラメータの間で異なるモデルサイズを持ち、64から512の範囲で文脈窓長が変化するバイトレベルのエントロピートランスフォーマーモデルを訓練した。我々は、Llama-2データセットで訓練されたおよび BLTモデルを使用して作成した、訓練フロップに対するビット/バイトのスケーリング法則曲線をプロットし、図8に示す。エントロピーモデルのこれら2つの次元の両方とスケーリング性能が正の相関を持つことが分かったが、50mパラメータを超えてスケールすると収益逓減となることが判明した。 Types of Patching我々は、第2節で紹介した4つの異なるパッチング方式について検証する。すなわち、1) ストライド4および6のストライドパッチング、2) 空白文字に基づくパッチング、3) Llama 3トークナイザーに基づくBPEトークナイザーパッチング、4) 小規模なバイトllmを用いたエントロピーベースのパッチングである。
動的パッチングはシーケンスの実効長を短縮するが、我々はすべてのパッチング方式で同様のコンテキスト長を維持するためにシーケンス長を制御している。訓練と推論時に、すべてのモデルが期待値として同じ数のバイトを各シーケンスで見ることで、より大きなコンテキストをモデル化できることによる交絡因子を防いでいる。図6はこれらの検証結果を示している。残りのすべてのパッチング方式は静的パッチングを上回り、空白パッチングは動的エントロピーベースのパッチングに非常に近い競争相手となっている。 表6では、トークナイザーベースのモデル、空白パッチング、およびエントロピーベースのパッチングを比較したBLTモデルのベンチマーク評価を示している。これらは、Llama 2データセットで最適なステップ数(Dubey et al., 2024)で訓練されている。空白パッチングは、訓練中にエントロピーモデルをその場で実行する必要のないより単純な戦略であるが、エントロピーベースのパッチングを使用してスケーリングトレンド(第5節)で観察した利点が、下流のベンチマークタスクにも確かに引き継がれることがわかった。777空白パッチングの結果は、クロスアテンションを使用しない以前の実行からのものであるが、クロスアテンションを使用しても同様のトレンドが観察される。
Cross-Attention表7において、我々はBLTのエンコーダーとデコーダーの様々な箇所でクロスアテンションを含めることの効果を検証している。 エンコーダーのクロスアテンションについては、クエリの初期化を1) すべてのグローバル状態に対して同じ学習済み埋め込みを使用、2) パッチ内のバイトのハッシュ埋め込みを使用、3) 特定のエンコーダー層におけるパッチバイトのエンコーダー隠れ表現のプーリングを使用、という3つの方法でテストしている。 我々はデコーダーでクロスアテンションを使用することが最も効果的であることを見出した。エンコーダーでは、クロスアテンションを使用することでわずかな改善が見られるが、それはクエリのプーリング初期化を用いた場合のみである。さらに、クロスアテンションは特にCommon-Crawlにおいて、そして特に大きなパッチサイズで効果があることがわかった。 n-gram Hash Embeddings我々は0、100K、200K、400Kのn-gramハッシュ埋め込み語彙の設定を検証し、その結果を表8に示している。ハッシュ埋め込みはすべてのドメインで効果があるが、特にWikipediaとGithubで効果が大きいことがわかった(8Bモデルで15,000ステップ後、0のケースと比較して0.04 bpbの差があるのに対し、他のドメインでは0.01 bpbの差)。 8Bスケールでは、500Kから300Kハッシュに減らしても15,000ステップでの性能変化は0.001 bpbであった。これは、ハッシュがBLTの性能をトークナイザーベースのモデルと同等にするために不可欠であることを示しているが、300Kハッシュ以降は収穫逓減の傾向がある。さらに、クロスアテンションとの利得は大きく補完的であり、異なるデータセットで改善をもたらしているように見える。
Local Model Hyperparamaters表9では、ローカルエンコーダーとデコーダーの層数に関する様々な設定を検証している。ハッシュn-gram埋め込みと組み合わせると、BLTは非常に軽量なエンコーダー(つまり1層のみ)と、より重いデコーダーで良好に機能することがわかった。 8 Related Work文字レベルのRNN:文字言語モデリングは、ニューラルモデルの初期の頃から人気のあるタスクであった(Sutskever et al., 2011; Mikolov et al., 2012; Graves, 2013)。これは、バックオフ法に頼ることなく、語彙外の単語を有機的にモデル化する柔軟性によるものである。Kim et al. (2016)もまた、入力側のみで文字を処理するモデルを訓練している。このモデルは、畳み込みネットワークとハイウェイネットワークを使用し、LSTM基盤のRNNに供給する。そして、英語では当時のRNN基盤の最先端言語モデルと同等の性能を達成し、形態的に豊かな言語ではそれらを上回る性能を示した。これは、文字レベルのLLMのもう一つの求められる利点である。Kenter et al. (2018)は、バイトレベルのLSTMモデルを使用して機械読解を行い、形態的に豊かなトルコ語とロシア語において、再び単語レベルのモデルを上回る性能を示した。同様の方向性で、Zhang et al. (2015)は分類タスクに文字ベースの畳み込みモデルを使用し、特定のタスクにおいて単語レベルのモデルを上回る性能を示した。Chung et al. (2019)は、各レベルで境界検出器を使用する階層的LSTMモデルを用いてテキスト内の潜在的階層を発見し、文字レベルの言語モデリングの性能をさらに向上させた。Kalchbrenner et al. (2016)によるByteNetは、機械翻訳において注意機構の代わりに文字に対してCNNベースの層を使用している。 文字レベルのトランスフォーマー:注意機構を用いたトランスフォーマーモデルの開発(Vaswani et al., 2017)と、サブワードトークン化(Sennrich et al., 2016)により、言語モデリングとベンチマークタスクにおけるニューラルモデルの性能が大幅に向上した。しかし、単語およびサブワード単位は、モデルが操作すべき抽象化レベルに対して暗黙的な帰納バイアスを定義している。トランスフォーマーモデルの成功と文字言語モデリングにおける初期の有望な結果を組み合わせるため、Al-Rfou et al. (2019)は非常に深いトランスフォーマーを使用し、補助的な損失関数の助けを借りて、以前のLSTMベースの文字llmを上回る性能を持つトランスフォーマーベースのモデルを訓練した。しかし、彼らは依然として単語レベルのLLMとの間に大きな差があることを確認した。GPT-2 (Radford et al., 2019)もまた、10億語ベンチマークのような大規模データセットにおいて、バイトレベルのLMが単語レベルのLMと競合できないことを観察している。 Choe et al. (2019)はバイトレベルの変換器ベースのllmが同等のパラメータを持つサブワードレベルのLLMを上回る性能を示したが、これらのモデルは非常に多くの計算リソースを必要とし、訓練に長時間を要することを実証した。同様に、El Boukkouri et al. (2020)は文字埋め込みに畳み込みを適用して単語表現を構築するBERTモデル(CharFormer)を訓練し、医療分野での改善を示したが、これも多くの計算リソースを必要とした。Clark et al. (2022)は文字列シーケンスを直接扱う150MパラメータのエンコーダーのみのモデルであるCANINEを開発した。CANINEは我々のグローバルモデルと同様の精神に基づく深い変換器スタックを中核とし、ローカル変換器と階層的畳み込みの組み合わせを用いて入力文字をダウンサンプリングし、下流の多言語タスクにおいて同等のトークンレベルのエンコーダーのみのモデル(mBERT)を上回る性能を示した。ByT5 (Xue et al., 2022)はパッチング操作を一切使用しないバイトレベルのエンコーダー・デコーダーモデルのアプローチを探究した。彼らのモデルはノイズに対する堅牢性が向上し、4倍少ないデータでトークナイザーベースのモデルと競合できたが、パッチングを使用しないため、すべてのバイトに対して計算コストの高い注意操作を行う必要があり、非常に計算負荷が高かった。サブワードユニットの代わりにバイトを直接モデル化することで入力のシーケンス長が増加し、バイトレベルモデルを効率的にスケールアップすることが課題となる。最近、非常に長いコンテキスト長にわたって固定サイズのメモリ状態を維持できるMambaアーキテクチャ(Gu and Dao, 2023)を使用して、Wang et al. (2024)はパッチングを使用せずにバイトレベルのMambaアーキテクチャを訓練し、350Mパラメータスケールのflop制御設定において、複数のデータセットでのビット/バイトの観点からバイトレベルの変換器モデルを上回る性能を達成した。 パッチベースのアプローチ:パッチングの効果的な使用により、バイトレベルLLMによって過度に増加したflop数を削減しつつ、潜在的にパフォーマンスを維持することができる。多くの研究が、モデルサイズと学習バイト数の小規模なスケールで初期の成功を実証している。Nawrot et al. (2022)は、静的パッチングに基づくダウンサンプリングとアップサンプリングを実験し、150Mスケールで他のバイトレベルのベースラインを上回るアワーグラストランスフォーマーを開発した。Nawrot et al. (2023)は、動的パッチングスキームを用いてこれをさらに改良した。これには、エンドツーエンドで学習される境界予測器、特定のトークナイザーを用いて教師あり学習される境界予測器、およびBLTに類似したエントロピーベースのパッチングモデルが含まれる。彼らは、このアプローチが400Mトークンの40Mパラメータスケールで言語モデリングタスクにおいて当時のバニラトランスフォーマーを上回ることができることを示した。Lester et al. (2024)は、BPEが達成できる以上の圧縮率を実現するために算術符号化を用いて圧縮されたシーケンスでの学習を調査した。等情報ウィンドウ技術を使用することで、言語モデリングタスクにおいてバイトレベルのベースラインを上回ることができたが、サブワードベースラインには及ばなかった。 我々の研究は、MegaByte (Yu et al., 2023)から着想を得ており、最も密接に関連している。MegaByteは、デコーダーのみの因果的LLMであり、固定的な静的パッチングと表現の連結を用いてバイトをパッチに変換し、デコーダー側でローカルモデルを使用してパッチをバイトに戻す。彼らは、MegaByteが400Bバイトのデータセットにおいて、1Bパラメータスケールでトークナイザーベースのモデルと匹敵することを実証している。我々はすべての実験でMegaByteを詳細に検討し、静的パッチングがflop制御設定において現在の最先端の計算最適化されたトークナイザーベースモデルに遅れをとっていることを発見し、BLTがこのギャップをどのように埋めるかを実証する。Slagle (2024)もMegaByteについて同様の観察を行い、静的パッチング方法を空白文字やその他の空白のようなバイトへのパッチングに拡張し、さらにローカルエンコーダーモデルを追加することを提案している。彼らは、1Bパラメータスケールにおいて、GitHubやarXivなどの一部のドメインで計算制御設定下でトークン化ベースのトランスフォーマーモデルを上回る改善を見出している。我々もこのモデルに関する実験を報告し、バイトレベルモデルをさらにスケールアップし、Llama 3のような現在の最先端のトークンベースモデルと真に匹敵するためには、さらなるアーキテクチャの改善が必要であることを示す。 9 Limitations and Future Work本稿では、アーキテクチャの選択のために、Llama 3 (Dubey et al., 2024)で決定された最適なステップ数でモデルを訓練している。しかし、これらのスケーリング則はBPEレベルのトランスフォーマーに対して計算されたものであり、BLTの場合には最適ではない(データ、パラメータサイズ)比率につながる可能性がある。我々は、BLTのスケーリング則の計算を今後の課題として残しており、これにより我々のアーキテクチャにとってさらに有利なスケーリングの傾向が得られる可能性がある。さらに、これらの実験の多くは1Bパラメータまでの規模で行われており、8Bパラメータ以上にスケールアップする際に最適なアーキテクチャの選択が変わる可能性があり、より大規模な場合にパフォーマンスの向上が解放される可能性がある。 既存のトランスフォーマーライブラリやコードベースは、トークナイザーベースのトランスフォーマーアーキテクチャに対して高度に効率化されるよう設計されている。我々は理論的なflopマッチング実験を提示し、また標準的なトランスフォーマーアーキテクチャから逸脱するレイヤーを扱うために特定の効率的な実装(FlexAttentionなど)を使用しているが、我々の実装は壁時計時間の観点からトークナイザーベースのモデルと同等ではない可能性があり、さらなる最適化の恩恵を受ける可能性がある。 BLTはパッチングのために別個に訓練されたエントロピーモデルを使用しているが、パッチングモデルをエンドツーエンドで学習することは、今後の研究の興味深い方向性となりうる。セクション6.2では、10T以上のトークンで訓練されたLlama 3のようなトークナイザーベースのモデルを「バイト化」することに成功の兆しを示す初期実験を提示しており、これらの重みでグローバルトランスフォーマーを初期化し凍結している。この方向性でのさらなる研究により、バイト化の利点を維持するだけでなく、これらのトークナイザーベースのモデルを一から訓練することなくパフォーマンスを向上させる方法が明らかになる可能性がある。 10 Conclusion本稿では、大規模言語モデルにおける固定語彙トークン化への従来の依存を再定義する新しいアーキテクチャ、Byte Latent Transformer(BLT)を提示する。バイトをパッチにグループ化する動的で学習可能な方法を導入することで、BLTはデータの複雑さに基づいて計算リソースを効果的に配分し、効率性と堅牢性の両面で大幅な改善をもたらす。我々の広範なスケーリング研究は、BLTモデルが8Bおよび4Tバイトまでのスケールでトークン化ベースのモデル(Llama 3など)のパフォーマンスに匹敵し、評価指標のわずかな損失と引き換えに推論flopを最大50%削減できることを実証している。 さらに、BLTはスケーリングの新次元を開拓し、固定された推論予算内でモデルサイズとパッチサイズを同時に増加させることを可能にする。この新しいパラダイムは、実用的な設定で一般的に遭遇する計算レジームにおいて有利となる。 生のバイトデータに直接取り組むことで、BLTはまた、データの長いテールを処理するモデルの能力を向上させ、ノイズの多い入力に対する堅牢性を大幅に改善し、サブワード構造のより深い理解を提供する。 総じて、これらの結果はBLTを従来のトークン化ベースのアプローチに代わる有望な選択肢として位置づけ、より効率的で適応性の高い言語モデルのためのスケーラブルで堅牢なフレームワークを提供している。 Acknowledgements我々は、事前学習インフラストラクチャに関するあらゆる支援を提供してくれたKalyan Saladiに感謝の意を表する。また、BLTのスケールアップのためのリソース整理を手伝ってくれたGabriel Synnaeve、Ammar Rizvi、Jacob Kahn、Michel Meyerに感謝する。BLTに関する貴重な議論とフィードバック、BLTのコードをオープンソース化するためのLinguaフレームワークへのアクセス、そして本稿で使用されたBLT-1Tデータセットの準備を手伝ってくれたBadr Youbi Idirissi、Mathurin Videau、Jade Copetに感謝する。プロジェクトの初期段階に積極的に関与し、貴重なフィードバックとアイデアを提供してくれたOmer Levyに感謝する。FlexAttentionに関する支援を提供してくれたDriss Guessousに感謝する。そして、フィードバックと議論を提供してくれたSida Wang、Melanie Sclar、Amanda Bertsch、Hunter Langに感謝する。 Contributors本節では、個々の貢献について列挙する。 Core Contributors:Artidoro Pagnoni、Srinivasan Iyer、Ramakanth Pasunuru、Pedro Rodriguez、John Nguyen、Gargi Ghosh(プロジェクトリーダー) Core Advising Group:Mike Lewis、Ari Holtzman、Luke Zettlemoyer Advisors and Contributors:Jason Weston、Benjamin Muller、Margaret Li、Chunting Zhou、Lili Yu References
11 Model Hyper Parameters表10は、BLTモデルの異なるハイパーパラメータ設定を示している。
12 FLOPs Equationsここでは、Hoffmann et al. (2022); Kaplan et al. (2020); Casson (2023)に基づいて、トランスフォーマーおよびBLTモデルのフォワードパスに対するflop計算に使用される方程式を提供する。バックワードパスはフォワードパスの2倍のflopを使用すると仮定する。
層、隠れ次元、コンテキスト長、次元のアテンションヘッド、フィードフォワード乗数を持つトランスフォーマーモデルに対して、我々はflopを以下のように計算する:
BLTモデルについては、上記の基本要素と第4.5節のflop方程式を組み合わせて総flopを計算する。 13 Rolling Polynomial Hashingバイトグラムが与えられた場合、のローリングポリノミアルハッシュは以下のように定義される:
ここで、は10桁の素数として選択される。 14 Frequency-based n-gram Embedddings最終的なBLTアーキテクチャでハッシュn-gram埋め込みを使用する前に、我々は頻度ベースのn-gram埋め込みも実験した。各に対して、埋め込み行列があり、これには与えられたに対する最も頻繁なバイトグラムが含まれている。 が大きくなるにつれて埋め込みを保存することが困難になるため、我々は各バイトグラムについて最も頻繁なバイトグラムの埋め込みのみを保存する。 特定の位置に対応する埋め込み行列に存在するグラムが含まれている場合、この埋め込みは次のステップであるエンコーダーのマルチヘッドクロスアテンションに渡される。バイトグラムが頻度が低く、したがって行列に含まれていない場合、その埋め込みはエンコーダーのハッシュ埋め込みから代わりに取得される。 頻度ベースのグラムはn-gramテーブルの語彙によって制限され、頻度の低いn-gramが全く表現されないため、我々はその後ハッシュベースのグラム埋め込みに移行した。ハッシュと頻度ベースのn-gram埋め込みの比較については、表12を参照されたい。
15 Entropy Patching Example from MMLU我々は、下流タスク(すなわちMMLU (Hendrycks et al., 2020))からの少数ショットの例が、BLTモデルで使用するために訓練されたエントロピーモデルを使用してどのようにパッチされるかを図9で示す。完全なコンテキストウィンドウでエントロピーモデルを直接使用すると、反復パターンが大きくパッチされる。例えば、MMLUクエリの「10回、約のrms偏差で」は、最初に遭遇したときには頻繁にパッチされるが、次の3回は非常に大きなパッチの一部となり、これは推論効率は良いものの、推論には望ましくない可能性がある。我々がこのような「エントロピー」ドリフトを避けるために使用する一つの方法は、改行でエントロピーコンテキストをリセットし、近似的な単調性制約を使用することである(セクション4.4参照)。 |