Optimum Quanto

Optimum Quanto

Quanto는 Optimum을 위한 PyTorch 양자화 백엔드로, 전체 정밀도 모델과 매우 유사한 정확도로 가중치(float8, int8, int4, int2)의 선형 양자화를 제공합니다. 어떤 모델 모달리티와 기기와도 호환되어 하드웨어와 무관하게 사용하기 쉽습니다.

출처: 문서

본문

Quanto는 Optimum을 위한 PyTorch 양자화 백엔드입니다. 가중치(float8, int8, int4, int2)의 선형 양자화를 전체 정밀도 모델과 매우 유사한 정확도로 제공합니다. Quanto는 어떤 모델 모달리티와 기기와도 호환되므로 하드웨어와 무관하게 사용하기 쉽습니다.

Quanto는 더 빠른 생성을 위해 torch.compile과도 호환됩니다.

다음 명령으로 Quanto를 설치하세요.

pip install optimum-quanto accelerate transformers

QuantoConfig를 만들고 양자화할 weights 파라미터를 지정해서 모델을 양자화합니다. torch.nn.Linear 레이어를 포함하는 한 모든 모달리티의 모든 모델에서 동작합니다.

[!TIP] Transformers 통합은 가중치 양자화만 지원합니다. 활성화 양자화, 캘리브레이션, 또는 QAT가 필요하면 Quanto 라이브러리를 직접 사용하세요.

from transformers import AutoModelForCausalLM, AutoTokenizer, QuantoConfig

quant_config = QuantoConfig(weights="int8")
model = transformers.AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3.1-8B", 
    dtype="auto", 
    device_map="auto", 
    quantization_config=quant_config
)

torch.compile

더 빠른 생성을 위해 Quanto 모델을 torch.compile로 감싸세요.

import torch
from transformers import AutoModelForSpeechSeq2Seq, QuantoConfig

quant_config = QuantoConfig(weights="int8")
model = AutoModelForSpeechSeq2Seq.from_pretrained(
  "openai/whisper-large-v2",
  dtype="auto",
  device_map="auto",
  quantization_config=quant_config
)

model = torch.compile(model)

Resources

라이브러리 설계와 벤치마크에 대해 더 알아보려면 Quanto: a PyTorch quantization backend for Optimum 블로그 게시물을 읽어보세요.

더 실용적인 예제는 Quanto 노트북을 참고하세요.

더 알아보기 (Learn more)