4P by neo 2023-10-04 | favorite | 댓글 1개
  • 이 기사는 Raspberry Pi Zero 2라는 512MB RAM을 가진 마이크로 컴퓨터에서 Stable Diffusion XL 1.0을 실행하는 논의를 다룹니다.
  • 도전 과제는 스왑 공간을 늘리거나 중간 결과를 디스크에 오프로드하지 않고 거의 10억 개의 파라미터를 가진 대형 트랜스포머 모델인 Stable Diffusion 1.5를 실행하는 것입니다.
  • 저자는 메모리 소비를 최소화하는 데 초점을 맞춘 작고 해킹 가능한 추론 라이브러리인 OnnxStream을 만들었습니다.
  • OnnxStream은 추론 엔진과 모델 가중치를 제공하는 컴포넌트를 분리하여 모델 파라미터의 다양한 유형의 로딩, 캐싱, 프리페칭을 허용합니다.
  • OnnxStream은 OnnxRuntime보다 메모리를 55배 덜 소비하면서도 0.5-2배 느릴 뿐입니다.
  • 이 기사에는 OnnxStream을 사용하여 VAE 디코더의 다양한 정밀도에서 Stable Diffusion 예제 구현에 의해 생성된 이미지가 포함되어 있습니다.
  • OnnxStream Stable Diffusion 예제 구현은 이제 SDXL 1.0을 지원하며, 이는 SD 1.5보다 계산 비용이 더 많이 들지만 더 큰 이미지를 생성할 수 있습니다.
  • OnnxStream은 SDXL 1.0을 300MB 미만의 RAM에서 실행할 수 있어 Raspberry Pi Zero 2에 적합합니다.
  • 이 기사는 SDXL 1.0에 대한 특정 최적화를 논의하며, 이에는 메모리 소비를 4.4GB에서 298MB로 줄이기 위해 타일 디코딩을 사용하는 것이 포함됩니다.
  • OnnxStream의 기능에는 추론 엔진과 WeightsProvider의 분리, attention slicing, 동적 및 정적 양자화, FP16 지원 등이 포함됩니다.
  • 이 기사는 다양한 운영 체제에서 Stable Diffusion 예제를 구축하는 방법에 대한 자세한 지침을 제공합니다.
  • sd.cpp의 Stable Diffusion 구현은 다른 두 프로젝트를 기반으로 하며, NCNN 대신 OnnxStream을 사용하도록 수정되었습니다.
Hacker News 의견
  • OnnxStream의 사용에 대한 기사, OnnxRuntime보다 메모리를 55배 덜 소비하면서 0.5-2배 느린 것으로 나타남.
  • 메모리 사용량과 추론 시간 간의 트레이드오프는 일부 시나리오에서 유리할 수 있으며, 동일한 RAM에서 더 큰 배치 크기를 허용할 수 있음.
  • 일부 사용자들은 invoke.ai를 통해 MacBook Pro에서 Stable Diffusion을 사용하고 있지만, 더 나은 매개변수화를 위한 추천을 찾고 있음.
  • 이 방법을 사용하여 이미지를 생성하는 데 오랜 시간이 걸린다는 기사 언급, Readme에는 11시간이 걸린다고 명시됨.
  • 메모리 사용량과 추론 시간 간의 트레이드오프는 지연 시간이 중요한 요소인 실시간 또는 거의 실시간 애플리케이션을 방해할 수 있음.
  • "0.5-2배 느림"이라는 표현에 대한 혼동이 있음, 커뮤니티 내에서의 의사소통에서 명확성이 부족할 수 있음을 나타냄.
  • 일부 사용자들은 주요 오픈소스 모델을 실행하고 생성하기 위한 최소 요구 사항에 대한 요약을 찾고 있음.
  • 이 분야에서의 빠른 진전이 주목되며, 특히 지난 6-18개월 동안의 속도 향상이 인상적임.
  • Stable Diffusion 유형의 기술을 규제하려는 시도는 허사일 수 있음을 제안, 이러한 모델과 그들의 추론 인프라는 PS2에서 실행 가능한 크기로 축소될 수 있음.
  • 생성 시간이 길지만, 일부 사용자들은 Stable Diffusion이 Pi Zero와 같은 하드웨어에서 실행될 수 있다는 사실에 감탄함.