์ธ๊ณต์ง๋ฅ
PowerInfer: ์๋น์๊ธ GPU๋ฅผ ์ฌ์ฉํ๋ ๋น ๋ฅธ ๋ํ ์ธ์ด ๋ชจ๋ธ

대형 언어 모델은 예외적인 콘텐츠 생성 능력으로 인해 현재 AI 혁명의 최전선에 있으며, 생성 능력을 향상시키기 위한 노력이 지속되고 있습니다. 그러나 빠른 발전에도 불구하고, 이러한 모델은 상당한 계산 능력과 리소스가 필요합니다. 이는 주로 수백억 개의 매개변수로 구성되어 있기 때문입니다. 또한, 생성 AI 모델은 원활하게 작동하기 위해 수천 개의 GPU에 의존하며, 이는 상당한 운영 비용을 초래합니다. 높은 운영 요구는 생성 AI 모델이 개인용 장치에서 아직 효과적으로 배포되지 않는 주요 이유입니다.
이 기사에서는 소비자급 GPU를 사용하는 표준 컴퓨터용 고속 LLM 추론 엔진인 PowerInfer에 대해 논의할 것입니다. PowerInfer 프레임워크는 LLM 추론에서 내재된 높은 지역성을 활용하려고 합니다. 이는 뉴런 활성화의 파워 법칙 분포로 특징지어집니다. 이는 특정 입력 또는 요구 사항에 따라 활성화되는 ‘차가운’ 뉴런과는 대조적으로, 특정 시점에 일관되게 활성화되는 작은 ‘뜨거운’ 뉴런 집합이 있음을 의미합니다. 이 접근 방식은 PowerInfer 프레임워크가 원하는 출력을 생성하는 데 필요한 계산 능력을 줄일 수 있습니다.
PowerInfer 프레임워크를 자세히 살펴보겠습니다. 방법론, 파이프라인 및 실제 적용 결과를 탐구할 것입니다. 시작해 보겠습니다.
PowerInfer: 소비자급 GPU를 사용하는 빠른 대형 언어 모델
ChatGPT 및 DALL-E와 같은 생성 대형 언어 모델은 정교한 생성 및 자연어 처리 작업으로 알려져 있습니다. 높은 계산 요구로 인해 이러한 모델은 일반적으로 고급 GPU가 있는 데이터 센터에 배포됩니다. 높은 계산 요구는 이러한 모델을 데이터 센터에만 배포하는 것을 제한하며, 개인용 컴퓨터와 같은 더 접근하기 쉬운 로컬 플랫폼에 대형 언어 모델을 배포하는 필요성을 강조합니다.
대형 언어 모델의 접근성을提高하면 추론 및 콘텐츠 생성 비용을 줄일 수 있으며, 데이터 개인 정보를 향상시키고 모델 사용자 지정도 허용할 수 있습니다. 또한 데이터 센터 배포가 높은 처리량을 우선시하는 반면, 로컬 배포는 작은 배치 크기 때문에 낮은 지연 시간에 중점을 둘 수 있습니다.
그러나 이러한 모델을 로컬 장치에 배포하는 것은 상당한 도전을 제기합니다. 대형 언어 모델은 수백억 개의 매개변수로 구성된 tự회귀 변환기로서, 각 토큰은 전체 모델에 접근해야 하므로大量의 고급 GPU가 필요합니다. 또한 로컬 배포는 일반적으로 병렬 처리의 잠재력을 제한하는 개별 요청을 순차적으로 처리합니다.
생성 AI 프레임워크의 복잡한 메모리 요구를 해결하기 위해 기존 솔루션은 모델 오프로딩 및 압축과 같은 방법을 사용합니다. 蒸留, 가지치기 및 양자화와 같은 기술은 모델 크기를 줄이지만 표준급 GPU에 여전히 너무 큽니다. 모델 오프로딩은 트랜스포머 레이어를 CPU와 GPU 사이에서 분할하여 분산 레이어 처리를 허용합니다. 그러나 이 방법은 느린 PCIe 인터커넥트와 CPU의 제한된 계산 능력으로 인해 높은 추론 지연 시간으로 제한됩니다.
PowerInfer 프레임워크는 LLM 추론 특성과 하드웨어 구조 간의 불일치가 LLM 추론의 메모리 문제의 주요 원인이라고 주장합니다. 이상적으로, 빈번하게 액세스되는 데이터는 높은 대역폭과 제한된 용량의 GPU에 저장되어야 하며, 덜 빈번하게 액세스되는 데이터는 낮은 대역폭과 높은 용량의 CPU에 저장되어야 합니다. 그러나 각 LLM 추론 반복의 큰 매개변수 볼륨은 작업 집합을 단일 GPU에 너무 크게 만듭니다. 이는 지역성의 비효율적인 활용으로 이어집니다.
대형 언어 모델의 추론 과정은 높은 지역성을 보여주며, 각 반복에서 제한된 수의 뉴런이 활성화됩니다. PowerInfer 프레임워크는 이 지역성을 활용하여 GPU에서 작은 수의 ‘뜨거운’ 뉴런을 관리하고, CPU에서 ‘차가운’ 뉴런을 처리합니다. 오프라인 단계에서 뜨거운 뉴런을 미리 선택하여 GPU에 로드하고, 런타임에서 활성화된 뉴런을 식별합니다. 이 접근 방식은 비용이 많이 드는 PCIe 데이터 전송을 최소화하여 GPU와 CPU가 독립적으로 할당된 뉴런을 처리할 수 있도록 합니다.
그러나 LLM을 로컬 장치에 배포하는 것은 여전히 장애물에 직면합니다. 활성 뉴런을 식별하는 데 중요한 온라인 예측기는 상당한 GPU 메모리를 소비합니다. PowerInfer 프레임워크는 활성화 편차와 희박성이 더 높은 레이어에 대해 작은 예측기를 구성하는 적응형 방법을 사용하여 정확성을 유지하면서 크기를 줄입니다. 또한, LLM 프레임워크는 희박한 연산자를 필요로 하는데, PowerInfer 프레임워크는 런타임 중에 희박한 형식으로 변환할 필요 없이 GPU와 CPU에서 직접 활성화된 뉴런 및 가중치를 계산하는 뉴런 인식 희박 연산자를 사용합니다.
마지막으로, 활성화된 뉴런을 CPU와 GPU 사이에서 최적화하여 배치하는 것은 어려운 작업입니다. PowerInfer 프레임워크는 오프라인 단계에서 뉴런 배치 정책을 생성하여 각 뉴런의 LLM 추론 결과에 미치는 영향을 측정하고, 정수 선형 문제로 프레이밍합니다.
아키텍처 및 방법론
PowerInfer 프레임워크의 아키텍처는 파이프라인의 오프라인 및 온라인 구성 요소로 구성됩니다.

대형 언어 모델 간의 지역성 특성의 차이를 관찰한 결과, 오프라인 구성 요소는 LLM 프레임워크의 활성화 희박성을 프로파일링하여 뜨거운 뉴런과 차가운 뉴런을 구별할 수 있습니다. 오프라인 단계에서 추론 엔진은 CPU와 GPU에 두 종류의 뉴런을 로드하여 런타임 중에 LLM 요청을 낮은 지연 시간으로 처리합니다.
오프라인 단계: 정책 솔버 및 LLM 프로파일러
오프라인 단계에서 LLM 프로파일러 구성 요소는 일반 데이터 세트에서 파생된 요청에서 활성화 데이터를 수집하여 추론 프로세스를 모니터링합니다. 첫 번째 단계에서, 모든 레이어의 뉴런 활성화를 모니터링한 후, 정책 솔버 구성 요소를 사용하여 뉴런을 뜨거운 뉴런 또는 차가운 뉴런으로 분류합니다. 정책 솔버의 주요 목표는 더 자주 활성화되는 뉴런을 GPU 레이어에 할당하고 나머지를 CPU 레이어에 할당하는 것입니다. 두 번째 단계에서, 정책 솔버 구성 요소는 뉴런 영향 지표와 하드웨어 사양을 사용하여 레이어 간의 작업량을 균형있게 유지하고, 정수 선형 프로그래밍을 사용하여 GPU의 뉴런에 대한 영향 지표를 최대화합니다.
온라인 단계: 뉴런 인식 LLM 추론 엔진
오프라인 단계가 성공적으로 실행되면, 프레임워크는 온라인 단계를 실행합니다. 프로세스의 세 번째 단계에서, 온라인 엔진은 사용자 요청을 처리하기 전에 뜨거운 뉴런과 차가운 뉴런을 각각의 처리 장치에 할당합니다. 런타임 중에, 온라인 엔진은 CPU와 GPU에서 실행되는 스레드인 CPU 및 GPU 실행기를 생성하여 GPU-CPU 계산을 관리합니다. 엔진은 활성화된 뉴런을 예측하고 비활성화된 뉴런을 건너뛰며, 활성화된 뉴런을 GPU에서 처리하기 위해 미리 로드합니다.同時에, CPU는 자신의 뉴런에 대한 결과를 계산하여 GPU와 통합합니다. 온라인 엔진은 희박한 뉴런 인식 연산자를 사용하여 CPU와 GPU에서 행과 열을 개별적으로 집중할 수 있습니다.
적응형 희박성 예측기
PowerInfer 프레임워크의 온라인 추론 엔진에서 계산 부하를 줄이는 주요 개념은 활성화된 뉴런만 처리한다는 것입니다. 전통적으로, 각 트랜스포머 레이어에서 프레임워크는 뉴런의 활성화를 예측하는 두 가지 예측기를 사용합니다. 그러나 로컬 배포에서 효과적인 예측기를 설계하는 것은 어려울 수 있습니다. 이러한 예측기는 빈번하게 배포되므로 모델 크기와 예측 정확성 사이의 균형을 유지하기가 어렵습니다. 이러한 예측기는 빠른 액세스를 허용하기 위해 GPU에 저장되어야 하지만, 일반적으로 많은 예측기가 배포되어 상당한 메모리를 차지합니다.
뉴런 배치 및 관리
PowerInfer 프레임워크는 오프라인 정책 솔버 구성 요소가 뉴런 배치 정책을 생성하여 각 레이어에서 뉴런을 CPU 또는 GPU에 할당합니다. 각 레이어에서 뉴런을 CPU 또는 GPU에 할당하는 기준은 뉴런의 활성화 빈도, 통신 오버헤드 및 처리 장치의 계산 능력과 같은 요인에 따라 결정됩니다.
뉴런 인식 연산자
대형 언어 모델에서 관찰되는 활성화 희박성으로 인해, 비활성화된 뉴런과 그 가중치는 행렬 곱셈 연산에서 건너뛸 수 있습니다. 이는 희박한 연산자의 사용을 필요로 합니다. 그러나 PowerInfer 프레임워크는 희박한 연산자의 제한을 갖는 대신, 런타임 중에 희박한 형식으로 변환할 필요 없이 GPU와 CPU에서 직접 활성화된 뉴런과 그 가중치를 계산하는 뉴런 인식 연산자를 사용합니다.
뉴런 배치 정책
PowerInfer 프레임워크는 오프라인 구성 요소에서 뉴런 배치 정책을 생성하여 CPU와 GPU 레이어에서 뉴런을 할당하는 기준을 제공합니다. 정책 솔버 구성 요소는 이 정책을 생성하며, 각 레이어에서 뉴런을 CPU 또는 GPU에 할당하여 처리 장치의 계산 작업량을 결정합니다.
결과 및 구현
PowerInfer 프레임워크의 일반화 가능성을 다양한 하드웨어 구성의 장치에서 демон스트레이션하기 위해, 두 가지 개인용 컴퓨터에서 실험을 수행했습니다. 하나는 Intel i9-13900K 프로세서, NVIDIA RTX 4090 GPU 및 192GB의 호스트 메모리를 갖추고 있으며, 다른 하나는 Intel i7-12700K 프로세서, NVIDIA RTX 2080Ti GPU 및 64GB의 호스트 메모리를 갖추고 있습니다.
최종 생각
이 기사에서, 우리는 소비자급 GPU를 사용하는 표준 컴퓨터용 고속 LLM 추론 엔진인 PowerInfer에 대해 논의했습니다. PowerInfer 프레임워크는 LLM 추론에서 내재된 높은 지역성을 활용하려고 합니다. 이는 뉴런 활성화의 파워 법칙 분포로 특징지어집니다. PowerInfer 프레임워크는 대형 언어 모델을 위한 빠른 간섭 시스템으로, 적응형 예측기와 뉴런 인식 연산자를 사용하여 뉴런과 계산 희박성을 활성화합니다.












