본문 바로가기

AI & Big Data/AI 경량화 논문 분석

QLoRA: Efficient Finetuning of Quantized LLMs (★★★)

반응형

Basic Information

  • Tim Dettmers, Artidoro Pagnoni, Ari Holtzman, Luke Zettlemoyer 저
  • 23.05.23
  • Extended NeurIPS submission
  • 논문 아카이브: Link
  • 코드 아카이브: Link (Official)

서론

  • 이 논문은 QLoRA를 소개하며, 이는 메모리 사용량을 줄이기 위해 설계된 효율적인 미세조정 방법입니다. 이 방법을 사용하면 65B 파라미터 모델을 단일 48GB GPU에서 16비트 미세조정 작업 성능을 유지하면서 미세조정할 수 있습니다.
  • QLoRA의 주요 특징은 다음과 같습니다:
    • 4비트 NormalFloat (NF4): 정규 분포된 가중치에 최적화된 새로운 데이터 유형입니다.
    • 더블 양자화: 양자화 상수를 양자화하여 평균 메모리 사용량을 줄입니다.
    • 페이지화된 최적화기: 메모리 스파이크를 관리하는 데 사용됩니다. 이 논문의 최고의 모델 계열인 Guanaco는 Vicuna 벤치마크에서 이전에 출시된 모든 모델을 능가합니다. ChatGPT의 성능 수준의 99.3%를 달성하며 단일 GPU에서 미세조정에 24시간만 필요합니다.
  • 저자들은 QLoRA를 사용하여 1,000개 이상의 모델을 미세조정하였으며, 다양한 지시어 데이터셋, 모델 유형 및 모델 규모에 걸쳐 지시어 따르기 및 챗봇 성능에 대한 포괄적인 분석을 제공합니다.
  • 결과는 QLoRA 미세조정이 작은 고품질 데이터셋에서도 이전 SoTA보다 작은 모델로도 최신 기술 결과를 가져올 수 있음을 나타냅니다.
  • 논문은 또한 인간 및 GPT-4 평가를 기반으로 한 챗봇 성능에 대한 자세한 분석을 다루며, GPT-4 평가가 인간 평가에 대한 합리적이고 비용 효과적인 대안이 될 수 있음을 제안합니다.

배경

  • 큰 언어 모델(LLMs)의 미세조정의 효과성을 강조합니다.
  • 그러나 매우 큰 모델의 미세조정에 따른 금지적인 비용에 도전이 있습니다.
    • 예를 들어, LLaMA 65B 파라미터 모델의 일반 16비트 미세조정은 780 GB 이상의 GPU 메모리가 필요합니다. LLMs의 메모리 사용량을 줄이기 위한 기존의 양자화 방법이 있지만, 이러한 기술은 주로 추론에 적합하며 훈련 중에는 효과적이지 않습니다.
  • 논문은 성능 저하 없이 양자화된 4비트 모델의 미세조정 가능성을 처음으로 보여줍니다. 그들의 방법, QLoRA는 고유한 고정밀 기술을 사용하여 사전 훈련된 모델을 4비트로 양자화한 다음 학습 가능한 저랭크 어댑터 가중치의 작은 집합을 도입합니다.
  • 이 논문에서는 모델 간의 경쟁에서 승자를 결정하는 GPT-4를 기반으로 Vicuna 벤치마크에 대한 Elo 등급을 제공하는 표(Table 1)를 제공합니다.

메모리 효율성 및 모델 성능

  • QLoRA는 65B 파라미터 모델의 미세조정을 위한 평균 메모리 요구 사항을 크게 줄입니다.
  • 메모리 요구 사항은 780GB 이상에서 48GB 미만으로 줄어들며, 런타임 또는 예측 성능을 저하시키지 않습니다.
  • 이런 발전으로 인해 가장 큰 공개 모델을 단일 GPU에서 미세조정하는 것이 가능해졌습니다.
  • QLoRA를 사용하여 훈련된 Guanaco 모델 계열은 인상적인 성능을 보여줍니다.
  • 최고의 모델은 Vicuna 벤치마크에서 ChatGPT의 성능의 99.3%를 달성하며 전문 GPU에서 훈련에 24시간만 필요합니다.
  • 게다가, 가장 작은 Guanaco 모델인 7B 파라미터는 메모리가 5 GB만 필요하며, Vicuna 벤치마크에서 26 GB Alpaca 모델을 20 퍼센트 포인트 이상 능가합니다.

QLoRA

QLoRA 정의

  • 논문은 양자화된 기본 모델에서 단일 선형 계층과 단일 LoRA 어댑터에 대한 QLoRA의 공식 정의를 제공합니다.
  • 프로세스는 저장 데이터 유형을 계산 데이터 유형으로 비정량화하여 전방 및 후방 패스를 수행하는 것을 포함합니다.
  • 그러나 가중치 기울기는 16비트 BrainFloat를 사용하는 LoRA 파라미터에 대해서만 계산됩니다.

QLoRA 특장점

  • 4비트 NormalFloat: 정규 분포 데이터에 대한 최적의 양자화 데이터 유형으로, 4비트 정수 및 4비트 부동 소수점보다 경험적으로 더 우수합니다.
  • 더블 양자화: 이 방법은 양자화 상수를 양자화하여 평균 약 0.37 비트/파라미터(65B 모델에 대해 약 3 GB)를 절약합니다.
  • 페이지화된 최적화기: 이들은 NVIDIA 통합 메모리를 사용하여 미니 배치에서 긴 시퀀스 길이를 처리할 때 기울기 체크포인트 중에 발생하는 메모리 스파이크를 우회합니다.
  • QLoRA의 효율성 덕분에 저자들은 다양한 모델 규모에 걸쳐 지시어 미세조정 및 챗봇 성능에 대한 포괄적인 연구를 수행할 수 있었습니다. 그들은 80M에서 65B 파라미터까지 다양한 데이터셋, 아키텍처 및 크기의 1,000개 이상의 모델을 훈련시켰습니다. 주요 발견은 다음과 같습니다:
    • 데이터 품질은 데이터셋 크기보다 더 중요합니다. 예를 들어, 9k 샘플 데이터셋은 챗봇 성능에서 450k 샘플 데이터셋을 능가합니다.
    • Massive Multitask Language Understanding (MMLU) 벤치마크에서의 강력한 성능은 반드시 Vicuna 챗봇 벤치마크에서의 강력한 성능으로 이어지지 않습니다. 특정 작업에 대한 데이터셋의 적합성이 크기보다 더 중요합니다.

QLoRA Finetuning

  • QLoRA는 여러 기술을 통해 고정밀 4비트 미세조정을 달성합니다:
    • 4비트 NormalFloat (NF4) 양자화: 이 방법은 각 양자화 빈이 입력 텐서에서 할당된 값의 동일한 수를 보장합니다. 양자화의 주요 도전 과제는 양자화 추정의 비싼 과정입니다. 이 문제를 해결하기 위해 빠른 양자화 근사 알고리즘이 사용됩니다. 그러나 이러한 알고리즘은 이상치에 대해 큰 양자화 오류를 도입할 수 있으며, 이러한 값은 종종 가장 중요한 값입니다. 논문은 입력 텐서가 양자화 상수까지 고정된 분포에서 올 때 이러한 문제를 피할 수 있음을 제안합니다.
    • Double 양자화: 이 과정은 추가 메모리 절약을 위해 양자화 상수를 양자화합니다. 작은 블록 크기는 정밀한 4비트 양자화에 필수적이지만, 이것은 또한 상당한 메모리 오버헤드를 도입합니다. Double 양자화는 이러한 양자화 상수의 메모리 사용량을 줄이기 위해 목표로 합니다.
    • 페이지화된 최적화기: 이들은 기울기 체크포인트 중에 메모리 스파이크를 방지하기 위해 도입되었습니다. 이것은 전통적으로 큰 모델에 대한 단일 기계에서의 미세조정을 어렵게 만들었습니다.

4-bit NormalFloat Quantization

  • NormalFloat (NF) 데이터 유형은 양자화 양자화를 기반으로 하며, 이것은 이론적으로 최적의 가능성을 보여줍니다.
  • 논문은 데이터를 양자화하는 데 관련된 이슈와 해결책을 논의합니다. 특히 이상치가 있는 경우입니다.
  • 저자들은 표준 편차를 조정하여 분포가 데이터 유형의 범위에 정확히 맞도록 모든 가중치를 단일 고정 분포로 변환하는 방법을 제안합니다.
  • 논문은 또한 양자화 패딩 및 기타 제로 값 요소를 오류 없이 정확하게 표현하기 위해 중요한 0의 정확한 표현을 보장하는 비대칭 데이터 유형을 도입합니다.

Double Quantization

  • Double 양자화 (DQ)는 첫 번째 양자화에서의 양자화 상수를 두 번째 양자화의 입력으로 취급하는 것을 포함합니다.
  • 이것은 양자화된 양자화 상수와 두 번째 수준의 양자화 상수를 결과로 합니다.
  • 논문은 8비트 양자화에 대한 성능 저하가 관찰되지 않기 때문에 두 번째 양자화에 대해 8비트 부동 소수점을 사용합니다. 값을 0 주위로 중심화하여 대칭 양자화가 사용됩니다. 평균적으로 이 방법은 파라미터 당 메모리 사용량을 0.5비트에서 0.127비트로 줄여, 파라미터 당 0.373비트를 줄입니다.

Paged Optimizer

  • Paged Optimizer는 NVIDIA 통합 메모리 기능을 활용하여 GPU 처리 중에 메모리 부족 오류를 방지합니다.
  • 이 기능은 CPU RAM과 디스크 사이의 정규 메모리 페이징과 유사하게 작동합니다.
  • 최적화기 상태에 페이지 메모리를 할당하는 데 사용되며, GPU가 메모리를 다 사용하면 CPU RAM으로 자동 이동되고 최적화기 업데이트 단계 중에 필요할 때 GPU 메모리로 다시 전송됩니다.

QLoRA vs Standard Finetuning

  • 논문은 QLoRA와 표준 미세조정 사이의 비교에 들어갑니다.
  • 주요 질문은 QLoRA가 전체 모델 미세조정의 성능을 따라잡을 수 있는지 여부입니다.
  • 저자들은 또한 QLoRA의 구성 요소, 특히 NormalFloat4가 표준 Float4보다 어떤 영향을 미치는지 분석하려고 합니다.
  • 실험 설정은 QLoRA를 다양한 벤치마크와 아키텍처에서 3B까지의 모델과 16비트 어댑터 미세조정 및 전체 미세조정과 비교하는 것을 포함합니다.

Background Knowledge

Block-wise k-bit Quantization

  • 양자화는 더 많은 정보로 표현되는 입력을 더 적은 정보로 표현되는 것으로 이산화하는 과정입니다.
  • 이것은 일반적으로 32비트 부동 소수점에서 8비트 정수와 같이 더 많은 비트를 가진 데이터 유형을 더 적은 비트로 변환하는 것을 포함합니다.
  • 논문은 입력 텐서에 이상치가 있는 경우 데이터를 양자화하는 데 있어 도전과제를 논의합니다.
  • 이를 해결하기 위해 입력 텐서는 독립적으로 양자화되는 블록으로 분할되며, 각 블록에는 자체 양자화 상수가 있습니다.
  • 예를 들어, FP32를 [-127, 128]로 양자화하는 계산식은 아래와 같습니다.

Low-rank Adapters

  • Low-rank Adapter (LoRA) Finetuning은 전체 모델 파라미터를 고정 상태로 유지하면서 학습 가능한 파라미터인 어댑터라는 작은 집합을 사용하여 메모리를 절약하는 방법입니다.
  • 확률적 경사 하강 중에 기울기는 고정된 사전 훈련된 모델 가중치를 통과하여 어댑터로 전달되며, 손실 함수를 최적화하기 위해 어댑터가 업데이트됩니다.
  • LoRA는 선형 투영에 추가로 인자화된 투영을 도입합니다.

Parameter-Efficient Finetuning의 메모리 요구 사항:

논문은 LoRA가 Parameter Efficient Finetuning (PEFT) 방법으로 설계되었지만, LLM 미세조정의 대부분의 메모리 사용량은 활성화 기울기에서 발생하며, 학습된 LoRA 파라미터에서 발생하지 않는다고 강조합니다. 예를 들어, 배치 크기가 1인 FLAN v2에서 훈련된 7B LLaMA 모델의 경우, LoRA 입력 기울기는 567 MB의 메모리 사용량을 가지며, 반면 LoRA 파라미터는 26 MB만 차지합니다. 논문은 기울기 체크포인트가 필수적이지만, LoRA 파라미터의 양을 줄이면 메모리 혜택이 거의 없다고 강조합니다. 이것은 전체 훈련 메모리 사용량을 크게 늘리지 않고 더 많은 어댑터를 사용할 수 있음을 의미하며, 이것은 전체 16비트 정밀도 성능을 달성하는 데 중요합니다.

실험 방법 및 결과

  • 실험은 세 가지 아키텍처(인코더, 인코더-디코더, 디코더 만)를 고려합니다.
  • 평가는 GLUE와 RoBERTa-large, Super-NaturalInstructions와 T5, 그리고 FLAN v2와 Alpaca에서 LLaMA를 미세조정한 후 5-shot MMLU와 같은 벤치마크를 포함합니다.
  • 논문은 또한 다양한 모델에서 후 양자화 제로샷 정확도와 미세조정 후 정확도를 비교합니다.

Training 설정

  • 연구는 강화 학습 없이 교차 엔트로피 손실 (지도 학습)을 사용하여 QLoRA Finetuning을 수행했습니다.
  • 지시와 응답 사이에 명확한 구분이 있는 데이터 세트의 경우 응답만 미세조정되었습니다.
  • 모든 실험에서는 두 번의 양자화와 페이지화된 최적화기가 있는 NF4 QLoRA가 사용되었습니다.
  • 13B와 33B LLaMA 모델에 대한 하이퍼파라미터 검색이 수행되었으며, 7B에서 찾은 모든 하이퍼파라미터 설정이 일반화되었음을 발견했습니다.
    • 단, 학습률과 배치 크기를 제외합니다.

Baseline

  • 모델은 연구 및 상업 챗봇 시스템과 비교되었습니다.
  • Open Assistant 모델은 OASST1 데이터 세트에서 인간 피드백으로부터의 강화 학습(RLHF)으로 미세조정된 LLaMA 33B 모델입니다.
  • Vicuna는 ShareGPT에서 공유된 사용자 대화에서 LLaMA 13B의 전체 미세조정을 수행합니다.
  • MMLU (Massively Multitask Language Understanding) 벤치마크는 다양한 언어 이해 작업에서의 성능을 측정하는 데 사용되었습니다.

Evaluation

  • 생성 언어 능력은 자동 및 인간 평가를 통해 테스트되었습니다.
  • 이 평가 세트는 인간이 정리한 질의에 의존하며 모델 응답의 품질을 측정하는 것을 목표로 합니다.
  • 평가 설정은 p = 0.9 및 temperature 0.7로 핵심 샘플링을 사용했습니다.

Benchmark Data

  • 연구는 질의의 두 가지 정리된 데이터 세트를 평가합니다.
    • Vicuna 프롬프트: 다양한 카테고리의 80개의 프롬프트 세트입니다.
    • OASST1 검증 데이터 세트: 사용자와 조수 사이의 다양한 언어의 대화를 모아놓은 데이터 세트입니다.
  • 검증 데이터 세트의 모든 사용자 메시지는 질의로 선택되며, 이전 턴이 프롬프트에 포함됩니다. 이로 인해 953개의 고유한 사용자 질의가 생겼습니다. 이 데이터 세트는 Vicuna 및 OA 벤치마크로 지칭됩니다.

Automated Evaluation

  • GPT-4 평가:
    • Chiang 등이 소개한 평가 프로토콜을 기반으로, GPT-4는 Vicuna 벤치마크에서 ChatGPT (GPT-3.5 Turbo)와 다른 시스템의 성능을 평가하는 데 사용됩니다.
    • ChatGPT와 모델의 응답과 함께 질의가 주어지면, GPT-4는 두 응답 모두에 대해 10점 만점의 점수를 부여하고 설명을 제공하도록 요청됩니다.
    • 모델의 전체 성능은 ChatGPT가 달성한 점수의 백분율로 계산됩니다.
    • 중요한 순서 효과가 발견되었으며, GPT-4는 프롬프트에서 먼저 나타나는 응답의 점수를 높였습니다.
    • 이러한 효과를 통제하기 위해 두 순서에 대한 평균 점수가 보고됩니다.
  • 직접 비교:
    • 성능은 시스템 출력 사이의 직접 비교를 통해 측정됩니다.
    • GPT-4는 최상의 응답을 선택하거나 동점을 선언하고 설명을 제공하도록 요청됩니다.
    • 이러한 직접 비교는 Vicuna 및 OA 벤치마크에서 시스템 Pairwise의 모든 순열에 대해 수행됩니다.

Human Evaluation

  • 생성 모델은 시스템 평가에 효과적으로 사용될 수 있지만, GPT-4 평가가 Human의 판단과 상관 관계가 있는지에 대한 챗봇 성능을 평가하는 신뢰성은 아직 입증되지 않았습니다.
  • 따라서 Vicuna 벤치마크에서 두 가지 자동 평가 프로토콜과 일치하는 Parallel Human Evaluation가 실행됩니다.
  • Amazon Mechanical Turk (AMT)가 사용되며, ChatGPT와의 비교에는 2명의 Human Annotator가 평가하며, Pairwise Comparison에는 3명의 Human Annotator가 평가합니다.

Elo 평가

  • Human Evaluation과 Automated Pairwise Comparison을 모두 사용하여 모델들이 서로 대결하는 토너먼트 스타일의 경쟁이 생성됩니다.
  • 토너먼트는 주어진 프롬프트에 대한 최상의 응답을 생성하기 위해 모델 쌍이 경쟁하는 경기로 구성됩니다
  • Elo 평가는 체스와 다른 게임에서 널리 사용되며, 상대방의 승률에 대한 예상 승률을 측정합니다.
  • 각 경기 후 Elo 평가는 예상 결과에 비례하여 변경됩니다.
  • 시간이 지남에 따라 Elo 평가는 게임을 하는 각 플레이어의 능력과 대략 일치합니다.
  • 연구는 1,000점으로 시작하고 K = 32를 사용합니다.
  • 이 절차는 순서 효과를 통제하기 위해 다른 무작위 시드로 10,000번 반복됩니다.

실험 결과

  • Guanaco는 최첨단 챗봇으로 소개됩니다.
    • OASST1에서 훈련된 QLoRA는 Guanaco라는 이름의 최첨단 챗봇으로 소개됩니다.

Guanaco의 성능

  • OASST1의 변형에 미세조정된 최상의 QLoRA 조정 모델인 Guanaco 65B는 최고의 성능을 제공하는 오픈 소스 챗봇 모델로 확인되었습니다.
  • GPT-4와 비교할 때, Guanaco 65B와 33B 모델 모두 Human Annotator의 시스템 수준 Pairwise Comparison에서 Elo 평가를 기반으로 30%의 예상 승률을 가지고 있습니다.
  • 이것은 지금까지 보고된 것 중 가장 높습니다.
  • Vicuna 벤치마크 결과는 위 표에서 ChatGPT와 관련하여 표시됩니다. Guanaco 65B는 GPT-4 다음으로 최고의 성능을 발휘하는 모델로 나타났으며, ChatGPT에 대한 성능이 99.3%에 달합니다.
    • Guanaco 33B는 Vicuna 13B 모델보다 매개 변수가 더 많지만 4비트 정밀도로 인해 메모리 효율이 훨씬 높습니다.
    • 5GB의 메모리 크기를 가진 Guanaco 7B는 Alpaca 13B보다 거의 20 퍼센트 포인트 높은 점수를 얻어 현대의 휴대폰에 사용되기에도 매우 적합하고 쉽습니다.

  • Elo 순위:
    • 논문은 Human Annotator와 GPT-4로부터의 Pairwise Comparison 판단을 기반으로 절대적인 척도를 확립하는 문제를 피하기 위해 Elo 순위 방법을 사용하는 것을 권장합니다.
    • 가장 경쟁력 있는 모델의 Elo 평가는 Guanaco 33B와 65B 모델이 Vicuna 및 OA 벤치마크에서 GPT-4를 제외한 모든 모델보다 우수하다는 것을 나타냅니다.
    • 그들은 ChatGPT와 비슷하게 수행됩니다. Vicuna 벤치마크는 오픈 소스 모델을 선호하며, 더 큰 OA 벤치마크는 ChatGPT를 선호합니다. 미세조정 데이터 세트의 적합성은 성능을 결정하는 요인입니다.
      • 예를 들어, FLAN v2에서 Llama 모델을 미세조정하는 것은 MMLU에서 잘 수행되지만 Vicuna 벤치마크에서는 최악입니다.
  • GPT-4와 인간 주석자 간의 합의: GPT-4와 인간 주석자에 의한 시스템 수준의 판단 사이에는 중간 정도의 합의가 있어, 모델 기반 평가가 인간 평가에 대한 다소 신뢰할 만한 대안을 제공한다는 것을 나타냅니다.

결론

  • QLoRA는 큰 언어 모델의 미세 조정을 위한 효과적인 방법을 제시합니다.
  • 이 방법은 메모리 요구 사항을 크게 줄이면서도 성능을 유지하거나 향상시킬 수 있습니다.
  • 또한, 이 연구는 챗봇 성능 평가에 대한 새로운 접근 방식을 제시하며, 모델 기반 평가가 인간 평가와 어느 정도 일치하는지를 탐구합니다.
  • Guanaco와 같은 모델은 QLoRA를 사용하여 훈련되며, 현존하는 다른 모델들과 경쟁력 있는 성능을 보여줍니다.
  • 이 논문은 큰 언어 모델의 미세 조정에 대한 새로운 방향성을 제시하며, 이 분야의 연구에 중요한 기여를 합니다.

논문 분석 사족 (★★★을 준 이유)

  • AI경량화 논문 시장은 아주 작은 시장이기에, 생각 외로 결과값을 뻥튀기하거나, 특정 데이터셋 및 모델에 Bias된 논문들이 자주 보였습니다.
    • 그렇기에 그러한 논문들은 현업에서 구현하여 쓰기에 매우 부적절합니다.
  • 그러한 논문들 가운데 실제로 구현 및 일반적인 상황에서도 통용되는 논문들이 있는데, 그러한 논문들은 대체로 더 많은 비교와 더 자주 쓰이는 모델과의 비교를 일삼거나, Evaluation 자체에 굉장한 노력을 들인 것을 확인할 수 있었습니다.
  • 특히, 기존에 있던 유명한 개념을 더욱 진화시켜 만들어낸 논문의 경우에도 구현 후 사용이 용이한 것을 확인할 수 있었습니다.
    • 기존에 이미 LoRA와 Quantization, bfloat 등 통용되는 많은 개념은 이미 검증되었기에...
  • 물론 아예 코드를 배포하는 경우가 가장 신뢰도가 높습니다.
  • 이 논문은 그러한 조건들에 모두 부합하고, 그렇기에 개인적으로 실제 구현되어 사용될 수 있을 것 같은 기대감을 읽는 내내 주는 논문이었습니다.
  • 결과치가 일반적인 상황에서도 논문의 70~80%만 유지될 수 있더라도 상당히 혁신적인 적용이 될 수 있을 것 같습니다.
반응형