트랜스포머 모델의 행과 열을 삭제하여 LLM을 압축하는 SliceGPT
SliceGPT: Compress Large Language Models by Deleting Rows and Columns
Saleh Ashkboos, Maximilian L. Croci, Marcelo Gennari Do Nascimento, Torsten Hoefler, James Hensman
한줄 요약
SliceGPT는 트랜스포머 모델의 가중치 행렬에서 중요도가 낮은 행과 열을 삭제하여 모델 크기를 줄이는 사후 압축 기법이다.
풀어야 하는 문제
대규모 언어 모델(LLM)은 막대한 계산 및 메모리 자원을 필요로 하며, 기존 가지치기(sparsification) 기법은 추가 데이터 구조가 필요하거나 하드웨어 가속에 제한이 있다. 모델 성능을 유지하면서 실질적인 추론 속도 향상과 메모리 절감을 달성하는 방법이 필요하다.
접근 방법
SliceGPT는 트랜스포머 네트워크의 계산 불변성(computational invariance)을 활용한다. LayerNorm과 residual stream의 특성을 이용해 가중치 행렬의 행과 열을 삭제해도 출력이 동일하게 유지되도록 변환한다. 각 가중치 행렬을 더 작은 밀집 행렬로 대체하여 임베딩 차원을 줄이고, 모델 전체를 축소한다. 이는 추가적인 희소성(sparsity) 지원 없이 일반 하드웨어에서 바로 속도 향상을 얻을 수 있다.
결과·기여
LLAMA2-70B, OPT 66B, Phi-2 모델에서 각각 25%의 파라미터를 제거하면서도 제로샷 성능의 99%, 99%, 90%를 유지했다. 24GB 소비자 GPU에서 LLAMA2-70B 추론 시 총 계산량을 밀집 모델 대비 64%로 줄였고, 40GB A100에서는 66%로 감소시켰다. 이는 추가 코드 최적화 없이 실제 GPU 메모리 사용량과 추론 시간을 크게 절감한 첫 사례이다.