Skip to main content
QUICK REVIEW

[논문 리뷰] LORD: Low Rank Decomposition Of Monolingual Code LLMs For One-Shot Compression

Ayush Kaushal, Tejas Vaidhya|arXiv (Cornell University)|2023. 09. 25.
Computational Physics and Python Applications인용 수 4
한 줄 요약

이 논문은 재학습이 필요 없이 단일 언어 코드 LLM을 압축하기 위한 one-shot 저질서 분해 방법인 LoRD를 제안한다. 조밀한 선형 레이어를 낮은 질서의 행렬으로 분해함으로써 LoRD는 1% 미만의 퍼플렉서티 증가로 최대 39.58%의 질서 감소를 달성하며, 추론 속도를 22.35% 향상시키고, StarCoder 16B를 성능 저하 없이 13.2B 파라미터로 압축한다.

ABSTRACT

Low Rank Decomposition of matrix - splitting a large matrix into a product of two smaller matrix offers a means for compression that reduces the parameters of a model without sparsification, and hence delivering more speedup on modern hardware. Moreover, unlike quantization, the compressed linear layers remain fully differentiable and all the parameters trainable, while being able to leverage the existing highly efficient kernels over floating point matrices. We study the potential to compress Large Language Models (LLMs) for monolingual Code generation via Low Rank Decomposition (LoRD) and observe that ranks for the linear layers in these models can be reduced by upto 39.58% with less than 1% increase in perplexity. We then use Low Rank Decomposition (LoRD) to compress StarCoder 16B to 13.2B parameter with no drop and to 12.3B with minimal drop in HumanEval Pass@1 score, in less than 10 minutes on a single A100. The compressed models speeds up inference by up to 22.35% with just a single line of change in code over huggingface's implementation with pytorch backend. Low Rank Decomposition (LoRD) models remain compatible with state of the art near-lossless quantization method such as SpQR, which allows leveraging further compression gains of quantization. Lastly, QLoRA over Low Rank Decomposition (LoRD) model further reduces memory requirements by as much as 21.2% over vanilla QLoRA while offering similar gains from parameter efficient fine tuning. Our work shows Low Rank Decomposition (LoRD) as a promising new paradigm for LLM compression.

연구 동기 및 목표

  • 대규모 단일 언어 코드 LLM에 대해 재학습 없이도 실현 가능한 저질서 분해 기법을 탐색하는 것.
  • 하드웨어에 특화된 커널과 비가역성 등의 문제를 야기하는 양자화 및 프루닝의 한계를 조밀한 행렬 곱셈을 활용해 해결하는 것.
  • 효율적이고 완전히 가역적이며 학습 가능한 압축 모델을 통해 빠르고 하드웨어 최적화된 추론을 가능하게 하는 것.
  • QLoRA와 같은 최신의 양자화 및 파rameter 효율적 파인튜닝 기법과의 호환성을 입증하는 것.
  • 메모리와 계산 요구량을 줄여 소비자용 하드웨어에서 대규모 코드 LLM의 배포를 가능하게 하는 것.

제안 방법

  • LoRD는 트랜스포머 블록 내 모든 조밀한 선형 레이어를 두 개의 더 작은 저질서 행렬로 분해하여 파라미터 수를 줄인다.
  • 이 방법은 재학습 없이도 가중치 행렬의 저질서 근사값을 식별하기 위해 특이값 분해(SVD) 또는 데이터 기반 분해를 적용한다.
  • 완전한 모델 가중치를 사용해 반복적인 피지테이닝이나 디스틸리케이션 없이 단일 스텝으로 압축을 수행한다.
  • 압축된 레이어는 완전히 가역적이며 기존의 단정밀도 GEMM 커널(e.g., cuBLAS)과 호환되어 고속 추론을 가능하게 한다.
  • 이 방법은 Hugging Face의 PyTorch 백엔드와 원활하게 통합되며, 배포를 위해 단 한 줄의 코드 변경만으로 가능하다.
  • LoRD 모델은 근사 손실 없는 양자화(SpQR) 및 QLoRA 파인튜닝을 통해 추가로 압축되어 모델 크기와 메모리 효율성 향상을 달성한다.
(a) Perplexity vs % Rank Reduction for CodeGen Models.
(a) Perplexity vs % Rank Reduction for CodeGen Models.

실험 결과

연구 질문

  • RQ1재학습 없이 대규모 단일 언어 코드 LLM(예: StarCoder, CodeGen)에 저질서 분해를 효과적으로 적용할 수 있는가?
  • RQ2모델 성능을 유지하면서 코드 LLM의 선형 레이어 질서를 어느 정도까지 낮출 수 있는가?
  • RQ3추론 속도, 하드웨어 호환성, 모델의 가역성 측면에서 LoRD는 양자화 및 프루닝과 비교해 어떻게 성능을 내는가?
  • RQ4LoRD는 기존의 양자화 및 파rameter 효율적 파인튜닝 기법과 융합하여 추가적인 압축 및 효율성 향상을 달성할 수 있는가?
  • RQ5제한된 메모리가 있는 소비자용 GPU에서 배포된 압축 모델이 성능을 유지하는가?

주요 결과

  • LoRD는 코드 LLM의 선형 레이어 질서를 최대 39.58% 감소시키며, 퍼플렉서티 증가가 1% 미만이다.
  • StarCoder 16B는 성능 저하 없이 13.2B 파라미터로 압축되었으며, HumanEval Pass@1 점수는 31.67(기존) 대비 31.57로 유의미한 하락 없이 유지되었다. 12.3B로 압축했을 경우에도 소폭의 하락(29.22)만 있었다.
  • 단일 A100에서 Hugging Face 기본 구현 대비 단 한 줄의 코드 변경으로 최대 22.35%의 추론 속도 향상을 달성했다.
  • LoRD 모델은 완전히 가역적이며 최신의 양자화(SpQR)와 호환되어 추가적인 압축 성과를 낼 수 있다.
  • LoRD 모델을 대상으로 QLoRA 파인튜닝을 수행한 결과, 기존 QLoRA 대비 최대 21.2%의 메모리 사용량 감소를 달성했으며, 유사한 파인튜닝 성능 유지를 이룩했다.
  • 이 방법은 하드웨어 최적화되어 있으며 기존의 cuBLAS 커널을 활용하고 희소 행렬 오버헤드를 피함으로써 대부분의 GPU에서 희소 또는 양자화 추론보다 빠른 성능을 보인다.
(b) Perplexity vs % Rank Reduction for StarCoder Models.
(b) Perplexity vs % Rank Reduction for StarCoder Models.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.