ハクソク

世界を動かす技術を、日本語で。

Show HN: 2つのゲーミングGPUでHuggingFaceのオープンLLMリーダーボードを制覇した方法

概要

  • 既存のLLMの重みを一切変更せず、独自のレイヤー複製手法でHuggingFace Open LLM Leaderboardのトップを獲得
  • Transformer内部構造の「神経解剖学」的な役割分担を観察
  • Base64チャットやGoliath-120Bの異常な構造から着想
  • 独自の「脳スキャナ」パイプラインで層の再利用や複製をシステマティックに検証
  • 結果として、モデルの推論能力向上や新たな構造的知見を得る

LLM神経解剖学:重みを変えずにAIリーダーボード首位を獲るまで

  • 2024年中頃、HuggingFace Open LLM LeaderboardはオープンウェイトAIの競技場
  • 数千のモデルが6つのベンチマークで競争、dnhkng/RYS-XLargeが1位を獲得
  • 新規学習や重み合成・ファインチューニングなし、既存72Bモデルの中間層7ブロックを複製して接続
  • 重みは一切変更せず、推論時のレイヤー経路だけを操作
  • この手法により、モデルの「思考」部分を強化し性能向上を実現

着想のきっかけ:Base64チャット現象

  • 2023年後半、LLMにBase64エンコードされた質問を投げると正しく回答する現象を発見
    • 例:「What is the capital of France?」をBase64化→モデルが正しく「Paris」と返答
  • モデルは入力をデコードし、内部表現で推論後、再エンコードして返す
  • 英語、Python、Mandarin、Base64など多様な形式に対応
  • 初期層:入力形式を抽象表現に変換
  • 後半層:抽象表現を出力形式に再変換
  • 中間層:純粋な推論・抽象的な内部言語の役割と推測

Goliath-120Bの異常構造からのヒント

  • 2023年11月、AlpindaleがGoliath-120B(Llama-2 70Bモデル2体を層ごとに交互に合成)を公開
    • 層の順序を入れ替え、後方層の出力を前方層へ入力するという異常な構成
  • 通常、各層は直前の層の出力分布に最適化されている
  • 「未来の層」の出力を「過去の層」に入力してもモデルが動作した点が驚異
  • Transformer内部表現の均質性・柔軟性の証明
  • これらの観察から、Transformerには**「機能的解剖学」**が存在すると仮説

独自「脳スキャナ」パイプラインの構築

  • 4090搭載の自宅MLリグでExLlamaV2による量子化モデル推論
  • N層モデルに対し、(i, j)区間の層を複製して経路に挿入
    • 例:(2, 7)なら2~6層を2回通過
  • すべての(i, j)ペアで「脳スキャン」を実施、3,240通り以上の構成を検証
  • 学習不要、推論のみで構造的特徴を解析

評価プロキシタスクの工夫

  • 全ベンチマークでの全構成検証は非現実的
  • 高速・客観的・構造的特性を測る簡易タスクを設計
    • 出力トークン最小化
    • 客観的スコアリング(LLM判定不要)
    • 認知要求の独立性
  • 試行錯誤の末、創造性タスクやLLM判定の一貫性問題を乗り越えた評価法を開発

LLM神経解剖学の発見と今後

  • Transformerの初期層=翻訳、後半層=再翻訳、中間層=抽象推論という「神経解剖学」的役割分担を強く示唆
  • 中間層の複製で推論能力向上を実証
  • 既存モデルの重みを一切変更せず、構造操作だけで性能を引き出す新たな可能性
  • 今後のAI設計やモデル解釈学の新たな道筋

この手法・発見は論文未発表だが、ブログでの公開がより楽しいという理由で今回紹介。

Hackerたちの意見

ここに作者がいます。Qwen2-72Bで特定の7層の中間レイヤーを複製したところ、重みを変更せずにパフォーマンスが向上し、全てのOpen LLMリーダーボードのベンチマークで1位を獲得しました。2026年現在、そのリーダーボードのトップ4モデルはまだ子孫です。変な発見は、単一層の複製は何も効果がないこと。層が少なすぎるとダメ、逆に多すぎると悪化します。約7層の回路サイズのブロックだけが機能するようです。これは、事前学習がレイヤースタック内に明確な機能回路を形成し、それが全体を保つときだけ機能することを示唆しています。この全ては、私の地下室で2台のRTX 4090を使って開発しました。今は、デュアルGH200リグで現在のモデル(GLM-4.7、Qwen3.5、MiniMax M2.5)を動かしています(他の投稿を見てね)。コードと新しいモデルはもうすぐ公開予定です。質問があれば喜んで答えます。
潜在空間の推論を解明したかもしれませんね。こういうのがうまくいくんじゃないかと思ってたんですが、トレーニングがどうバックプロパゲートするかは分からなかった。でも、既存のレイヤーを複製するだけでいいって示してくれましたね。複製したレイヤーを使ってシンプルなインラインループを試したことはありますか?パフォーマンスを見るのが面白そうです。それに、MOEモデルと比較するのも興味深いですね。これらのレイヤーが異なる「専門家」として機能しているのか、潜在空間で推論が行われているのかを見てみたいです。
このレイヤーの複製は、ループした言語モデルの「貧乏人版」みたいに感じますね。けど、かなりクールです。LLMの脳外科手術みたいなものですね。
デュアルGH200の構成は素晴らしかったです。こんなに才能があって、他の分野でも素晴らしい成果を上げている人を見るのは最高ですね。あなたがそれをやっていると知って感謝です。
超クールですね!これらの回路を特定するのに役立つ分析やツールはありますか?最近これを見つけて、あなたがやったのと似た方法で特に強い「回路」を特定してみたいと思っています。
レイヤーの中に隠れているかもしれない認知的リンガフランカのアイデアは魅力的で、プラグイン可能な知識バンクという素敵なアイデアに希望を与えてくれます。MoEは別として、インターネット全体と数十万冊の盗まれた本でトレーニングされたモデルは、特定のワークフローに必要な知識よりもはるかに多くの知識を持っています。今日の作業に役立つ知識バンクをプラグインできるスリムなモデルを提供できれば素晴らしいですね。それに、モデルの知識を全体を再トレーニングせずに新鮮に保つこともできるということです。
こんな素敵なブログ記事をシェアしてくれてありがとう!最近読んだ中で一番楽しかったかも。すごくモチベーションが上がったよ!
投稿ありがとう!すごくクールな内容だね!読みやすくて親しみやすい書き方も感謝!このテーマについてはあまり詳しくないけど、70〜80%は理解できたよ :) いいライターだね!
これを読んで感じた興味深いことは、「回路入力」が出力と互換性があって、パフォーマンスが向上するってどういうことなんだろう?トレーニングプロセスは、この特定の接続を見ていなかったし、レイヤー60の出力がレイヤー3に入るのも見てなかったはず。すごく面白い読み物で、これらのモデルに他にどんな有用な情報がエンコードされているのか気になるね!
いやー、めっちゃ楽しい読書だった!r/localllamaに投稿されたサーバー探しの話、すごく好きだったよ。AIの「議論」から欠けているのは、抽象的な数学的定式から直感的な機能理解に至る思考の流れだと思うんだけど、この記事でそれを見事に示してくれたね。3blue1brownもトランスフォーマーについて素晴らしいシリーズをやってたし、すごいよね。お疲れ様!
これを読むのが本当に楽しかったです。一般的な人たちは、あなたが説明したような神経解剖学を持っているからこそ、人生の中でこのことを直感的に経験している気がします。知識には特定の幾何学があって、直交的な動きが可能になるのが本当に魅力的です。これを公開してくれてありがとう、あなたのおかげで素敵な一日になりました!
ありがとう!
すごい記事だね。著者が言ってる通り、base64の部分は確かに変だよね。同時にデコードして理解できるってのが不思議だし。英語やドイツ語みたいに普通に使えるのは受け入れられてるのに、base64で考えると急に直感的じゃなくなるのが面白い。
なんで?ただの別のアルファベットや記号のセットじゃん。
中間層の使い方については、だいたい同じ直感を持ってるけど、自分のハードウェアで動かせる小さなモデルではあまりうまくいってないんだ。YouTubeにループ層モデルについての動画があるよ https://www.youtube.com/watch?v=pDsTcrRVNc0 それを見た後、思いついたことをコメントに書いたんだけど、もちろんすぐに埋もれちゃった。ここでその要点を再投稿するね。ループ層から利益を得るなら、すべてのパラメータ層は他のすべての層の前後にあるから、層の順序は全く固定する必要がないってことになる。層を何度も循環させるとき、特定の問題に対して特定の層のためにやってるの?そうなら、繰り返しの効果がない他の層はスキップできるのかな。スキップできる(いつスキップするかも分かる)し、繰り返しもできる(いつ繰り返すかも分かる)なら、次にどの層が必要かを決めるメカニズムが必要だよね。それって、ループする単一層のMOEモデルじゃない?層を深い無条件の層ではなく、広い選択肢のセットとして保存する感じ。次の層は何にするか(またはループを抜けるか)を選ぶことになるけど、ループを抜けるためのしきい値は各イテレーションで下がっていくから、最終的には必ず抜けることになる。調整可能なしきい値の「考える強さ」ノブが必要だね。
面白いアイデアだね。ループ内のほとんどのレイヤーが順番通りであるという制約を緩めると、組み合わせ爆発の問題が出てくると思う。でも、試してみる価値はあるよね:トランスフォーマーブロックを呼び出す順番をランダムにして、パフォーマンスに影響があるか見てみよう。もし影響がなかったら、それはすごく興味深い。
この書き方にはちょっとムズムズする感じがあるな。今の時点で、合成脳をいじってるような気がする。脳と比べるとCPUのブロックに近いって主張もできるし、例えばHW JPEGデコードのIPブロックをコピー&ペーストするのと変わらない。でも、ここでの違いは、これらのブロックや器官を「発見」しているってことだと思う。設計されたものじゃなくて、進化したものなんだよね。
いつか、oobabooga Text-Generation-WebuUIのダイナミックレイヤー修正コードを整理して共有するつもりだよ。設定を入力して、新しいリレイヤリングアーキテクチャを適用できるんだ。こういう脳がダメになったモデルとチャットするのは本当に変な感じだね。
LLMの「脳手術」って概念が面白いな、ネットワークがどれだけ不透明かっていう点で。llama.cppがビジョンモデルサポートを始めた頃にやったことの一つは、プロジェクターが生成した画像埋め込みのランダムな数字をゼロにしたり変更したりするコードをハックして、LLMにその画像を説明させることだったんだ。めっちゃ面白かったよ。普通のアイテムの説明から、突然背景にいない人たちが拍手してるとか、他のことを作り出したりするのに変わったりした。しばらくしてやめちゃったけど、もう一度やってみて、ベクトルの次元と「意味」の関連性を見つけられるか実験してみるべきだね。
そうだね、ハッカーにとっては素晴らしい時代だよ!
ゴリアテの驚くべき点は、パフォーマンスが大幅に向上したことではなく、あんなものがちゃんと機能したことだよね。今でもどうしてこれがもっと注目されなかったのか理解できない。詳しく調べたわけじゃないけど、合併したモデルやゴリアテのような「拡張」モデルが、どうして一貫した出力を生成できるのかに驚いたのを覚えてる。個人的には、あれは小さなクリエイターたちがエンターテインメントのために作ったコミュニティモデルで、実際にはRedditや4chan、DiscordのローカルLLMグループにしか興味がないものだと思う。みんな掲示板で「それいいね」って軽く話すことはあっても、論文が書かれることは少ないし、学者や企業の研究者が気づく可能性も低いよね。そう考えると、例えばラマとクウェンみたいな全く異なるモデルのレイヤーを組み合わせて、ちゃんと動かすことができるのか気になる。数学のプローブを使っても、予想外の問題にぶつかることがあるし、LLMは変な方法で算数を失敗するんだ。答えを間違えるというより、ほぼ正しいけど最後の数字を書くのを忘れちゃう感じ。まるで途中で飽きちゃったみたいに。あるいは、中間で二つの数字を入れ替えたり。正しい数字を出力するけど、パーサーを壊す余分な文字がついてきたりする。文法解析を使うことで、LLMが期待されるトークン(つまり数字)だけを出力するように強制できるかな?それとも、スコアリングの面で実際のトークンごとの確率を見て、正しい数字がどれくらい離れているかを確認できるかも。
まだ簡単じゃないよね。多桁の数字は有効なトークンの組み合わせが膨大に作れるから。ブログのコードは部分的な答えから有用なメトリックを導き出すのに役立つよ。
趣味の人たちが隙間を埋めるにはいい場所だね。学者が研究するには十分面白くないのかもしれないし、企業のMLなら既存のものを微調整する方が時間をかけるよりも効率的だろうし。リソースが限られた中国のラボでも、4090スケールのモデルにはあまり関心がないみたいだね。
素晴らしいまとめだね!発見のプロセスをもっと多くの人が見せてくれたらいいのに、結果自体よりも面白いことが多いから。結果もすごく興味深いし、抽象的な推論を重ねてパフォーマンスが向上するのは面白いし、確率結果を示すヒートマップもいいね。学術文献も追いついてきてるみたいだし: - *[SOLAR / DUS (Kim et al., 2023)](https://arxiv.org/abs/2312.15166)* — 30Bパラメータのベースラインを上回る10.7Bモデルを構築するためにトランスフォーマーレイヤーを複製した。 - *[The Curse of Depth (2025)](https://arxiv.org/abs/2502.05795)* — これがなぜ機能するのかを説明している:Pre-LNが深いトランスフォーマーレイヤーをアイデンティティ関数に収束させるため、中間レイヤーが実際の計算が行われる場所で、それを複製することでその能力が集中する。 - *[Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth Approach (Geiping et al., NeurIPS 2025)](https://arxiv.org/abs/2502.05171)* — このアイデアを論理的な結論に持っていく:推論時に繰り返しブロックを単一で訓練したモデルで、パラメータを追加せずに推論の深さをスケールアップする。
こういうモデル手術のアプローチを使って、他のモダリティを追加できたらめっちゃ面白いよね。例えば、テキストだけのモデルに視覚を追加するみたいな。あと、トークンレベルで計算を調整するのもすごく興味深い。デフォルトは0ループだけど、1ループの方がいいかもしれないし、10ループだともっと良くなるかも。
あなたの研究は、推論時の推理がどう機能するかについて何か洞察を与えてくれますか?