Unsloth、MiniMax-H3のFP8/INT8版を公開 レンダリングピーク36.97GB

スペック

ライセンスMiniMax H3 Community License Agreement
重みの公開FP8およびINT8の事前量子化済みPyTorchチェックポイント
配布形式・量子化INT8 symmetric、FP8 e4m3、per-output-channel absmax scales

メモリの目安はパラメータ数×0.6バイトの概算で、実際はコンテキスト長と実装で変わります

UnslothはHugging Faceのunsloth/MiniMax-H3-FP8リポジトリで、動画と音声を同時生成するMiniMaxAI/MiniMax-H3のFP8およびINT8事前量子化済みPyTorchチェックポイントを公開しました。40.23GBのpruned bf16ソースに対してチェックポイントは20.25GBに収まり、エンドツーエンドのレンダリングピークは57.11GBから36.97GBに下がります。

MiniMaxは文章、音声、画像、動画、音楽を扱うマルチモーダルモデルを開発するAI企業です。MiniMax-H3は最大15秒・24 FPSの動画と32 kHzステレオ音声を同時に生成し、音声は後付けではなくモデル出力に含まれます。

何を量子化したか

対象は2系統です。fl2va_prunedは画像0〜2枚とテキストを入力とするキーフレーム(先頭・末尾フレーム)版、ref2va_prunedはプロンプトと画像・動画・音声の参照を最大12件受け取るオムニリファレンス版です。どちらも同じ200個のメインブロックmatmul(パラメータの95.8%)を量子化し、1-D gain、bias、modulation path全体はビット単位で変更していません。INT8は対称量子化、FP8はe4m3で、いずれも出力チャネルごとのabsmaxスケールを使います。量子化元はComfy-Org/MiniMax-H3のminimax_h3_fl2va_pruned_bf16.safetensorsとminimax_h3_ref2va_pruned_bf16.safetensorsです。

Ref2VA版では313個のLinearを量子化し、55個をスキップ、adaLNは全精度のままです。INT8側には全313個にグループサイズ256のConvRot Hadamard回転をかけています。

ファイル構成

ワークフロー ファイル サイズ
fl2va(transformer/) MiniMax-H3-INT8.pt 18.86 GiB
fl2va(transformer/) MiniMax-H3-INT8-ConvRot.pt 18.86 GiB
fl2va(transformer/) MiniMax-H3-FP8.pt 18.87 GiB
ref2va(transformer_ref/) MiniMax-H3-Ref2VA-INT8-ConvRot.pt 18.86 GiB
ref2va(transformer_ref/) MiniMax-H3-Ref2VA-FP8.pt 18.87 GiB

テキストのみの生成もfl2vaで扱います。2つのパーティションは重みが別で相互交換できません。クラス、config、635キーのstate dictが同じため、取り違えてもエラーにならず誤った重みで生成されます。区別できるのはファイル名のRef2VAだけです。INT8とINT8-ConvRotの両方がある場合はConvRot版が新しいビルドです。

使い方と要件

  • Diffusersとtorchaoで利用します。
  • INT8はtorch.compileと併用、FP8はtorch.compileなしが推奨です。
  • -ConvRot形式はHadamard回転済みの重みを格納しており、活性値を回転させる対応ローダーが必要です。古いローダーはフォーマットタグで読み込みを拒否します。
  • stable-diffusion.cppは外部のチャネル別スケールを読むint8 linearパスがないため読み込めません。sd.cppではunsloth/MiniMax-H3-GGUFを使います。
  • ライセンスはMiniMax H3 Community License Agreementで、Applicable Territoryの定義と一部法域の除外があります。

サンプルは960x544、124 frames、24 FPS、8 steps、guidance 1.0、seed 11で単一カード上で生成しています。

検証結果

Ref2VA版について、同一プロンプト・seed・形状(20 steps、2プロンプト、画像参照1件)でbfloat16版と比較したSSIMは、INT8が0.92と0.82、FP8が0.88と0.78でした。bfloat16同士の再レンダリングでは1.00です。原文はこれらを品質スコアではなく発散の指標と位置づけ、構図は同じで細部が再配分されると説明しています。

この記事の固有名詞

コメント (0)

まだコメントはありません。

コメントを書く

2000文字以内