PowerInfer

Local AI RunnersCLIC++

★ 9,790주당 +11조회 4

무엇인가

PowerInfer는 개인용 컴퓨터 한 대에서 대형 언어 모델을 서빙하는 추론 엔진이다. llama.cpp와 같은 자리의 로컬 추론 실행기에 속하며, 모델 가중치를 GPU 메모리에 전부 적재하는 대신 뉴런 활성화 분포를 근거로 연산을 CPU와 GPU에 나눠 배치한다.

어떻게 동작하나

동작 원리는 LLM 추론에서 관찰되는 활성화 지역성이다. 뉴런 활성화가 멱법칙 분포를 따르며, 입력과 무관하게 반복 활성화되는 소수 hot 뉴런과 입력에 따라 달라지는 다수 cold 뉴런으로 갈린다. hot 뉴런의 가중치는 GPU VRAM에 상주시키고 cold 뉴런은 CPU에서 계산한다. 어느 뉴런이 활성화될지 예측하는 adaptive predictor와 뉴런 단위 희소 연산자(neuron-aware sparse operator)가 이 배치를 받쳐준다. 결과적으로 GPU 메모리 요구량과 CPU-GPU 간 데이터 전송량이 줄어든다.

무엇과 다른가

llama.cpp와의 차이는 분할 기준이다. llama.cpp가 레이어 단위로 GPU와 CPU에 오프로딩한다면, PowerInfer는 뉴런 활성화 여부를 기준으로 나눈다. GPU에는 hot 뉴런 가중치만 올라가고 나머지 연산은 CPU가 맡는다. llama.cpp의 모델 가중치로도 추론할 수 있으나 이 경우 속도 이득은 없다. examples/ 디렉터리의 서버·배치 생성 예제는 llama.cpp와 같은 방식으로 사용한다.

어떻게 쓰나

빌드는 CMake 3.17+로 수행하고, 모델 가중치 변환과 FFN 자동 오프로딩에 Python 3.8+와 pip를 쓴다. 저장소는 설치, 모델 가중치 준비, 추론의 세 단계로 문서를 나누며, 추론은 examples/ 아래 실행 파일로 돌린다.

전제와 한계

지원 범위는 x86-64 AVX2 CPU 기준 Linux와 Windows이며 NVIDIA GPU 유무를 가리지 않는다. AMD는 ROCm으로 지원하고, macOS에서는 Apple M 칩의 CPU만 사용한다. 속도 향상은 ReLU 계열 희소 모델에 한정되며 Falcon-40B, Llama2 계열, ProSparse Llama2 계열, Bamboo-7B를 쓸 수 있다. macOS용 Metal 백엔드는 아직 준비 중이다.

관련 논문 3

유사 도구