라즈베리 파이에서 Stable Diffusion 실행
(github.com/vitoplantamura)- 512MB의 램이 있는 라즈베리 파리 Zero 2에서 Stable Diffusion을 실행하기 위한 라이브러리.
- 메모리 소비 최적화에 초점을 둔 OnnxStream 라이브러리를 개발함.
- 모델에 가중치를 제공하는 구성 요소를 분리하여 메모리 사용을 최적화함.
- 이론상 HTTP 서버에서 가중치를 직접 전달하여 디스크에 아무것도 기록하지 않고도 모델을 실행 가능.
- 결과적으로 OnnxRuntime 보다 최대 55배 더 적은 메모리를 사용하지만, 0.5~2배 더 느림.
- 하지만 Stable Diffusion에 포함된 VAE 모델은 이 라이브러리를 사용해도 1GB 정도의 램을 사용.
- VAE 모델을 8비트 정적 양자화(W8A8)를 통해 메모리 사용을 더 최적화함.
- 결국 실제 RPI Zero 2에서 3시간 만에 이미지를 생성하는데 성공.
- 최종적으로 260MB 정도의 램만 사용함.
정말 신기하네요. 몇 GB씩 되는 모델을 260MB의 램으로 실행한다니...
3시간씩 걸린 것도 라즈베리 파이라 그렇지, 고성능 CPU에서는 당연히 빠른 것 같습니다.
램은 훨씬 덜 먹고요.
이러다 Serverless로 Edge에서 실행 가능한 방법이 나오는 건 아닐지....