GeekNews의 xguru님께 허락을 받고 GN에 올라온 글들 중에 AI 관련된 소식들을 공유하고 있습니다.
소개
VAE decoder in W16A16 precision
VAE decoder in W8A32 precision
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 정도의 램만 사용함.