算力レンタルで SD img2img を Core ML の M4 に載せると、重み・キュー・mlmodelc が統合メモリを共有します。意思決定表と実行可能パラメータ、内リンクは コンパイル稿・ORT 稿・Wq/Wc 稿・費用稿。料金・購入は閲覧のみログイン不要です。
つまずき三つ
- 初回 compile がスループット化。ディスクキャッシュと批推論が同一統合メモリ。
- 待ちと拡散を一本タイムアウトにすると WAN 失敗がモデル扱いになり再試行でキャッシュ揺れ。
- オブジェクト直読みは TLS で CPU 占有。先に NVMe プレフィックス。
意思決定マトリクス
行=プロファイル、列=批推論・並行・ディスクキャッシュ・Wq/Wc。差分のたび再プロファイル。
| プロファイル | 批推論形状 | 並行セッション | ディスクキャッシュ | Wq/Wc |
|---|---|---|---|---|
| 夜間バルク | 膝までバッチ↑、解像度固定 | 16G1路/24Gはスワップ平坦で2路検証 | mlmodelc+タイル APFS、冷はオフホスト | Wq長、Wc=compile+p95 |
| 低遅延 API | バッチ1〜2 | 信号量2路、24Gはcompile同居時 | ウォームキャッシュ、冷は別巻 | Wq短/Wc分離計測 |
| 共有スライス | テナント毎キャップ | 並行上限+キュー深さ公開 | TMPDIR 分離 |
先にバッチ↓ |
枚/秒固定は扱わない。表はガードレール。
モデル変換とバッチサイズ
mlprogram/mlpackage に揃え版固定。批推論バッチは統合メモリ膝まで。尾ならステップ↓を先。詳細は mlmodelc 稿・ORT 稿。
並行セッション上限
ワーカーはグラフとデコード同居。二路は vm.swapusage 平坦+圧力解除を確認後。Wq/Wc 分離は WhisperKit 稿 参照。
ノード選定(港・新・日・韓・米西)
コスト
時間+egress+コールドcompile+タイムアウト再試行。ディスクキャッシュ前にストレージ同居。移設後は 費用稿 再読。
実行可能パラメータ
ブートストラップ貼付用。帯は目安。
# 統合メモリとスワップ(読み取り専用)
sysctl -n hw.memsize
sysctl -n hw.perflevel0.physicalcpu
sysctl vm.swapusage
# Core ML 作業領域をホーム混雑から分離
export TMPDIR="/Users/shared/scratch/coreml-sd/$JOB_ID"
mkdir -p "$TMPDIR"
# 例:行列の行に合わせて調整
export SD_MAX_BATCH=2
export SD_MAX_CONCURRENT_SESSIONS=1
export SD_WQ_SEC=120
export SD_WC_SEC=900
ランブック(ホスト追加前五段階)
- 台帳に checkpoint/converter/OS を固定。
- ウォーム compile 一回+コールドラベル。
- 固定解像でバッチ二分、p95/swap で停止。
- 待ちと拡散を別メトリクス。
- 移設後再プロファイル。
監視信号
- 常駐/
hw.memsize(16/24G)。 - Wc 張り付き率と NVMe 読取 vs GPU。
FAQ
外付け SSD=アーカイブ。ホットは内蔵。RTT↓=OOM 治癒ではない。