17 pontos por kuroneko 2023-07-21 | 3 comentários | Compartilhar no WhatsApp
  • Biblioteca para executar Stable Diffusion no Raspberry Pi Zero 2 com 512 MB de RAM.
  • Foi desenvolvida a biblioteca OnnxStream com foco na otimização do consumo de memória.
  • O uso de memória foi otimizado separando os componentes que fornecem os pesos ao modelo.
    • Em teoria, é possível executar o modelo recebendo os pesos diretamente de um servidor HTTP, sem gravar nada em disco.
  • Como resultado, ela usa até 55 vezes menos memória do que o OnnxRuntime, mas é de 0,5 a 2 vezes mais lenta.
  • Porém, o modelo VAE incluído no Stable Diffusion ainda usa cerca de 1 GB de RAM mesmo com essa biblioteca.
    • O uso de memória do modelo VAE foi ainda mais otimizado com quantização estática de 8 bits (W8A8).
    • No fim, foi possível gerar uma imagem em um RPI Zero 2 real em 3 horas.
    • No resultado final, foram usados apenas cerca de 260 MB de RAM.

3 comentários

 
wkang586 2023-07-31

Quanto mais vocês querem atormentar aquele coisinha minúscula.....
Acho que os humanos são as criaturas mais bizarras que existem.

 
kuroneko 2023-07-21

É realmente impressionante. Rodar um modelo de vários GB com 260 MB de RAM...

O fato de ter levado 3 horas também é por ser um Raspberry Pi; em uma CPU de alto desempenho, obviamente parece ser mais rápido.
E consome bem menos RAM também.

Desse jeito, será que não vai surgir um método que permita rodar isso na Edge com Serverless....

 
ninebow 2023-07-21

Ah, que projeto interessante. Obrigado!
Acho que também veremos muitas tentativas de reduzir o gargalo entre CPU e RAM +_+