>  기사  >  기술 주변기기  >  재정렬 기반의 새로운 양자화 방식 RPTQ: 대규모 언어 모델의 3비트 양자화 구현

재정렬 기반의 새로운 양자화 방식 RPTQ: 대규모 언어 모델의 3비트 양자화 구현

王林
王林앞으로
2023-04-10 14:21:031762검색

대형 언어 모델(LLM)은 다양한 작업에서 우수한 성능을 발휘하지만 모델 크기가 너무 크기 때문에 배포 문제가 있습니다.

이 논문에서 Houmo Intelligence, Tencent AI Lab, Huazhong University of Science and Technology, Peking University, Illinois Institute of Technology의 연구원들은 대규모 언어 모델을 정량화하는 데 있어 주요 과제가 채널 간의 활성화 범위가 다르기 때문에 발생한다는 사실을 발견했습니다. , 그리고 단지 이상치 문제가 아닙니다.

저자는 대규모 언어 모델 활성화를 정량화하는 문제를 해결하는 새로운 재순위 기반 양자화 방법 RPTQ를 제안합니다. RPTQ는 활성화된 채널을 재배열한 다음 정량화를 위해 클러스터링하여 채널 전체 차이의 영향을 줄입니다.

또한 저자는 명시적인 재정렬을 방지하여 저장 공간과 계산 오버헤드를 줄입니다. 이 작업은 LLM 모델의 활성화 양자화를 3비트로 푸시한 최초의 작업입니다. 활성화 값의 3비트 양자화는 가중치의 3비트 양자화와 함께 사용될 수도 있으며, 이는 대규모 음성 모델의 오버헤드를 크게 줄여줍니다.

재정렬 기반의 새로운 양자화 방식 RPTQ: 대규모 언어 모델의 3비트 양자화 구현

논문 주소: https://arxiv.org/abs/2304.01089

오픈 소스 주소: https://github.com/hahnyuan/RPTQ4LLM

LLM(Big Scale Language Model)은 다양한 작업에서 뛰어난 성능을 보여줬지만 모델 크기가 크기 때문에 배포에 어려움을 겪습니다. 예를 들어, 66B 모델에는 660억 개의 매개변수가 포함되어 있으며 저장하는 데 많은 메모리가 필요합니다. 또한 시퀀스 길이와 배치 크기가 증가할수록 활성화 시 Self-attention의 키 및 값 캐시(Key/Value Cache)와 같이 많은 양의 메모리를 소비하므로 메모리 소비 문제가 더욱 심각해집니다. 그러나 단일 GPU 또는 서버에는 그렇게 많은 수의 모델 가중치와 중간 활성화를 저장할 메모리 용량이 충분하지 않습니다. 따라서 LLM은 여러 청크로 분할되어 서로 다른 장치에 저장되어야 합니다. 가중치와 활성화는 서로 다른 장치에 저장되므로 계산 중에 이러한 장치 간에 데이터를 전송해야 하므로 상당한 대역폭과 에너지 소비가 발생합니다.

모델 규모에서 LLM의 과제를 극복하기 위해 모델 정량화가 유망한 접근 방식으로 떠올랐습니다. 이 기술에는 낮은 비트 정수를 사용하여 LLM의 가중치와 활성화를 양자화하여 이러한 모델을 저장하고 실행하는 비용을 크게 줄입니다. 특히, 양자화는 텐서를 보유하기 위한 메모리 요구 사항을 줄이는 데 도움이 되며 행렬 곱셈 및 선형 레이어와 같은 계산 집약적인 작업을 가속화합니다. 가중치와 활성화를 양자화함으로써 저장 및 통신 오버헤드가 줄어들고 효율성과 추론 속도가 향상됩니다.

재정렬 기반의 새로운 양자화 방식 RPTQ: 대규모 언어 모델의 3비트 양자화 구현

그림 1 다양한 채널의 수치 분포. 각 포인트는 활성화 채널의 (최대, 최소) 값을 나타냅니다.

최근 GPTQ는 PTQ를 사용하여 LLM의 가중치를 4비트 또는 3비트로 양자화하는 데 성공했습니다. 그러나 LLM의 활성화를 정량화하는 것은 여전히 ​​어려운 작업입니다.

그림 1에서 두 가지 관찰을 할 수 있습니다.

1) 일부 채널에는 다른 채널보다 수백 배 더 큰 최대값 또는 최소값을 갖는 중요한 이상값이 있습니다. 이전 연구에서도 이 문제를 발견하고 이상치에 대한 특별한 치료법을 제안했습니다.

2) 채널마다 수치 범위에 상당한 차이가 있습니다. 동일한 양자화 매개변수를 사용하여 서로 다른 채널을 양자화하면 심각한 양자화 오류가 발생할 수 있습니다. 두 채널의 이상값 절대값이 동일하더라도 수치 범위에 큰 변화가 있을 수 있습니다.

동일한 양자화 매개변수를 사용하여 전체 텐서를 양자화하는 텐서별 양자화 기술은 효율성이 떨어질 수 있습니다. 그 이유는 큰 범위의 값을 포함하도록 양자화 범위를 설정하면 작은 값을 포함하는 채널의 경우 큰 양자화 오류가 발생할 수 있고, 작은 범위의 값을 포함하도록 설정하면 이상값이 크게 잘려 결과가 나올 수 있기 때문입니다. 상당한 양자화 오류가 있습니다. 예를 들어 한 채널의 값 범위는 -100~-50이고 다른 채널의 값 범위는 80~100일 수 있습니다. -100에서 100 사이의 범위를 양자화하여 해당 범위를 포괄하려고 하면 두 채널 모두에 심각한 양자화 오류가 발생합니다. 이는 이전 연구에서 효과적으로 해결되지 않은 과제입니다.

재정렬 기반의 새로운 양자화 방식 RPTQ: 대규모 언어 모델의 3비트 양자화 구현

그림 2 활성화 양자화 문제를 해결하기 위한 다양한 방법의 비교.

활성화의 채널 차이 문제를 해결하기 위해 저자는 새로운 재정렬 기반 사후 훈련 양자화 방법인 RPTQ를 제안합니다.

그림 2에서 볼 수 있듯이 이 방법은 비슷한 수치 범위를 가진 채널을 함께 클러스터링한 다음 동일한 양자화 매개변수를 사용하여 각 클러스터의 값을 양자화합니다. 재순위 기반 정량화 방법을 구현하기 위해 저자는 먼저 보정 데이터 세트를 추론 입력으로 사용했으며, 이로부터 각 활성화 채널의 최대값과 최소값이 파생되었습니다.

다음으로 그들은 KMeans 알고리즘을 사용하여 각 채널의 최대값과 최소값으로 형성된 포인트를 기반으로 다양한 채널을 g개의 클러스터로 나눴습니다. 클러스터가 설정되면 동일한 클러스터의 채널을 근접하게 배치하기 위해 채널 재정렬을 수행합니다. 이러한 방식으로 최대값과 최소값이 유사한 채널이 함께 그룹화되고 공통 양자화 매개변수 세트를 공유합니다. 재정렬 프로세스 후에 저자는 각 클러스터 내의 활성화를 정량화했습니다. 이 방법은 각 클러스터에 대해 개별적으로 양자화 매개변수(스케일링 인자 s 및 영점 z)를 계산하여 이러한 매개변수가 해당 채널에 특정하도록 보장합니다.

궁극적으로 이 방법을 사용하면 각 클러스터의 양자화가 최적화되어 양자화 오류가 줄어듭니다.

재정렬 기반의 새로운 양자화 방식 RPTQ: 대규모 언어 모델의 3비트 양자화 구현

그림 3: 가중치와 활성화가 재배열된 양자화된 Transformer 계층의 추론 프로세스 실패 다이어그램. 재배열 지수는 기호 R1~R5로 표시됩니다.

명시적 재배열은 활성화 시 채널을 재배열하는 런타임 작업으로, 서로 다른 채널의 데이터를 한 메모리 위치에서 다른 메모리 위치로 물리적으로 이동해야 하므로 채널 수가 많은 대형 모델의 경우 재배열 프로세스 시간이 많이 걸릴 수 있습니다. 또한 소스 및 대상 활성화 텐서를 저장하면 메모리 오버헤드가 증가합니다. 따라서 저자는 명시적인 재정렬을 방지하여 계산 오버헤드를 줄이고 추론 효율성을 향상시키는 전략을 제안합니다.

그림 3과 같이 저자는 정렬된 순서대로 활성화를 직접 생성할 수 있도록 선형 레이어의 가중치를 재정렬합니다. 또한 저자는 재정렬된 활성화를 직접 생성하도록 LayerNorm의 방법을 수정하여 추론 중에 명시적인 채널 조정이 필요하지 않도록 했습니다.

재정렬 기반의 새로운 양자화 방식 RPTQ: 대규모 언어 모델의 3비트 양자화 구현

저자는 W4A16, W4A8 및 W4A4의 세 가지 비트 폭 구성에서 OPT의 성능을 평가했습니다. 또한 저자는 메인 메모리 소비(키 캐시 및 값 캐시(키/값 캐시))만 수량화하는 새로운 수량화 체계인 W4A4KV, W4A3KV 및 W3A3KV를 개발했습니다. 표를 기반으로 다음과 같은 관찰을 할 수 있습니다. 일반적으로 활성화 양자화 비트폭이 감소하면 모델 성능이 감소합니다. 그러나 대부분의 경우 이러한 저하는 심각하지 않습니다. 일부 작업의 경우 성능이 1% 미만으로 떨어지거나 심지어 향상되었습니다.

재정렬 기반의 새로운 양자화 방식 RPTQ: 대규모 언어 모델의 3비트 양자화 구현

LLM의 메모리 오버헤드는 세 가지 측면에서 발생합니다. 첫째, 양자화를 통해 장치 메모리에 저장되는 가중치를 크게 줄일 수 있습니다. 둘째, 네트워크 실행 중에 생성된 임시 활성화에는 장치 메모리 할당이 필요합니다. 이러한 임시 활성화는 사용 후 해제될 수 있으므로 전체 메모리 사용량에 큰 영향을 미치지 않습니다. 마지막으로, 후속 단어를 예측하려면 키/값 캐시가 필요합니다. 배치 크기와 시퀀스 길이가 크면 키 및 값 캐시가 대부분의 메모리를 차지합니다.

이 표는 다양한 설정에서의 메모리 사용량을 보여줍니다. 특히 배치 크기와 시퀀스 길이가 큰 경우 비트 활성화가 낮을수록 메모리 사용량이 크게 줄어드는 것을 알 수 있습니다. 구체적으로 배치 크기가 64이고 시퀀스 길이가 8192인 경우 OPT-66b의 W4A4 구성은 W4A16 구성에 비해 900GB 이상의 메모리를 절약합니다. 따라서 RPTQ를 사용하여 활성화를 정량화하면 긴 텍스트 작업이나 대용량 시나리오에서 메모리 부담을 크게 줄일 수 있습니다.

위 내용은 재정렬 기반의 새로운 양자화 방식 RPTQ: 대규모 언어 모델의 3비트 양자화 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제