>기술 주변기기 >일체 포함 >대형 언어 모델 (LLMS)의 양자화 : AI 모델 크기를 효율적으로 줄이기

대형 언어 모델 (LLMS)의 양자화 : AI 모델 크기를 효율적으로 줄이기

Christopher Nolan
Christopher Nolan원래의
2025-03-05 09:10:13789검색
노트북에서 나만의 chatgpt를 실행하십시오 : LLM 양자화 안내서 노트북에서 직접 chatgpt를 실행하는 꿈을 꾸었습니까? LLM (Largin Language Models)의 발전 덕분에 이것은 현실이되고 있습니다. 핵심은 양자화입니다. 성능 손실이 최소화 된 소비자 하드웨어에 맞도록 이러한 거대한 모델을 축소하는 기술입니다 (올바른 경우). 이 안내서는 양자화, 그 방법을 설명하고 두 가지 쉬운 단계로 Hugging Face의 Quanto 라이브러리를 사용하여 모델을 정량화하는 방법을 보여줍니다. DataCamp Datalab을 사용하여 팔로우하십시오 LLMS의 끊임없이 성장하는 크기

llms는 복잡성으로 폭발했습니다. GPT-1 (2018)은 0.11 억 파라미터를 가졌다; GPT-2 (2019), 15 억; GPT-3 (2020), 무려 175 억; GPT-4는 1 조를 자랑합니다. 이러한 대규모 성장은 메모리 병목 현상을 만들어 훈련과 추론을 방해하고 접근성을 제한합니다. 양자화는 성능을 보존하는 동안 모델의 크기를 줄임으로써 이것을 해결합니다. 양자화 이해

Quantization은 모델의 가중치 및 활성화의 정밀도를 줄이는 모델 압축 기술입니다. 여기에는 고정 장치 유형 (예 : 32 비트 플로팅 포인트)에서 데이터를 낮은 정밀 유형 (예 : 8 비트 정수)으로 변환하는 것이 포함됩니다. 비트가 적 으면 메모리, 저장 및 에너지가 적은 작은 모델을 의미합니다. 이미지 압축 생각 : 고해상도 이미지는 웹 사용을 위해 압축되어 세부 사항의 비용으로 크기 및 로딩 시간을 줄입니다. 마찬가지로 LLM을 정량화하면 계산 요구가 줄어들어 덜 강력한 하드웨어에서 실행할 수 있습니다.

더 빠른 웹 로딩을위한 이미지 압축.

Quantization은 노이즈 (양자화 오류)를 도입하지만 연구는 성능을 유지하기 위해 이것을 최소화하는 데 중점을 둡니다. 양자화 이론 Quantization은 일반적으로 모델 가중치를 목표로합니다. 이 가중치는 처음에는 무작위이며 훈련 중에 조정됩니다. 간단한 예는 웨이트를 소수점 이하의 자리로 반올림하는 것입니다.

예 : 웨이트 매트릭스 (왼쪽) 및 양자화 된 버전 (오른쪽). 원래와 양자 매트릭스의 차이는 양자화 오류입니다.

양자화 오류 행렬. Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently 실제로, 양자화는 데이터 유형을 변경하는 것 (다운 캐스팅)이 포함됩니다. 예를 들어, float32 (매개 변수 당 4 바이트)에서 int8 (매개 변수 당 1 바이트)로 변환하면 메모리 사용이 크게 줄어 듭니다. 뇌 플로팅 포인트 (BF16) 및 다운 캐스팅 Google이 개발 한 BF16은 Float32의 동적 범위와 Float16의 효율성 사이의 균형을 제공합니다. 다운 캐스팅-고정밀에서 저렴한 데이터 유형으로 변동하는 다운 캐스팅은 속도를 높이지만 특히 데이터 유형이 작은 데이터 손실 및 오류 전파로 이어질 수 있습니다. 양자화 유형

몇 가지 양자화 유형이 있습니다 :

선형 양자화 :

맵 플로팅 지점 값을 고정점 범위에 균등하게 맵핑합니다. 최소/최대 값, 스케일, 제로 포인트, 양자화 및 쿼트 화 (추론 중)를 계산하는 것이 포함됩니다.

선형 양자화 방정식

예 : 중량 행렬의 선형 양자화

  • dequantization and Quantization 오류 블록 동정 양자화 :
  • 는 더 작은 블록으로 가중치를 양자화하여 비 균일 분포를보다 효과적으로 처리합니다.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

중량 대 활성화 양자화 :

양자화는 가중치 (정적) 및 활성화 (동적) 모두에 적용될 수 있습니다. 활성화 양자화는 더 복잡합니다.

후 훈련 후 양자화 (PTQ) 대 양자화 인식 훈련 (QAT) : Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently PTQ는 미리 훈련 된 모델을 정량화합니다. QAT는 양자화 효과를 시뮬레이션하기위한 교육을 수정하여 정확도가 향상되지만 교육 시간이 증가합니다.

캘리브레이션 기술 일부 방법에는 캘리브레이션이 필요합니다. 양자화 매개 변수를 최적화하기 위해 데이터 세트의 런닝 추론. 기술에는 백분위 수 교정 및 평균/표준 편차 교정이 포함됩니다. Qlora와 같은 방법은 교정을 피합니다 양자화 도구 몇몇 파이썬 라이브러리는 Pytorch 및 Tensorflow를 포함한 양자화를 지원합니다. Hugging Face의 Quanto Library는 Pytorch 모델의 프로세스를 단순화합니다. 포옹 얼굴의 Quanto 로 모델을 정량화합니다 다음은 Pythia 410M 모델을 사용하는 단계별 안내서입니다

    모델을로드하십시오 :
  1. 미리 훈련 된 모델과 토큰 화제를로드하십시오
  2. Quantize :
를 사용하여
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "EleutherAI/pythia-410m"
model = AutoModelForCausalLM.from_pretrained(model_name, low_cpu_mem_usage=True)
tokenizer = AutoTokenizer.from_pretrained(model_name)
를 사용하여 모델을 변환하십시오
  1. 동결 : quantize()를 사용하려면 가중치에 양자화를 적용하십시오
from quanto import quantize, freeze
quantize(model, weights=torch.int8, activations=None)
결과 확인 : 감소 된 모델 크기 및 테스트 추론을 확인하십시오. (참고 :
    는 사용자 정의 기능입니다. 구현을 위해 DataCamp Datalab 참조).
  1. freeze()
freeze(model)
  1. 결론 양자화는 LLM이보다 접근 가능하고 효율적으로 만듭니다. 기술을 이해하고 Hugging Face 's Quanto와 같은 도구를 사용하면 덜 강력한 하드웨어에서 강력한 모델을 실행할 수 있습니다. 더 큰 모델의 경우 리소스 업그레이드를 고려하십시오 llm Quantization faqs compute_module_sizes()
    • QAT 대 PTQ : > Quanto Library :
    • 는 PTQ와 QAT를 모두 지원합니다. 는 암시 적 교정을 포함합니다. 사용자 정의 교정을 위해 메소드를 사용할 수 있습니다 정밀도 : int4 및 int2 Quantization이 가능합니다 껴안는 얼굴 모델에 액세스 :
    • 변수를 원하는 모델로 변경하십시오. 포옹 얼굴의 이용 약관을 받아들이는 것을 잊지 마십시오 quantize()

위 내용은 대형 언어 모델 (LLMS)의 양자화 : AI 모델 크기를 효율적으로 줄이기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.