AMD Quark

AMD Quark (AMD Quark)

양자화는 메모리와 대역폭 사용을 줄이고, 연산을 가속하며, 최소한의 정확도 손실로 처리량을 높이는 강력한 수단이에요. AMD GPU에서 모델을 돌린다면, Quark라는 AMD의 유연하고 강력한 양자화 툴킷을 vLLM과 함께 쓸 수 있어요. 이 페이지에서 Quark로 모델을 양자화하는 과정을 살펴볼게요.

출처: vLLM 공식 문서 — AMD Quark

Quark 소개 (About Quark)

Quark는 대형 언어 모델을 웨이트·활성화·KV 캐시 양자화와 함께, AWQ, GPTQ, Rotation, SmoothQuant 같은 최신 양자화 알고리즘으로 양자화하는 데 특화된 지원을 제공해요. 그 결과 AMD GPU에서 성능 좋은 양자화 모델을 만들 수 있죠.

Quark 설치 (Installation)

모델을 양자화하기 전에 Quark를 설치해야 해요. pip로 최신 릴리스를 설치할 수 있어요.

pip install amd-quark

설치에 대한 더 자세한 내용은 Quark 설치 가이드를 참고하세요. 평가를 위해 vllmlm-evaluation-harness도 설치해요.

pip install vllm "git+https://github.com/EleutherAI/lm-evaluation-harness.git@206b7722158f58c35b7ffcd53b035fdbdda5126d = lm-eval[api]"

양자화 과정 (Quantization process)

Quark를 설치했다면, Quark의 양자화 과정은 크게 5단계로 나뉘어요.

  1. 모델 로딩
  2. 캘리브레이션 데이터로더 준비
  3. 양자화 구성 설정
  4. 모델 양자화 및 내보내기
  5. vLLM에서 평가

1. 모델 로딩 (Load the model)

Quark는 Transformers를 사용해 모델과 토크나이저를 가져와요.

2. 캘리브레이션 데이터로더 준비 (Prepare the dataloader)

Quark는 PyTorch Dataloader로 캘리브레이션 데이터를 로딩해요. 캘리브레이션 데이터셋을 효율적으로 쓰는 방법은 Adding Calibration Datasets 문서를 보세요.

3. 양자화 구성 설정 (Set the configuration)

양자화 구성을 설정해야 하는데, 자세한 내용은 quark config 가이드를 참고하세요. 예제에서는 웨이트·활성화·KV 캐시에 FP8 텐서별 양자화를 쓰고, 양자화 알고리즘은 AutoSmoothQuant를 사용해요.

참고: 양자화 알고리즘은 JSON config 파일이 필요하고, 그 파일은 Quark Pytorch 예시examples/torch/language_modeling/llm_ptq/models 디렉터리에 있어요. Llama용 AutoSmoothQuant config 파일은 examples/torch/language_modeling/llm_ptq/models/llama/autosmoothquant_config.json이에요.

4. 모델 양자화 및 내보내기 (Quantize and export)

그다음 양자화를 적용할 수 있어요. 양자화한 후에는 내보내기 전에 양자화된 모델을 먼저 동결(freeze) 해야 해요.

5. vLLM에서 평가 (Evaluation in vLLM)

전체 흐름과 코드 예시는 vLLM 문서의 Quark 페이지와 Quark 예시 코드를 참고하세요. (구체적인 5단계 코드는 자료 예시 디렉터리에 연결되어 있어요 — 확인 필요.)

더 알아보기 (Learn more)