What is the big difference of NLP compared to CV? ๐ฎ
์ด ํฌ์คํ ์ ์ ๋ชฉ๋ถํฐ ํด์ ์์ํ ๋ถ๋ถ์ด ํ๋ ๊ฐ์ง๊ฐ ์๋ ๊ฒ์ด๋ค. ๊ฐ์๊ธฐ ๋ค๋์๋ด์ผ ํ๋ค๋๋ CV์ NLP์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ด ๋ฌด์์ธ์ง์ ๋ํด ๋ฌป์ง๋ฅผ ์๋. ํ์ง๋ง ์ด๋ฒ ํฌ์คํ ์์ ๋งํ๊ณ ์ ํ๋ ๋ด์ฉ์ ์ํด์๋ ์ด ์ฐจ์ด์ ์ ๋์ง์ด๋ณด์์ผ ํ ํ์๊ฐ ์๋ค! ๊ทธ๋ ๋ค๋ฉด ๋จผ์ ๋ ์๋ถ๋ค๊ป ์ง๋ฌธํด ๋ณด๋๋ก ํ๊ฒ ๋ค. NLP๊ณผ CV์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น? ์๋ง๋ ์ด๋ ๊ฒ ์ถ์์ ์ผ๋ก ์ง๋ฌธํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ต๋ณ๋ค์ด ๋์ฌ ๊ฒ์ด๋ผ ์๊ฐํ๋ค. ๐
- ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฆ. (text & image)
- ์ฌ์ฉ๋๋ ๋ชจ๋ธ๋ค์ ์ฐจ์ด
- ํ์ต ๋ฐฉ์์ ์ฐจ์ด
๋ฌผ๋ก ์์ ๊ฐ์ ๋ต๋ณ๋ค๋ ๋ง์ง๋ง, ํ์๊ฐ ๋ณธ ํฌ์คํ ์์ ๋งํ๊ณ ์ ํ๋ ๋ ์ฐ๊ตฌ๊ณ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ "regularization์ ๋ํ ์ฐ๊ตฌ" ๋ผ๊ณ ์๊ฐํ๋ค. ์ฝ๊ฐ ์ง๋ฌธ์ด ํ์ ํ๋ ์ ์ ๋ํด์๋ ์ํด๋ฅผ ๋ถํ๋๋ฆฝ๋๋ค. ๐ ๊ทธ๋ ๋ค๋ฉด ์ด๊ฒ ๋ฌด์จ ๋ง์ผ๊น? ๊ฐ์๊ธฐ regularization์ ๋ํ ์ฐ๊ตฌ์ ๋ํด์ ์๊ธฐ๋ฅผ ํ๋ค๋?
์ฐ์ regularization์ ๋ํด ์๊ธฐํ๊ธฐ ์ ์ ๊ฐ ์ฐ๊ตฌ๊ณ์ ์ฐ๊ตฌ ๋ํฅ๋ค์ ๋ํด์ ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด๋๋ก ํ๊ฒ ๋ค.
- Computer VIsion: regularization๊ณผ overfitting์ ๋ํ ์ฐ๊ตฌ๋ค์ด ํ๋ฐํ๊ฒ ์ด๋ฃจ์ด์ง.
- Natural Language Processing: new & high-quality data๋ฅผ ํ์ฉํด์ ๋ชจ๋ธ์ ํ์ต์์ผ ์ฑ๋ฅ ๊ฐ์ ์ ์ด๋ฃจ๊ณ ์ ํ๋ ์ฐ๊ตฌ๊ฐ ์ฃผ๋ก ์ด๋ฃจ์ด์ง.
์ด๊ฒ๋ง ๋ด๋ ์ ์ ์๋ฏ์ด CV์์๋ regularization๊ณผ overfitting์ ๋ํด์ ํ๋ฐํ๊ฒ ์ฐ๊ตฌ๋ค์ด ์ด์ด์ง๊ณ ์๋ ๋ฐ๋ฉด, NLP๋ ์์ง์ ์๋กญ๊ณ ๋์ฑ ํ๋ฆฌํฐ๊ฐ ์ข์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด์ ๋ชจ๋ธ์ ํ์ต์์ผ์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ ์ ํ๋ ์ฐ๊ตฌ๋ค์ด ์ฃผ๋ก ์ด๋ฃจ์ด์ง๊ณ ์๋ค. ์ ๋ฌผ๋ก prompting, fine-tuning, RLHF ๋ฑ์ ์ฐ๊ตฌ๋ค๋ ํจ๊ป ํ๋ฐํ๊ฒ ์ด์ด์ง๊ณ ์๋ค. ํ์ง๋ง, CV์ ๋นํด์ NLP ๋ถ์ผ์์๋ ์์ง regularization๊ณผ overfitting์ ๋ํด์๋ ์ถฉ๋ถํ ์ฐ๊ตฌ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์์ง ์๋ค.
๋ณธ ํฌ์คํ ์์๋ ์ด๋ฌํ NLP ๋ถ์ผ์ ํ์ ์ ํ๊ณ ๋ ๋ ผ๋ฌธ์ธ "NEFTune: Noisy Embedding Improve Instruction Finetuning(Jain et al. 2023)"์ ๋ํด์ ์๊ฐํด๋ณด๊ณ ์ ํ๋ค! ๐ค
NEFTune, the new paradigm of model training โจ
Introduction
์ด ํฌ์คํ ์ ์์ฑํ๋ ์์ ์์ ๋ถ๊ณผ ์ผ์ฃผ์ผ ์ ๋ ์ ์ ๊ณต๊ฐ๋ ๋ฐ๋๋ฐ๋ํ ๋ ผ๋ฌธ์ธ "NEFTune: Noisy Embedding Improve Instruction Finetuning"์์๋ ๊ธฐ์กด์ fine-tuning์ ๋งค์ฐ ๊ฐ๋จํ trick์ ์ฌ์ฉํจ์ผ๋ก์จ ๊ธฐ์กด์ fine-tuning๋ณด๋ค ํจ์ฌ ๋ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค๊ณ ์ฃผ์ฅํ๋ค. ์ค์ ๋ก NEFTune์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ดํด๋ณด๋ฉด NEFTune์ด ์ถฉ๋ถํ ๋งค๋ ฅ์ ์ธ training ๋ฐฉ์์ฒ๋ผ ๋ณด์ธ๋ค.

์์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด ์ผํ ๋ณด๊ธฐ์๋ NEFTune์ standard fine-tuning๋ณด๋ค ํจ์ฌ ๋ ๊ฐ์ ๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ค ์ ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด NEFTune์ ์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์๊ธฐ์ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ ๊ฒ ํจ๊ณผ์ ์ผ๋ก ์ฑ๋ฅ์ ๊ฐ์ ์ํฌ ์ ์์๋ ๊ฒ์ผ๊น?
NEFTune
๊ธฐ์กด์ instruction-tuned model๋ค์ ์ดํด๋ณด๋ฉด ๋ณดํต instruction & response ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฐ์ดํฐ์ ์์ ํ์ต๋๋ค. NEFTune๋ ์ด๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ ์คํ ์ ๋ฐ์ดํฐ์ ์ผ๋ก๋ถํฐ instruction์ ์ํ๋งํ๊ณ , ์ด ํ ํฐ์ ์๋ฒ ๋ฉ ๋ฒกํฐ๋ก ๋ณํํ๋ ๊ณผ์ ์ ํตํด ์์๋๋ค. ๊ทธ๋ค์์ NEFTune์ ์๋ฒ ๋ฉ์ random noise vector๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ standard training์ ์์ํ๋ค. ์ด๊ฒ NEFTune์ ๋ชจ๋ ๊ฒ์ด๋ค! ๋๋ฌด ๊ฐ๋จํด์ ์์ฌ์ด ๋ค ์ ๋์ธ๋ฐ ์ค์ ๋ก ๋ ผ๋ฌธ์์๋ NEFTune method์ ๋ํ ์ค๋ช ์ ๋ถ๊ณผ 9์ค ์ ๋์ ๋ถ๊ณผํ ์ ๋๋ก ๋งค์ฐ ๊ฐ๋จํ method์ด๋ค. ์ด ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก NEFTune์ standard fine-tuning์ ์๋ํ๋ ์ฑ๋ฅ์ ์ป์ ์ ์์๋ ๊ฒ์ด๋ค!

NEFTune์ ์๊ณ ๋ฆฌ์ฆ์ ์ดํด๋ณด๋ฉด standard fine-tuning์ ๋นํด์ NEFTune์์ ์ถ๊ฐ๋ ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- $\epsilon \sim Uniform(-1, 1), \mathbb{R}^{B \times L \times d}$ : noise vector๋ฅผ ๋ ๋ฆฝํญ๋ฑ๋ถํฌ(iid)์์ ๊ท ์ผํ๊ฒ ์ํ๋ง
- $(\frac {\alpha}{\sqrt{Ld}}) \epsilon$ : factor๋ฅผ ์ฌ์ฉํด์ noise vector๋ฅผ scaling
- ${X}'_{emb} \leftarrow X_{emb} + (\frac {\alpha}{\sqrt{Ld}}) \epsilon$ : original embedding์ scaled noise vector๋ฅผ ํฉ์นจ
์ด๋ฌํ NEFTune์ ๊ตฌ์กฐ๋ฅผ ์ฝ๋๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
def noised_embed(orig_embed, noise_alpha):
embed_init = orig_embed(x)
dims = torch.tensor(embed_init.size(1) * embed_init.size(2))
mag_norm = noise_alpha/torch.sqrt(dims)
return embed_init + torch.zeros_like(embed_init).uniform_(-mag_norm, mag_norm)
NEFTune์ ์ด๋ฆ ๊ทธ๋๋ก Noisy Embedding Fine-tuning์ธ ๊ฒ์ด๋ค. ๐ NEFTune์ ์๋ ๋ฐฉ์์ ๋ณด๋ฉด ๋ฌด์ธ๊ฐ ๋ ์ค๋ฅด๋ ๊ฒ์ด ํ๋ ์์ง ์์๊ฐ? ๋ฐ๋ก Computer Vision์์ ๋ชจ๋ธ์ ํ์ต์ํฌ ๋ ์์ฃผ ์ฌ์ฉ๋์๋ Noise Injection๊ณผ ์๋นํ ์ ์ฌํ๋ค๊ณ ํ์๋ ์๊ฐํ๋ค. ์๊ฐํด ๋ณด๋ฉด ์ด noise injection์ ์ด๋ฏธ์ง๊ฐ ์๋ ํ ์คํธ ์๋ฒ ๋ฉ์ ์ ์ฉํ ๊ฒ์ด NEFTune์ด๋ผ๊ณ ๋ณผ ์ ์๋ค! Computer Vision์์ noise injection์ ๋ชจ๋ธ์๊ฒ robustํจ์ ์ค ๋ฟ๋ง ์๋๋ผ ์ฑ๋ฅ ๊ฐ์ ๋ ์ด๋ ์ ์์๋๋ฐ NLP์์๋ ์ด noisy embedding์ด ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์ด๋ป๊ฒ ์ํฅ์ ๋ฏธ์น ์ ์์๊น?
Striking performance of NEFTune ๐ฅ
NEFTune์ ์์๋ ๋งํ๋ฏ์ด ์๋นํ ๊ฐ๋จํ method์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด ๊ฐ๋จํ NEFTune์ด ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ์ผ๋ง๋ ํฌ๊ณ ์ด๋ค ์ํฅ์ ๋ฏธ์น ์ ์์๊น? ๋ ผ๋ฌธ์์ ๋ณด์ฌ์ค ์คํ ๊ฒฐ๊ณผ๋ค์ ํ๋ํ๋ ์ดํด๋ณด๋๋ก ํ์!
- NEFTune์ Text Quality๋ฅผ ๊ฐ์ ์ํดโฌ๏ธ ์๋์ ํ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด NEFTune์ ์ฌ์ฉํด์ ๋ชจ๋ธ์ fine-tuningํ๋ฉด ๋ชจ๋ธ์ conversational ability & answer quality๋ฅผ ์๋นํ ๊ฐ์ ์ํจ๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

- NEFTune์ Chat Model๋ ๊ฐ์ ์ํฌ ์ ์์๐ฃ๏ธโฌ๏ธ Llama-2-Chat๊ณผ ๊ฐ์ RLHF๋ฅผ ํตํด fine-tune๋ Chat model์ ๋ํด์๋ WizardLM์ Evol-Instruct์์ ์ถ๊ฐ์ ์ผ๋ก ํ์ต์์ผฐ์ ๋ 3% ์ ๋์ ์ฑ๋ฅ ๊ฐ์ ์ ์ผ์ผํฌ ์ ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. ๊ทธ๋ฆฌ๊ณ NEFTune์ ์ฌ์ฉํด์ fine-tuning์ ํ๋ฉด ๋ฌด๋ ค 10% ์ ๋ ๋ ๊ฐ์ ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค! ํ์ง๋ง ์ด๋ ๊ฒ ํ์ต๋ ๋ชจ๋ธ์ ์ผ๋ถ ๊ธฐ๋ฅ์ ์ ํดํ ๋์ ์ถ๋ ฅ์ ์ต์ ํ๋ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ํฅ์ ๋ฐ์ ์ ์๋ค.

- Benchmark์์์ ์ฑ๋ฅ ์ ์ง๐ฐ NEFTune์ ์ฌ์ฉํ์ ๋ ํ์คํ ๋ชจ๋ธ์ conversational ability๋ฅผ ๊ฐ์ ์ํฌ ์ ์๋ค๋ ๊ฒ์ ํ์ธํ์์ผ๋ conversational ability ์ธ์๋ benchmark ์ฑ๋ฅ์ ์ ์งํ๋ ๊ฒ ๋ํ LLM์ ์๋นํ ์ค์ํ ๊ณผ์ ์ด๋ค. ๋ฐ๋ผ์ ๋ ผ๋ฌธ์์๋ HuggingFace์ Open LLM Leaderboard์ ํ๊ฐ์์ญ์ธ ARC, HellaSwag, MMLU, TruthfulQA์ ๋ํด์๋ ํ๊ฐ๋ฅผ ์งํํ์๋ค. ํ์ง๋ง ๋ค์์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด NEFTune์ Benchmark์์๋ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๋ฝ์ํค์ง ์๊ณ ๋ณด์กดํ ์ ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค!

- NEFTune์ QLoRA์์๋ ์๋ํจ๐ฎ NEFTune์ด ํ์คํ standard fine-tuning์ ๋นํด์ ์ฑ๋ฅ์ ๊ฐ์ ์ํฌ ์ ์๋ค๋ ๊ฒ์ ํ์ธํ์๊ณ , ๊ทธ๋ ๋ค๋ฉด QLoRA์ ๊ฐ์ Parameter Efficient Fine-tuning์์๋ NEFTune์ ํจ๊ณผ์ ์ผ๊น? ๊ทธ๋ ๋ค!! ๋ฌผ๋ก ๊ทธ ํจ๊ณผ๊ฐ full-finetuning์ ๋นํด์๋ ์์ํ์ง๋ง ํ์คํ ์ฑ๋ฅ ํฅ์์ ๊ฐ์ ธ๋ค์ค๋ค.

- NEFTune์ ๋์ฑ ๋ํ ์ผํ response๋ฅผ ์ ๊ณต๐ ์ ํํ ๋น๊ต๋ฅผ ์ํด NEFTune์ response์ standard fine-tuning์ responser๋ฅผ ๋น๊ตํ ๊ฒฐ๊ณผ NEFTune์ response๊ฐ standard fine-tuning์ response์ ๋นํด ๋์ฑ ๊ตฌ์ฒด์ ์ด๊ณ ๋ํ ์ผํ ์ ๋ณด๋ฅผ ์ฃผ๊ณ , ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ๋ ์ค๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. ์์ธํ ๋ด์ฉ์ ๋ ผ๋ฌธ์ Appendix๋ฅผ ํ์ธํด ๋ณผ ์ ์๊ธธ ๋ฐ๋๋ค!
์ด์ ๊ฐ์ด NEFTune์ ํตํ ์ฑ๋ฅ ํฅ์ ํจ๊ณผ๋ฅผ ํ์ธํ ์ ์์๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ๋๋ ์๋ฌธ์ ์ด ํ๋ ์๋ค. ๋๋์ฒด ์ด๋ค ์ ์ด ์ด ๊ฐ๋จํ NEFTune method๋ฅผ ์ฌ๋ฌ ๋ชจ๋ธ์์ ์ฑ๋ฅ ๊ฐ์ ์ ์ผ์ผํฌ ์ ์๋ ๊ฐ๋ ฅํ method๋ก ๋ง๋ ๊ฒ์ผ๊น? ๋ถ๋ช NEFTune์์ ํ ๊ฒ์ด๋ผ๊ณ ๋ ๊ณ ์ original embedding์ noise๋ฅผ ์ถ๊ฐํ ๊ฒ ์ธ์๋ ํ ๊ฒ์ด ์๋๋ฐ, ์ด๊ฒ์ด NEFTune์ ํจ๊ณผ์ ์ธ method๋ก ๋ง๋ค์ด์ค ๊ฒ์ผ๊น?
What makes NEFTune effective? ๐ค
์์ ์น์ ์ ๋ง๋ฏธ์ ๋์ง ์ง๋ฌธ์ ์ด๋ฒ ์น์ ์์ ๋ฐํ๋ณด๋๋ก ํ๊ฒ ๋ค! ๋ ผ๋ฌธ์์๋ NEFTune์ ์ฑ๋ฅ ํฅ์ ํจ๊ณผ๊ฐ ์์ ์ธ์ ๋ ๊ฐ์ค์ฒ๋ผ ์๋ฒ ๋ฉ์ noise๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก๋ถํฐ ์จ๋ค๊ณ ๊ฐ์ค์ ์ธ์ ๋ค. ์ด noise๋ฅผ ํตํด์ ๋ชจ๋ธ์ด ์ป์ ์ ์๋ ์ด์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- Overfitting โฌ๏ธ: noise data๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ ๋ชจ๋ธ์ instruction dataset, formatting detail, exacting word, text length์ ๋ํ overfitting์ ์ค์ผ ์ ์์.
- Pre-trained modeld์ ์ง์์ ๋์ฑ ํ์ฉ ๊ฐ๋ฅ ๐ฅ: noise data๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ ๋ชจ๋ธ์ด ํน์ ๋ฐ์ดํฐ ๋ถํฌ์๋ง ๋จธ๋ฌด๋ฅด๋ ๊ฒ์ด ์๋๋ผ ๋ ๋ค์ํ ๋ถํฌ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ๋์ฑ high-quality์ response๋ฅผ ์ค ์ ์์.
๋ ผ๋ฌธ์์๋ NEFTune์ด standard fine-tuning๋ณด๋ค ๋ overfit ๋์๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ ๋ ์ฑ๋ฅ์ ๋์ ์ ์๊ฒ ๋์๋ค๋ ๊ฐ์ค์ ์ธ์ฐ๊ณ , ์คํ์ ํตํด ์ด๋ฅผ ์ฆ๋ช ํ๊ณ ์ ํ์๋ค. ์ด๋ฅผ ์ํด ๋ ผ๋ฌธ์์๋ ๋ชจ๋ธ์ training loss์ test loss๋ฅผ ๋ค์์ ๊ทธ๋ํ์ ๊ฐ์ด ๋น๊ตํ์๋ค.

์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด NEFTune์ training loss์์ standard fine-tuning๋ณด๋ค ๋์ ๋ชจ์ต์ ๋ณด์ฌ์ฃผ์ง๋ง, test loss์์๋ ๊ทผ์ํ๊ฒ standard fine-tuning๋ณด๋ค ๋ฎ์ loss๋ฅผ ๋ณด์ฌ์ค๋ค. ์ด๊ฒ์ผ๋ก ๋ฏธ๋ฃจ์ด๋ณด์ ํ์คํ NEFTune์ standard fine-tuning์ ๋นํด์ ๋ overfitํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๋ํ model์ response์ ground-truth answer๊ณผ์ ์ ์ฌ๋ ๋น๊ต๋ฅผ ์ํด ROUGE-L๊ณผ BLEU๋ฅผ ์ฌ์ฉํด์ ํ๊ฐํด ๋ณธ ๊ฒฐ๊ณผ, NEFTune์ standard fine-tuning์ ๋นํด์ ํจ์ฌ ๋ ์์ ROUGE-L & BLEU score๋ฅผ ๊ฐ์ง๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. ๋ฐ๋ผ์ ground-truth answer๊ณผ๋ ํฌ๊ฒ ๋ค๋ฅธ response๋ฅผ ์์ฑํ๋ค๋ ๊ฒ์ผ๋ก ๋ฏธ๋ฃจ์ด๋ณด์ ํ์คํ NEFTune์ ๋ overfit ๋์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

NEFTune with HuggingFace TRL
ํฌ์คํ ์ ์ฌ๋ฆฌ๋ ์ผ์์ธ 10/18 ํ๋ฃจ ์ ์ธ 10/17์ HuggingFace์ TRL ํ์์ NEFTune์ TRL์ SFTTrainer์ ์ฌ์ฉํ ์ ์๋๋ก ์ ๋ฐ์ดํธ๋ฅผ ํ์๋ค๊ณ ํ๋ค! (์ฐธ๊ณ : https://www.linkedin.com/feed/update/urn:li:activity:7120085541861085185/) ์ด์ NEFTune์ ๋ชจ๋ธ์ ๋ณต์กํ ๊ตฌ์กฐ๋ฅผ ๊ฑด๋๋ฆด ํ์ ์์ด ๋ฑ ํ ์ค์ ์ฝ๋๋ฅผ SFTTrainer์ arg์ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก NEFTune์ ๊ตฌํํ ์ ์๋ค๊ณ ํ๋ค! NEFTune์ ํ์ฉํด์ fine-tuning์ ํด๋ณด๊ณ ์ ํ๋ ๋ ์๊ฐ ์๋ค๋ฉด ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค.

What should NLP do in the future? ๐ง
์ด๋ ๊ฒ ํด์ ๊ฐ๋จํ์ง๋ง ๋ฌด์ ๋ชป ํ ์ ๋์ ์ฑ๋ฅ ๊ฐ์ ์ ๋ณด์ฌ์ค NEFTune์ ๋ํด์ ์์๋ณด์๋ค. ๋ค์ ํ ๋ฒ ์ด๋ฐ ์์ฒญ๋ ์ฐ๊ตฌ๋ฅผ ํ ์ฐ๊ตฌ์๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.. ํ๊ณ ํ์๋ผ๋ฉด ํฌ์คํ ์ ๋๋๊ฒ ์ง๋ง, ์ด๋ฒ ํฌ์คํ ์์๋ ์ข ๋ ์ฌ์คํ ์๊ธฐ๋ฅผ ๋๋ ๋ณด๊ณ ์ ํ๋ค. ์ฐ์ ๋ ผ๋ฌธ์ Conclusion์ ์ ํ ์๋ ๊ธ๊ท๋ฅผ ๋น๋ ค์ ๋งํด ๋ณด๊ณ ์ ํ๋ค.
"Unlike the computer vision, which has studied regularization and overfitting for years,
the LLM community tends to use standardized training loops that are designed for optimizer stability and generalization."
NLP๋ฅผ ๊ณต๋ถํ๋ ์ฌ๋๋ค์ด๋ผ๋ฉด ์ ๊ธ๊ท์ ๋ํด์ ๋ชน์ ๊ณต๊ฐํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์ผ๋จ ํ์๋ ์์ ๊ธ์ด ํ์ฌ NLP์ ์ฐ๊ตฌ ๋ํฅ์ ๋ํด์ ์ผ์นจ์ ๋ ๋ฆฌ๋ ๋ง์ด๋ผ๊ณ ์๊ฐํ๋ค. ํ์ฌ NLP ์ฐ๊ตฌ ์ถ์ธ๋ฅผ ์ดํด๋ณด๋ฉด basic ํ ์ฐ๊ตฌ๋ค์ด ์ด๋ค์ง์ง ์์ ์ฑ ๊ทธ ์์ ๋ง์ ์ฐ๊ตฌ๋ค์ด ์์ฌ๊ฐ๊ณ ์๋ค. ๋ถ๊ณผ overfitting์ ๋ํด์๋ ํฌ๊ฒ ์๊ฐํ์ง ์๊ณ ๋ชจ๋ธ์ ํ์ต์์ผ ๋๊ฐ๊ณ ์์ผ๋ ๋ง์ด๋ค! ๋ฌผ๋ก ์ง๊ธ์ ์ฐ๊ตฌ๋ค๋ ์ ๋ง ๋๋๊ณ ์๋ก์ด ๋ฐ๊ฒฌ๋ค์ ์ด์ด๋๊ฐ๊ณ ์์ง๋ง, ๊ทธ๋งํผ basic ํ ์ฐ๊ตฌ๋ค์๋ ๊ด์ฌ์ ์์์ผ ํ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋ฐ ์๋ฏธ์์ ์ด NEFTune์ ์์ผ๋ก์ NLP ์ฐ๊ตฌ ๋ํฅ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ฐ๊ตฌ๋ผ๊ณ ์๊ฐํ๋ค. ๐
์ด ํฌ์คํ ์ ์ฝ์ ๋ ์๋ค์ ํ์์๋ ๋ค๋ฅธ ์๊ฐ์ ๊ฐ์ง๊ณ ์์ ์๋ ์๊ฒ ์ง๋ง, ํ์๋ ๋ง์ application study๋ค๋ ์ข์ง๋ง, ๊ธฐ๋ณธ์ ์ธ ํ๋์ basicํ study๊ฐ ์ ๋ง ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค. ์์ผ๋ก์ NLP ์ฐ๊ตฌ ๋ํฅ์ด ์ด๋ฌํ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ ์ ์๊ธธ ๋ฐ๋ผ๋ฉฐ ํฌ์คํ ์ ๋ง์ณ๋ณด๊ณ ์ ํ๋ค.
'Insight ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด์ ๋ ChatGPT๋ฅผ fine-tuning ํ ์๊ฐ!! โฐ (0) | 2023.08.23 |
---|---|
Fine-tuning method์ ๋ฐ์ ๊ณผ์ !! Fine-tuning๋ถํฐ RLHF๊น์ง ๐ฆโก๏ธ๐ง (0) | 2023.08.07 |
ํ ๋จ๊ณ, ํ ๋จ๊ณ์ฉ ์ธ๊ฐ์ฒ๋ผ ์๊ฐํด๋ณด์! ๐ง ๐ค (0) | 2023.08.03 |
๋น์ ๋ Fine-tuning ํ ์ ์์ต๋๋ค! with PEFT ๐ค (0) | 2023.08.01 |
ChatGPT์ ์ฑ๋ฅ์ด ์ ์ข์์ง๊ณ ์๋ค๊ตฌ?!?!? ๐ฒ๐ฒ (0) | 2023.07.31 |
What is the big difference of NLP compared to CV? ๐ฎ
์ด ํฌ์คํ ์ ์ ๋ชฉ๋ถํฐ ํด์ ์์ํ ๋ถ๋ถ์ด ํ๋ ๊ฐ์ง๊ฐ ์๋ ๊ฒ์ด๋ค. ๊ฐ์๊ธฐ ๋ค๋์๋ด์ผ ํ๋ค๋๋ CV์ NLP์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ด ๋ฌด์์ธ์ง์ ๋ํด ๋ฌป์ง๋ฅผ ์๋. ํ์ง๋ง ์ด๋ฒ ํฌ์คํ ์์ ๋งํ๊ณ ์ ํ๋ ๋ด์ฉ์ ์ํด์๋ ์ด ์ฐจ์ด์ ์ ๋์ง์ด๋ณด์์ผ ํ ํ์๊ฐ ์๋ค! ๊ทธ๋ ๋ค๋ฉด ๋จผ์ ๋ ์๋ถ๋ค๊ป ์ง๋ฌธํด ๋ณด๋๋ก ํ๊ฒ ๋ค. NLP๊ณผ CV์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น? ์๋ง๋ ์ด๋ ๊ฒ ์ถ์์ ์ผ๋ก ์ง๋ฌธํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ต๋ณ๋ค์ด ๋์ฌ ๊ฒ์ด๋ผ ์๊ฐํ๋ค. ๐
- ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฆ. (text & image)
- ์ฌ์ฉ๋๋ ๋ชจ๋ธ๋ค์ ์ฐจ์ด
- ํ์ต ๋ฐฉ์์ ์ฐจ์ด
๋ฌผ๋ก ์์ ๊ฐ์ ๋ต๋ณ๋ค๋ ๋ง์ง๋ง, ํ์๊ฐ ๋ณธ ํฌ์คํ ์์ ๋งํ๊ณ ์ ํ๋ ๋ ์ฐ๊ตฌ๊ณ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ "regularization์ ๋ํ ์ฐ๊ตฌ" ๋ผ๊ณ ์๊ฐํ๋ค. ์ฝ๊ฐ ์ง๋ฌธ์ด ํ์ ํ๋ ์ ์ ๋ํด์๋ ์ํด๋ฅผ ๋ถํ๋๋ฆฝ๋๋ค. ๐ ๊ทธ๋ ๋ค๋ฉด ์ด๊ฒ ๋ฌด์จ ๋ง์ผ๊น? ๊ฐ์๊ธฐ regularization์ ๋ํ ์ฐ๊ตฌ์ ๋ํด์ ์๊ธฐ๋ฅผ ํ๋ค๋?
์ฐ์ regularization์ ๋ํด ์๊ธฐํ๊ธฐ ์ ์ ๊ฐ ์ฐ๊ตฌ๊ณ์ ์ฐ๊ตฌ ๋ํฅ๋ค์ ๋ํด์ ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด๋๋ก ํ๊ฒ ๋ค.
- Computer VIsion: regularization๊ณผ overfitting์ ๋ํ ์ฐ๊ตฌ๋ค์ด ํ๋ฐํ๊ฒ ์ด๋ฃจ์ด์ง.
- Natural Language Processing: new & high-quality data๋ฅผ ํ์ฉํด์ ๋ชจ๋ธ์ ํ์ต์์ผ ์ฑ๋ฅ ๊ฐ์ ์ ์ด๋ฃจ๊ณ ์ ํ๋ ์ฐ๊ตฌ๊ฐ ์ฃผ๋ก ์ด๋ฃจ์ด์ง.
์ด๊ฒ๋ง ๋ด๋ ์ ์ ์๋ฏ์ด CV์์๋ regularization๊ณผ overfitting์ ๋ํด์ ํ๋ฐํ๊ฒ ์ฐ๊ตฌ๋ค์ด ์ด์ด์ง๊ณ ์๋ ๋ฐ๋ฉด, NLP๋ ์์ง์ ์๋กญ๊ณ ๋์ฑ ํ๋ฆฌํฐ๊ฐ ์ข์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด์ ๋ชจ๋ธ์ ํ์ต์์ผ์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ ์ ํ๋ ์ฐ๊ตฌ๋ค์ด ์ฃผ๋ก ์ด๋ฃจ์ด์ง๊ณ ์๋ค. ์ ๋ฌผ๋ก prompting, fine-tuning, RLHF ๋ฑ์ ์ฐ๊ตฌ๋ค๋ ํจ๊ป ํ๋ฐํ๊ฒ ์ด์ด์ง๊ณ ์๋ค. ํ์ง๋ง, CV์ ๋นํด์ NLP ๋ถ์ผ์์๋ ์์ง regularization๊ณผ overfitting์ ๋ํด์๋ ์ถฉ๋ถํ ์ฐ๊ตฌ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์์ง ์๋ค.
๋ณธ ํฌ์คํ ์์๋ ์ด๋ฌํ NLP ๋ถ์ผ์ ํ์ ์ ํ๊ณ ๋ ๋ ผ๋ฌธ์ธ "NEFTune: Noisy Embedding Improve Instruction Finetuning(Jain et al. 2023)"์ ๋ํด์ ์๊ฐํด๋ณด๊ณ ์ ํ๋ค! ๐ค
NEFTune, the new paradigm of model training โจ
Introduction
์ด ํฌ์คํ ์ ์์ฑํ๋ ์์ ์์ ๋ถ๊ณผ ์ผ์ฃผ์ผ ์ ๋ ์ ์ ๊ณต๊ฐ๋ ๋ฐ๋๋ฐ๋ํ ๋ ผ๋ฌธ์ธ "NEFTune: Noisy Embedding Improve Instruction Finetuning"์์๋ ๊ธฐ์กด์ fine-tuning์ ๋งค์ฐ ๊ฐ๋จํ trick์ ์ฌ์ฉํจ์ผ๋ก์จ ๊ธฐ์กด์ fine-tuning๋ณด๋ค ํจ์ฌ ๋ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค๊ณ ์ฃผ์ฅํ๋ค. ์ค์ ๋ก NEFTune์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ดํด๋ณด๋ฉด NEFTune์ด ์ถฉ๋ถํ ๋งค๋ ฅ์ ์ธ training ๋ฐฉ์์ฒ๋ผ ๋ณด์ธ๋ค.

์์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด ์ผํ ๋ณด๊ธฐ์๋ NEFTune์ standard fine-tuning๋ณด๋ค ํจ์ฌ ๋ ๊ฐ์ ๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ค ์ ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด NEFTune์ ์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์๊ธฐ์ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ ๊ฒ ํจ๊ณผ์ ์ผ๋ก ์ฑ๋ฅ์ ๊ฐ์ ์ํฌ ์ ์์๋ ๊ฒ์ผ๊น?
NEFTune
๊ธฐ์กด์ instruction-tuned model๋ค์ ์ดํด๋ณด๋ฉด ๋ณดํต instruction & response ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฐ์ดํฐ์ ์์ ํ์ต๋๋ค. NEFTune๋ ์ด๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ ์คํ ์ ๋ฐ์ดํฐ์ ์ผ๋ก๋ถํฐ instruction์ ์ํ๋งํ๊ณ , ์ด ํ ํฐ์ ์๋ฒ ๋ฉ ๋ฒกํฐ๋ก ๋ณํํ๋ ๊ณผ์ ์ ํตํด ์์๋๋ค. ๊ทธ๋ค์์ NEFTune์ ์๋ฒ ๋ฉ์ random noise vector๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ standard training์ ์์ํ๋ค. ์ด๊ฒ NEFTune์ ๋ชจ๋ ๊ฒ์ด๋ค! ๋๋ฌด ๊ฐ๋จํด์ ์์ฌ์ด ๋ค ์ ๋์ธ๋ฐ ์ค์ ๋ก ๋ ผ๋ฌธ์์๋ NEFTune method์ ๋ํ ์ค๋ช ์ ๋ถ๊ณผ 9์ค ์ ๋์ ๋ถ๊ณผํ ์ ๋๋ก ๋งค์ฐ ๊ฐ๋จํ method์ด๋ค. ์ด ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก NEFTune์ standard fine-tuning์ ์๋ํ๋ ์ฑ๋ฅ์ ์ป์ ์ ์์๋ ๊ฒ์ด๋ค!

NEFTune์ ์๊ณ ๋ฆฌ์ฆ์ ์ดํด๋ณด๋ฉด standard fine-tuning์ ๋นํด์ NEFTune์์ ์ถ๊ฐ๋ ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- $\epsilon \sim Uniform(-1, 1), \mathbb{R}^{B \times L \times d}$ : noise vector๋ฅผ ๋ ๋ฆฝํญ๋ฑ๋ถํฌ(iid)์์ ๊ท ์ผํ๊ฒ ์ํ๋ง
- $(\frac {\alpha}{\sqrt{Ld}}) \epsilon$ : factor๋ฅผ ์ฌ์ฉํด์ noise vector๋ฅผ scaling
- ${X}'_{emb} \leftarrow X_{emb} + (\frac {\alpha}{\sqrt{Ld}}) \epsilon$ : original embedding์ scaled noise vector๋ฅผ ํฉ์นจ
์ด๋ฌํ NEFTune์ ๊ตฌ์กฐ๋ฅผ ์ฝ๋๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
def noised_embed(orig_embed, noise_alpha):
embed_init = orig_embed(x)
dims = torch.tensor(embed_init.size(1) * embed_init.size(2))
mag_norm = noise_alpha/torch.sqrt(dims)
return embed_init + torch.zeros_like(embed_init).uniform_(-mag_norm, mag_norm)
NEFTune์ ์ด๋ฆ ๊ทธ๋๋ก Noisy Embedding Fine-tuning์ธ ๊ฒ์ด๋ค. ๐ NEFTune์ ์๋ ๋ฐฉ์์ ๋ณด๋ฉด ๋ฌด์ธ๊ฐ ๋ ์ค๋ฅด๋ ๊ฒ์ด ํ๋ ์์ง ์์๊ฐ? ๋ฐ๋ก Computer Vision์์ ๋ชจ๋ธ์ ํ์ต์ํฌ ๋ ์์ฃผ ์ฌ์ฉ๋์๋ Noise Injection๊ณผ ์๋นํ ์ ์ฌํ๋ค๊ณ ํ์๋ ์๊ฐํ๋ค. ์๊ฐํด ๋ณด๋ฉด ์ด noise injection์ ์ด๋ฏธ์ง๊ฐ ์๋ ํ ์คํธ ์๋ฒ ๋ฉ์ ์ ์ฉํ ๊ฒ์ด NEFTune์ด๋ผ๊ณ ๋ณผ ์ ์๋ค! Computer Vision์์ noise injection์ ๋ชจ๋ธ์๊ฒ robustํจ์ ์ค ๋ฟ๋ง ์๋๋ผ ์ฑ๋ฅ ๊ฐ์ ๋ ์ด๋ ์ ์์๋๋ฐ NLP์์๋ ์ด noisy embedding์ด ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์ด๋ป๊ฒ ์ํฅ์ ๋ฏธ์น ์ ์์๊น?
Striking performance of NEFTune ๐ฅ
NEFTune์ ์์๋ ๋งํ๋ฏ์ด ์๋นํ ๊ฐ๋จํ method์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด ๊ฐ๋จํ NEFTune์ด ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ์ผ๋ง๋ ํฌ๊ณ ์ด๋ค ์ํฅ์ ๋ฏธ์น ์ ์์๊น? ๋ ผ๋ฌธ์์ ๋ณด์ฌ์ค ์คํ ๊ฒฐ๊ณผ๋ค์ ํ๋ํ๋ ์ดํด๋ณด๋๋ก ํ์!
- NEFTune์ Text Quality๋ฅผ ๊ฐ์ ์ํดโฌ๏ธ ์๋์ ํ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด NEFTune์ ์ฌ์ฉํด์ ๋ชจ๋ธ์ fine-tuningํ๋ฉด ๋ชจ๋ธ์ conversational ability & answer quality๋ฅผ ์๋นํ ๊ฐ์ ์ํจ๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

- NEFTune์ Chat Model๋ ๊ฐ์ ์ํฌ ์ ์์๐ฃ๏ธโฌ๏ธ Llama-2-Chat๊ณผ ๊ฐ์ RLHF๋ฅผ ํตํด fine-tune๋ Chat model์ ๋ํด์๋ WizardLM์ Evol-Instruct์์ ์ถ๊ฐ์ ์ผ๋ก ํ์ต์์ผฐ์ ๋ 3% ์ ๋์ ์ฑ๋ฅ ๊ฐ์ ์ ์ผ์ผํฌ ์ ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. ๊ทธ๋ฆฌ๊ณ NEFTune์ ์ฌ์ฉํด์ fine-tuning์ ํ๋ฉด ๋ฌด๋ ค 10% ์ ๋ ๋ ๊ฐ์ ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค! ํ์ง๋ง ์ด๋ ๊ฒ ํ์ต๋ ๋ชจ๋ธ์ ์ผ๋ถ ๊ธฐ๋ฅ์ ์ ํดํ ๋์ ์ถ๋ ฅ์ ์ต์ ํ๋ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ํฅ์ ๋ฐ์ ์ ์๋ค.

- Benchmark์์์ ์ฑ๋ฅ ์ ์ง๐ฐ NEFTune์ ์ฌ์ฉํ์ ๋ ํ์คํ ๋ชจ๋ธ์ conversational ability๋ฅผ ๊ฐ์ ์ํฌ ์ ์๋ค๋ ๊ฒ์ ํ์ธํ์์ผ๋ conversational ability ์ธ์๋ benchmark ์ฑ๋ฅ์ ์ ์งํ๋ ๊ฒ ๋ํ LLM์ ์๋นํ ์ค์ํ ๊ณผ์ ์ด๋ค. ๋ฐ๋ผ์ ๋ ผ๋ฌธ์์๋ HuggingFace์ Open LLM Leaderboard์ ํ๊ฐ์์ญ์ธ ARC, HellaSwag, MMLU, TruthfulQA์ ๋ํด์๋ ํ๊ฐ๋ฅผ ์งํํ์๋ค. ํ์ง๋ง ๋ค์์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด NEFTune์ Benchmark์์๋ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๋ฝ์ํค์ง ์๊ณ ๋ณด์กดํ ์ ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค!

- NEFTune์ QLoRA์์๋ ์๋ํจ๐ฎ NEFTune์ด ํ์คํ standard fine-tuning์ ๋นํด์ ์ฑ๋ฅ์ ๊ฐ์ ์ํฌ ์ ์๋ค๋ ๊ฒ์ ํ์ธํ์๊ณ , ๊ทธ๋ ๋ค๋ฉด QLoRA์ ๊ฐ์ Parameter Efficient Fine-tuning์์๋ NEFTune์ ํจ๊ณผ์ ์ผ๊น? ๊ทธ๋ ๋ค!! ๋ฌผ๋ก ๊ทธ ํจ๊ณผ๊ฐ full-finetuning์ ๋นํด์๋ ์์ํ์ง๋ง ํ์คํ ์ฑ๋ฅ ํฅ์์ ๊ฐ์ ธ๋ค์ค๋ค.

- NEFTune์ ๋์ฑ ๋ํ ์ผํ response๋ฅผ ์ ๊ณต๐ ์ ํํ ๋น๊ต๋ฅผ ์ํด NEFTune์ response์ standard fine-tuning์ responser๋ฅผ ๋น๊ตํ ๊ฒฐ๊ณผ NEFTune์ response๊ฐ standard fine-tuning์ response์ ๋นํด ๋์ฑ ๊ตฌ์ฒด์ ์ด๊ณ ๋ํ ์ผํ ์ ๋ณด๋ฅผ ์ฃผ๊ณ , ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ๋ ์ค๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. ์์ธํ ๋ด์ฉ์ ๋ ผ๋ฌธ์ Appendix๋ฅผ ํ์ธํด ๋ณผ ์ ์๊ธธ ๋ฐ๋๋ค!
์ด์ ๊ฐ์ด NEFTune์ ํตํ ์ฑ๋ฅ ํฅ์ ํจ๊ณผ๋ฅผ ํ์ธํ ์ ์์๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ๋๋ ์๋ฌธ์ ์ด ํ๋ ์๋ค. ๋๋์ฒด ์ด๋ค ์ ์ด ์ด ๊ฐ๋จํ NEFTune method๋ฅผ ์ฌ๋ฌ ๋ชจ๋ธ์์ ์ฑ๋ฅ ๊ฐ์ ์ ์ผ์ผํฌ ์ ์๋ ๊ฐ๋ ฅํ method๋ก ๋ง๋ ๊ฒ์ผ๊น? ๋ถ๋ช NEFTune์์ ํ ๊ฒ์ด๋ผ๊ณ ๋ ๊ณ ์ original embedding์ noise๋ฅผ ์ถ๊ฐํ ๊ฒ ์ธ์๋ ํ ๊ฒ์ด ์๋๋ฐ, ์ด๊ฒ์ด NEFTune์ ํจ๊ณผ์ ์ธ method๋ก ๋ง๋ค์ด์ค ๊ฒ์ผ๊น?
What makes NEFTune effective? ๐ค
์์ ์น์ ์ ๋ง๋ฏธ์ ๋์ง ์ง๋ฌธ์ ์ด๋ฒ ์น์ ์์ ๋ฐํ๋ณด๋๋ก ํ๊ฒ ๋ค! ๋ ผ๋ฌธ์์๋ NEFTune์ ์ฑ๋ฅ ํฅ์ ํจ๊ณผ๊ฐ ์์ ์ธ์ ๋ ๊ฐ์ค์ฒ๋ผ ์๋ฒ ๋ฉ์ noise๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก๋ถํฐ ์จ๋ค๊ณ ๊ฐ์ค์ ์ธ์ ๋ค. ์ด noise๋ฅผ ํตํด์ ๋ชจ๋ธ์ด ์ป์ ์ ์๋ ์ด์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- Overfitting โฌ๏ธ: noise data๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ ๋ชจ๋ธ์ instruction dataset, formatting detail, exacting word, text length์ ๋ํ overfitting์ ์ค์ผ ์ ์์.
- Pre-trained modeld์ ์ง์์ ๋์ฑ ํ์ฉ ๊ฐ๋ฅ ๐ฅ: noise data๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ ๋ชจ๋ธ์ด ํน์ ๋ฐ์ดํฐ ๋ถํฌ์๋ง ๋จธ๋ฌด๋ฅด๋ ๊ฒ์ด ์๋๋ผ ๋ ๋ค์ํ ๋ถํฌ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ๋์ฑ high-quality์ response๋ฅผ ์ค ์ ์์.
๋ ผ๋ฌธ์์๋ NEFTune์ด standard fine-tuning๋ณด๋ค ๋ overfit ๋์๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ ๋ ์ฑ๋ฅ์ ๋์ ์ ์๊ฒ ๋์๋ค๋ ๊ฐ์ค์ ์ธ์ฐ๊ณ , ์คํ์ ํตํด ์ด๋ฅผ ์ฆ๋ช ํ๊ณ ์ ํ์๋ค. ์ด๋ฅผ ์ํด ๋ ผ๋ฌธ์์๋ ๋ชจ๋ธ์ training loss์ test loss๋ฅผ ๋ค์์ ๊ทธ๋ํ์ ๊ฐ์ด ๋น๊ตํ์๋ค.

์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด NEFTune์ training loss์์ standard fine-tuning๋ณด๋ค ๋์ ๋ชจ์ต์ ๋ณด์ฌ์ฃผ์ง๋ง, test loss์์๋ ๊ทผ์ํ๊ฒ standard fine-tuning๋ณด๋ค ๋ฎ์ loss๋ฅผ ๋ณด์ฌ์ค๋ค. ์ด๊ฒ์ผ๋ก ๋ฏธ๋ฃจ์ด๋ณด์ ํ์คํ NEFTune์ standard fine-tuning์ ๋นํด์ ๋ overfitํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๋ํ model์ response์ ground-truth answer๊ณผ์ ์ ์ฌ๋ ๋น๊ต๋ฅผ ์ํด ROUGE-L๊ณผ BLEU๋ฅผ ์ฌ์ฉํด์ ํ๊ฐํด ๋ณธ ๊ฒฐ๊ณผ, NEFTune์ standard fine-tuning์ ๋นํด์ ํจ์ฌ ๋ ์์ ROUGE-L & BLEU score๋ฅผ ๊ฐ์ง๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. ๋ฐ๋ผ์ ground-truth answer๊ณผ๋ ํฌ๊ฒ ๋ค๋ฅธ response๋ฅผ ์์ฑํ๋ค๋ ๊ฒ์ผ๋ก ๋ฏธ๋ฃจ์ด๋ณด์ ํ์คํ NEFTune์ ๋ overfit ๋์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

NEFTune with HuggingFace TRL
ํฌ์คํ ์ ์ฌ๋ฆฌ๋ ์ผ์์ธ 10/18 ํ๋ฃจ ์ ์ธ 10/17์ HuggingFace์ TRL ํ์์ NEFTune์ TRL์ SFTTrainer์ ์ฌ์ฉํ ์ ์๋๋ก ์ ๋ฐ์ดํธ๋ฅผ ํ์๋ค๊ณ ํ๋ค! (์ฐธ๊ณ : https://www.linkedin.com/feed/update/urn:li:activity:7120085541861085185/) ์ด์ NEFTune์ ๋ชจ๋ธ์ ๋ณต์กํ ๊ตฌ์กฐ๋ฅผ ๊ฑด๋๋ฆด ํ์ ์์ด ๋ฑ ํ ์ค์ ์ฝ๋๋ฅผ SFTTrainer์ arg์ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก NEFTune์ ๊ตฌํํ ์ ์๋ค๊ณ ํ๋ค! NEFTune์ ํ์ฉํด์ fine-tuning์ ํด๋ณด๊ณ ์ ํ๋ ๋ ์๊ฐ ์๋ค๋ฉด ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค.

What should NLP do in the future? ๐ง
์ด๋ ๊ฒ ํด์ ๊ฐ๋จํ์ง๋ง ๋ฌด์ ๋ชป ํ ์ ๋์ ์ฑ๋ฅ ๊ฐ์ ์ ๋ณด์ฌ์ค NEFTune์ ๋ํด์ ์์๋ณด์๋ค. ๋ค์ ํ ๋ฒ ์ด๋ฐ ์์ฒญ๋ ์ฐ๊ตฌ๋ฅผ ํ ์ฐ๊ตฌ์๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.. ํ๊ณ ํ์๋ผ๋ฉด ํฌ์คํ ์ ๋๋๊ฒ ์ง๋ง, ์ด๋ฒ ํฌ์คํ ์์๋ ์ข ๋ ์ฌ์คํ ์๊ธฐ๋ฅผ ๋๋ ๋ณด๊ณ ์ ํ๋ค. ์ฐ์ ๋ ผ๋ฌธ์ Conclusion์ ์ ํ ์๋ ๊ธ๊ท๋ฅผ ๋น๋ ค์ ๋งํด ๋ณด๊ณ ์ ํ๋ค.
"Unlike the computer vision, which has studied regularization and overfitting for years,
the LLM community tends to use standardized training loops that are designed for optimizer stability and generalization."
NLP๋ฅผ ๊ณต๋ถํ๋ ์ฌ๋๋ค์ด๋ผ๋ฉด ์ ๊ธ๊ท์ ๋ํด์ ๋ชน์ ๊ณต๊ฐํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์ผ๋จ ํ์๋ ์์ ๊ธ์ด ํ์ฌ NLP์ ์ฐ๊ตฌ ๋ํฅ์ ๋ํด์ ์ผ์นจ์ ๋ ๋ฆฌ๋ ๋ง์ด๋ผ๊ณ ์๊ฐํ๋ค. ํ์ฌ NLP ์ฐ๊ตฌ ์ถ์ธ๋ฅผ ์ดํด๋ณด๋ฉด basic ํ ์ฐ๊ตฌ๋ค์ด ์ด๋ค์ง์ง ์์ ์ฑ ๊ทธ ์์ ๋ง์ ์ฐ๊ตฌ๋ค์ด ์์ฌ๊ฐ๊ณ ์๋ค. ๋ถ๊ณผ overfitting์ ๋ํด์๋ ํฌ๊ฒ ์๊ฐํ์ง ์๊ณ ๋ชจ๋ธ์ ํ์ต์์ผ ๋๊ฐ๊ณ ์์ผ๋ ๋ง์ด๋ค! ๋ฌผ๋ก ์ง๊ธ์ ์ฐ๊ตฌ๋ค๋ ์ ๋ง ๋๋๊ณ ์๋ก์ด ๋ฐ๊ฒฌ๋ค์ ์ด์ด๋๊ฐ๊ณ ์์ง๋ง, ๊ทธ๋งํผ basic ํ ์ฐ๊ตฌ๋ค์๋ ๊ด์ฌ์ ์์์ผ ํ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋ฐ ์๋ฏธ์์ ์ด NEFTune์ ์์ผ๋ก์ NLP ์ฐ๊ตฌ ๋ํฅ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ฐ๊ตฌ๋ผ๊ณ ์๊ฐํ๋ค. ๐
์ด ํฌ์คํ ์ ์ฝ์ ๋ ์๋ค์ ํ์์๋ ๋ค๋ฅธ ์๊ฐ์ ๊ฐ์ง๊ณ ์์ ์๋ ์๊ฒ ์ง๋ง, ํ์๋ ๋ง์ application study๋ค๋ ์ข์ง๋ง, ๊ธฐ๋ณธ์ ์ธ ํ๋์ basicํ study๊ฐ ์ ๋ง ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค. ์์ผ๋ก์ NLP ์ฐ๊ตฌ ๋ํฅ์ด ์ด๋ฌํ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ ์ ์๊ธธ ๋ฐ๋ผ๋ฉฐ ํฌ์คํ ์ ๋ง์ณ๋ณด๊ณ ์ ํ๋ค.
'Insight ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด์ ๋ ChatGPT๋ฅผ fine-tuning ํ ์๊ฐ!! โฐ (0) | 2023.08.23 |
---|---|
Fine-tuning method์ ๋ฐ์ ๊ณผ์ !! Fine-tuning๋ถํฐ RLHF๊น์ง ๐ฆโก๏ธ๐ง (0) | 2023.08.07 |
ํ ๋จ๊ณ, ํ ๋จ๊ณ์ฉ ์ธ๊ฐ์ฒ๋ผ ์๊ฐํด๋ณด์! ๐ง ๐ค (0) | 2023.08.03 |
๋น์ ๋ Fine-tuning ํ ์ ์์ต๋๋ค! with PEFT ๐ค (0) | 2023.08.01 |
ChatGPT์ ์ฑ๋ฅ์ด ์ ์ข์์ง๊ณ ์๋ค๊ตฌ?!?!? ๐ฒ๐ฒ (0) | 2023.07.31 |