LoRA์ QLoRA: AI ๋ชจ๋ธ ํ๋์ ํ๋๋ฅผ ๋ฐ๊พธ๋ค
๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ(LLM)์ ํน์ ์์ ์ ๋ง๊ฒ ์กฐ์ ํ๋ ๊ฒ์ ๋ง์น F1 ๊ฒฝ์ฃผ์ฉ ์๋์ฐจ๋ฅผ ํน์ ํธ๋์ ๋ง๊ฒ ํ๋ํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์ต๊ณ ์ ์ฑ๋ฅ์ ๋์ด๋ด๊ธฐ ์ํด ์ฌ์ธํ ์กฐ์ ์ด ํ์ํ์ง๋ง, ์ด ๊ณผ์ ์ ์์ฒญ๋ ์์๊ณผ ์๊ฐ์ ์๋ชจํ ์ ์์ฃ . ์ ํต์ ์ธ ์ ์ฒด ํ๋ผ๋ฏธํฐ ํ์ธํ๋(Full Fine-tuning) ๋ฐฉ์์ ๋ชจ๋ธ์ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํด์ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ , ๋๋ก๋ 'ํ๊ตญ์ ๋ง๊ฐ(catastrophic forgetting)'์ด๋ผ๋ ๋ฌธ์ ์ ๋ถ๋ชํ๊ธฐ๋ ํฉ๋๋ค.
ํ์ง๋ง ๊ฑฑ์ ๋ง์ธ์! ์ด์ ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ฐ๋ก ํ๋ผ๋ฏธํฐ ํจ์จ์ ํ์ธํ๋(Parameter-Efficient Fine-Tuning, PEFT) ๊ธฐ๋ฒ์ ๋๋ค. ์ด ๊ธ์์๋ PEFT์ ๋ํ์ ์ธ ์ฃผ์์ธ LoRA์, ๊ทธ๋ณด๋ค ํ ๋จ๊ณ ๋ ๋์๊ฐ QLoRA์ ๋ํด ์์ธํ ์์๋ณผ ๊ฒ์ ๋๋ค. ์ด ๋ ๊ธฐ์ ์ด ์ด๋ป๊ฒ LLM ํ๋์ ํจ๋ฌ๋ค์์ ๋ฐ๊พธ๊ณ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ ์ด๋ค ์ํฉ์ ๋ ์ ํฉํ์ง ๋ช ํํ๊ฒ ์ดํดํ๊ฒ ๋์ค ๊ฒ๋๋ค.
I. ํ๋ผ๋ฏธํฐ ํจ์จ์ ํ์ธํ๋(PEFT) ์ ๋ฌธ
PEFT๋ ๋ฌด์์ด๋ฉฐ ์ ์ค์ํ ๊น์?
PEFT๋ ์ด๋ฆ ๊ทธ๋๋ก โํ๋ผ๋ฏธํฐ๋ฅผ ํจ์จ์ ์ผ๋กโ ํ์ธํ๋ํ๋ ๊ธฐ์ ์ ๋๋ค. ์์ญ์ต, ์๋ฐฑ์ต ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง ๊ฑฐ๋ํ ์ฌ์ ํ๋ จ๋ ๋ชจ๋ธ(Pre-trained Model)์ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌํ์ต์ํค๋ ๋์ , ๋ชจ๋ธ์ ์์ฃผ ์์ ์ผ๋ถ ํ๋ผ๋ฏธํฐ๋ง ์ ํ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๋ฐฉ์์ด์ฃ .
๊ธฐ์กด ๋ชจ๋ธ์ ๊ฐ์ค์น๋ ๋๋ถ๋ถ โ๊ณ ์ (frozen)โ ์ํ๋ก ๋๊ณ , ์์์ ์๋ก์ด ํ๋ผ๋ฏธํฐ๋ง ์ถ๊ฐํ์ฌ ํ์ต์ํต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ง์น ๊ฑฐ๋ํ ๋น๋ฉ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๊ทธ๋๋ก ๋ ์ฑ, ํน์ ๊ณต๊ฐ์ ์ธํ ๋ฆฌ์ด๋ง ๋ฐ๊ฟ์ ์๋ก์ด ์ฉ๋๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
PEFT๊ฐ ์ค์ํ ์ด์ ๋ ๋ช ํํฉ๋๋ค.
- ์์ ์ ์ฝ: ํจ์ฌ ์ ์ ์์ ํ๋ผ๋ฏธํฐ๋ง ํ์ต์ํค๋ฏ๋ก, GPU ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ํ์ต ์๊ฐ์ ํ๊ธฐ์ ์ผ๋ก ์ค์ผ ์ ์์ต๋๋ค.
- ๋น์ฉ ์ ๊ฐ: ์ปดํจํ ์์์ ๋ ์ฌ์ฉํ๋ ๋น์ฐํ ๋น์ฉ๋ ์ ์ฝ๋ฉ๋๋ค.
- ํ๊ตญ์ ๋ง๊ฐ ๋ฐฉ์ง: ๊ธฐ์กด ๋ชจ๋ธ์ ์ง์ ๋๋ถ๋ถ์ ๋ณด์กดํ๋ฏ๋ก, ์๋ก์ด ์์ ์ ๋ํ ํ์ต์ผ๋ก ์ธํด ๊ธฐ์กด์ ํ์ต๋ ์ค์ํ ์ ๋ณด๋ฅผ ์์ด๋ฒ๋ฆฌ๋ โํ๊ตญ์ ๋ง๊ฐโ ๋ฌธ์ ๋ฅผ ์ํํ ์ ์์ต๋๋ค.
- ๋ชจ๋ธ ๊ด๋ฆฌ ์ฉ์ด์ฑ: ์๋ณธ ๋ชจ๋ธ์ ํ๋๋ง ์ ์งํ๊ณ , ๊ฐ ์์ ์ ๋ง๊ฒ ํ์ต๋ ์์ ํฌ๊ธฐ์ ์ถ๊ฐ ํ๋ผ๋ฏธํฐ(์ด๋ํฐ)๋ง ๊ต์ฒดํ๋ฉด ๋๋ฏ๋ก ์ฌ๋ฌ ์์ ์ ๊ด๋ฆฌํ๊ธฐ๊ฐ ํจ์ฌ ์์ํด์ง๋๋ค.
์ ํต์ ์ธ ํ์ธํ๋ vs. PEFT
| ํน์ง | ์ ์ฒด ํ๋ผ๋ฏธํฐ ํ์ธํ๋ (Full Fine-tuning) | ํ๋ผ๋ฏธํฐ ํจ์จ์ ํ์ธํ๋ (PEFT) |
|---|---|---|
| ํ์ต ๋์ | ๋ชจ๋ธ์ ๋ชจ๋ ํ๋ผ๋ฏธํฐ | ๋ชจ๋ธ์ ์ผ๋ถ ํ๋ผ๋ฏธํฐ (์ ์ฒด์ 1% ๋ฏธ๋ง) |
| GPU ๋ฉ๋ชจ๋ฆฌ | ๋งค์ฐ ๋์ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ๋ | ํจ์ฌ ์ ์ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ๋ |
| ํ์ต ์๊ฐ | ์ค๋ ๊ฑธ๋ฆผ | ์งง๊ฒ ๊ฑธ๋ฆผ |
| ํ๊ตญ์ ๋ง๊ฐ | ๋ฐ์ ์ํ ๋์ | ๋ฐ์ ์ํ ๋ฎ์ |
| ๋ชจ๋ธ ์ ์ฅ | ๊ฐ ์์ ๋ง๋ค ์ ์ฒด ๋ชจ๋ธ ํฌ๊ธฐ์ ์ฌ๋ณธ ํ์ | ์๋ณธ ๋ชจ๋ธ + ์์ ์ด๋ํฐ ํ์ผ๋ง ํ์ |
์ด์ฒ๋ผ PEFT๋ ์์์ ์ ์ฝ ์์์๋ LLM์ ๊ฐ๋ ฅํ ์ฑ๋ฅ์ ํน์ ๋๋ฉ์ธ์ ๋ง๊ฒ ์ต์ ํํ ์ ์๋ ๋งค์ฐ ์ค์ฉ์ ์ด๊ณ ๊ฐ๋ ฅํ ์ ๊ทผ๋ฒ์ ๋๋ค. LoRA์ QLoRA๋ ๋ฐ๋ก ์ด PEFT ๊ณ์ด์ ํต์ฌ ๊ธฐ์ ์ ๋๋ค.
II. LoRA ํํค์น๊ธฐ: ๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅธ ํ๋์ ์์
LoRA(Low-Rank Adaptation)๋ PEFT ๊ธฐ๋ฒ ์ค์์๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ ์ค ํ๋์ ๋๋ค. LoRA์ ํต์ฌ ์์ด๋์ด๋ '์ ๊ณ์(Low-Rank) ํ๋ ฌโ์ ์ด์ฉํด ํ๋ผ๋ฏธํฐ ์ ๋ฐ์ดํธ๋ฅผ ํจ์จํํ๋ ๊ฒ์ ๋๋ค.
LoRA๋ ์ด๋ป๊ฒ ์๋ํ ๊น์?
LLM์ ๊ฐ ๋ ์ด์ด์๋ ๊ฑฐ๋ํ ๊ฐ์ค์น ํ๋ ฌ(Weight Matrix, W)์ด ์์ต๋๋ค. ์ ์ฒด ํ์ธํ๋์์๋ ์ด ํ๋ ฌ W๋ฅผ ์ง์ ์ ๋ฐ์ดํธํ์ง๋ง, LoRA๋ ๋ค๋ฅธ ๋ฐฉ์์ ์ทจํฉ๋๋ค.
- ์๋ณธ ๊ฐ์ค์น ๊ณ ์ : ๊ธฐ์กด์ ์ฌ์ ํ๋ จ๋ ๊ฐ์ค์น ํ๋ ฌ W๋ ํ์ต ์ค์ ๋ณ๊ฒฝ๋์ง ์๋๋ก ๊ณ ์ (freeze)ํฉ๋๋ค.
- ์ ๊ณ์ ํ๋ ฌ ์ถ๊ฐ: W ์์ ํจ์ฌ ์์ ๋ ๊ฐ์ ํ๋ ฌ, ์ฆ โ์ ๊ณ์ ํ๋ ฌโ A์ B๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด ๋ ํ๋ ฌ๋ง์ด ํ์ต์ ๋์์ด ๋ฉ๋๋ค.
- ํ๋ ฌ ๋ถํด: ์๋ ๊ฐ์ค์น ์ ๋ฐ์ดํธ๋(ฮW)์ ๋ ๊ฐ์ ์์ ํ๋ ฌ(A์ B)์ ๊ณฑ(BA)์ผ๋ก ๊ทผ์ฌ(approximate)ํฉ๋๋ค. ์ฌ๊ธฐ์ A๋ (d x r), B๋ (r x d) ์ฐจ์์ ๊ฐ์ง๋ฉฐ, r(rank)์ ์๋ ์ฐจ์ d๋ณด๋ค ํจ์ฌ ์์ ๊ฐ์ ๋๋ค. (์: r=8, 16, d=4096)
- ์ต์ข
์ถ๋ ฅ ๊ณ์ฐ: ๋ชจ๋ธ์ ์ต์ข
์ถ๋ ฅ์ ์๋ณธ ๊ฐ์ค์น W๋ฅผ ํต๊ณผํ ๊ฒฐ๊ณผ์, ๋ ๊ฐ์ ์์ ํ๋ ฌ BA๋ฅผ ํต๊ณผํ ๊ฒฐ๊ณผ๋ฅผ ๋ํด์ ๊ณ์ฐ๋ฉ๋๋ค. ์ฆ,
h = Wx + BAx๊ฐ ๋ฉ๋๋ค.
ํ์ต์ด ๋๋๋ฉด ์ฐ๋ฆฌ๋ ์๋ณธ ๋ชจ๋ธ W์๋ ๋ณ๊ฐ๋ก, ์์ฃผ ์์ ํฌ๊ธฐ์ ํ๋ ฌ A์ B๋ง ์ ์ฅํ๋ฉด ๋ฉ๋๋ค. ์ถ๋ก ์์๋ W' = W + BA์ฒ๋ผ ๋ ๊ฐ์ค์น๋ฅผ ํฉ์ณ์ ์ฌ์ฉํ๊ฑฐ๋, ๋ถ๋ฆฌ๋ ์ํ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
LoRA์ ์ฅ์
- ํ๋ผ๋ฏธํฐ ์ ๊ฐ์: ๋ญํฌยฎ๋ฅผ ์๊ฒ ์ค์ ํ๋ฉด ํ์ตํด์ผ ํ ํ๋ผ๋ฏธํฐ ์๊ฐ ๊ทน์ ์ผ๋ก ์ค์ด๋ญ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ญํฌ๋ฅผ 8๋ก ์ค์ ํ๋ฉด ํ๋ จ ๊ฐ๋ฅํ ํ๋ผ๋ฏธํฐ ์๊ฐ ์๋ฐฑ๋ง ๊ฐ ์์ค์ผ๋ก ์ค์ด๋ค ์ ์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๊ณ์ฐ ๋น์ฉ ์ ๊ฐ: ํ์ตํ ํ๋ผ๋ฏธํฐ๊ฐ ์ ์ผ๋ ๋น์ฐํ GPU ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ํ์ต ์๊ฐ์ด ์ค์ด๋ญ๋๋ค.
- ๊ณผ์ ํฉ(Overfitting) ์ํ ๊ฐ์: ๋ ์ ์ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ต์ํค๋ฏ๋ก, ์ ํ๋ ๋ฐ์ดํฐ์ ์ ๋ชจ๋ธ์ด ๊ณผ๋ํ๊ฒ ๋ง์ถฐ์ง๋ ๊ณผ์ ํฉ์ ์ํ์ด ์ค์ด๋ญ๋๋ค.
- ์ ์ฐํ ๋ชจ๋ธ ์ ์ฉ: ๋ชจ๋ธ์ ํน์ ๋ถ๋ถ(์: ์ดํ ์ ๋ ์ด์ด)์๋ง LoRA๋ฅผ ์ ํ์ ์ผ๋ก ์ ์ฉํ ์ ์์ด ๋ฏธ์ธ ์กฐ์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
III. QLoRA ๊น์ด ๋ณด๊ธฐ: ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ๊ทนํ์ ์ถ๊ตฌํ๋ค
QLoRA(Quantized Low-Rank Adaptation)๋ LoRA๋ฅผ ํ ๋จ๊ณ ๋ ๋ฐ์ ์ํจ ๊ธฐ์ ์ ๋๋ค. ์ด๋ฆ์ 'Qโ๊ฐ ์๋ฏธํ๋ฏ, ์์ํ(Quantization) ๊ธฐ์ ์ ์ ๋ชฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๊ทนํ๊น์ง ์ค์ด๋ ๋ฐ ์ด์ ์ ๋ง์ถฅ๋๋ค.
QLoRA๋ ๋ฌด์์ผ๊น์?
QLoRA์ ํต์ฌ ๋ชฉํ๋ LoRA๋ณด๋ค๋ ๋ ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋น์ทํ ์์ค์ ์ฑ๋ฅ์ ์ ์งํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์ํด ๋ค์๊ณผ ๊ฐ์ ํ์ ์ ์ธ ๊ธฐ๋ฒ๋ค์ ๋์ ํ์ต๋๋ค.
- 4๋นํธ NF4(NormalFloat) ์์ํ: QLoRA๋ ์ฌ์ ํ๋ จ๋ LLM์ ๊ฑฐ๋ํ ๊ฐ์ค์น(W)๋ฅผ 4๋นํธ NormalFloat(NF4) ๋ผ๋ ์๋ก์ด ๋ฐ์ดํฐ ํ์ ์ผ๋ก ์์ํํ์ฌ ์์ถํฉ๋๋ค. ๊ธฐ์กด์ 32๋นํธ ๋๋ 16๋นํธ ๋ถ๋์์์ ์ซ์๋ฅผ 4๋นํธ ์ซ์๋ก ํํํจ์ผ๋ก์จ, ๋ชจ๋ธ ๊ฐ์ค์น๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ 1/4 ๋๋ 1/8๊น์ง ์ค์ผ ์ ์์ต๋๋ค. ์ค์ํ ์ ์, ์ด ์์ํ๋ ์ ๋ณด ์์ค์ ์ต์ํํ๋๋ก ์ค๊ณ๋ ๋ฐ์ดํฐ ์ค์ฌ์ ์ธ ๋ฐฉ์์ด๋ผ๋ ๊ฒ์ ๋๋ค.
- ์ด์ค ์์ํ(Double Quantization): ์์ํ ๊ณผ์ ์์ฒด์๋ ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๋ฐ(์์ํ ์์ ๋ฑ), QLoRA๋ ์ด ์์๋ค๋ง์ ๋ค์ ํ๋ฒ ์์ํํ๋ '์ด์ค ์์ํโ๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋์ฑ ์ ์ฝํฉ๋๋ค.
- ํ์ด์ง๋ ์ตํฐ๋ง์ด์ (Paged Optimizers): GPU ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ, ์ตํฐ๋ง์ด์ ์ ์ํ(state)๋ฅผ CPU ๋ฉ๋ชจ๋ฆฌ๋ก ์ฎ๊ธฐ๋(offload) ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์คํ์ดํฌ ํ์์ ๊ด๋ฆฌํ๊ณ ํ์ต ์์ ์ฑ์ ๋์ ๋๋ค.
ํ์ต ๊ณผ์ ์์, ๊ณ ์ ๋ 4๋นํธ ๊ธฐ๋ณธ ๋ชจ๋ธ ๊ฐ์ค์น(W)๋ ๊ณ์ฐ์ด ํ์ํ ๋๋ง๋ค 16๋นํธ(bfloat16)๋ก ์ญ์์ํ(dequantized)๋์ด LoRA ๊ฐ์ค์น(A, B)์ ๊ณ์ฐ๋ฉ๋๋ค. LoRA ๊ฐ์ค์น ์์ฒด๋ ์ผ๋ฐ์ ์ธ 16๋นํธ ํ์์ผ๋ก ํ์ต๋ฉ๋๋ค.
QLoRA๊ฐ LoRA๋ณด๋ค ๋์ ์
- ํ์ ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ: 4๋นํธ ์์ํ ๋๋ถ์ LoRA๋ณด๋ค ํจ์ฌ ์ ์ GPU ๋ฉ๋ชจ๋ฆฌ๋ก๋ ๊ฑฐ๋ํ ๋ชจ๋ธ์ ํ์ธํ๋ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 24GB์ GPU ๋ฉ๋ชจ๋ฆฌ๋ก๋ 65B(650์ต) ํ๋ผ๋ฏธํฐ ๋ชจ๋ธ์ ํ๋ํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ง๋๋ค.
- ์ฑ๋ฅ ์ ์ง: ์ ๋ฐํ ์์ํ ๊ธฐ๋ฒ ๋๋ถ์, 4๋นํธ๋ก ์์ถํ์์๋ ๋ถ๊ตฌํ๊ณ 16๋นํธ๋ก ํ์ธํ๋ํ ๋ชจ๋ธ๊ณผ ๊ฑฐ์ ๋๋ฑํ ์์ค์ ์ฑ๋ฅ์ ์ ์งํฉ๋๋ค.
- ์ ๊ทผ์ฑ ํฅ์: ๊ณ ๊ฐ์ ํ์ด์๋ GPU๊ฐ ์๋ ์ฐ๊ตฌ์๋ ๊ฐ๋ฐ์๋ ๋น๊ต์ ์ ๋ ดํ ์๋น์์ฉ GPU๋ก LLM์ ํ์ธํ๋ํ ์ ์๊ฒ ๋์ด AI ๊ธฐ์ ์ ๋ฏผ์ฃผํ์ ๊ธฐ์ฌํฉ๋๋ค.
IV. LoRA vs. QLoRA: ์์ธ ๋น๊ต ๋ถ์
๊ทธ๋ ๋ค๋ฉด ์ธ์ LoRA๋ฅผ ์ฐ๊ณ , ์ธ์ QLoRA๋ฅผ ์จ์ผ ํ ๊น์? ๋ ๊ธฐ์ ์ ์ฅ๋จ์ ์ ๋ช ํํ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋
๋จ์ฐ QLoRA์ ์์น์ ๋๋ค. 4๋นํธ ์์ํ๋ QLoRA์ ๊ฐ์ฅ ํฐ ํน์ง์ด์ ์ฅ์ ์ ๋๋ค. QLoRA๋ฅผ ์ฌ์ฉํ๋ฉด LoRA ๋๋น ์ฝ 30% ์ ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, LoRA๋ก 21GB์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๋ค๋ฉด QLoRA๋ก๋ 14GB ์ ๋๋ฉด ์ถฉ๋ถํ ์ ์์ต๋๋ค. GPU ๋ฉ๋ชจ๋ฆฌ๊ฐ ์กฐ๊ธ ๋ชจ์๋ผ์ ํ์ต์ ์์์กฐ์ฐจ ๋ชป ํ๋ ๋ชจ๋ธ์ด ์๋ค๋ฉด QLoRA๊ฐ ์ ์ผํ ํด๊ฒฐ์ฑ ์ด ๋ ์ ์์ต๋๋ค.
ํ์ต ์๋
์ฌ๊ธฐ์๋ ํธ๋ ์ด๋์คํ๊ฐ ๋ฐ์ํฉ๋๋ค. QLoRA๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ผ๋ ๋์ , ํ์ต ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฝ๋๋ค. ๊ฐ์ค์น๋ฅผ ๊ณ์ฐํ ๋๋ง๋ค 4๋นํธ์์ 16๋นํธ๋ก ์ญ์์ํํ๋ ๊ณผ์ ์ด ์ถ๊ฐ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฒฝํ์ ์ผ๋ก QLoRA๋ LoRA๋ณด๋ค ์ฝ 30% ์ ๋ ํ์ต ์๊ฐ์ด ๋ ์์๋ ์ ์์ต๋๋ค. ๋ง์ฝ ์ถฉ๋ถํ GPU ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํ ์ ์๊ณ , ๋น ๋ฅธ ํ์ต ์๋๊ฐ ๋ ์ค์ํ๋ค๋ฉด LoRA๊ฐ ๋ ๋์ ์ ํ์ผ ์ ์์ต๋๋ค.
์ฑ๋ฅ (์ ํ๋)
๋๋๊ฒ๋, QLoRA๋ ๊ทน์ฌํ ๋ฉ๋ชจ๋ฆฌ ์์ถ์๋ ๋ถ๊ตฌํ๊ณ ์ฑ๋ฅ ์ ํ๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ์ฌ๋ฌ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅด๋ฉด, QLoRA๋ก ํ๋ํ ๋ชจ๋ธ์ LoRA๋ ์ ์ฒด ํ์ธํ๋ ๋ชจ๋ธ๊ณผ ๋น๊ตํ์ ๋ ์ ์๋ฏธํ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํน์ ๋ฒค์น๋งํฌ์์๋ ๋ฏธ์ธํ ์ฑ๋ฅ ํ๋ฝ์ด ๊ด์ฐฐ๋๊ธฐ๋ ํ์ง๋ง, ๋๋ถ๋ถ์ ์ค์ ์ฌ์ฉ ์ฌ๋ก์์๋ ๊ทธ ์ฐจ์ด๋ฅผ ์ฒด๊ฐํ๊ธฐ ์ด๋ ต์ต๋๋ค.
ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋
LoRA์ QLoRA ๋ชจ๋ ๋น์ทํ ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ๊ณต์ ํ๋ฉฐ, ์ด๋ฅผ ์ด๋ป๊ฒ ์ค์ ํ๋๋๊ฐ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
- ๋ญํฌ ยฎ: ํ์ตํ ํ๋ผ๋ฏธํฐ์ ์๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ๋ญํฌ๋ฅผ ๋์ด๋ฉด ํํ๋ ฅ์ ์ข์์ง ์ ์์ง๋ง, ํ๋ผ๋ฏธํฐ ์๊ฐ ๋์ด๋๊ณ ๊ณผ์ ํฉ์ ์ํ๋ ์ปค์ง๋๋ค. ์ผ๋ฐ์ ์ผ๋ก 8, 16, 32, 64 ๋ฑ์ ๊ฐ์ ์ฌ์ฉํ๋ฉฐ, โ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ฉํ๋ ํ ๊ฐ๋ฅํ ํฌ๊ฒโ ์ค์ ํ๋ ๊ฒ์ด ์ข๋ค๋ ์คํ ๊ฒฐ๊ณผ๋ ์์ต๋๋ค.
- ์ํ (alpha): LoRA์ ์ค์ผ์ผ๋ง ํฉํฐ์
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ํ๋ ๋ญํฌ์ 2๋ฐฐ๋ก ์ค์ ํ๋ ๊ฒ์ด ๊ตญ๋ฃฐ์ฒ๋ผ ์ฌ๊ฒจ์ง๋๋ค. (์:
r=16์ด๋ฉดalpha=32). ๋ญํฌ๋ง ์ฌ๋ฆฌ๊ณ ์ํ๋ฅผ ๊ณ ์ ํ๋ฉด ์ฑ๋ฅ์ด ์คํ๋ ค ๋๋น ์ง ์ ์์ต๋๋ค. - ๋์ ๋ชจ๋ (target_modules): LoRA๋ฅผ ์ ์ฉํ ๋ ์ด์ด๋ฅผ ์ง์ ํฉ๋๋ค. ์ ํต์ ์ผ๋ก๋ ์ดํ
์
๋ ์ด์ด์
query,key์๋ง ์ ์ฉํ์ง๋ง,value,output๋ฐmlp๋ ์ด์ด๊น์ง ํ์ฅํ๋ฉด ์ฑ๋ฅ์ด ํฅ์๋๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๊ฐ๋ฅํ ๋ชจ๋ ์ ํ ๋ ์ด์ด์ ์ ์ฉํ๋ ๊ฒ์ด ์ข์ ์ฑ๋ฅ์ ๋ณด์ธ๋ค๋ ์คํ ๊ฒฐ๊ณผ๊ฐ ๋ง์ต๋๋ค.
| ๋น๊ต ํญ๋ชฉ | LoRA | QLoRA | ์ถ์ฒ ์ํฉ |
|---|---|---|---|
| ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ | ๋์ | ๋ฎ์ | GPU ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ QLoRA |
| ํ์ต ์๋ | ๋น ๋ฆ | ๋๋ฆผ | ๋น ๋ฅธ ์คํ ๋ฐ๋ณต์ด ํ์ํ ๋ LoRA |
| ์ฑ๋ฅ | ์ฐ์ | ๊ฑฐ์ ๋๋ฑ | ์ฑ๋ฅ ์ ํ๊ฐ ์ฐ๋ ค๋๋ค๋ฉด LoRA, ํ์ง๋ง ๋๋ถ๋ถ QLoRA๋ ์ถฉ๋ถ |
| ํต์ฌ ๊ธฐ์ | ์ ๊ณ์ ํ๋ ฌ ๋ถํด | ์ ๊ณ์ ํ๋ ฌ + 4๋นํธ ์์ํ | - |
V. ์ค์ ์ ์ฉ ์ฌ๋ก ๋ฐ ํ์ฉ
LoRA์ QLoRA๋ ๋ค์ํ ์ค์ ์๋๋ฆฌ์ค์์ LLM์ ํ์ฉ๋๋ฅผ ๋์ด๊ณ ์์ต๋๋ค.
- ์ฑ๋ด ๊ฐ์ธํ: ๊ธฐ์ ์ ์์ฌ ๊ณ ๊ฐ ๋ฌธ์ ๋ฐ์ดํฐ๋ ๋ด๋ถ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ LLM์ ํ์ธํ๋ํจ์ผ๋ก์จ, ์์ฌ ์ ํ์ ๋ํด ์ ํํ ๋ต๋ณํ๋ ๋ง์ถคํ ์ฑ๋ด์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ๊ณผ์ ์์ QLoRA๋ฅผ ์ฌ์ฉํ๋ฉด ๋น๊ต์ ์ ์ ๋น์ฉ์ผ๋ก๋ ๊ณ ํ์ง์ ์ฑ๋ด ๊ตฌ์ถ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ฝ๋ ์์ฑ ์ด์์คํดํธ: ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด, ํ๋ ์์ํฌ, ๋๋ ํ์ฌ ๋ด๋ถ์ ์ฝ๋ ์คํ์ผ์ ๋ง๊ฒ LLM์ ํ๋ํ์ฌ ๊ฐ๋ฐ ์์ฐ์ฑ์ ๋์ด๋ ์ฝ๋ ์ด์์คํดํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- ์ฝํ ์ธ ์์ฑ: ํน์ ์๊ฐ์ ๋ฌธ์ฒด๋ ํน์ ๋ธ๋๋์ ๋ชฉ์๋ฆฌ๋ฅผ ํ์ต์์ผ, ๊ทธ ์คํ์ผ์ ๋ง๋ ๋ง์ผํ ์นดํผ, ๋ธ๋ก๊ทธ ๊ธ, ์ด๋ฉ์ผ ๋ฑ์ ์๋์ผ๋ก ์์ฑํ๋ ๋ฐ ํ์ฉํ ์ ์์ต๋๋ค.
์ ํฌ FinanceCoreAI์์๋ ๊ธ์ต ๋ถ์ผ์ ํนํ๋ LLM์ ๊ฐ๋ฐํ๊ณ ๊ณ ๊ฐ์ฌ์ ์ ๊ณตํ ๋ LoRA์ QLoRA ๊ธฐ์ ์ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๊ณ ์์ต๋๋ค. ๋ฐฉ๋ํ ๊ธ์ต ๋ณด๊ณ ์, ๋ด์ค, ๊ท์ ๋ฌธ์๋ฅผ ํ์ต์์ผ ๊ธ์ต ์ ๋ฌธ๊ฐ ์์ค์ ๋ถ์ ๋ฐ ์์ฝ ๋ฅ๋ ฅ์ ๊ฐ์ถ ๋ชจ๋ธ์ ๋ง๋ค ๋, ์ ์ฒด ํ์ธํ๋์ ๋น์ฉ ๋ถ๋ด์ด ๋งค์ฐ ํฝ๋๋ค. ์ด๋ QLoRA๋ฅผ ์ฌ์ฉํ๋ฉด ํฉ๋ฆฌ์ ์ธ ๋น์ฉ์ผ๋ก ๊ฐ ๊ณ ๊ฐ์ฌ์ ํน์ ์๊ตฌ์ฌํญ(์: ํน์ ์์ฐ ๋ถ์, ๋ด๋ถ ๋ฆฌ์คํฌ ํ๊ฐ ๊ธฐ์ค)์ ๋ง๋ ๋ง์ถคํ ๋ชจ๋ธ์ ์ ์ํ๊ฒ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋ฏธ๋๋ฅผ ํฅํ ํจ์จ์ ์ธ ๊ฑธ์
LoRA์ QLoRA๋ LLM ์๋์ '๊ฒ์ ์ฒด์ธ์ โ์ ๋๋ค. ์ด ๊ธฐ์ ๋ค์ ๋ง๋ํ ์ปดํจํ ์์์ ์ฅ๋ฒฝ์ ๋ฎ์ถ์ด, ๋ ๋ง์ ๊ฐ๋ฐ์์ ๊ธฐ์ ์ด AI์ ํํ์ ๋๋ฆด ์ ์๋๋ก ๋ง๋ค์์ต๋๋ค.
- LoRA๋ ์๋์ ํจ์จ์ฑ ์ฌ์ด์ ํ๋ฅญํ ๊ท ํ์ ์ ์ ๊ณตํ๋ฉฐ, ๋น ๋ฅธ ํ๋กํ ํ์ดํ๊ณผ ์คํ์ ์ด์์ ์ ๋๋ค.
- QLoRA๋ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ์ ๊ทนํ์ผ๋ก ๋์ด์ฌ๋ ค, ์ ํ๋ ํ๋์จ์ด ํ๊ฒฝ์์๋ ๊ฑฐ๋ ๋ชจ๋ธ์ ๋ค๋ฃฐ ์ ์๋ ๊ธธ์ ์ด์ด์ฃผ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, GPU ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ๊ณ ๋น ๋ฅธ ํ์ต์ด ์ฐ์ ์ด๋ผ๋ฉด LoRA๋ฅผ, ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๊ฑฐ๋ ๋น์ฉ์ ์ต์ํํ๋ฉฐ ๊ณ ์ฑ๋ฅ์ ์ ์งํ๊ณ ์ถ๋ค๋ฉด QLoRA๋ฅผ ์ ํํ๋ ๊ฒ์ด ํ๋ช ํ ์ ๋ต์ ๋๋ค.
AI ๊ธฐ์ ์ ๊ณ์ํด์ ๋ฐ์ ํ๊ณ ์์ผ๋ฉฐ, ํ์ธํ๋ ๊ธฐ์ ๋ํ ๋์ฑ ํจ์จ์ ์ด๊ณ ๊ฐ๋ ฅํด์ง ๊ฒ์ ๋๋ค. LoRA์ QLoRA์ ๊ฐ์ PEFT ๊ธฐ๋ฒ์ ์ดํดํ๊ณ ํ์ฉํ๋ ๊ฒ์, ๋น ๋ฅด๊ฒ ๋ณํํ๋ AI ์ํ๊ณ์์ ๊ฒฝ์๋ ฅ์ ์ ์งํ๊ณ ํ์ ์ ์ด๋์ด๊ฐ๋ ์ค์ํ ์ด์ ๊ฐ ๋ ๊ฒ์ ๋๋ค.