mlx-community、Ming-Image-0.1-Design-Layerの4-bit MLX版を20.5GBで公開

スペック

ライセンスMIT
重みの公開事前量子化済みMLX重み
配布形式・量子化mllm/は4-bit、connector/とtransformer/は8-bit、その他はbf16/f32

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

mlx-communityは、Hugging Faceでレイヤー分解モデルmlx-community/Ming-Image-0.1-Design-Layer-4bitを公開しました。Apple Silicon向けの事前量子化済みMLX重みで、総サイズは20.5 GB(bf16リポジトリは49.8 GB)、36 GB Macに収まります。上流はinclusionAI/Ming-Image-0.1-Design-Layerで、ライセンスはMIT、pipeline_tagはimage-to-imageです。

MLXはAppleの機械学習研究チームが開発する配列計算フレームワークで、Appleシリコン向けの機械学習を想定しています。

どこを何ビットにしたか

量子化はweight-onlyのアフィン量子化、グループサイズは64です。DiTは8ビットを下回らせない方針で、原文は「weight-only int4をDiTに適用すると速度の利得なしに実際の品質劣化を招く」と説明しています。

コンポーネント このティア
mllm/: MoE MLLM(attention、dense/shared-expert MLP、256個のrouted experts) 4-bit
connector/: Qwen2-1.5B connector 8-bit
transformer/: DiTのattentionとfeed-forward 8-bit
MoE routers、embeddings、norms、Qwen2.5 ViT、f32 projection heads(mlp/)、VAE、DiTのconditioning layers(adaLN、embedders、final layer) bf16 / f32

ディレクトリ構成はbf16リポジトリの上流ツリーを踏襲し、量子化された重みの隣にMLXの.scales / .biasesを置き、各コンポーネントのconfig.jsonにquantizationブロックを持たせています。Swiftローダーは公開された状態のまま読み込みます。公開版をロードして得られるパラメータは、bf16スナップショットをロード時に量子化した場合と全パラメータでビット単位に一致することが検証済みです。

品質とメモリ・速度

品質のゲートは512の実写サイネージ5点と1024の1点(bf16と同一ノイズ)です。レイヤーを入力に対して再合成した品質はbf16で24.4–33.7 dB、8-bitはbf16比0.1 dB以内、4-bitは全ジョブでbf16比0.2 dB以内でした。レイヤーカバレッジは8-bit・4-bitともbf16と同一です。テキストレイヤー外にはみ出す文字数(最も難しい1枚)はbf16が26文字、8-bitが30、4-bitが35でした。

メモリと速度はM5 Maxでプロセスのphys_footprintとして測定し、MLXのbuffer cacheは2 GB(MLXEngineの既定値)に制限しています。

項目 値
ロード後の常駐メモリ 7.6 GB
ピークプロセスフットプリント 20.0–20.6 GB(1024バケット、4〜12レイヤー)
MLXEngineの宣言値 常駐7.9 GB + activation 15.6 GB(36 GB Macで許容)
リクエスト上限 12 layers
速度(12 steps、CFG 2.0) 512バケット・4レイヤーで134秒(bf16は131秒)

12レイヤーではマルチフレームのdenoiseがconditioningを上回るとされています。リクエスト上限の12レイヤーは測定済みのエンベロープです。完全な表はポートのoracleのGATE-RESULTS §8にあります。

試し方

実行環境はApple SiliconのMacで、Swift/MLXポートming-image-swift(提供元: xocialize/ming-image-swift)のMLXEngineから読み込みます。原文が示すコードは次の通りです。

import MLXMingImage
import MLXToolKit

let package = MingImageLayerPackage(configuration: MingImageLayerConfiguration(quant: .int4))
try await package.load()
let response = try await package.run(LayerDecomposeRequest(image: design, spec: spec, resolution: 1024)) as! LayerDecomposeResponse

4-bitティアはメモリ制約のあるMac向けで、Mac側でbf16重みを保持せずに利用できます。同じMing-Image (MLX) コレクションにはmlx-community/Ming-Image-0.1-Design-Layer-bf16も並んでいます。ライセンスは上流と同じMITで、上流のLICENSEが同梱されます。

この記事の固有名詞

コメント (0)

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

コメントを書く

2000文字以内