AIxiv 칼럼은 본 사이트에서 학술 및 기술 콘텐츠를 게재하는 칼럼입니다. 지난 몇 년 동안 이 사이트의 AIxiv 칼럼에는 전 세계 주요 대학 및 기업의 최고 연구실을 대상으로 한 2,000개 이상의 보고서가 접수되어 학술 교류 및 보급을 효과적으로 촉진하고 있습니다. 공유하고 싶은 훌륭한 작품이 있다면 자유롭게 기여하거나 보고를 위해 연락주시기 바랍니다. 제출 이메일: liyazhou@jiqizhixin.com; zhaoyunfeng@jiqizhixin.com
딥 러닝 대형 언어 모델이 점점 더 대중화됨에 따라 대형 언어 모델이 점점 더 커지고 추론 비용도 상승합니다. 모델 정량화는 인기 있는 연구 주제가 되었습니다.
최근 ByteDance는 전통적인 수량화 패러다임을 버리고 수학적 최적화 관점에서 수량화 작업을 모델링하는 새로운 수량화 아이디어를 출시했습니다. 기사는 arXiv에 게시되었으며 코드는 오픈 소스로 제공됩니다. 기사의 모든 결과는 한 번의 클릭으로 재현될 수 있습니다. 이러한 정량화 아이디어는 수학적 최적화를 기반으로 하며, 수학적 최적화 관점에서 정량화 작업을 모델링하고, 목적함수를 최대화하거나 손실함수를 최소화하여 최적의 해를 찾는 것입니다. 이 아이디어는 실험에서 좋은 결과를 얻었고 만족스러운 결과를 얻었습니다.
페이퍼 링크: https://arxiv.org/abs/2404.12759
프로젝트 링크: https://github.com/bytedance/de CoupleQ
W2 운영자: https:// /github.com/NVIDIA/TensorRT-LLM/pull/1568
1. 배경
대규모 기술의 급속한 발전으로 인해 추론 비용이 점점 더 높아졌습니다. 추론 비용을 줄이기 위한 기술적 솔루션인 모델 정량화는 점점 더 많은 관심과 연구를 받고 있습니다. 그러나 전통적인 양자화 패러다임에서는 모델의 정확도가 매우 낮은 비트에서 급격히 떨어집니다. 이를 바탕으로 저자는 모델 매개변수를 정수 부분과 부동 소수점 부분으로 분리하고, 수학적 최적화 관점에서 수량화 작업을 모델링하여 모델이 여전히 더 높은 정확도를 유지할 수 있는 새로운 수량화 아이디어를 제안했습니다. 이것의 장점은 분명합니다. 민감한 채널을 처리하는 방법, 이상값을 처리하는 방법 등과 같은 양자화 관련 문제에 더 이상 집중할 필요가 없습니다. 대신, 수량화 문제를 수학적으로 모델링하고, 적합한 최적화 목적 함수를 찾은 다음 이 함수를 해결합니다.
2. 전통적인 양자화
전통적으로 모델에 대한 수량화 아이디어는 다음과 같습니다.
여기서 는 양자화 전 모델의 부동 소수점 가중치입니다. 영점, α와 β는 정수 표현 범위의 상한과 하한입니다. 예를 들어, int4 양자화의 경우 α = -8, β = 7을 취할 수 있습니다. 는 일반적으로 가장 가까운 값으로 반올림됩니다. 정수.
일반적으로 비대칭 양자화에 대해 s 및 z 값과 관련하여 다음을 수행할 수 있습니다.
이런 방식으로 에 분산된 부동 소수점 가중치는 의 간격 범위에 선형적으로 매핑됩니다.
역양자화에서는 일반적으로 다음 공식이 사용됩니다.
이 전통적인 양자화 방식에서는 양자화에 고유한 많은 세부적인 문제에 주의를 기울여야 합니다. 예를 들어 민감한 채널의 경우 민감한 채널 처리 방법이 있습니다. 이상치에 대해서는 이상치 처리 방법이 있습니다. 두통을 치료하고 두통을 치료하는 이러한 처리 패러다임은 복잡하고 끊임없이 변화하는 비즈니스 시나리오에 대처하기 어렵습니다. Bytedance 연구자들은 이러한 문제를 추상화하고 거시적 관점에서 정량화 문제를 살펴보려고 노력합니다. 추상적인 최적화 목적 함수를 설정한 다음 이 목적 함수를 풀기만 하면 됩니다.
3.deconnectQ
정량화에서 방정식 (1)~(3)의 역할을 관찰해 보면, 생각을 바꾸면 실제로 방정식 (1)과 (2)를 알 필요가 없다는 것을 알게 됩니다. 대형 모델을 정량화하여 다운스트림 엔진 학생들에게 전달한 후에는 방정식 (3)의 및 (s,z)만 알면 됩니다. 즉, 식(3)의 (s,z)는 일반적인 아핀변환의 계수로 간주할 수 있으며, 식(2)에서 그 의미를 그대로 유지할 필요는 없다. 아핀 변환 계수는 수학적 최적화 방법을 통해 얻을 수 있습니다.
(3)을 더 자세히 살펴보면 대형 모델의 매개변수를 정수 부분과 부동 소수점 부분(s,z)으로 분리할 수 있습니다. 이렇게 디커플링한 후, 모델 양자화 과정은 모델의 정수 부분과 부동 소수점 부분(s,z)을 푸는 과정으로 볼 수 있습니다. 대안으로 솔루션을 최적화할 수 있습니다. 이를 위해서는 최적화 목적 함수와 그 제약 조건을 결정해야 합니다.
선형 레이어의 경우 다음과 같은 최적화 목적 함수를 구성할 수 있습니다.
여기서 는 레이어의 입력이고 는 대칭 행렬입니다(X의 열이 모두 0이 아닌 경우 H는 양의 정부호 대칭 행렬).
일반적으로 양자화 정확도를 향상시키기 위해 모델 가중치에 대해 채널별 양자화를 사용할 수 있습니다. 채널별 양자화에서 식 (4)를 최적화할 때 의 각 열은 독립적으로 최적화됩니다. 따라서 우리는 열 중 하나에만 집중하면 됩니다.
이 시점에서 최적화 목표는 다음과 같이 작성할 수 있습니다. (기호의 단순화를 위해 기사에서 기호를 재정의했습니다.)
여기서 최적화 목적 함수는
여기서 , w는 의 특정 열이고, b는 해당 열에 있습니다. 그 외 기호에 대한 정의는 이전과 동일합니다.
실제로 최적화 목적 함수 (6)은 (4)와 완전히 일치합니다. 역양자화 과정입니다.
정량적 문제를 (5) 형식의 수학적 최적화 문제로 변환하는 것이 decoupQ를 전통적인 정량적 논문과 구별하는 열쇠입니다. 이 변환을 통해 우리는 방정식 (5)를 푸는 데에만 집중할 수 있으며 더 이상 이상치 등과 같은 양자화 자체의 세부 사항을 처리할 필요가 없습니다.
수식 (5)의 해는 에 제약 조건, 특히 비볼록 제약 조건 이 있기 때문에 쉽지 않습니다. 논문에서 저자는 (s,z)와 w에 대해 좋은 초기화를 얻은 후 (s,z)와 w를 교대로 반복적으로 해결하는 대안적인 솔루션 아이디어를 제시합니다. (s,z)를 풀 때 방정식 (5)는 (s,z)에 대해 제약이 없는 2차 형식이라는 점에 유의하세요. 목적 함수를 직접 유도하고 도함수를 0으로 만들어 분석적 해를 얻을 수 있습니다. w를 풀 때 저자는 두 가지 수준의 근사를 채택합니다. 첫 번째 수준 근사는 수렴이 더 높지만 솔루션은 느립니다. 두 번째 수준 근사는 수렴이 약간 떨어지는 GPTQ [1] 아이디어를 샘플링합니다. 가 더 빠르다.
양자화 모델의 정확도를 더욱 향상시키기 위해 저자는 레이어 수준에서 mse 최소화를 수행하는 것 외에도 블록 수준에서도 mse 최소화를 수행할 수 있다고 지적했습니다. 즉,
In 이 단계에서 작성자는 변환기 블록 레벨에서 각 선형 레이어를 양자화한 후 정수 부분을 수정하고(s, z) 부동 소수점 부분(s, z)과 레이어 표준의 관련 매개변수를 미세 조정합니다. 실험 결과는 이 미세 조정 단계가 모델의 정확도를 더욱 향상시킬 수 있음을 보여줍니다.
4. W2 연산자 구현
양자화 모델을 추론하려면 업계에서 사용할 수 있는 기성 w2a16 연산자가 없습니다. 저자는 Tensorrt-LLM의 w4 연산자를 기반으로 합니다. w2a16 모델의 효율적인 추론을 달성하기 위해 w2의 Gemm cuda 커널을 개발했습니다. 양자화 모델 자체가 2비트 가중치 형태로 비디오 메모리에 로딩되어 저장되기 때문에 상대적으로 적은 양의 비디오 메모리를 차지하게 됩니다. 우리의 cuda 커널은 런타임에 2비트 가중치를 레지스터에 로드한 다음 하드웨어 명령을 사용하여 이를 bf16 형식으로 효율적으로 변환하고 활성화를 통해 gemm 작업을 수행합니다. 우리 시나리오는 대기 시간으로 인해 제한되기 때문에 생성 단계의 배치 크기는 상대적으로 작습니다. 이때 행렬 곱셈은 메모리 액세스 가중치에 따라 제한됩니다. 이 구현은 메모리 액세스 양을 크게 줄이고 모델 성능을 향상시킵니다. 구현 과정에서 알고리즘 검색과 SpiltK Parallel Reduce가 결합되어 모델 성능을 더욱 향상시킵니다. 실제 측정에 따르면 배치 크기=1일 때 L 카드의 w2a16 Gemm 성능은 1.4x-1.7x 향상될 수 있습니다. w4a16과 비교. 운영자 링크: https://github.com/NVIDIA/TensorRT-LLM/pull/1568> , 오픈 소스 실험과의 비교 결과는 다음과 같습니다. 내부 실험 결과는 다음과 같습니다.
이 표에서 저자는 ASR의 정확도를 측정하기 위해 단어 오류율(WER)을 사용합니다. 저자는 다양한 방법을 사용하여 W2A16g64에 대한 모델을 정량화하려고 시도했습니다. 양자화 전 부동소수점 모델의 wer는 6.68%이다. GPTQ를 사용한 양자화 이후에는 6.83%이다. 양자화 후 블록 최소화를 적용한 decoupleQ의 wer는 6.70%이다. 양자화 이전의 부동 소수점 모델. 또한 정량화에 필요한 시간도 보고합니다. 높은 양자화 정확도의 대가는 양자화에 오랜 시간이 걸린다는 것입니다. 실제 비즈니스에서는 deconnectQ를 사용하여 모델을 정량화한 후 정수 부분을 고정하고 레이블이 지정된 데이터 세트를 사용하여 스케일과 0을 미세 조정함으로써 모델의 정확도가 더욱 향상됩니다. 오픈소스 비교 실험 결과는 다음과 같습니다. 이 표는 Llama-1/2에 대한 decoupqQ와 다른 방법의 정량적 결과를 비교한 것입니다. 평가지표로는 PPL(Perplexity)을 사용하였다. 동일한 양자화 구성에서 deoucpleQ의 PPL은 대부분의 경우 다른 방법보다 낮음을 알 수 있습니다. 6. 비즈니스 이점 decoupleQ 정량화 기술은 이제 ByteDance의 음성 부서에서 널리 사용되고 있습니다. 음성 생성 모델(Text-to-Speech), 음성 인식 모델(자동 음성 인식) 등에 출시되었으며 Doubao, Feishu, Douyin 등의 제품에 구현되었습니다. 다수의 온라인 비즈니스에서는 deconnectQ 수량화를 기반으로 W4A16의 추론 정확도가 fp16/bf16 추론과 완전히 동등하다는 것을 보여줍니다. W2A16의 정확도는 fp16/bf16 정확도보다 약간 나쁠 뿐입니다(부동 소수점 부분 sft 이후) 정확도는 fp16/bf16)과 동일한 수준입니다. 본 논문에서는 중량만 정량화하는 방법만 소개하고 있지만 실제 비즈니스에서는 중량을 잘 정량화한 후에 활성화 정량화가 훨씬 간단해질 수 있습니다. fp16, w8fp16 및 w4fp16과 비교하면 하드웨어 가속 측면에서 좋은 가속 효과를 얻었습니다. 소규모 배치에서 w2 행렬 곱셈의 성능은 fp16보다 5~6배, w4보다 1.5~1.7배 더 높습니다. . 내부 비즈니스 모델 측면에서 보면 w2fp16은 fp16에 비해 3~5배, w4fp16에 비해 1.25~1.4배의 성능 향상이 있으며, 모델 무게가 차지하는 메모리도 대폭 줄여 더 나은 메모리를 제공합니다. 런타임에 활용도가 높습니다. 7. 요약 및 토론 요약 및 토론 섹션에서 저자는 또한 decoupq이 현재 가지고 있는 두 가지 위험을 지적했습니다: 1. 전후 손실이 최소화됩니다. 그러나 레이어 수준이나 블록 수준에서 L2 손실을 최소화하는 것이 반드시 최종 모델의 최적 정확도를 나타내는 것은 아닙니다. 2 방정식 (5)와 (7)의 최적화 과정에서 및 (s,z) ), 교정 데이터의 작은 부분만 해결되므로 decouplingQ가 교정 데이터에 쉽게 과적합됩니다. 그럼에도 불구하고 저자는 모델 매개변수를 정수 부분과 부동 소수점 부분으로 분리하는 아이디어도 매우 의미가 있다고 지적했습니다. 레이블이 지정된 데이터 세트가 존재하는 경우 양자화 후 정수 부분을 수정하고 레이블이 지정된 데이터 세트를 사용하여 (s, z)를 구체적으로 훈련하여 모델의 정확도를 더욱 향상시킬 수 있습니다. 이는 모델의 일반화 성능(고정 정수 부분 으로 인해)을 보장할 뿐만 아니라 (미세 조정 부동 소수점 부분으로 인해) 특정 하위 작업에 대한 능력을 발휘할 수도 있습니다. ByteDance의 실제 비즈니스에서는 이전 버전의 모델을 정량화하여 온라인에 올린 후 다음 버전이 업데이트되면 모델의 부동 소수점 부분만 학습할 수 있습니다. 참고 자료: 【1】Elias Frantar, Saleh Ashkboos, Torsten Hoefler 및 Dan Alistarh: 생성적 사전 훈련된 변환기를 위한 정확한 양자화, 2022년 제11차 국제 회의. 【2】Wenqi Shao, Mengzhao Chen, Zhaoyang Zhang, Peng Xu, Lirui Zhao, Zhiqian Li, Kaipeng Zhang, Peng Gao, Yu Qiao 및 Ping Luo: 대규모 언어 모델을 위한 전방향 보정 양자화. arXiv:2308.13137, 2023 【3】Ji Lin, Jiaming Tang, Haotian Tang, Shang Yang, Xingyu Dang 및 Song Han: llm 압축 및 가속을 위한 활성화 인식 가중치 양자화. 2306.00978, 2023.
위 내용은 바이트 오픈 소스 대형 모델의 정량화를 위한 새로운 아이디어, 2비트 양자화 모델의 정확도는 fp16과 동등합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!