Ming-Image-0.1-Design、20.5GBの4bit MLX版が公開

スペック

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

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

mlx-communityは、inclusionAI/Ming-Image-0.1-Design(MIT)のApple Silicon向け事前量子化版としてmlx-community/Ming-Image-0.1-Design-4bitをHugging Faceで公開しました。総サイズは20.5GBで、bf16リポジトリの49.8GBに対して36GB Macに収まるメモリ制約向けのtierとされています。

どこを量子化したか

量子化はweight-only affine quantization、group size 64です。mllm/(MoE MLLM: attention、dense/shared-expert MLP、256のrouted experts)が4bit、connector/(Qwen2-1.5B connector)とtransformer/(DiTのattentionとfeed-forward)が8bitです。MoE routers、embeddings、norms、Qwen2.5 ViT、f32 projection heads(mlp/)、VAE、DiTのconditioning layers(adaLN、embedders、final layer)はbf16/f32のフル精度で保持されます。DiTは8bitを下限とし、原文はDiTへのweight-only int4は速度の利得なしに品質を損なうと説明しています。

レイアウトはbf16リポジトリの上流ツリーに従い、各量子化重みの隣にMLXの.scales/.biasesを置き、量子化コンポーネントのconfig.jsonにquantizationブロックを持ちます。このリポジトリをロードした結果は、bf16スナップショットをロード時に量子化した場合と全パラメータでビット同一であることが検証されています。Mac側でbf16重みを保持する必要はありません。

メモリと速度、品質(M5 Max)

計測はM5 Maxのプロセスphys_footprint、MLXのバッファキャッシュを2GB(MLXEngineの既定)に制限した条件です。

項目 4bit bf16
ロード後常駐 7.6 GB
ピークフットプリント 19.7 GB
12ステップ・1024² 42 s 39 s
12ステップ・2048² 243 s 245 s
レンダー品質(fp32真値比、1024²) 29.0 dB 41.9 dB
テキストボード完全一致 116/122 117/122
完全に正しいボード 10/16 12/16

ピークはconditioning段階で、4bit MLLMがロード・条件付けを行って解放されるタイミングであり、1024²・2048²・2560×1440のいずれでも19.7GBです。2048²クラスのVAEデコードは、chunkedなmid-attentionとtiled up pathで厳密に境界が定められています。MLXEngineは常駐7.9GB+activation 14.6GBと宣言し、36GB Macで許容されます。

テキストの取りこぼしは「Kexmote」「6 frt 8 in」のような1文字のタイポで、構図とゾーンは保たれています。live text用に予約されたゾーンはclean 19/20・text-free 20/20です。一方、native alphaがこのtierの最も弱い点で、ゲートの6被写体のうち1つ(鉢植え)を落とし、4/6となりました。別シードの実行では、bf16と8bitで初回から透明になったコーヒーカップが、4bitでは両フレーズとも不透明で返ったとされています。conditioning driftはfp32真値比のlearnable relL2でshort/json 0.290/0.291です。

使い方と注意

実行はApple Silicon Mac上のSwift/MLX port ming-image-swift(xocialize)が担います。Swift/MLXEngineではMLXMingImageとMLXToolKitをインポートし、以下のように4bit設定のパッケージを作ります。

import MLXMingImage
import MLXToolKit

let package = MingImageT2IPackage(configuration: MingImageConfiguration(quant: .int4))
try await package.load()
let response = package.run(T2IRequest(prompt: "…", width: 1024, height: 1024, seed: 42))

透明アセットを扱う場合は8bit版またはbf16版を使い、いずれの場合もインポート時にアルファを確認するよう案内されています。テキスト生成ではOCRで検証し、必要に応じて再生成するワークフローを維持します。

MLXはAppleの機械学習研究チームが開発する配列計算フレームワークで、Appleシリコン向けの機械学習を想定しています。本リポジトリはMITライセンスで、mlx-community/Ming-Image-0.1-Design-bf16と並ぶMing-Image (MLX) collectionの一部です。

この記事の固有名詞

コメント (0)

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

コメントを書く

2000文字以内