17P by kuroneko 9달전 | favorite | 댓글 3개
  • 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에서 실행 가능한 방법이 나오는 건 아닐지....

오, 흥미로운 프로젝트네요. 감사합니다!
CPU - RAM 간의 병목을 줄이기 위한 시도들도 많이 이뤄질거 같습니다 +_+