Xeon์—์„œ ๐Ÿค— Optimum Intel์™€ ํ•จ๊ป˜ํ•˜๋Š” SetFit ์ถ”๋ก  ๊ฐ€์†ํ™”

TL;DR

Hugging Face๋Š” SetFit ๋ชจ๋ธ์ด Intel Xeon CPU์—์„œ ๐Ÿค— Optimum Intel ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•œ ์‚ฌํ›„ ํ›ˆ๋ จ ์ •์  ์–‘์žํ™”๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ถ”๋ก  ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ตœ๋Œ€ 7.8๋ฐฐ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ตœ์ ํ™”๋Š” ์ •ํ™•๋„์— ๊ฑฐ์˜ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ few-shot ํ•™์Šต ๋ชจ๋ธ์„ ํ”„๋กœ๋•์…˜ ์ˆ˜์ค€์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

SetFit: ํšจ์œจ์ ์ธ Few-Shot ํ•™์Šต

SetFit์€ ์ œํ•œ๋œ ๋ผ๋ฒจ๋ง๋œ ํ•™์Šต ๋ฐ์ดํ„ฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Sentence Transformers์˜ few-shot ๋ฏธ์„ธ ์กฐ์ •์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. Large Language Model(LLM) ๊ธฐ๋ฐ˜ ๋ฐฉ๋ฒ•์— ๋น„ํ•ด ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์žฅ์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ํ”„๋กฌํ”„ํŠธ ์ œ๊ฑฐ: LLM์„ ์‚ฌ์šฉํ•œ ์ธ์ปจํ…์ŠคํŠธ ํ•™์Šต์€ ๊นจ์ง€๊ธฐ ์‰ฌ์šด ์ˆ˜์ž‘์—… ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ, SetFit์€ ์†Œ์ˆ˜์˜ ๋ผ๋ฒจ๋œ ์˜ˆ์‹œ๋งŒ์œผ๋กœ ์ง์ ‘ ์ž„๋ฒ ๋”ฉ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ํ•™์Šต ํšจ์œจ์„ฑ: SetFit์€ ์ผ๋ฐ˜์ ์œผ๋กœ GPT-3.5๋‚˜ Llama 2์™€ ๊ฐ™์€ LLM์— ๋น„ํ•ด ํ•™์Šต ๋ฐ ์ถ”๋ก  ์†๋„๊ฐ€ ํ•œ ์ฐจ๋ก€ ์ •๋„ ๋น ๋ฆ…๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ, SetFit์€ 5๊ฐœ์˜ ์ƒท์„ ์‚ฌ์šฉํ•  ๋•Œ 3-shot ํ”„๋กฌํ”„ํŠธ์—์„œ GPT-3.5๋ฅผ ๋Šฅ๊ฐ€ํ•˜๊ณ , Banking 77 ๊ธˆ์œต ์˜๋„ ๋ฐ์ดํ„ฐ์…‹์—์„œ 3-shot GPT-4๋ณด๋‹ค ๋›ฐ์–ด๋‚œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿค— Optimum Intel๋ฅผ ์‚ฌ์šฉํ•œ ์ถ”๋ก  ๊ฐ€์†ํ™”

Intel CPU์—์„œ SetFit ์ถ”๋ก ์„ ๊ฐ€์†ํ™”ํ•˜๊ธฐ ์œ„ํ•ด Hugging Face๋Š” Optimum Intel์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Intel Advanced Vector Extensions 512(AVX-512), Vector Neural Network Instructions(VNNI), Advanced Matrix Extensions(AMX)๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์€ ๋ชจ๋“  ์ฝ”์–ด์— ๋‚ด์žฅ๋œ BFloat16(bf16) ๋ฐ int8 GEMM ๊ฐ€์†๊ธฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์‚ฌํ›„ ํ›ˆ๋ จ ์ •์  ์–‘์žํ™” (PTQ)

ํ•ต์‹ฌ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์€ Intel Neural Compressor(INC)๋ฅผ ํ†ตํ•œ **Post-Training Static Quantization (PTQ)**์ž…๋‹ˆ๋‹ค. ์–‘์žํ™”๋Š” ๊ฐ€์ค‘์น˜์™€ ํ™œ์„ฑํ™”๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋น„ํŠธ ์ˆ˜๋ฅผ ์ค„์ด๋ฉฐ(์˜ˆ: ๊ณ ์ •๋ฐ€ ์ˆซ์ž๋ฅผ INT8๋กœ ๋ณ€ํ™˜), ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ๊ฐ์†Œ์‹œํ‚ค๊ณ  ์—ฐ์‚ฐ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

PTQ๋Š” ์ถ”๊ฐ€ ํ•™์Šต ์—†์ด๋„ ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ๊ฐ์†Œ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ํŠนํžˆ ํšจ๊ณผ์ ์ด๋ฉฐ, ๋ณดํ†ต ์•ฝ 100๊ฐœ์˜ ์ƒ˜ํ”Œ๋กœ ๊ตฌ์„ฑ๋œ ์ž‘์€ ๋ผ๋ฒจ ์—†๋Š” ๋ณด์ • ์„ธํŠธ๋งŒ์œผ๋กœ๋„ ๋ณด์ด์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒค์น˜๋งˆํฌ ๋ฐ ์„ฑ๋Šฅ ๊ฒฐ๊ณผ

bge-small ๋ชจ๋ธ์„ sst2 ๋ฐ์ดํ„ฐ์…‹์— ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ–ˆ์œผ๋ฉฐ, ์›๋ณธ PyTorch/Transformers fp32 ๊ตฌํ˜„๊ณผ IPEX-bfloat16 ๋ฒ„์ „, ๊ทธ๋ฆฌ๊ณ  ์–‘์žํ™”๋œ Optimum-int8 ๋ฒ„์ „์„ ๋น„๊ตํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€์—ฐ ์‹œ๊ฐ„ ๋ฐ ๋ชจ๋ธ ํฌ๊ธฐ

๋ฐฐ์น˜ ํฌ๊ธฐ 1์—์„œ ์ตœ์ ํ™”๋œ Optimum-int8 ๋ชจ๋ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํฐ ๊ฐœ์„ ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค:

  • ์ง€์—ฐ ์‹œ๊ฐ„ ๊ฐ์†Œ: ์ง€์—ฐ ์‹œ๊ฐ„์ด 3.45๋ฐฐ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค(4.55 ms vs fp32 ๋ชจ๋ธ์˜ 15.69 ms).
  • ๋ชจ๋ธ ํฌ๊ธฐ ๊ฐ์†Œ: ๋ชจ๋ธ ํฌ๊ธฐ๊ฐ€ 2.85๋ฐฐ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค(44.65 MB vs 127.32 MB).
  • ์ •ํ™•๋„ ์œ ์ง€: ์ •ํ™•๋„๋Š” ๊ฑฐ์˜ ๋ณ€ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ, 88.4%(fp32)์—์„œ 88.1%(int8)๋กœ ์•ฝ๊ฐ„ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜๋ฆฌ๋Ÿ‰ ํ–ฅ์ƒ

์ง€์—ฐ ์‹œ๊ฐ„ ๊ฐœ์„ ๋„ ํฌ์ง€๋งŒ, ๊ฐ€์žฅ ํฐ ์ด๋“์€ ์ฒ˜๋ฆฌ๋Ÿ‰์—์„œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐฐ์น˜ ํฌ๊ธฐ์—์„œ ๋‹ฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ตœ๊ณ  ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋น„๊ตํ–ˆ์„ ๋•Œ, Optimum-int8 ๋ชจ๋ธ์€ ์›๋ณธ transformers fp32 ๋ชจ๋ธ๋ณด๋‹ค 7.8๋ฐฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.

์ง€ํ‘œ bge-small (transformers) bge-small (ipex-bfloat16) bge-small (optimum-int8)
๋ชจ๋ธ ํฌ๊ธฐ 127.32 MB 63.74 MB 44.65 MB
์ •ํ™•๋„ (ํ…Œ์ŠคํŠธ ์„ธํŠธ) 88.4% 88.4% 88.1%
์ง€์—ฐ ์‹œ๊ฐ„ (bs=1) 15.69 +/- 0.57 ms 5.67 +/- 0.66 ms 4.55 +/- 0.25 ms

๊ตฌํ˜„ ์›Œํฌํ”Œ๋กœ์šฐ

์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ณผ์ •์€ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

  1. ์–‘์žํ™”: optimum.intel์˜ INCQuantizer๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , PostTrainingQuantConfig๋ฅผ "static" ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ "ipex" ๋ฐฑ์—”๋“œ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฐฐํฌ: ์–‘์žํ™”๋œ ๋ชจ๋ธ ๋ณธ๋ฌธ์„ IPEXModel๋กœ ๊ฐ์‹ธ๊ณ , SetFit ๋ชจ๋ธ ๊ตฌ์กฐ์— ํ†ตํ•ฉํ•˜์—ฌ ์ถ”๋ก ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

SUMMARY: Hugging Face๋Š” ๐Ÿค— Optimum Intel ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•œ ์‚ฌํ›„ ํ›ˆ๋ จ ์ •์  ์–‘์žํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Intel Xeon CPU์—์„œ SetFit ๋ชจ๋ธ์˜ ์ถ”๋ก  ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ตœ๋Œ€ 7.8๋ฐฐ ๋น ๋ฅด๊ฒŒ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

TITLE: Xeon์—์„œ ๐Ÿค— Optimum Intel์™€ ํ•จ๊ป˜ํ•˜๋Š” SetFit ์ถ”๋ก  ๊ฐ€์†ํ™”

Sources