同じ重みでも積み方でバッチと文脈とキャッシュの取り合いが変わります。表で軸を固定し数値承認後に本番へ載せてください。
M4 でローカル推論を組むときMLX-LMかトランスフォーマーズかは、バッチとキーバリューキャッシュとユニファイドメモリの三本柱で決めます。ローカル推論マトリクス、多モデルルーティング、可観測性、埋め込みとチャンクと併読してください。第一フレームワークごとにメモリ載せ方が違い曲がり目がずれます。第二同時セッションとバッチが重なると尾部遅延だけ伸びます。第三ノートだけで検収すると専用筐体やリモートで数値が変わります。
選定シナリオ
素早く安定運用なら MLX 優先、評価やフックを広く触るならトランスフォーマーズ優先が分かりやすいです。
| 観点 | MLX-LM | Transformers |
|---|---|---|
| 狙い | 同一モデルをオンプレで速く回す | 既存スクリプトと拡張を流用する |
| 運用 | 生成コマンドが短い | パイプライン選択肢が広い |
| 切替 | レイテンシ最重視で一本化 | 多モデルを同じ抽象で束ねる |
バッチサイズとメモリ対照表
絶対値は環境依存のため同一筐体の相対比較に使います。キャッシュは文脈長に比例しやすく、バッチは同時系列数に直結します。
| 項目 | 記録例 | 注意 |
|---|---|---|
| 文脈長 | 上限を段階的に上げた各点 | 曲がり目でピーク常驻 |
| バッチ | 一・二・四の階段 | 初トークン対秒間トークン |
| 圧迫 | ピーク常驻とスワップ有無 | 熱でクロック低下を併記 |
検収手順と監視指標
其一量子化とトークナイザをカード一行に固定。其二文脈長だけ増やし常驻と初応答を記録。其三文脈固定でバッチだけ増やし九五分位と秒間トークンを分離。其四コマンド列をログ化。
python -m mlx_lm.generate --model ./weights --prompt "検収用短文" --max-tokens 256 --temp 0.2其五生成でキャッシュを明示。其六専用 Mac やリモートで同表を踏み往復遅延を上乗せして合意内か確認。
model.to("mps"); model.generate(**inputs,max_new_tokens=256,do_sample=False,use_cache=True)よくある質問
どちらが速いか。実装差が残るため自前表で比較してください。
キャッシュオフは。切り分けには有効、本番遅延とは別と明記。
ユニファイドメモリでも足りない。同時本数の上限を規約に書くのが安全です。