17 điểm bởi kuroneko 2023-07-21 | 3 bình luận | Chia sẻ qua WhatsApp
  • Thư viện để chạy Stable Diffusion trên Raspberry Pi Zero 2 với 512MB RAM.
  • Đã phát triển thư viện OnnxStream tập trung vào tối ưu hóa mức tiêu thụ bộ nhớ.
  • Tối ưu hóa việc sử dụng bộ nhớ bằng cách tách riêng các thành phần cung cấp trọng số cho mô hình.
    • Về mặt lý thuyết, có thể chạy mô hình mà không cần ghi gì xuống đĩa bằng cách truyền trực tiếp trọng số từ máy chủ HTTP.
  • Kết quả là dùng ít bộ nhớ hơn tối đa 55 lần so với OnnxRuntime, nhưng chậm hơn 0,5~2 lần.
  • Tuy nhiên, mô hình VAE đi kèm trong Stable Diffusion vẫn dùng khoảng 1GB RAM ngay cả khi dùng thư viện này.
    • Tiếp tục tối ưu hóa mức sử dụng bộ nhớ của mô hình VAE bằng lượng tử hóa tĩnh 8-bit (W8A8).
    • Cuối cùng đã thành công tạo ảnh trên RPI Zero 2 thực tế trong vòng 3 giờ.
    • Sau cùng chỉ dùng khoảng 260MB RAM.

3 bình luận

 
wkang586 2023-07-31

Muốn hành hạ cái bé tí đó đến mức nào nữa đây.....
Có vẻ như loài người mới là sinh vật kỳ quái nhất.

 
kuroneko 2023-07-21

Thật sự rất kỳ diệu. Một mô hình nặng tới vài GB mà lại chạy được với 260MB RAM...

Việc mất tới 3 tiếng chắc là vì đây là Raspberry Pi, còn trên CPU hiệu năng cao thì đương nhiên sẽ nhanh hơn nhiều.
Cũng dùng ít RAM hơn rất nhiều.

Cứ đà này thì biết đâu sẽ sớm có cách chạy được trên edge theo kiểu serverless....

 
ninebow 2023-07-21

Ồ, đúng là một dự án thú vị. Cảm ơn nhé!
Có lẽ cũng sẽ có nhiều nỗ lực nhằm giảm nút thắt cổ chai giữa CPU và RAM +_+