![見出し画像](https://assets.st-note.com/production/uploads/images/146421703/rectangle_large_type_2_8423043ec8f79f330c92af6c7dd454fc.png?width=800)
iOS 18 / coremltools 8の新しいモデル圧縮手法を試す
下記記事にまとめたcoremltools 8 / iOS 18の新しいモデル圧縮手法を実際に試してみたい。
WWDC24の同セッション内では、Stable Diffusion XLのモデルを5.14GBから(新しいPalettization手法により)1.3GBに圧縮。
![](https://assets.st-note.com/img/1720267410595-YDy9aLYw7H.png?width=1200)
(セッション内では "Post training compression with calibration data" はデータが必要なのでスキップ)
データ不要の圧縮手段としてセッション内では PostTrainingPalettizer を用いてさらなる圧縮を行い、最終的に1.1GBまでの圧縮に成功している。
![](https://assets.st-note.com/img/1720267725611-0PrxtBRGdY.png?width=1200)
これらの圧縮を実際に手元で試したい。その試行錯誤のメモ。最終的に圧縮は成功し、画像生成までうまくいった。
環境構築
coremltoolsの環境構築手順はこちらの記事にまとめた。8.0b1をインストールする。
Stable Diffusionモデルを新しいPalettizationで圧縮する
iOS 17のPalettizationではテンソルごとにルックアップテーブルを割り当てることしかできなかったのが、iOS 18では、グループ化されたチャンネルごとにルックアップテーブルを割り当てられるようになった。
iOS 17では、フルウェイト・テンソルに1つのルックアップテーブルを割り当てることができた。iOS 18では、複数のルックアップテーブルを保存できるようになった。これにより、はるかに優れた精度を達成できる。
セッション内で用いられているコード
動画内に出てくるコードはこちら。
![](https://assets.st-note.com/img/1720268385113-WuY4yLfeXK.png?width=1200)
ここから先は
![](https://assets.st-note.com/production/uploads/images/30546/profile_06a075ed16533f7e4dbf64e4f60f99be.jpg?fit=bounds&format=jpeg&quality=85&width=330)
#WWDC24 の勉強メモ
WWDC 2024やiOS 18, visionOS 2についてセッションやサンプルを見つつ勉強したことを記事にしていくマガジンです。 …
最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/