2024. 7. 10. 11:51ใLecture
๊ฐ์
๐ ์์: https://www.youtube.com/watch?v=wzYT7kYIDwg
๐ ๊ฐ์ ์๋ฃ: https://sktechsummit.com/sessions/sessionsList.do
์ฐ์ฌ์
SKT Adapter Team ๊น์ฑ์
๊ฐ์ ๋ด์ฉ
๋ด ์
๋ฌด์ ๋ฑ ๋ง์ถ ๊ฐ๋ฒผ์ด LLM์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด?
SKT์ LLM์ ๊ณ ๊ฐ์ ํ์์ ๋ง๊ฒ ์ต์ ํํ์ฌ On-Premise ํ๊ฒฝ์์ ์ ๊ณตํ๋ Enterprise ์๋น์ค๋ฅผ ์๊ฐํฉ๋๋ค.
๋ฌธ์ ์์ฝ, ๋ฌธ์ ๊ฒ์, ์ง์&์๋ต ๋ฑ ๋ค์ํ ์
๋ฌด๋ฅผ ๋น๊ต์ ์์ ๊ท๋ชจ์ ๋ชจ๋ธ๋ก ์ง์ํ๊ธฐ ์ํด Fine-Tuning ๋ฟ ์๋๋ผ Context ๊ธฐ๋ฐ Retrieving ๋ฑ ๋ค์ํ ๊ธฐ์ ์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ๋ํ ์ด๋ฅผ ์์ํํ์ฌ ์๋น์ค ๊ฐ๋ฐ์ ๊ฐ์ํํ๋ LLMOps Framework๋ฅผ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค.
๊ธฐ์ ์ ๋ฌธ๊ฐ์ ๊ฐ๋ฐ์๋ฅผ ๋์์ผ๋ก ์ธ๋ถ ๊ธฐ์ ์ ๋ํ ์๊ฐ์ ์๋น์ค ๊ฐ๋ฐ ๊ณผ์ ์์์ ๊ฒฝํ, ๊ทธ๋ฆฌ๊ณ ํฅํ ๋ฐ์ ๋ฐฉํฅ์ ๋ํด์ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค.
- Fine-Tuning LLMs
- PEFT(Parameter-Efficient Fine-Tuning)
- LLMOps System ์๊ฐ ๋ฐ Live Demo
1. Fine-Tuning LLMs
์ LLM์ ํ์ธํ๋ํด์ผ ํ๋๊ฐ
โ ์์๋, ์ฃผ์ด์ง ์์ฐ์ด ์ ๋ ฅ์ ๋ํด์ API Function ์ถ๋ ฅํ๋ task
โ ๋ณดํต API Function๋ค์ ์ ์ผ๋ฉด ์์ญ ๊ฐ, ๋ง์ผ๋ฉด ์์ฒ ๊ฐ๊ฐ ๋๊ธฐ์ ๋ชจ๋ ํ๋กฌํํธ์ ๋ฃ์ ์ ์์
โ ๋ฐ๋ณต ์คํ ํตํ ์ต์ ์ ํ๋กฌํํธ ๋์ถํ๋ ๋ ธ๋ ฅ ํ์
โ ์ด๋ฐ ํ๋กฌํํธ๋ ๋งค ์ ๋ ฅ๋ง๋ค ๋ค์ด๊ฐ์ผ ํ๊ธฐ ๋๋ฌธ์ ํ ํฐ์ ๋ญ๋น ๋ฐ์ํ๊ณ , ์ด๊ฒ์ ๋น์ฉ๊ณผ ์๊ฐ์ ๋ญ๋น๋ก ์ด์ด์ง
โ LLM์ด ๊ฐ์ฅ ๊ทธ๋ด๋ฏํ ๋ต๋ณ์ ๋ง๋ค์ด๋ด๊ฒ ์ง๋ง, ์ด๊ฒ์ด ์ ํํ ๋ต๋ณ์์ ๋ณด์ฅํ ์ ์์
โ ํนํ๋, API์ ๊ฐ์ ์๋ก์ด ๊ฐ๋ ์ ํ๋กฌํํธ๋ง์ผ๋ก ์์ฉํ๋ ๋ฐ์๋ ํ๊ณ๊ฐ ์์
Fine-Tuning ํ
โ ์ํ๋ task์ ์์ ๋ค์ ๋ชจ์์ ๋ชจ๋ธ์ 1๋ฒ ๋ ํ์ตํด์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ธ์ด ๋์ํ ์ ์๊ฒ ํ๋ ๋ฐฉ์
2. PEFT(Parameter-Efficient Fine-Tuning)
โ ์ผ๋ฐ์ ์ธ ํ์ธํ๋์ LLM์ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ค์ ์ ๋ฐ์ดํธํจ
โ PEFT๋ ์ผ๋ถ ์ถ๊ฐ๋ ํ๋ผ๋ฏธํฐ๋ง ํ์ตํ๋ ํํ๋ก ๋์
โ ๊ทธ๋์ Full-fine tuning๊ณผ ๋น๊ตํด ๋น์ฉ๊ณผ ์๊ฐ ์ ์ฝ ๊ฐ๋ฅ
โ ๋ชจ๋ธ ํ์ธํ๋ ๊ณผ์ ์์ ๊ธฐ์กด์ ์๊ณ ์๋ ์ง์๋ค์ ์์ด๋ฒ๋ฆฌ๊ฒ ๋๋ catastrophic forgetting ํ์ ์ํ ๊ฐ๋ฅ
PEFT Method 1 - LoRA
โ ๋ํ์ ์ธ PEFT ๋ฐฉ์์ธ LoRA
โ (์ค๋ฅธ์ชฝ) X์ถ์ด ์ ๋ฐ์ดํธํ๋ ํ๋ผ๋ฏธํฐ ๊ฐ์ log scale๋ก ๋ํ๋ธ ๊ฒ
- Full ํ์ธํ๋(ํ๋์)๊ณผ ๋น๊ตํ๋ฉด ํจ์ฌ ๋ ์ ์ ํ๋ผ๋ฏธํฐ๋ง ํ์ตํ๋ LoRA๊ฐ ๋น์ทํ ์ฑ๋ฅ ๋
ํ๋ผ๋ฏธํฐ ์ ๋ฐ์ดํธ ๋ฐฉ์
โ (์ผ์ชฝ) ๋ชจ๋ธ ๋ด์ ์๋ ์ฐ์ฐ ์์ธํ ๋ณด๊ธฐ
โ Input "x"๊ฐ ๋ค์ด๊ฐ์ metric W๋ ๊ณฑํด์ ธ์ output "h"๊ฐ ๋๋ ๊ฒ | โ
LoRA๋ ์ฌ๊ธฐ์ Low-Rank(ํญ์ด ์ข์ ๋ฉํธ๋ฆญ์ค) ๊ณฑ ๋ํด์ค โ ์ด๋, r์ด k์ d์ ๋นํด ๊ต์ฅํ ์๋ค๋ฉด 2๊ฐ ๋ฉํธ๋ฆญ์ค์ ํ๋ผ๋ฏธํฐ ๊ฐ์๋, ์๋ ๋ฉํธ๋ฆญ์ค ์๋ณด๋ค ํจ์ฌ ์ ์ด์ง๊ฒ ๋ ๊ฒ |
โ LoRA๋ 2๊ฐ ๋ฉํธ๋ฆญ์ค๋ง ์ ๋ฐ์ดํธํ๋ ํ์์ผ๋ก ํ์ต ์งํ |
โ (์ค๋ฅธ์ชฝ) X์ถ์ด ์ ๋ฐ์ดํธํ๋ ํ๋ผ๋ฏธํฐ ๊ฐ์ ๋ก๊ทธ์ค์ผ์ผ๋ก ๋ํ๋ธ ๊ฒ
- Full ํ์ธํ๋(ํ๋์)๊ณผ ๋น๊ตํ๋ฉด ํจ์ฌ ๋ ์ ์ ํ๋ผ๋ฏธํฐ๋ง ํ์ตํ๋ LoRA๊ฐ ๋น์ทํ ์ฑ๋ฅ ๋
PEFT Method 2 - QLoRA
โ ๋ณดํต ๋ฒ ์ด์ค ๋ชจ๋ธ์ 16-bit ๋ฐ์ดํฐ ํฌ๋งท์ผ๋ก ๋์ด ์์
โ QLoRA๋ normal float๋ผ๋ ์๋ก์ด ๋ฐ์ดํฐ ํ์ ๊ณ ์ํด, ๋ฒ ์ด์ค ๋ชจ๋ธ์ 4-bit๋ก quantization
โ LoRA weight ์ ๋ฐ์ดํธํ๋ ๊ณผ์ ์์ quantization์์ ๋ฐ์ํ๋ ์์ค์ ๋ณด์ํ๊ณ , ๋์๊ฐ์ ์ํ๋ ๋ฐฉ์์ผ๋ก ๋ชจ๋ธ์ด ๋์ํ๋๋ก ํ์ต์์ผ ์ฃผ๋ ๊ฒ
โ ๋ชจ๋ธ ํ์ตํ ๋ ์๊ตฌ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋นํ ์ค์ผ ์ ์๋ ๊ฒ QLoRA์ ํต์ฌ
PEFT Method 3 - IA3
โ (์ค๋ฅธ์ชฝ) LoRA(๋ณด๋ผ์ ์ธ๋ชจ)๋ณด๋ค๋ ๋ ์ ์ ํ๋ผ๋ฏธํฐ ๊ฐ์๋ก ๋น์ทํ๊ฒ ๋์ํ๋ ๋ชจ์ต
ํ๋ผ๋ฏธํฐ ์ ๋ฐ์ดํธ ๋ฐฉ์
โ ๊ธฐ์กด ํธ๋์คํฌ๋จธ ๊ตฌ์ฑ ์์๋ค(value, key, feed-forward network์ ์๋ iterative action)์ ๊ณฑํด์ง๋ ๋ฒกํฐ ๋์
- (์ค๋ฅธ์ชฝ) ๋ ธ๋์ ๋ฐ์ค๋ค: lV, lk, lff
- ๊ณฑํด์ง๋ ๋ฒกํฐ๋ค๋ง ํ์ตํ๋ ๋ฐฉ์์ผ๋ก ๋์
PEFT Method 4 - ToolkenGPT
โ LLM๋ง์ผ๋ก ์ ํํ ๋ต๋ณ ์ป๊ธฐ ํ๋ ์ํฉ์์ ์ ์ฉํ ์ ์๋ ๋ฐฉ์
โ ์ธ๋ถ ํด ์ฌ์ฉํ ์ ์๋ ๋ฐฉ์
โ (์ค๋ฅธ์ชฝ) Took ๊ฐ์ ๋ง์์ง์๋ก, ToolkenGPT ์ฑ๋ฅ์ด ํ๋กฌํํ ๋ฐฉ์์ ๋นํด ์๋์ ์ธ ์ฑ๋ฅ ์ด๋ ๋์์ง
๋์ ๋ฐฉ์
1๏ธโฃ ์ํ์ ์ฐ์ฐ ํ์๋ก ํ๋ ์ง๋ฌธ โ ๊ฐ๋จํ ์ต๋๊ณต์ฝ์ ๊ตฌํ๋ ๋ฌธ์ |
2๏ธโฃ LLM ์ถ๋ก ๊ณผ์ ์์ ๊ธฐ์กด๊ณผ ๋ค๋ฅธ ๊ฒ? โ ์ผ๋ฐ์ ์ธ ํ ํฐ ๋ฟ๋ง์ด ์๋๋ผ, toolken(ํด ํ ํฐ)๋ ํ์ตํด์ ์ถ๋ก |
3๏ธโฃ ๋ง์ฝ, next token์ผ๋ก ํดํฐ์ด ๋์จ๋ค๋ฉด, tool ๋ชจ๋๋ก ๋ณ๊ฒฝํด์ tool ์คํํ ๋ ํ์ํ argument๋ค ์ถ๋ก | 4๏ธโฃ Tool ์คํ์ํจ ํ, ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ |
โ API call, ์ธ๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ง์ ๊ฐ์ ธ์ค๋ ๋ฑ์ ํํ๋ก ํ์ฅ๋ ์ ์์
PEFT Methods - Comparison
โ (์ผ์ชฝ) ๊ฐ PEFT ๋ฐฉ์์ด ์ด๋ค ์์/๋ฐฉ์ ๊ฒฐํฉํ๋์ง ์ ๋ฆฌ
โ (์ค๋ฅธ์ชฝ) ์ค์ 2๊ฐ ๋ด๋ถ ๋ชจ๋ธ์ ํ ์คํธ ์งํํ ๊ฒฐ๊ณผ
๊ฐ PEFT ๋ฐฉ๋ฒ ์ ์ฉํ ๋, ํ์ดํผํ๋ผ๋ฏธํฐ ์๋ฒฝํ๊ฒ ์ต์ ํํ์ง ์์ ์ต์ ์ ์ฑ๋ฅ ์๋ ์ ์์
โ ๊ณตํต์ ์ผ๋ก 2๊ฐ์ง ๋ชจ๋ธ์์, Full fine-tuning์ ๋นํด PEFT ๋ฐฉ์์ด ํจ์ฌ ๋ ์ ์ ํ์ต์๊ฐ๋ง์ผ๋ก๋ ๋น์ทํ ์ฑ๋ฅ ํน์ ๋ ๋์ ์ฑ๋ฅ ๋ณด์ฌ์ฃผ๊ณ ์์
3. LLMOps System ์๊ฐ ๋ฐ Live Demo
LLMOps System Architecture
โ ํ์ตํ ๋ชจ๋ธ fine-tuning ํ๊ณ , fine-tuning ํ ๋ชจ๋ธ text, serving, monitoring๊น์ง ํ๋ LLMOps ์์คํ ๊ฐ๋ฐ ์ค
โ Fine-tuning, Deploy ์ชฝ์ ๋ง์ด ๊ตฌํ๋ ์ํ
๋ฐ๋ชจ์์
โ Dashboard์์ ๋ชจ๋ธ, ๋ฐ์ดํฐ์ , training job ๋ชฉ๋ก ๋ํ๋จ
โ ๋ฒ ์ด์ค ๋ชจ๋ธ๋ก ์ ๊ณตํ๋ ๋ชจ๋ธ๋ค(A.X.LLM-S ๋ฑ) ๋ชจ๋ธ ์นด๋
โ ํ์ต์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ์ preview(๋ฉํ๋ฐ์ดํฐ ํ์)
โ ์ฌ์ฉ์๊ฐ ์ง์ ์ฌ์ฉํ ๋ฐ์ดํฐ์ ์ปค์คํ ํด์ ์ฌ๋ฆด ์ ์์
โ training์์ ์ฌ์ฉํ๋ base model, ๋ฐ์ดํฐ์ , ์ฐ์ถ๋ฌผ๋ก ๋์จ LoRA weight, configuration, tensorboard, log ๋ฑ์ ๋ค์ด๋ก๋ํ ์ ์์
โ ์ํ๋ base model, ๋ฐ์ดํฐ์ , fine-tuning ๋ฐฉ์ ๊ณจ๋ผ์ ํ์ต ์์ํ ์ ์์
โ ์๋ํฐ์์ ์ง์ ํ์ดํผํ๋ผ๋ฏธํฐ ์์ or ์ถ๊ฐํ ์ ์์
โ ํ์ต ์๋ฃ๋๋ฉด ๋ชจ๋ธ instance ์ฌ๋ ค์ playground์์ test ์งํ ๊ฐ๋ฅ
โ ์์ฑ ํ๋ผ๋ฏธํฐ ์กฐ์ ๊ฐ๋ฅ(temperature, top_k, reputation penalty ๋ฑ)ํด ์ต์ ํ ๊ฐ๋ฅ