Transformers documentation
EETQ
EETQ
EETQ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ NVIDIA GPU์ ๋ํด int8 ์ฑ๋๋ณ(per-channel) ๊ฐ์ค์น ์ ์ฉ ์์ํ(weight-only quantization)์ ์ง์ํฉ๋๋ค. ๊ณ ์ฑ๋ฅ GEMM ๋ฐ GEMV ์ปค๋์ FasterTransformer ๋ฐ TensorRT-LLM์์ ๊ฐ์ ธ์์ต๋๋ค. ๊ต์ (calibration) ๋ฐ์ดํฐ์ ์ด ํ์ ์์ผ๋ฉฐ, ๋ชจ๋ธ์ ์ฌ์ ์ ์์ํํ ํ์๋ ์์ต๋๋ค. ๋ํ, ์ฑ๋๋ณ ์์ํ(per-channel quantization) ๋๋ถ์ ์ ํ๋ ์ ํ๊ฐ ๋ฏธ๋ฏธํฉ๋๋ค.
๋ฆด๋ฆฌ์ค ํ์ด์ง์์ eetq๋ฅผ ์ค์นํ๋์ง ํ์ธํ์ธ์.
pip install --no-cache-dir https://github.com/NetEase-FuXi/EETQ/releases/download/v1.0.0/EETQ-1.0.0+cu121+torch2.1.2-cp310-cp310-linux_x86_64.whl
๋๋ ์์ค ์ฝ๋ https://github.com/NetEase-FuXi/EETQ ์์ ์ค์นํ ์ ์์ต๋๋ค. EETQ๋ CUDA ๊ธฐ๋ฅ์ด 8.9 ์ดํ์ด๊ณ 7.0 ์ด์์ด์ด์ผ ํฉ๋๋ค.
git clone https://github.com/NetEase-FuXi/EETQ.git
cd EETQ/
git submodule update --init --recursive
pip install .
๋น์์ํ ๋ชจ๋ธ์ โfrom_pretrainedโ๋ฅผ ํตํด ์์ํํ ์ ์์ต๋๋ค.
from transformers import AutoModelForCausalLM, EetqConfig
path = "/path/to/model".
quantization_config = EetqConfig("int8")
model = AutoModelForCausalLM.from_pretrained(path, device_map="auto", quantization_config=quantization_config)
์์ํ๋ ๋ชจ๋ธ์ โsave_pretrainedโ๋ฅผ ํตํด ์ ์ฅํ ์ ์์ผ๋ฉฐ, โfrom_pretrainedโ๋ฅผ ํตํด ๋ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
quant_path = "/path/to/save/quantized/model"
model.save_pretrained(quant_path)
model = AutoModelForCausalLM.from_pretrained(quant_path, device_map="auto")