a smol course documentation

Parameter-Efficient Fine-Tuning, PEFT

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Parameter-Efficient Fine-Tuning, PEFT

์–ธ์–ด ๋ชจ๋ธ์ด ์ปค์ง€๋ฉด์„œ ์ „ํ†ต์ ์ธ ๋ฏธ์„ธ ์กฐ์ • ๋ฐฉ์‹์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ์  ์–ด๋ ค์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 1.7B ๋ชจ๋ธ์กฐ์ฐจ๋„ ์ „์ฒด ๋ฏธ์„ธ ์กฐ์ •์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ƒ๋‹นํ•œ GPU ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ๋ชจ๋ธ ์‚ฌ๋ณธ์„ ๋ณ„๋„๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค๊ณ , ๋ชจ๋ธ์˜ ์›๋ž˜ ๋Šฅ๋ ฅ์„ ์ƒ์‹คํ•˜๋Š” ์œ„ํ—˜์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. Parmeter-Efficient Fine-Tuning(PEFT) ๋ฐฉ๋ฒ•์€ ๋Œ€๋ถ€๋ถ„์˜ ๋ชจ๋ธ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๊ณ ์ •๋œ ์ƒํƒœ์—์„œ ๋ชจ๋ธ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ผ๋ถ€๋งŒ ์ˆ˜์ •ํ•˜์—ฌ ์ „์ฒด ๋ฏธ์„ธ ์กฐ์ • ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ—™๋‹ˆ๋‹ค.

ํ•™์Šต ๊ณผ์ •์—์„œ ๋ชจ๋ธ์˜ ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ „ํ†ต์ ์ธ ๋ฏธ์„ธ ์กฐ์ • ๋ฐฉ๋ฒ•์„ ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ˜„์‹ค์ ์œผ๋กœ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. PEFT๋Š” ์›๋ž˜ ๋ชจ๋ธ ํฌ๊ธฐ์˜ 1% ๋ฏธ๋งŒ์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋งŒ ํ•™์Šต์‹œ์ผœ ๋ชจ๋ธ์„ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ•™์Šต ๊ฐ€๋Šฅํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํฌ๊ฒŒ ์ค„์ด๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ์ œํ•œ๋œ GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ํ•˜๋“œ์›จ์–ด์—์„œ๋„ ๋ฏธ์„ธ ์กฐ์ • ๊ฐ€๋Šฅ
  • ํšจ์œจ์ ์ธ ํƒœ์Šคํฌ๋ณ„ ์ ์‘ ๋ชจ๋ธ ์ €์žฅ
  • ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์€ ์ƒํ™ฉ์—์„œ๋„ ๋›ฐ์–ด๋‚œ ์ผ๋ฐ˜ํ™” ์„ฑ๋Šฅ ์ œ๊ณต
  • ๋” ๋น ๋ฅธ ํ•™์Šต ๋ฐ ๋ฐ˜๋ณต ๊ฐ€๋Šฅ

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•

์ด ๋ชจ๋“ˆ์—์„œ๋Š” ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๊ฐ€์ง€ PEFT ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค:

1๏ธโƒฃ LoRA (Low-Rank Adaptation)

LoRA๋Š” ํšจ์œจ์ ์ธ ๋ชจ๋ธ ์ ์‘์„ ์œ„ํ•œ ๋ฉ‹์ง„ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” PEFT ๋ฐฉ๋ฒ•์œผ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค. LoRA๋Š” ์ „์ฒด ๋ชจ๋ธ์„ ์ˆ˜์ •ํ•˜๋Š” ๋Œ€์‹  ํ•™์Šต ๊ฐ€๋Šฅํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ชจ๋ธ์˜ ์–ดํ…์…˜ ๋ ˆ์ด์–ด์— ์ฃผ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ๋ฒ•์€ ์ „์ฒด ๋ฏธ์„ธ ์กฐ์ •๊ณผ ๋น„์Šทํ•œ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ํ•™์Šต ๊ฐ€๋Šฅํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์•ฝ 90%๊นŒ์ง€ ์ค„์ž…๋‹ˆ๋‹ค. LoRA (Low-Rank Adaptation) ์„น์…˜์—์„œ LoRA์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

2๏ธโƒฃ ํ”„๋กฌํ”„ํŠธ ํŠœ๋‹

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

์ฐธ๊ณ 

Update on GitHub