r/LocalLLaMA🔥 223
💬 61

推論速度最大7.8倍!Qwen3を高速化する「Orthrus」が凄すぎる

Franck_Dernoncourt
1日前

ディスカッション (60件)

0
Franck_DernoncourtOP🔥 223
1日前

「Orthrus」は、Qwen3-8Bなどの既存モデルの重みを固定したまま、推論を劇的に高速化する画期的な手法です。出力分布を完全に維持しつつ、最大7.8倍のトークン生成速度を実現します。

仕組み

固定された自己回帰型(AR)Transformerの各層に、学習可能な拡散アテンションモジュールを注入します。両方のヘッドでKVキャッシュを共有し、拡散ヘッドがK=32トークンを並列投影。その後、ARヘッドが検証を行い、最長の合致プレフィックスを採用します。これにより、元のモデルと論理的に同一の出力分布を保証します。

主な結果

  • 推論効率: MATH-500ベンチマークにてTPF(トークン/フォワード)で最大7.8倍、実効速度で約6倍の高速化。
  • 学習効率: パラメータの16%を学習。10億トークン未満、8×H200環境で24時間で完了。
  • 既存手法との比較:
    • Diffusion系(Dream, Fast-dLLM-v2等): ベース重みを変更するため精度が低下しますが、Orthrusはベースを固定するためQwen3-8Bの精度を完全に維持。
    • Speculative Decoding系(EAGLE-3, DFlash等): 外部のドラフター不要、キャッシュの分離不要で、TTFT(初トークン生成時間)のペナルティもゼロ。KVオーバーヘッドはO(1)(約4.5MiB)で、MATH-500でのアクセプタンス長は11.7と圧倒的です。
  • 高速化の鍵: 多段階ではなく単一段階のデノイジング、およびKLダイバージェンスを用いた蒸留が効果的でした。

制限事項

ベースモデルの制約(バイアス、ハルシネーション、知識の欠如)をそのまま引き継ぎます。現状の評価はQwen3のみで、貪欲法(Greedy)+リジェクションサンプリングのみ対応しています。

1
hainesk
👍171日前

これってQwen 3.5か3.6でもできる?あとMoEモデルでも動くかな?

2
KptEmreU
👍131日前

おっ、ぜひQwen3.5 9bも対応して!VRAM 16GBしかない貧弱な環境だからマジで助かる!

3
Round-Beach7348
👍151日前

うん、Orthrus-Qwen-3.5-9Bも近いうちに公開するよ。

4
Rare_Potential_1323
👍21日前

Carnice-9bの方がいいんじゃないかな。

5
MmmmMorphine
👍3約20時間前

趣味や学習用としては理想的な量だよね!これまで試してきたトリックや怪しいレポジトリが山ほどあるよ。大抵は失敗に終わるけど、少なくとも何かしらは学べるしね…。

「興味深い時代を生きよ」っていう言葉みたいだ。

まあ、実用性を求めている人にとっては、ある程度までは最悪だろうけどね(笑)

6
Round-Beach7348
👍301日前

もちろん、Qwen 3.5と3.6のサポートももうすぐ来るよ!MoEモデルやその他のアテンションベースのアーキテクチャとも互換性があるから安心して。

7
Finanzamt_Endgegner
👍4約23時間前

学習用コードも公開する予定はある?

9
met_MY_verse
👍141日前

!RemindMe 12時間

10
Endlesscrysis
👍51日前

なんであえて古いモデルを選んだのか少し気になった。

11
Round-Beach7348
👍201日前

最初はQwen3から始めたんだ。ドキュメントがしっかりしてて標準的なデンスモデルだし、研究のアイデアを検証するのに最適だったからね。他のモデルにも順次対応していく予定だよ!

12
Endlesscrysis
👍61日前

オッケー、3.5 9bの方をお願い!

13
Round-Beach7348
👍141日前

了解、Qwen3.5とQwen3.6の追加作業中だから楽しみに待ってて!よかったらレポにスターして最新情報を追ってね!

14
wesmo1
👍91日前

これってllama.cpp側でもサポートを追加する必要があるの?

15
Round-Beach7348
👍281日前

そう、カスタムカーネルのサポートが必要になる。今まさにモデル対応を広げているところで、llama.cppもロードマップに入ってるよ。コントリビューションも大歓迎!

16
oxygen_addiction
👍11約24時間前

llama.cppにPR投げてくれよ。そしたらみんな手伝えるから。

17
Round-Beach7348
👍5約23時間前

それいいアイデアだね、ありがとう!

18
Party-Special-5177
👍71日前

8Bのデモは出たけど、これが大規模モデル(400B超)で、モデル全体をVRAMに乗せなくても(つまり適切な量子化を行えば)許容できる推論速度になるのかがすごく気になる。モデルサイズが大きくなると、この高速化はどれくらい効いてくるの?

19
Round-Beach7348
👍61日前

理論上、モデルサイズが大きくなるほど高速化の恩恵もスケールするはずです。KVオーバーヘッドはモデルサイズに関係なくO(1)なので、VRAMを圧迫することはありません。唯一の追加コストは拡散モデルのパラメータ分だけですが、全体から見ればごくわずかな割合ですよ。

20
ScoreUnique
👍2約23時間前

この原則がMistral mediumでも通用するなら、大当たりだね。

21
letsgoiowa
👍61日前

頭の弱い自分にいくつか教えて:1. MOEアーキテクチャでも動く? 2. 何かデメリットはあるの? 3. CPU/RAMへのオフロードを併用しても大丈夫?

22
simcop2387
👍101日前

主な懸念点はこんな感じかな:

  1. VRAMの使用量が増えること。実質的に2つ目のモデルを並列で動かすことになるわけだし、元のLLMと1:1のオーバーヘッドにはならないとは思うけどね。だからVRAMにかなり余裕がない環境だと、パフォーマンス向上どころか逆に負荷が大きすぎて動作が重くなる可能性がある。
  2. 必要な計算量も確実に増える。例えば自分はTesla A16(実質的にA2 16GBを4枚積んだ構成)を使ってるんだけど、ハードウェア制限で60Wに抑えられてるんだ。ある程度のサイズのモデルはロードできるけど、大規模なタスクだと計算能力や電力制限に引っかかることが多いから、リアルタイム性を求めない大量のバックグラウンド処理(数百万単位のチャンクを埋め込みモデルに流し込むような作業)用に使ってる。LLMだけで電力と計算リソースをフルに食いつぶすこともあるから、今回の手法だとトータルの時間は変わらないかもしれない。まあ、後でテストしてみるつもりだけどね。
  3. 投稿にもある通り、拡散モデルの性能は学習データに依存する。だからコーディングタスクだけで学習させたら、クリエイティブな文章作成とかには使い物にならなくなるだろうね。そういうケースだと、拡散モデルに費やす時間と、結果が使えないという無駄を考えると逆に遅くなるはず。だから特定のタスク向けに小さなモデルを使い分けるみたいに、複数の拡散モデルを用意して切り替えるのが現実的かもね。

CPU/RAMオフロードでも動くとは思うけど、研究段階の実装でそこまで最適化されているかは疑問。GPUとシステムRAMの間でデータが行ったり来たりするような変な動きにならないよう、レイヤーを適切に配置する調整は必要だろうけど、それでも速度向上は見込めると思うよ。

23
oxygen_addiction👍 64
1日前

Qwen 3.6 27Bでやるなら、コミュニティでお金を出し合って実現させそうな勢いだな。

24
Finanzamt_Endgegner
👍351日前

いやいや、コミュニティの中にはそれだけの計算資源を持ってる人たちもいるっしょ👀

25
colin_colout
👍14約23時間前

金を持ってる連中が、計算リソースを持ってる連中に金を払うってわけか。

26
Hobbitcraftlol
👍91日前

全く別の研究が必要だな。qwen3.6って標準的なTransformerじゃないと思うし。

仮にゲート付きのDeltaNetモデルじゃなかったとしても、27Bを再現するには100GB以上のメモリが必要になるだろうな(論文には8×H200を8Bのために使ったって書いてあるし、笑えるわ)。

27
Finanzamt_Endgegner
👍3約24時間前

たぶん高速化のためじゃないかな

28
oxygen_addiction
👍15約24時間前

3.6が出ることはすでに確約されてるから、そこは問題なさそうだよ。

8BのdenseモデルでH200×8基を24時間使ったわけだよね。
27Bでもやれるはずだし、コストがかさむだけさ。もし性能向上が本物なら、みんなで出資して実現できるんじゃない?

29
StudentDifficult8240
👍61日前

長文コンテキストへの対応はどう?Dflashは16kまではいい感じだけど、それ以上だとPP(パープレキシティ)がかなり悪化しちゃうんだよね。

30
Round-Beach7348
👍151日前

64Kコンテキストまでテストしたけど、かなりうまくいってるよ。DFlashで長文時に性能が落ちるのは、KVキャッシュを独自に持つ外部ドラフターを別途維持してるからじゃないかな。コンテキストが伸びると分布のズレが生じるのかも。Orthrusは外部ドラフターを使わずKVキャッシュを共有してるから、その問題は起きないはず。ぜひ試してみて、結果を教えてよ!

31
StudentDifficult8240
👍31日前

了解!ありがとう。

32
MerePotato
👍41日前

PPってPrompt Processing(プロンプト処理)のこと?それともPerplexity(パープレキシティ)?

33
Round-Beach7348
👍31日前

パープレキシティだよ

34
Finanzamt_Endgegner
👍31日前

長文コンテキストはどう?Dflashだとその辺りに問題があるんだけど。

35
Round-Beach7348
👍31日前

64Kのコンテキストまでテストして、うまく動作することを確認しています。DFlashで長文脈の際に精度が落ちるのは、おそらく外部のドラフターを別々に保持していて独自のKVキャッシュを持っているからで、文脈が長くなるにつれて分布のズレが生じるのが原因でしょう。OrthrusはKVキャッシュを外部ドラフターなしで共有しているから、その問題は起きにくいと思います。ぜひ試して、結果を教えてください!

36
Finanzamt_Endgegner
👍21日前

マジですごいな。より大きなモデルを動かせる計算リソースを持ってそうな人たちにこの情報を共有しておくよ (;

37
Round-Beach7348
👍31日前

ちょっと試してみたんだけど、コンテキスト長40KまでのベンチマークだとDFlashより2倍くらい速いよ(かなり長いコンテキストなら5倍いけるかも)。DFlashは長文コンテキストだとかなり遅いからね。

38
FerLuisxd
👍141日前

RAM使用量の違いはどうなの?

39
okyaygokay
👍41日前

それと、macOSのMetalについてはどうなんだろう?

40
u23043
👍1約14時間前

論文には「ピーク時のGPUメモリオーバーヘッドは事実上無視できる(1%未満)」って書いてあるけど、どうやってるのか不思議だな。リンクされている8Bモデルは、オリジナルのQwen3バージョンより18%も大きいんだけど。

41
knownboyofno
👍111日前

ざっと見たけど、素晴らしい第一歩だね。コードは確認したけど、トレーニングパイプラインはGitHubにはないみたいだ。あと、長さ2048でしかやってないように見えるけど、それ以上でテストしたことはある?

42
Round-Beach7348
👍81日前

はい、フル学習パイプラインもまもなく公開予定です。最大64Kのコンテキスト長までテスト済みで、かなりいい感じに動いていますよ。ぜひ試してみて、エッジケースなどで何かあればフィードバックをいただけると助かります。

43
Thrumpwart
👍41日前

素晴らしい成果だね、本当に独創的。論文を読むのが楽しみだよ。

44
Queasy-Contract9753
👍51日前

これらのモデルって量子化できるの?

46
oxygen_addiction
👍3約24時間前

投稿には7.8倍とか6倍の高速化って書いてあるのに、どうしてGithub では平均5.36倍ってなってるの?

共有してくれてありがとう。感謝するよ。

47
Round-Beach7348
👍5約22時間前

指摘してくれてありがとう。5.36倍という数値は、評価した全タスクや設定の平均スピードアップ値だから、より保守的で集約的なパフォーマンスを表してるんだ。7.8倍というのは特定のタスクや設定におけるピーク時の結果、つまり手法の効果が最大限に発揮された「最大」のスピードアップ数値だよ。

48
Dany0
👍6約24時間前

終わった。俺の夢が叶うぞ。彼らに伝えてくれ、最高に愛してるって。トークンを腹いっぱい食らってやる。すごい量のトークンをな。

追記:いや待て、マジかよ、Greedy Samplingだけなのか??なんで?

温度パラメータ0の用途なんてオートコンプリートかリサーチ、それにツール呼び出しぐらいだろ。それにしてもマジかよ、これって回避不可能な制限なのか?

追記2:
パッと見た感じ、ベースモデルと比べてVRAMが全体で8-10%くらい増えるだけでデコード速度が4-5倍になるってことかな。プリフィル速度にはあまり影響なさそう?それでもめちゃくちゃ凄いけど。

ひょっとしてlOathsome AIのGPT Instantもこういう仕組みなのか?って今思ってるw

追記3:
そうそう、プリフィル速度に影響がないことは確認できたよ

49
Round-Beach7348
👍5約22時間前

フィードバックありがとう、本当に助かるよ。サンプリング(top_p, top_k)とグリーディデコーディングの両方をサポートしてるから、実装の詳細はリポジトリをチェックしてみて。

50
Honest-Kangaroo-1830
👍3約23時間前

もっと自然言語寄りのベンチマークを共有してもらえる?Math-500はMTPやSpec Decodingのドラフト受容率には一番都合のいいベンチマークだから、ワーストケースがどんなものか知りたい。

51
Round-Beach7348
👍3約22時間前

そう、論文ではMATH-500以外にも幅広いベンチマークを評価してるよ。MATH-500は主に図をプロットするためと、他の拡散適応手法(例えばFast-dLLM-v2など)が苦戦し始めるポイントを明確に示すための例として使ったんだ。

52
Honest-Kangaroo-1830
👍2約19時間前

確かにね。Math-500は最も好条件だから、最大アクセプタンスを測定するには一番きれいなデータセットが得られるんだろうね。他のデータセットもシェアしてもらえる?

追記:他のテスト手法だと大体2〜3倍増くらいに落ち着くね

53
ScoreUnique
👍4約23時間前

やあ、これはすごくワクワクするね。共有してくれてありがとう。学習パイプラインのコードは将来的にリポジトリでオープンソース化する予定はある?この手法を他のモデルで試したり、アーキテクチャをいじってみたりしたいんだ。素晴らしい仕事に感謝するよ。

54
Round-Beach7348
👍7約22時間前

はい、完全な学習パイプライン(データとコード)を近々オープンソース化する予定です。今はQwen3.5とGemma-4のチェックポイントのリリースを優先していて、それが終わり次第すぐにパイプラインも公開します。関心を持ってくれてありがとう。これを使って何を作ってくれるのか楽しみです。

55
More-Curious816
👍5約22時間前

このコミュニティ、日が経つにつれてどんどん好きになるわ

56
ManySugar5156
👍3約21時間前

これめちゃくちゃクールだね。2048トークンを超えるコンテキストでどう動くのか、あと量子化+llama.cpp構成で誰かテストした人がいるのか気になる。

57
Round-Beach7348
👍2約21時間前

64Kのコンテキスト長までテスト済みで、かなりうまく動作するよ。llama.cppに関しては、カスタムカーネルのサポートが必要になるね。現在より広範なモデルサポートに取り組んでいて、llama.cppとの統合もロードマップに入ってるよ。

58
laul_pogan
👍2約20時間前

見出しの7.8倍っていうのは「1フォワードパスあたりのトークン数」であって、実際の実行時間(ウォールクロック)じゃないね。正直な数値は6倍だし、そのギャップを見ればAR検証パスにかなりのオーバーヘッドがあることがわかる。各サイクルでフルフォワードを2回回してるわけだから。あと、MATH-500は数学のトークン列(数字の羅列、LaTeX演算子、構造化された証明ステップ)が非常に予測しやすいため、どの推測的手法にとってもアクセプタンス長のメトリクスが良く見えすぎてしまうんだ。EAGLE-3が通常強みを発揮するような、多様な散文や混合ドメインのコードでのアクセプタンス長についても「11.7対3.5」という結論を出す前に見てみたいね。

59
Valuable_Touch5670
👍2約18時間前

すごい!これ、私の勘違いじゃなければMTPをボコボコにしてるってこと?