Byte Latent Transformer: トークンよりもスケーラブルなパッチ
(ai.meta.com)- Byte Latent Transformer(BLT) は、固定語彙のトークナイゼーションなしに生のバイトで学習しながらも、大規模環境でトークン化ベースのLLM性能に匹敵するバイトレベルLLMアーキテクチャ
- 中核は、バイトを固定トークンではなく動的サイズの パッチ として束ね、次のバイトのエントロピーが高い位置により多くの計算とモデル容量を割り当てる方式
- Metaは最大 8Bパラメータ、4T学習バイト までFLOPを制御したスケーリング研究を行い、バイトレベルモデルのスケーラビリティを検証
- データが予測可能であるほど長いパッチを選択して 学習・推論効率 を高め、推論とロングテール一般化でも定性的な改善が見られる
- 固定された推論コストでは、パッチサイズとモデルサイズを同時に拡大するBLT方式が トークン化ベースのモデルより優れたスケーリング を示す
BLTが提案するバイトレベルLLM構造
- Byte Latent Transformer(BLT) は、固定語彙ベースのトークナイゼーションの代わりに 生バイト を入力単位として使うバイトレベルLLMアーキテクチャ
- 大規模設定でトークン化ベースのLLM性能に匹敵し、推論効率と堅牢性でも大きな改善を示す
動的パッチが計算単位になる
- BLTはバイトを動的サイズの パッチ にエンコードし、このパッチを主要な計算単位として使う
- パッチ分割は次のバイトの エントロピー を基準に動的に行われる
- データ複雑度が高まる地点には、より多くの計算とモデル容量を割り当てる
- データが予測可能なときは長いパッチを選んで計算を減らす
FLOP制御スケーリング実験
- Metaはバイトレベルモデルを対象に FLOP制御スケーリング研究 を実施
- 実験規模は最大 8Bパラメータ と 4T学習バイト
- 結果は、固定語彙なしに生バイトで学習したモデルもスケール可能であることを示している
効率性と一般化の結果
- 動的に長いパッチを選択する方式は、学習効率 と 推論効率 の両方を改善する
- 定性的結果では、推論と ロングテール一般化 で改善が見られる
- 固定された推論コストにおいて、BLTはトークン化ベースのモデルより優れたスケーリングを示す
- パッチサイズとモデルサイズを同時に拡大する方式が用いられる
資料
- Download the Paper: Byte Latent Transformer 論文のダウンロード
1件のコメント
Hacker News のコメント
論文: https://scontent-sjc3-1.xx.fbcdn.net/v/t39.2365-6/470135129_...
BERT が出た夏、文字ベースの CNN モデルで分類をしていたスタートアップで働いていた
チームでは代替の表現方法をかなり検討していて、他のメンバーは単語ベクトルを好んでいたが、私はあまり乗り気ではなかった。扱っていた文書には辞書にない語が頻繁に出てきて、それらが重要であり、捨てれば失敗につながりそうだったからだ
私たちも「基盤モデル」を作っていたので、最終モデルで語彙外語になるだけでなく、学習コストの大きい基盤モデルの段階で語彙外語になることも問題だった
文字ベースのモデルでの分類はかなりうまくいっていたが、「辞書」をニューラルネットワーク内に保存するのはニューラルネットワークの良い使い方ではないという認識があり、トークンへの期待は大きかった
一方で私は、Word2Vec のような方式には見込みがないと確信していたので、PubMed の症例報告の偽の要旨を書くよう RNN を学習させ、テキスト理解用の基盤モデルを作っていた以前のプロジェクトを離れたこともある
バイトペアエンコーディング(byte-pair encoding)が出てきたとき、会議で私たちが検討したトークン化方式の中で初めて支持できる方式だと言ったのを覚えている
それでも正直、文字単位で作業できればいいのにという思いは今もある
トークンはその場しのぎだ。概ねうまく機能するが、機能しないときは明らかに目立つ
[1] https://arxiv.org/abs/2103.06874
現実では、人々は毎日、辞書にない語を作って使い、意思疎通している。たとえば “notify” は辞書にあるが、「誰かに知らせる手段」を意味する “notifier” はなく、メール通知を送るコードは “email notifier” になる。その次にはテキストメッセージ、音声通話、コールセンターのコールバック notifier といった具合に続く
どの業界や組織にも、専門用語、辞書にないカスタム語、識別力の低い略語がある
現実のコミュニケーションを扱えず、実験室的に整えられた辞書内の応答しか出せないなら、機械学習の出力がどう役に立つのか分からない
うまく解決されるといい。トークナイザーはなくなるべきだ
階層構造なのに階層が2段階しかない点が興味深い。さらに多くの階層を積むのは、後続研究の自然な方向に見える
参考までに、関連する別の記事[1]にもこのコメントを投稿したところ、著者はこう答えた
「著者です :)、検討する価値のある良い方向だと思います! ただし一度にやるには作業量がかなり増えるだけでなく、階層全体に FLOP 予算をどう配分するかに注意が必要です。2段階なら、一方の段階(バイト/ローカルエンコーダ)は FLOP 効率良く、もう一方の段階(パッチ/グローバルエンコーダ)は FLOP 集約的にできます。パッチをより大きな単位にまとめる方法も見つける必要があります。それでも、ここから広がる方向はたくさんあります!」
[1] https://news.ycombinator.com/item?id=42413430
パッチを作るために、小さなモデルで入力文字列の次の文字の尤度を予測する
入力文字列が “Lazy dog jumped over a fence.” なら、各文字の尤度をモデルで予測する
たとえば次の文字が “a” だと100%確信している場合もあれば、“a” が10%、 “b” が10%という場合もある
その後、文字の推定値をまとめる。何文字ずつかというと、各まとまり全体の不確実性、つまりエントロピーが同程度になるようにする
こうしてパッチ、または「トークン」になる
次のバイトのエントロピーだけを使い、それがしきい値を超えるか(グローバル制約)、または直前のバイトのエントロピーより別のしきい値分だけ大きいか(近似単調制約)を見る
そのため付録 E で示されているように、長く反復的なシーケンスは病的に長いパッチにつながり得る
本当に気になるのは図3(f)の2バイト文脈を使う小さな CNN バイト単位モデルだが、論文の他の部分ではまったく言及されていない
最近の関連記事:
Meta FAIR の新しい研究、モデル、データセット共有 - https://news.ycombinator.com/item?id=42412360 - 2024年12月、コメント61件
モデルに教える唯一のもの、つまり損失が、単一バイト空間での確率予測だけという意味なのか?
私が誤解していないなら、それだけで十分ということで、かなり有望に見える
私の理解では、この方式はトークン化だけでなくサンプリングも取り除くのではないか?
サンプリングは LLM の悩みの種になり得る一方で、モデルが常に有効な JSON を出すよう文法を強制したり、より多様な分布を得るために温度を調整したり、XTC サンプリングを使ったりといった興味深い活用も可能にしてくれる
BLT ではこれに相当するものは何だろう?
デコーダに許可/禁止バイトを追加入力として与え、有効な出力が出るまでデコードを繰り返す方法しか思いつかないが、もっと単純で明らかなアプローチがあるのかもしれない
BPE ベースのモデルと同様に、出力層で許可されたバイトに対してだけソフトマックスを計算し、そこからサンプリングすればよい
これは AI がバイナリでも事前学習できるという意味なのか?
私たちは AI が代わりにコードを書いてくれることが終着点だと思っているが、もしかするともっと単純な方法で支配するのかもしれない
言語学的アプローチと経験ベースのアプローチが、どれほど流行から外れてしまったのかが興味深い
人間は可能ではあっても、通常は1文字ずつ読まない。語幹を持っており、語尾変化も理解する。トークン化はこうした経験を再現できておらず、LLM の語彙に現れるトークンを見ると特にそうで、文字やバイトのエンコーディングも同様だ
人間には単語を解析する方法がいくつもある。文全体を一度に理解することもできるし、句を読むことも、単語ごとに読むことも、新しい単語を文字ごとに音読して解読することもできる
ある方法が、人間が課題を遂行したり世界を知覚したりする方法を再現しているから良いのだ、と明示的に主張する論文は非常に少ない
LLM への依存が大きくなるほど、モデルを私たちの経験により近づけたくなると思う。そうすれば、モデルが出す誤りもより理解しやすくなるはずだ
「トークン化とは異なり、BLT はパッチについて固定語彙を持たない」という文は、私が正しく理解していれば、パッチ語彙が学習前には分かっていないという意味だ
学習によってパッチ語彙が確立された後は、推論には同じ固定語彙を使うように思える。そうでなければどう動作するのか分からない
合っている?