17 ポイント 投稿者 kuroneko 2023-07-21 | 3件のコメント | WhatsAppで共有
  • 512MBのRAMを搭載したRaspberry Pi Zero 2でStable Diffusionを実行するためのライブラリ。
  • メモリ消費の最適化に焦点を当てたOnnxStreamライブラリを開発。
  • モデルに重みを提供するコンポーネントを分離し、メモリ使用量を最適化。
    • 理論上はHTTPサーバーから重みを直接渡すことで、ディスクに何も書き込まずにモデルを実行可能。
  • その結果、OnnxRuntimeより最大55倍少ないメモリで動作するが、速度は0.5〜2倍遅い。
  • ただし、Stable Diffusionに含まれるVAEモデルは、このライブラリを使っても約1GBのRAMを使用。
    • VAEモデルを8ビット静的量子化(W8A8)によってさらにメモリ最適化。
    • 最終的に実機のRPI Zero 2で3時間での画像生成に成功。
    • 最終的なRAM使用量は約260MB。

3件のコメント

 
wkang586 2023-07-31

あの小さな子をどれだけいじめるつもりなんだろう……
人間こそが最も猟奇的なクリーチャーのようです。

 
kuroneko 2023-07-21

本当に驚きですね。数GBもあるモデルを260MBのRAMで動かすなんて……

3時間もかかったのはラズベリーパイだからであって、高性能CPUでは当然もっと速いようです。
RAMの消費もずっと少ないですし。

このままいくと、ServerlessでEdge上で実行できる方法が出てくるのではないかと……

 
ninebow 2023-07-21

おお、興味深いプロジェクトですね。ありがとうございます!
CPU - RAM 間のボトルネックを減らすための試みも、たくさん行われそうですね +_+