Hugging Face Transformers๊ฐ bitsandbytes์ auto-gptq ๋ ๊ฐ์ง ์์ํ ๋ฐฉ์์ ๋น๊ต ๋ถ์ํ์ฌ ์ถ๋ก ์๋์ ํ์ธํ๋ ์ฑ๋ฅ์ ํธ๋ ์ด๋์คํ๋ฅผ ๋ช ํํ ์ ์
Overview of natively supported quantization schemes in ๐ค Transformers
AI ์์ฝ
Context
๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ์ ๋ฉ๋ชจ๋ฆฌ ์๋น๋์ ์ค์ด๊ธฐ ์ํด ์์ํ ๊ธฐ์ ์ด ํ์์ ์ด๋ค. ํ์ฌ Transformers ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ bitsandbytes์ auto-gptq ๋ ๊ฐ์ง ์์ํ ๋ฐฉ์์ ์ง์ํ๊ณ ์์ผ๋, ๊ฐ ๋ฐฉ์์ ์ฅ๋จ์ ๊ณผ ์ฑ๋ฅ ํน์ฑ์ด ๋ช ํํ๊ฒ ์ ๋ฆฌ๋์ง ์์ ์ฌ์ฉ์๊ฐ ์ ํ์ ์ด๋ ค์์ ๊ฒช๊ณ ์๋ค.
Technical Solution
- bitsandbytes 4๋นํธ ์์ํ: ์บ๋ฆฌ๋ธ๋ ์ด์ ๋ฐ์ดํฐ์ ๋ถํ์ํ ์ ๋ก์ท ์์ํ๋ก ๋ชจ๋ torch.nn.Linear ๋ชจ๋์ ํฌํจํ ๋ชจ๋ธ์ ์ฆ์ ์ ์ฉ ๊ฐ๋ฅ
- auto-gptq 4๋นํธ ์์ํ: exllama ์ปค๋์ ์ฌ์ฉํ ๊ณ ์ ์ถ๋ก ์ผ๋ก ํ ์คํธ ์์ฑ ์์ ์์ bitsandbytes๋ณด๋ค ์ฐ์ํ ์ฒ๋ฆฌ๋ ์ ๊ณต
- bitsandbytes ์ด๋ํฐ ๋ณํฉ: ์์ํ๋ ๊ธฐ๋ณธ ๋ชจ๋ธ ์์์ ํ์ตํ ์ด๋ํฐ๋ฅผ ์ถ๋ก ์ฑ๋ฅ ์ ํ ์์ด ๋ณํฉ ๊ฐ๋ฅ
- auto-gptq ๋ชจ๋ธ ์ง๋ ฌํ: 4๋นํธ ์์ํ๋ ๋ชจ๋ธ์ TheBloke ๋ค์์คํ์ด์ค์์ ์ง๋ ฌํ๋ ํํ๋ก ์ ๊ณตํ์ฌ ๋ค์ด๋ก๋ ํ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅ
- ํ์ด๋ธ๋ฆฌ๋ ์ ๊ทผ: bitsandbytes๋ก ์ ๋ก์ท ์์ํ โ ์ด๋ํฐ ํ์ธํ๋ โ auto-gptq๋ก ์ฌ์์ํ ํ ๋ฐฐํฌํ๋ ํ์ดํ๋ผ์ธ
Impact
- Llama-2-7B ๋ชจ๋ธ: bitsandbytes 4๋นํธ ํ๊ฐ ์ ์๋ณธ 54.32์์ 53.4๋ก 0.92 ํฌ์ธํธ ์ฑ๋ฅ ์ ํ, auto-gptq ์ฌ์ฉ ์ 53.23์ผ๋ก 1.09 ํฌ์ธํธ ์ฑ๋ฅ ์ ํ
- Llama-2-13B ๋ชจ๋ธ: bitsandbytes 4๋นํธ ํ๊ฐ ์ ์๋ณธ 58.66์์ 56.9์ผ๋ก 1.76 ํฌ์ธํธ ์ฑ๋ฅ ์ ํ, auto-gptq ์ฌ์ฉ ์ 57.56~58.03์ผ๋ก 0.63~1.1 ํฌ์ธํธ ์ฑ๋ฅ ์ ํ
- ํ์ธํ๋ ์ฑ๋ฅ: bitsandbytes๊ฐ auto-gptq๋ณด๋ค ์ด๋ํฐ ํ์ธํ๋์์ ๋ ๋น ๋ฅธ ํ์ต ์๋ ์ ๊ณต
Key Takeaway
์์ํ ๊ธฐ์ ์ ํ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค: ํ์ธํ๋ ์ค์ฌ์ด๋ฉด bitsandbytes์ ์ ๋ก์ท ์ฑ๋ฅ๊ณผ ์ด๋ํฐ ๋ณํฉ ์ด์ ์ ํ์ฉํ๊ณ , ์ถ๋ก ์ฒ๋ฆฌ๋ ์ต์ ํ๊ฐ ํ์ํ๋ฉด auto-gptq์ ๊ณ ์ ํ ์คํธ ์์ฑ ์ฑ๋ฅ์ ์ ํํด์ผ ํ๋ค. ํฐ ๋ชจ๋ธ์ผ์๋ก ์์ํ๋ก ์ธํ ์ฑ๋ฅ ์ ํ๊ฐ ์ต์ํ๋๋ ๊ฒฝํฅ์ ๋ณด์ธ๋ค.
์ค์ฒ ํฌ์ธํธ
๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ์ ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ํ๊ฒฝ์์ ์คํํด์ผ ํ๋ ์์ง๋์ด๋, ํ์ธํ๋์ด ํ์ํ ๊ฒฝ์ฐ bitsandbytes 4๋นํธ ์์ํ๋ก ์์ํ๊ณ ์ต์ข ๋ฐฐํฌ ์ auto-gptq๋ก ์ฌ์์ํํ๋ ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ์์ ์ ์ฉํ๋ฉด ํ์ธํ๋ ์๋ ์ด์ ๊ณผ ์ถ๋ก ์ฑ๋ฅ์ ๋์์ ํ๋ณดํ ์ ์๋ค. ์ ๋ก์ท ์์ํ๊ฐ ํ์ํ๊ฑฐ๋ Whisper, ViT ๊ฐ์ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ์ ๋ค๋ฃจ๋ ๊ฒฝ์ฐ๋ผ๋ฉด bitsandbytes๋ฅผ ์ง์ ์ ํํด์ผ ํ๋ค.