17 points par kuroneko 2023-07-21 | 3 commentaires | Partager sur WhatsApp
  • Une bibliothèque pour exécuter Stable Diffusion sur un Raspberry Pi Zero 2 avec 512 Mo de RAM.
  • Développement de la bibliothèque OnnxStream, axée sur l’optimisation de la consommation mémoire.
  • L’utilisation mémoire est optimisée en séparant les composants qui fournissent les poids au modèle.
    • En théorie, il est possible d’exécuter le modèle sans rien écrire sur le disque en transmettant directement les poids depuis un serveur HTTP.
  • Résultat : jusqu’à 55 fois moins de mémoire utilisée qu’avec OnnxRuntime, mais avec une vitesse 0,5 à 2 fois plus lente.
  • Cependant, le modèle VAE inclus dans Stable Diffusion utilise encore environ 1 Go de RAM, même avec cette bibliothèque.
    • L’utilisation mémoire a été davantage optimisée pour le modèle VAE via une quantification statique 8 bits (W8A8).
    • Au final, il a réussi à générer une image en 3 heures sur un vrai RPI Zero 2.
    • La consommation mémoire finale n’est plus que d’environ 260 Mo de RAM.

3 commentaires

 
wkang586 2023-07-31

À quel point voulez-vous maltraiter ce petit machin.....
J’ai l’impression que l’être humain est la créature la plus barjo qui soit.

 
kuroneko 2023-07-21

C’est vraiment impressionnant. Faire tourner un modèle de plusieurs Go avec 260 Mo de RAM...

Le fait que cela ait pris 3 heures vient surtout du Raspberry Pi ; sur un CPU hautes performances, ce serait évidemment bien plus rapide.
Et cela consomme aussi beaucoup moins de RAM.

À ce rythme, on finira peut-être par voir une méthode permettant de l’exécuter en serverless à l’edge....

 
ninebow 2023-07-21

Oh, projet intéressant. Merci !
J’imagine qu’il y aura aussi beaucoup de tentatives pour réduire le goulot d’étranglement entre le CPU et la RAM +_+