AI・機械学習
ARC-AGI-1で67セントで44%を達成
44% on ARC-AGI-1 in 67 cents (mvakde.github.io)
要約
著者は、わずか67セントの計算コストで、ARC-AGI-1ベンチマークにおいて44%のスコアを達成した小規模なTransformerモデルをゼロからトレーニングしたと報告しています。このモデルは、以前のバージョンよりも高速、高性能、低コストであり、オープンソースで公開されています。特に、サンプル効率の向上と、Transformerアーキテクチャの限界を探求する意図が強調されています。
全文翻訳
ゼロからトレーニングした小規模なTransformerが1.5時間で5090を達成し、多くのLLMを凌駕し、TRM/HRMと同等のスコアを獲得しました。
これは以前のモデルのアップグレード版であり、より高速、高性能、低コストで、依然としてオープンソースです。
ARC-2でも7%のスコアを獲得しました。
Twitterでの議論、GitHubでのコード。
ARC-1公開評価でのパフォーマンス。私は同様のテスト時間トレーニングを行うモデルとのみ比較しています。
これはARC-AGIに関する一連の研究の3番目のブログ記事です。以前の記事: ブログ2、ブログ1。
多くの人が以前の結果は不可能だと考えていました。それはトップ研究者の注目を集め、X(旧Twitter)でバイラルになりました。例: Lucas Beyer、Jeremy Howard、Rohan Anilによる議論、および多くの他の人々からのコメント。
なぜこれに取り組むのか?
私は、サンプル効率が今日のAIにおける最も重要な問題であり、それを解決したいと考えています。
この研究の意図は、(1)Transformer / 今日のディープラーニング手法に限定された場合のサンプル効率の限界を見つけること、および(2)イテレーションをより速く、より安価にするためにコストを削減することです。
ARCはこれをテストするための優れたベンチマークです:
非常に少ないサンプル(1000パズルのみ)が高次元空間にあります。
これはメタ学習ベンチマークであるため、各パズルはいくつかの共通概念を持ちながら、異なるルールを使用します。
非常に少ない事前知識が必要です: 評価セットで必要とされるすべての概念は、トレーニングセットに存在します。
人間にとっては信じられないほど簡単に解決でき、貧しいAI研究者でさえアクセス可能です。
ベンチマークはまだ飽和していません(データ効率に関して、大量の合成データや人間の帰納的バイアスを使用するLLMやアプローチは無視してください)。
次に、これらの限界を打破するための新しい研究アイデアに取り組みます。誰もがこれに取り組めるように、コストを低く抑えるように努めます。
技術的な詳細
どのように機能するのか?
全体的なアプローチは前回と同様ですが(完全な技術的詳細はここにあります)、いくつかのアップグレードを追加しました。アプローチの簡単な概要を以下に示します:
各入出力ペアはトークンのシーケンスに変換されます。これらのシーケンスは、小規模なTransformerによってオートリグレッシブにトレーニングされます。これは、トレーニングセットと評価セットのパズル(テストラベルは非表示)の両方で、テスト時にゼロから行われます。
タスク間の学習を可能にするために、各パズルには個別の加算埋め込み(学習済み)が与えられます。各シーケンスには2つの2Dグリッドがあるため、位置埋め込みは3D RoPE埋め込みを使用して学習されます。
シーケンスは、色と二面体順列で拡張されます。推論中、テスト入力は拡張され、生成された出力には逆拡張が適用されます。最も一般的な2つの出力が送信されます(AAIVR)。
前回からの変更点
主な目標は、モデルのサンプル効率を向上させるアーキテクチャ/アルゴリズムの改善を見つけることでした。
スコアの最大の増加は、以下の要因によるものです:
最新のアーキテクチャ(GELUの代わりにSwiGlu、layernormの代わりにRMSnormなど)。
より多くのデータ多様性、より良いデータのシャッフル。
スケールアップ: 4層ではなく8層。
コストの最大の減少は、以下の要因によるものです:
はるかに少ない拡張(よりサンプル効率が良い!)。
AdamWからNormuonへ。
varlenトレーニングと推論用のflex attentionカーネルを備えたflash attention。
大きな変更点は、入力トークンでトレーニングしなくなったことです。これは、損失関数にのみ出力トークンが含まれる(アプローチが教師ありになる)ことを意味します。これは、パフォーマンスがわずかに向上します(40% → 44%)が、その理由は理解していません。おそらく有限モデル容量です。
また、ARC-2の重複しないタスクを追加して、トレーニングデータを増やしました。漏洩がないことを確認するために非常に慎重に行いました。気に入らない場合は追加データを削除しても約40%のスコアは維持されますが、計算量は約2倍必要になります。
コンテキスト: ARC-2には773のARC-1パズルと347の新しいパズルが含まれています。ARC-1の評価パズルのほとんどは繰り返されるため、ARC-2で単純にトレーニングするとデータ漏洩となり、100%のスコアになります。漏洩がないように、773の重複パズルを慎重にフィルタリングしました。
パフォーマンスまたは速度に段階的な改善をもたらした他の多くの変更があります。変更の完全なリストはここにあります。
興味深い挙動
入力でトレーニングしなくなったため、このアプローチは現在教師ありです。奇妙なのは、テスト損失が悪化しているのに、スコアが向上していることです!また、より安定しており、スコアのばらつきも少なくなっています。今日、多くの人が少量のデータセットで最も低い検証損失を目指すことでサンプル効率に取り組んでいます。それは素晴らしいと思いますが、これはそのようなアプローチの失敗モードを示しています。
教師なしスタイルのトレーニングが一部のシナリオでより良い結果をもたらすと考えており、現在評価中です。
NorMuonの前に、バニラMuonを試しました。明らかにAdamWよりもトレーニングは速かったですが、損失(およびスコア)は収束する代わりに終盤で停滞しました。この時点でモーメンタムやLRを劇的に下げると役立ちましたが、手動でこのような変更を加えたくはありませんでした。NorMuonに切り替えたところ、問題は解消しました。
アブレーション
パフォーマンスへの最大の貢献は、良好な表現(3D RoPE + タスクごとの埋め込み)のようです。3D RoPEまたはタスクごとの埋め込みを削除すると、急激な低下が見られます。両方のアブレーションは25%で飽和します。
入力でのトレーニングはわずかにパフォーマンスが低下します → 約39%。
トレーニングセットをARC-1+ConceptARCに限定しても、パフォーマンスはほぼ同じです: 約40%。
3D RoPEを1Dに切り替えると、スコアが約24%に低下します。
タスクごとの埋め込みを削除すると、スコアが約24%に低下します。
モデルをCompressARCスタイル(各タスクで個別にゼロからトレーニングし、教師なし)で実行すると、パフォーマンスは約18%に低下します。
CompressARCだが教師ありだと約15%になります。
他のアブレーションでの最高スコアを見つける。
コストの比較は、最初のもの以外のすべてのアブレーションでより多くの計算が必要となるため、ここではほとんど意味がありません。
他の人はどのように貢献できますか?
コードはオープンソースです。自由に修正して、スコアを向上させたり、コストを削減したりしてください。(トレーニングデータを増やさないでください)。
65%を目指してみてください – あまり多くの変更は必要ないでしょう。証拠: 複数の実行ですべての解決済みタスクの和集合を取り、55%を得ました。また、他の多くのタスクが「ほぼ」解決されています。いくつかのアイデア:
RoPEは位置情報と内容情報を混合しており、おそらくパフォーマンスを低下させています。PoPEは同等かそれ以上のパフォーマンスを発揮するはずです。あるいは、新しい位置埋め込みを発明するかもしれません。
アーキテクチャは間違いなくさらに近代化できます。
手作りのGPUコードでコストを10倍削減できる可能性があります。アーキテクチャの変更でも同様のことが可能です。
最後に、データ拡張を削除する方法を見つけてください。(それを使用したことを後悔しています。それが大丈夫だと思うすべての人を無視してください)。いくつかの明白な方法がありますが、課題はトレーニングコストを低く抑えることです。
雑記
正直なところ、Transformerだけで45%に到達できるとは予想していませんでした。新しいアイデアが必要だと思っていました。特に、これほど低コスト/低FLOPで達成できるとは予想していませんでした。アブレーションは、拡張や合成データがなくても、驚くほどのパフォーマンスが維持されていることを示しています。今では、Transformerフレームワーク内で65%に到達できると確信しています。
他の人がなぜこれを見つけられなかったのか理解できません。これは、最も明白な表現を持つ単なるTransformerです。このベンチマークは6年間公開されており、注目度が高く、100万ドルの賞金がありました!おそらく研究者はディープラーニングを過小評価しているのでしょうか?それとも、実験コストが高すぎて、アブレーションを適切に実行できなかったのでしょうか?LLMやハーネスの使用に盲目になっているのでしょうか?
付録
以前の批判/検証:
有名な研究者からの私のアプローチに関するもの。
私の以前の結果はXでバイラルになり、多くの経験豊富な研究者が賛成と反対の両方で議論しました。Jeremy、Lucas、Susan、Andreas、Yoavなどによるスレッド。私はすべての批判をここに私の回答とともにリストしています。
評価パズルでトレーニングすることは不正行為/「テストでのトレーニング」
いいえ、これは誤りです。「テストでのトレーニング」とは、具体的にはテストデータのラベルでトレーニングすることを指します。ラベルはトレーニングされませんでした。
また、ARCはメタ学習ベンチマークであるため、評価パズルから学習することが期待されています。
専門用語: ARCには、トレーニングパズルセットと評価パズルセットがあります。各パズルには、例のペアとテストのペアがあります。ペアは、入力グリッド+出力グリッドで構成されます。
ARCでは、ラベルは評価パズル内のテストペアの出力グリッドのみです。
これらのラベルはトレーニングされませんでした。それらは非表示です。必要であれば事前に削除することもできます。
評価パズルの入力でトレーニングすることは情報漏洩です。
いいえ、これは誤りです。そのようなアプローチは帰納的学習と呼ばれます。