2020년 GPT-3 등장 이후 ChatGPT의 인기로 인해 GPT 제품군의 생성적 대규모 언어 모델이 다시 한 번 주목을 받았으며 다양한 작업에서 강력한 성능을 보여왔습니다.
그러나 모델의 규모가 크면 컴퓨팅 비용도 증가하고 배포 난이도도 높아집니다.
예를 들어 GPT‑175B 모델은 반정밀도(FP16) 형식으로 총 320GB 이상의 저장 공간을 차지하며 추론 중에는 80GB 저장 공간이 있는 A100 GPU가 5개 이상 필요합니다.
모델 압축은 현재 대형 모델의 계산 비용을 줄이기 위해 일반적으로 사용되는 방법이지만, 지금까지 거의 모든 기존 GPT 압축 방법은 양자화, 즉 개별 가중치를 줄이는 데 중점을 두고 수치 표현의 정밀도를 높였습니다.
또 다른 모델 압축 방법은 개별 가중치(구조화되지 않은 가지치기)부터 가중치 행렬의 전체 행/열(구조화된 가지치기)과 같은 더 세분화된 구성 요소에 이르기까지 네트워크 요소를 제거하는 가지치기입니다. 이 접근 방식은 비전 및 소규모 언어 모델에서는 잘 작동하지만 정확성이 손실되어 정확성을 복원하기 위해 모델을 광범위하게 재교육해야 하므로 GPT와 같은 대규모 모델의 경우 비용이 다시 너무 비쌉니다. . 재교육 없이 모델을 압축할 수 있는 몇 가지 단발성 가지치기 방법이 있지만 이는 너무 계산 집약적이며 수십억 개의 매개변수가 있는 모델에 적용하기 어렵습니다.
그럼 GPT-3 크기의 대형 모델의 경우 정확도 손실을 최소화하고 계산 비용을 줄이면서 정확하게 정리할 수 있는 방법이 있을까요?
최근 오스트리아 과학 기술 연구소(ISTA)의 두 연구원인 Elias Frantar와 Dan Alistarh는 100억~1000억 매개변수의 모델 규모에 대해 처음으로 정확한 단일 샷 가지치기를 제안하는 연구에 협력했습니다. . 방법SparseGPT.
문서 주소: https://arxiv.org/pdf/2301.00774.pdf
SparseGPT는 재교육 없이 한 단계로 GPT 시리즈 모델을 50% 희소성으로 정리할 수 있습니다. 공개적으로 사용 가능한 가장 큰 모델인 GPT-175B는 단일 GPU를 사용하여 단 몇 시간 만에 이러한 가지치기 작업을 수행합니다.
또한 SparseGPT는 매우 정확하며 정확도 손실을 최소화할 수 있습니다. 예를 들어 현재 가장 큰 오픈 소스 모델 OPT‑175B 및 BLOOM‑176B에서 SparseGPT를 실행하면 정확도 손실을 최소화하면서 60%의 희소성을 달성할 수 있습니다.
최근 몇 년간 초대형 모델에 대한 연구가 매우 활발하지만, 지금까지 매우 정확한 고수준 희소화를 달성할 수 있는 100억 개 이상의 매개변수를 갖춘 모델은 없습니다.
기존 방법은 계산 비용이 너무 높습니다. 현재 가장 정확한 사후 학습 방법인 OBC를 예로 들면, 10억 매개변수 모델의 경우 압축하는 데 1시간 이상이 걸립니다. 가장 빠른 것으로 알려진 사후 학습 방법인 AdaPrune도 10억 매개변수 모델을 정리하는 데 몇 분이 걸리며, 이 속도로 GPT-3 규모의 모델에는 수백 시간(주)의 계산이 필요한 것으로 추정됩니다.
점진적 크기 가지치기와 같은 대부분의 기존 가지치기 방법은 정확성을 복원하기 위해 가지치기 단계 후 광범위한 재훈련이 필요하며 GPT 규모 모델은 일반적으로 광범위한 재훈련이 필요합니다. 훈련이나 미세 조정에 필요한 계산량과 매개변수 조정이 재훈련을 어렵게 만듭니다. 기반 방법을 적용하기가 어렵습니다. 따라서 이러한 점진적 가지치기 접근 방식을 GPT 규모에 적용하는 것은 불가능합니다.
ISTA 팀의 이 작업은 SparseGPT 방법을 제안합니다. 이 방법은 단일 GPU에서 1000억 개가 넘는 매개변수가 있는 모델을 몇 시간 안에 실행할 수 있으며 모델을 희소성 수준 50%로 잘라낼 만큼 정확합니다. 60%, 성능이 크게 저하되지 않습니다.
SparseGPT의 핵심에는 반구조적(2:4 및 4:8) 모드로 일반화하고 기존 가중치 양자화 방법과 호환되는 새로운 대규모 근사 희소 회귀 알고리즘이 있습니다.
점진적 규모 가지치기와 같은 대부분의 기존 가지치기 방법은 정확성을 복원하기 위해 가지치기 단계 이후 광범위한 재훈련이 필요하며, GPT 규모 모델은 종종 훈련 또는 미세 조정을 위해 많은 양의 계산 및 매개변수 조정이 필요합니다. 이는 재훈련 기반 방법을 적용하기 어렵게 만듭니다. 따라서 이러한 점진적 가지치기 접근 방식을 GPT 규모에 적용하는 것은 불가능합니다.
SparseGPT는 미세 조정을 수행하지 않기 때문에 GPT 규모 모델에 대한 사후 학습 방법입니다.
현재 ZeroQuant, LLM.int8(), nuQmm 등 GPT 규모 모델의 사후 학습을 정량화하는 방법은 많지만 비정상적인 특징이 존재하기 때문에 활성화 양자화가 어려울 수 있습니다. GPTQ는 대략적인 2차 정보를 활용하여 가중치를 가장 큰 모델에 적합한 2-4비트로 정확하게 양자화하며, 효율적인 GPU 코어와 결합하면 2-5배의 추론 가속이 가능합니다.
그러나 GPTQ는 양자화보다는 희소화에 중점을 두기 때문에 SparseGPT는 양자화 방법을 보완하는 것이며, 두 가지를 조합하여 적용할 수 있습니다.
또한 SparseGPT는 구조화되지 않은 가지치기 외에도 Ampere NVIDIA GPU에서 2:4 비율로 가속을 달성할 수 있는 인기 있는 n:m 스파스 형식과 같은 반구조적 패턴에도 적합합니다.
SparseGPT 압축 모델의 효과를 평가한 결과, 연구진은 대규모 언어 모델의 희소화 어려움은 모델 크기에 비례한다는 것을 발견했는데, 이는 기존 비교와는 다릅니다. Magnitude Pruning 방법을 사용하면 SparseGPT를 사용하여 정확도 손실을 최소화하면서 더 높은 수준의 모델 희소성을 달성할 수 있습니다.
연구원들은 PyTorch에 SparseGPT를 구현하고 HuggingFace의 Transformers 라이브러리를 사용하여 80GB 메모리를 갖춘 단일 NVIDIA A100 GPU에서 모델과 데이터 세트를 모두 처리했습니다. 이러한 실험 조건에서 SparseGPT는 약 4시간 만에 1,750억 매개변수 모델의 완전한 희소화를 달성할 수 있습니다.
연구원들은 Transformer 레이어를 순차적으로 희소화하여 메모리 요구 사항을 크게 줄이고 모든 레이어를 병렬로 처리하는 정확도를 크게 향상시킵니다. 모든 압축 실험은 미세 조정 없이 한 번에 수행되었습니다.
평가 대상은 주로 OPT 시리즈 모델이며, 여기에는 1억 2,500만 ~ 1,750억 개의 매개변수로 구성된 모델 세트가 포함되어 있어 모델 크기에 따른 가지치기의 확장 성능을 쉽게 관찰할 수 있습니다. 또한 BLOOM의 1,760억 개의 매개변수 변형이 분석되었습니다.
데이터 세트 및 평가 지표 측면에서 실험은 원본 WikiText2 테스트 세트의 복잡성을 사용하여 SparseGPT 압축 방법의 정확성을 평가하는 동시에 해석 가능성을 높이기 위해 일부 ZeroShot 정확도 지표를 사용합니다. 또한 사용됩니다. 또한 평가에서는 절대 수치보다는 조밀한 모델 기준선을 기준으로 한 희소 모델의 정확성에 중점을 둡니다.
연구원들은 전체 OPT 모델 시리즈(표준 임베딩 및 헤더 제외)의 모든 선형 레이어를 정리하여 각각 전체 4:8 또는 전체 2:4의 구조화되지 않은 희소성을 달성했으며 결과는 다음과 같습니다. 아래에 표시됩니다.
진폭 가지치기를 사용하여 압축한 모델의 정확도는 모든 크기에서 좋지 않으며, 모델이 클수록 정확도가 떨어지는 것을 알 수 있습니다.
SparseGPT를 사용하여 압축한 모델의 추세는 다릅니다. 27억 개의 매개변수에서는 Perplexity 손실이 1포인트 미만이고, 660억 개의 매개변수 미만에서는 손실이 없습니다. 또한 밀도가 높은 모델의 기준선에 비해 매우 큰 모델 크기에서 정확도가 향상됩니다.
일반적인 추세는 더 큰 모델이 희소화하기 쉽다는 것입니다. 고정된 희소성 수준에서는 모델 크기가 증가함에 따라 희소 모델의 상대적 정확도가 감소합니다. . 저자는 이것이 더 높은 수준의 매개변수화와 전반적으로 더 큰 잡음에 대한 내성 때문일 수 있다고 추측합니다.
최대 규모의 조밀한 모델 기준과 비교하여 SparseGPT를 사용하여 모델을 4:8 및 2:4 희소성으로 압축할 때 복잡성 증가는 각각 0.11 및 0.39에 불과합니다. 이 결과는 실제로 2배의 속도 향상을 달성할 수 있으며 상용 NVIDIA Ampere GPU는 이미 2:4 희소성을 지원한다는 것을 의미합니다.
저자는 20억 모델인 OPT-175B와 BLOOM-176B의 성능과 SparseGPT를 사용하여 발생하는 희소성 정도 사이의 관계를 연구했습니다. 그 결과는 아래 그림과 같습니다.
OPT-175B 모델의 경우 진폭 가지치기를 통해 최대 10%의 희소성을 달성할 수 있으며 그 뒤에는 큰 정확도 손실이 따르는 것을 볼 수 있습니다. SparseGPT는 또한 복잡성이 증가하면서 60%의 희소성을 달성할 수 있습니다.
BLOOM-176B 모델의 경우 진폭 가지치기를 사용하면 상당한 정확도 손실 없이 30% 희소성을 달성할 수 있는 반면, SparseGPT는 1.66배 향상된 50% 희소성을 달성할 수 있습니다. 더욱이 80% 희소성에서 SparseGPT를 사용하여 압축된 모델의 복잡도는 여전히 합리적인 수준으로 유지되지만 진폭 가지치기가 OPT의 희소성 40% 및 BLOOM의 희소성 60%에 도달하면 당혹성은 이미 100을 초과합니다.
또한 SparseGPT는 이러한 모델에서 약 1,000억 개의 가중치를 제거할 수 있으며 모델 정확도에 미치는 영향은 제한적입니다.
마지막으로, 이 연구는 Transformer를 기반으로 한 대규모 사전 훈련 모델이 재훈련 없이 매우 낮은 정확도 손실로 일회성 가중치 가지치기를 통해 높은 희소성으로 압축될 수 있음을 처음으로 보여줍니다.
SparseGPT의 방법이 로컬이라는 점은 주목할 가치가 있습니다. 각 가지치기 단계 후에 각 레이어의 입력-출력 관계를 보존하는 것을 목표로 가중치 업데이트를 수행하며 이러한 업데이트는 상황에 따라 계산된 전역 그라데이션 정보 없이 수행됩니다. . 따라서 대규모 GPT 모델의 높은 수준의 매개변수화를 통해 이 접근 방식을 통해 사전 훈련된 조밀한 모델의 "이웃 모델" 중에서 희박하고 정확한 모델을 직접 식별할 수 있는 것으로 보입니다.
또한 실험에 사용된 정확도 지표(perplexity)가 매우 민감하기 때문에 생성된 희소 모델 출력은 밀집 모델의 출력과 밀접한 관련이 있는 것으로 보입니다.
이 연구는 대형 모델의 컴퓨팅 성능 한계를 완화하는 데 큰 긍정적인 의미가 있습니다. 향후 작업 방향 중 하나는 대형 모델의 미세 조정 메커니즘을 연구하여 동시에 SparseGPT 방법을 확장하는 것입니다. 모델 교육을 적용하면 대규모 모델을 교육하는 데 드는 계산 비용이 줄어듭니다.
위 내용은 최초의 1000억 모델 압축 알고리즘인 SparseGPT가 출시되어 높은 정확도를 유지하면서 컴퓨팅 전력 비용을 절감합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!