[GN] OnnxStream: 라즈베리 파이에서 Stable Diffusion 실행

GeekNewsxguru님께 허락을 받고 GN에 올라온 글들 중에 AI 관련된 소식들을 공유하고 있습니다. :smiley_cat:


소개

VAE decoder in W16A16 precision
VAE decoder in W16A16 precision
VAE decoder in W8A32 precision
VAE decoder in W8A32 precision
VAE decoder in W8A8 precision (generated by my RPI Zero 2 in about 3 hours)
VAE decoder in W8A8 precision (generated by my RPI Zero 2 in about 3 hours)

  • 512MB의 램이 있는 라즈베리 파이 Zero 2에서 Stable Diffusion을 실행하기 위한 라이브러리.
  • 메모리 소비 최적화에 초점을 둔 OnnxStream 라이브러리를 개발함.
  • 모델에 가중치를 제공하는 구성 요소를 분리하여 메모리 사용을 최적화함.
    • 이론상 HTTP 서버에서 가중치를 직접 전달하여 디스크에 아무것도 기록하지 않고도 모델을 실행 가능.
  • 결과적으로 OnnxRuntime 보다 최대 55배 더 적은 메모리를 사용하지만, 0.5~2배 더 느림.
  • 하지만 Stable Diffusion에 포함된 VAE 모델은 이 라이브러리를 사용해도 1GB 정도의 램을 사용.
    • VAE 모델을 8비트 정적 양자화(W8A8)를 통해 메모리 사용을 더 최적화함.
    • 결국 실제 RPI Zero 2에서 3시간 만에 이미지를 생성하는데 성공.
    • 최종적으로 260MB 정도의 램만 사용함.

원문

image

출처 / GeekNews