What a BIG NEWS!!! ๐ฐ
์ต๊ทผ ๋ค์ด ๋ธ๋ก๊ทธ ํฌ์คํ ์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ๋ธํด์ก๋๋ฐ, ์ค๋ ์ ๋ง ๋๋ผ์ด ์์์ ์ ํ๊ฒ ๋์ด์ ์ด๋ ๊ฒ ์ค๋๊ฐ๋ง์ ์ฐพ์์ค๊ฒ ๋์๋ค. ๋ฐ๋ก ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ์ ์ฐ๋ฆฌ๋๋ผ ์๊ฐ์ผ๋ก๋ ์ค๋! (๋ฌผ๋ก ๋ฏธ๊ตญ ์๊ฐ์ผ๋ก๋ 8์ 22์ผ์ด๊ธด ํ๋ค ๐) ๋๋์ด OpenAI์์ ์ด๋ค์ ๊ฐ๋ ฅํ ์ธ์ด ๋ชจ๋ธ์ธ ChatGPT(gpt-3.5-turbo)์ ๋ํด์ fine-tuning์ ํ ์ ์๋๋ก ๋ง๋ค์๋ค!! ๐ซข ๊ทธ๋์ ์ด๋ฒ ํฌ์คํ ์์๋ OpenAI์์ ์ด ์์์ ์๋ฆฌ๊ธฐ ์ํด ์ฌ๋ฆฐ ๊ธ์ ํ ๋๋ก ์ด๋ป๊ฒ ChatGPT๋ฅผ fuine-tuning ํ ์ ์๋์ง ๊ทธ ์์ธํ ๋ด์ฉ๋ค๊ณผ ์ธ๋ถ ์ฌํญ๋ค์ ์์๋ณด๋ ค๊ณ ํ๋ค! ๐ค ์ด ํฌ์คํ ์ OpenAI์ ๊ธ์ ํ ๋๋ก ์์ฑ๋์์ผ๋ ๋์ฑ ์์ธํ ๋ด์ฉ์ ํ์ธํ๊ณ ์ถ๋ค๋ฉด ๋ค์์ ๋งํฌ๋ฅผ ํ์ธํ๊ธธ ๋ฐ๋๋ค.
GPT-3.5 Turbo fine-tuning and API updates
Developers can now bring their own data to customize GPT-3.5 Turbo for their use cases.
openai.com
Overview ๐
๊ทธ๊ฐ open-source model์ ํ์ฉํ์ฌ fine-tuning์ ํ์๋๊ฐ? ๊ทธ๋ ๋ค๋ฉด ์ด์ open-source model๋ก๋ง fine-tuning์ ํด์ผ ํ๋ค๊ณ ๋ง ์๊ฐํ ํ์ ์๋ค! ์๋ํ๋ฉด ์ด์ ๋ ChatGPT(gpt-3.5-turbo)๋ fine-tuning์ ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค!! โจ OpenAI์์๋ ChatGPT์ fine-tuning์ ์๊ฐํ๋ฉด์ ๋ค์๊ณผ ๊ฐ์ ์ฐ๊ตฌ์๋ค์ ๊ฐ์ด์ ๋ฐ๊ฒ ๋ง๋ค ๋ง์ ๋จ๊ฒผ๋ค.
"fine-tuning์ ๊ฑฐ์น gpt-3.5-turbo ๋ชจ๋ธ์ ํน์ task์์ GPT-4๋ฅผ
๋ฅ๊ฐํ๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๊ธฐ๋ ํ์์ต๋๋ค."
์ด์ ๋์ฑ ๊ฐ๋ ฅํ ๋ฒ ์ด์ค ๋ชจ๋ธ๋ก fine-tuning์ ํด์ ๊ธฐ์กด ์ต๊ฐ์ ๋ชจ๋ธ๋ณด๋ค ๋์ฑ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๋ ๋ชจ๋ธ์ ๋ง๋ค ์ ์๋ค๋, ์ ๋ง ์ฐ๊ตฌ์๋ค์ ๊ฐ์ด์ ๋ถ์ ์งํผ๋ ํ ๋ง๋๋ผ๊ณ ์๊ฐํ๋ค. ๐ฅ ์์ง์ gpt-3.5-turbo ๋ชจ๋ธ์ fine-tuning๋ง ๊ฐ๋ฅํ์ง๋ง, ์ถํ์ ๊ฐ์ ์ฆ์์๋ GPT-4์ fine-tuning๋ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ณ ์ ํ๋ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ OpenAI API์ data privacy๋ฅผ ๋ฐ๋ผ์ fine-tuning์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ OpenAI๋ฅผ ์ํด ์ฌ์ฉ๋์ง ์๋๋ค๊ณ ํ๋ค!
Fine-tuning use cases ๐ง
OpenAI์์ ์งํํ private beta์์, gpt-3.5-turbo๋ฅผ fine-tuningํ๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ ์ฌ์ฉ ์์์์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์๋ฏธ ์๊ฒ ๊ฐ์ ์ํฌ ์ ์๋ค๋ ๊ฒ์ ๋ณด์ฌ์คฌ๋ค.
- Improved Steerability: fine-tuning์ instruction์ ๋์ฑ ์ ๋ฐ๋ฅผ ์ ์๊ฒ ๋ง๋ค์ด์ค๋ค. ์๋ฅผ ๋ค์ด fine-tuning์ ํตํด ๋ง์ฝ ๋ ์ผ์ด๋ก prompt๊ฐ ๋ค์ด์จ๋ค๋ฉด ํญ์ ๋ ์ผ์ด๋ก ์๋ตํ ์ ์๋๋ก ๋ง๋ค ์ ์๋ค.
- Reliable Output Formatting: fine-tuning์ ์๋ต์ ์ผ๊ด์ ์ธ ํํ๋ก ๋ง๋ค ์ ์๋ ๋ชจ๋ธ์ ๋ฅ๋ ฅ์ ๊ฐ์ ์์ผ์ค๋ค. ์ด๋ฌํ ์ ์ ๊ตฌ์ฒด์ ์ธ ์๋ต ํ์์ ํ์๋ก ํ๋ ์ฝ๋ ์์ฑ ๋ฌธ์ ์์ ํจ๊ณผ์ ์ด๋ค.
- Custom Tone: fine-tuning์ ํค๊ณผ ๊ฐ์ ๋ชจ๋ธ ์ถ๋ ฅ์ ์ง์ ์ธ ๋๋์ ์ฐ๋งํ์ฌ ๊ธฐ์ ๋ธ๋๋์ ๋ชฉ์๋ฆฌ์ ๋ ์ ๋ง๋๋ก ํ ์ ์๋ค.
์ด ์ธ์๋ fine-tuning์ ํตํด ํฅ์๋ ์ฑ๋ฅ์ผ๋ก prompt์ ๊ธธ์ด๋ฅผ ์ค์ผ ์ ์์๋ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ fine-tuning์ prompt engineering, information retrieval, function calling๊ณผ ๊ฐ์ ๋ค๋ฅธ ๊ธฐ์ ๋ค๊ณผ ํจ๊ป ์ฌ์ฉํ ๋ ๋์ฑ ๊ฐ๋ ฅํ๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ OpenAI์์ ์ ๊ณตํด ์ฃผ๋ fine-tuning guide๋ฅผ ํ์ธํ๊ธธ ๋ฐ๋๋ค.
Fine-tuning steps ๐ช
์ด์ ๊ธฐ๋ณธ์ ์ธ gpt-3.5-turbo์ fine-tuning์ ๋ํ ์ ๋ณด๋ค์ ์์๋ดค์ผ๋ ์ง์ ์ฝ๋๋ฅผ ํตํด ๊ตฌํํด๋ณผ ์๊ฐ์ด๋ค! ๐ ๋ค์์ OpenAI์์ ์ ๊ณตํด ์ฃผ๋ ์ด๊ฐ๋จ fine-tuning ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์จ ๊ฒ์ด๋ค ใ ใ gpt-3.5-turbo์ fine-tuning ๊ณผ์ ์ ๋ฐ์ดํฐ ์ค๋น, ํ์ผ ์ ๋ก๋, fine-tuning job ์์ฑ, fine-tuned model ์ฌ์ฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ทธ๋ ๊ฒ ์ด๋ ต๊ณ ๋ณต์กํ ์ฝ๋๋ค์ ์๋๋ ๊ฐ๋จํ๊ฒ ํ๋ ๋๋์ผ๋ก ๋ณผ ์ ์๊ธธ ๋ฐ๋๋ค. ๐ค
1. Prepare data ๐พ
๋ง ๊ทธ๋๋ก ์์ ์ด gpt-3.5-turbo๋ฅผ fine-tuning ์ํฌ ๋ฐ์ดํฐ๋ฅผ ์ ํ๋ ๋จ๊ณ๋ก, ์์ ์ ๋ชฉ์ ์ ์๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ฉด ๋๋ค. ์ด๋ gpt-3.5-turbo ๋ชจ๋ธ์ ์ต๋ ํ ํฐ ์์ฉ๋์ 4,096์ด๋ฏ๋ก ์ด๋ณด๋ค ๊ธด context๊ฐ ์ฃผ์ด์ง๋ค๋ฉด, truncation์ด ์งํ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ง๊น์ง๋ ๊ฐ ํ์ผ์ ํฌ๊ธฐ๋ 50MB๋ก ์ ํ๋๋ค. ์ด๋ฌํ ์ ์ ์ ์ํด์ ๋ฐ์ดํฐ์ ์ ์ ํํด์ผ ํ๋ค.
{
"messages": [
{ "role": "system", "content": "You are an assistant that occasionally misspells words" },
{ "role": "user", "content": "Tell me a story." },
{ "role": "assistant", "content": "One day a student went to schoool." }
]
}
2. Upload files ๐
gpt-3.5-turbo๋ฅผ fine-tuning ์ํฌ ๋ฐ์ดํฐ๋ฅผ ์ ํ๋ค๋ฉด ์ด์ ๋ ๊ทธ ํ์ต ๋ฐ์ดํฐ ํ์ผ์ ์ ๋ก๋ ํด์ผํ๋ค. ์๋์ ์ฝ๋์์ OPENAI_API_KEY๋ ์์ ์ OpenAI API key๋ฅผ ์ ๋ ฅํ๋ฉด ๋๊ณ (ex. sk-...), file์ fine-tuning ์ํฌ ๋ฐ์ดํฐ์ ์ด ์๋ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํด ์ฃผ๋ฉด ๋๋ค.
!curl -https://api.openai.com/v1/files \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F "purpose=fine-tune" \
-F "file=@path_to_your_file"
3. Create a fine-tuning job ๐ง
์ด์ fine-tuningํ ๋ด์ฉ๊ณผ ๋ชจ๋ธ์ ์ค์ ํ๋ฉด fine-tuning์ด ์์๋๋ค! ๊ทธ๋ฆฌ๊ณ fine-tuning์ด ๋๋ ๋ชจ๋ธ์ ํ๋ก๋์ ์์ ๋ฐ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ๋ฒ ์ด์ค ๋ชจ๋ธ๊ณผ ๋๊ฐ์ rate limits๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
!curl https://api.openai.com/v1/fine_tuning/jobs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"training_file": "TRAINING_FILE_ID",
"model": "gpt-3.5-turbo-0613",
}'
4. Use a fine-tuned model
์ด์ fine-tuning๋ ๋ชจ๋ธ์ ์ฌ์ฉํด ๋ณผ ์ฐจ๋ก์ธ๋ฐ, ๋ค์์ ์์๋ ๋ชจ๋ธ์๊ฒ ๊ฐ๋ ์คํ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์๋ต์ ๋ด๋๋๋ก ๋ง๋ ์ฝ๋์ด๋ค.
!curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "ft:gpt-3.5-turbo:org_id",
"messages": [
{
"role": "system",
"content": "You are an assistant that occasionally misspells words"
},
{
"role": "user",
"content": "Hello! What is fine-tuning?"
}
]
}'
Pricing ๐ธ
์ฌ์ค ChatGPT๋ฅผ fine-tuningํ ์ ์๋ค๋ ์ฌ์ค๋ณด๋ค ๋ ์ค์ํ ๊ฒ์ด ์ฐ๋ฆฌ์๊ฒ๋ ๋จ์์๋ค. ๊ทธ๋์ ๋ชจ๋ธ์ fine-tuning ์ํค๋ ๋ฐ์๋ ์ผ๋งํผ์ ๋น์ฉ์ด ๋ฐ์ํ๋๋ ๊ฒ์ด๋ค.. ๐ฅฒ OpenAI์์ ๊ณต๊ฐํ pricing์ ํฌ๊ฒ fine-tuning ์์ ๋๋ ๋น์ฉ๊ณผ fine-tuned model์ ์ฌ์ฉํ๋๋ฐ ๋๋ ๋น์ฉ์ผ๋ก ๋๋๋ค.
- Training: $0.008 / 1K Tokens
- Usage input: $0.012 / 1K Tokens
- Usage output: $0.016 / 1K Tokens
OpenAI์์๋ 100,000๊ฐ์ ํ ํฐ์์ ๋ชจ๋ธ์ 3 epoch ๋์ ํ์ต์ํฌ ๋ ๊ฒจ์ฐ 2.4๐ฒ ๋ฐ์ ๋น์ฉ์ด ๋ฐ์ํ์ง ์๋๋ค๊ณ ๋ณด์ฌ์ฃผ์ง๋ง, ์ ๋ช ํ instruction dataset์ธ Alpaca์ 52K Self-Instruct dataset์ ์ฌ์ฉํ์ฌ fine-tuning์ ์งํํ๋ค๊ณ ํ์ ๋, ํ๋์ instruction์ด ๋๋ต 256๊ฐ ์ ๋์ ํ ํฐ์ ๊ฐ์ง๊ณ ์๋ค๋ฉด, ํ epoch๋ฅผ ํ์ต์ํค๋๋ฐ๋ ๋ฌด๋ ค 104๐ฒ ๋งํผ์ ๋น์ฉ์ด ๋ฐ์ํ๋ ๊ฒ์ด๋ค!! ๐ฑ ๋ฌผ๋ก ์ฌ์ฉํ๋ ๋ฐ์ดํฐ์ ์ ๋ฐ๋ผ ๋น์ฉ์ ์์ดํ๊ฒ ์ง๋ง, ๋๋ฌด ๋ง์ ์์ dataset์ ์ฌ์ฉํ๋ค๋ฉด ๊ทธ ๋น์ฉ๋ ์์ฒญ๋๊ฒ ์ปค์ง ์๋ ์์ ๊ฒ ๊ฐ๋ค..
A new facet of fine-tuning ๐งจ
๊ธฐ์กด์ fine-tuning์ ํตํด ์๋ก์ด ๋ชจ๋ธ์ ๋ง๋ค์ด๋ด๊ธฐ ์ํด์๋ open-source LM์ ํ์ฉํด์ fine-tuning์ ์งํํ์๋ค. ํ์ง๋ง, ์ด open-source LM์๋ ํ๊ณ๋ ์๋๋ฐ, ๊ทธ๊ฒ์ ๋ฐ๋ก proprietary model์ ๋นํด์ open-source model์ ์ฑ๋ฅ์ด ๋ค์ฒ์ง๋ค๋ ๊ฒ์ด๋ค. ์ต๊ทผ์ LLM ์ฐ๊ตฌ๋ค์์ ๋ฐํ๋ธ ๊ฒ์ฒ๋ผ, ๊ฒฐ๊ตญ์ ๊ฐ์ฅ ์ค์ํ pre-trained model์ ๊ธฐ๋ณธ์ ์ธ ์ฑ๋ฅ์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด ์๋ฌด๋ฆฌ ํ๋ คํ fine-tuning์ ๊ฑฐ์น๋ค๊ณ ํด๋ ๋ฒ ์ด์ค๊ฐ ๋๋ pre-trained model์ ์ฑ๋ฅ์ด ๋จ์ด์ง๊ฒ ๋๋ค๋ฉด ๋ณ ์ฑ๋ฅ ํฅ์์ด ์๋ค๊ณ ํ๋ค. ์ด๋ฌํ ์ ์์ ChatGPT์ fine-tuning์ด ๊ฐ๋ฅํด์ง ๊ฒ์ ์์ผ๋ก์ LM ๋ฐ์ ์ ๋ ํ๋์ ํฐ ๋ฐ๋์์ด ๋ ์ ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฒ ํฌ์คํ ์์ ์ดํด๋ณธ ๋ด์ฉ์ ๊ฐ๋ฒผ์ด ๋๋์ gpt-3.5-turbo fine-tuning์ด์๋๋ฐ ๋์ฑ ์์ธํ ๋ด์ฉ์ ์๊ณ ์ถ๋ค๋ฉด ์์ ๋งํ fine-tuning guide๋ฅผ ํ์ธํ ์ ์๊ธธ ๋ฐ๋๋ค.
'Insight ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Noise makes LLM better! - NEFTune ๐ (0) | 2023.10.18 |
---|---|
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 a BIG NEWS!!! ๐ฐ
์ต๊ทผ ๋ค์ด ๋ธ๋ก๊ทธ ํฌ์คํ ์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ๋ธํด์ก๋๋ฐ, ์ค๋ ์ ๋ง ๋๋ผ์ด ์์์ ์ ํ๊ฒ ๋์ด์ ์ด๋ ๊ฒ ์ค๋๊ฐ๋ง์ ์ฐพ์์ค๊ฒ ๋์๋ค. ๋ฐ๋ก ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ์ ์ฐ๋ฆฌ๋๋ผ ์๊ฐ์ผ๋ก๋ ์ค๋! (๋ฌผ๋ก ๋ฏธ๊ตญ ์๊ฐ์ผ๋ก๋ 8์ 22์ผ์ด๊ธด ํ๋ค ๐) ๋๋์ด OpenAI์์ ์ด๋ค์ ๊ฐ๋ ฅํ ์ธ์ด ๋ชจ๋ธ์ธ ChatGPT(gpt-3.5-turbo)์ ๋ํด์ fine-tuning์ ํ ์ ์๋๋ก ๋ง๋ค์๋ค!! ๐ซข ๊ทธ๋์ ์ด๋ฒ ํฌ์คํ ์์๋ OpenAI์์ ์ด ์์์ ์๋ฆฌ๊ธฐ ์ํด ์ฌ๋ฆฐ ๊ธ์ ํ ๋๋ก ์ด๋ป๊ฒ ChatGPT๋ฅผ fuine-tuning ํ ์ ์๋์ง ๊ทธ ์์ธํ ๋ด์ฉ๋ค๊ณผ ์ธ๋ถ ์ฌํญ๋ค์ ์์๋ณด๋ ค๊ณ ํ๋ค! ๐ค ์ด ํฌ์คํ ์ OpenAI์ ๊ธ์ ํ ๋๋ก ์์ฑ๋์์ผ๋ ๋์ฑ ์์ธํ ๋ด์ฉ์ ํ์ธํ๊ณ ์ถ๋ค๋ฉด ๋ค์์ ๋งํฌ๋ฅผ ํ์ธํ๊ธธ ๋ฐ๋๋ค.
GPT-3.5 Turbo fine-tuning and API updates
Developers can now bring their own data to customize GPT-3.5 Turbo for their use cases.
openai.com
Overview ๐
๊ทธ๊ฐ open-source model์ ํ์ฉํ์ฌ fine-tuning์ ํ์๋๊ฐ? ๊ทธ๋ ๋ค๋ฉด ์ด์ open-source model๋ก๋ง fine-tuning์ ํด์ผ ํ๋ค๊ณ ๋ง ์๊ฐํ ํ์ ์๋ค! ์๋ํ๋ฉด ์ด์ ๋ ChatGPT(gpt-3.5-turbo)๋ fine-tuning์ ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค!! โจ OpenAI์์๋ ChatGPT์ fine-tuning์ ์๊ฐํ๋ฉด์ ๋ค์๊ณผ ๊ฐ์ ์ฐ๊ตฌ์๋ค์ ๊ฐ์ด์ ๋ฐ๊ฒ ๋ง๋ค ๋ง์ ๋จ๊ฒผ๋ค.
"fine-tuning์ ๊ฑฐ์น gpt-3.5-turbo ๋ชจ๋ธ์ ํน์ task์์ GPT-4๋ฅผ
๋ฅ๊ฐํ๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๊ธฐ๋ ํ์์ต๋๋ค."
์ด์ ๋์ฑ ๊ฐ๋ ฅํ ๋ฒ ์ด์ค ๋ชจ๋ธ๋ก fine-tuning์ ํด์ ๊ธฐ์กด ์ต๊ฐ์ ๋ชจ๋ธ๋ณด๋ค ๋์ฑ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๋ ๋ชจ๋ธ์ ๋ง๋ค ์ ์๋ค๋, ์ ๋ง ์ฐ๊ตฌ์๋ค์ ๊ฐ์ด์ ๋ถ์ ์งํผ๋ ํ ๋ง๋๋ผ๊ณ ์๊ฐํ๋ค. ๐ฅ ์์ง์ gpt-3.5-turbo ๋ชจ๋ธ์ fine-tuning๋ง ๊ฐ๋ฅํ์ง๋ง, ์ถํ์ ๊ฐ์ ์ฆ์์๋ GPT-4์ fine-tuning๋ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ณ ์ ํ๋ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ OpenAI API์ data privacy๋ฅผ ๋ฐ๋ผ์ fine-tuning์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ OpenAI๋ฅผ ์ํด ์ฌ์ฉ๋์ง ์๋๋ค๊ณ ํ๋ค!
Fine-tuning use cases ๐ง
OpenAI์์ ์งํํ private beta์์, gpt-3.5-turbo๋ฅผ fine-tuningํ๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ ์ฌ์ฉ ์์์์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์๋ฏธ ์๊ฒ ๊ฐ์ ์ํฌ ์ ์๋ค๋ ๊ฒ์ ๋ณด์ฌ์คฌ๋ค.
- Improved Steerability: fine-tuning์ instruction์ ๋์ฑ ์ ๋ฐ๋ฅผ ์ ์๊ฒ ๋ง๋ค์ด์ค๋ค. ์๋ฅผ ๋ค์ด fine-tuning์ ํตํด ๋ง์ฝ ๋ ์ผ์ด๋ก prompt๊ฐ ๋ค์ด์จ๋ค๋ฉด ํญ์ ๋ ์ผ์ด๋ก ์๋ตํ ์ ์๋๋ก ๋ง๋ค ์ ์๋ค.
- Reliable Output Formatting: fine-tuning์ ์๋ต์ ์ผ๊ด์ ์ธ ํํ๋ก ๋ง๋ค ์ ์๋ ๋ชจ๋ธ์ ๋ฅ๋ ฅ์ ๊ฐ์ ์์ผ์ค๋ค. ์ด๋ฌํ ์ ์ ๊ตฌ์ฒด์ ์ธ ์๋ต ํ์์ ํ์๋ก ํ๋ ์ฝ๋ ์์ฑ ๋ฌธ์ ์์ ํจ๊ณผ์ ์ด๋ค.
- Custom Tone: fine-tuning์ ํค๊ณผ ๊ฐ์ ๋ชจ๋ธ ์ถ๋ ฅ์ ์ง์ ์ธ ๋๋์ ์ฐ๋งํ์ฌ ๊ธฐ์ ๋ธ๋๋์ ๋ชฉ์๋ฆฌ์ ๋ ์ ๋ง๋๋ก ํ ์ ์๋ค.
์ด ์ธ์๋ fine-tuning์ ํตํด ํฅ์๋ ์ฑ๋ฅ์ผ๋ก prompt์ ๊ธธ์ด๋ฅผ ์ค์ผ ์ ์์๋ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ fine-tuning์ prompt engineering, information retrieval, function calling๊ณผ ๊ฐ์ ๋ค๋ฅธ ๊ธฐ์ ๋ค๊ณผ ํจ๊ป ์ฌ์ฉํ ๋ ๋์ฑ ๊ฐ๋ ฅํ๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ OpenAI์์ ์ ๊ณตํด ์ฃผ๋ fine-tuning guide๋ฅผ ํ์ธํ๊ธธ ๋ฐ๋๋ค.
Fine-tuning steps ๐ช
์ด์ ๊ธฐ๋ณธ์ ์ธ gpt-3.5-turbo์ fine-tuning์ ๋ํ ์ ๋ณด๋ค์ ์์๋ดค์ผ๋ ์ง์ ์ฝ๋๋ฅผ ํตํด ๊ตฌํํด๋ณผ ์๊ฐ์ด๋ค! ๐ ๋ค์์ OpenAI์์ ์ ๊ณตํด ์ฃผ๋ ์ด๊ฐ๋จ fine-tuning ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์จ ๊ฒ์ด๋ค ใ ใ gpt-3.5-turbo์ fine-tuning ๊ณผ์ ์ ๋ฐ์ดํฐ ์ค๋น, ํ์ผ ์ ๋ก๋, fine-tuning job ์์ฑ, fine-tuned model ์ฌ์ฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ทธ๋ ๊ฒ ์ด๋ ต๊ณ ๋ณต์กํ ์ฝ๋๋ค์ ์๋๋ ๊ฐ๋จํ๊ฒ ํ๋ ๋๋์ผ๋ก ๋ณผ ์ ์๊ธธ ๋ฐ๋๋ค. ๐ค
1. Prepare data ๐พ
๋ง ๊ทธ๋๋ก ์์ ์ด gpt-3.5-turbo๋ฅผ fine-tuning ์ํฌ ๋ฐ์ดํฐ๋ฅผ ์ ํ๋ ๋จ๊ณ๋ก, ์์ ์ ๋ชฉ์ ์ ์๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ฉด ๋๋ค. ์ด๋ gpt-3.5-turbo ๋ชจ๋ธ์ ์ต๋ ํ ํฐ ์์ฉ๋์ 4,096์ด๋ฏ๋ก ์ด๋ณด๋ค ๊ธด context๊ฐ ์ฃผ์ด์ง๋ค๋ฉด, truncation์ด ์งํ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ง๊น์ง๋ ๊ฐ ํ์ผ์ ํฌ๊ธฐ๋ 50MB๋ก ์ ํ๋๋ค. ์ด๋ฌํ ์ ์ ์ ์ํด์ ๋ฐ์ดํฐ์ ์ ์ ํํด์ผ ํ๋ค.
{
"messages": [
{ "role": "system", "content": "You are an assistant that occasionally misspells words" },
{ "role": "user", "content": "Tell me a story." },
{ "role": "assistant", "content": "One day a student went to schoool." }
]
}
2. Upload files ๐
gpt-3.5-turbo๋ฅผ fine-tuning ์ํฌ ๋ฐ์ดํฐ๋ฅผ ์ ํ๋ค๋ฉด ์ด์ ๋ ๊ทธ ํ์ต ๋ฐ์ดํฐ ํ์ผ์ ์ ๋ก๋ ํด์ผํ๋ค. ์๋์ ์ฝ๋์์ OPENAI_API_KEY๋ ์์ ์ OpenAI API key๋ฅผ ์ ๋ ฅํ๋ฉด ๋๊ณ (ex. sk-...), file์ fine-tuning ์ํฌ ๋ฐ์ดํฐ์ ์ด ์๋ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํด ์ฃผ๋ฉด ๋๋ค.
!curl -https://api.openai.com/v1/files \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F "purpose=fine-tune" \
-F "file=@path_to_your_file"
3. Create a fine-tuning job ๐ง
์ด์ fine-tuningํ ๋ด์ฉ๊ณผ ๋ชจ๋ธ์ ์ค์ ํ๋ฉด fine-tuning์ด ์์๋๋ค! ๊ทธ๋ฆฌ๊ณ fine-tuning์ด ๋๋ ๋ชจ๋ธ์ ํ๋ก๋์ ์์ ๋ฐ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ๋ฒ ์ด์ค ๋ชจ๋ธ๊ณผ ๋๊ฐ์ rate limits๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
!curl https://api.openai.com/v1/fine_tuning/jobs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"training_file": "TRAINING_FILE_ID",
"model": "gpt-3.5-turbo-0613",
}'
4. Use a fine-tuned model
์ด์ fine-tuning๋ ๋ชจ๋ธ์ ์ฌ์ฉํด ๋ณผ ์ฐจ๋ก์ธ๋ฐ, ๋ค์์ ์์๋ ๋ชจ๋ธ์๊ฒ ๊ฐ๋ ์คํ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์๋ต์ ๋ด๋๋๋ก ๋ง๋ ์ฝ๋์ด๋ค.
!curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "ft:gpt-3.5-turbo:org_id",
"messages": [
{
"role": "system",
"content": "You are an assistant that occasionally misspells words"
},
{
"role": "user",
"content": "Hello! What is fine-tuning?"
}
]
}'
Pricing ๐ธ
์ฌ์ค ChatGPT๋ฅผ fine-tuningํ ์ ์๋ค๋ ์ฌ์ค๋ณด๋ค ๋ ์ค์ํ ๊ฒ์ด ์ฐ๋ฆฌ์๊ฒ๋ ๋จ์์๋ค. ๊ทธ๋์ ๋ชจ๋ธ์ fine-tuning ์ํค๋ ๋ฐ์๋ ์ผ๋งํผ์ ๋น์ฉ์ด ๋ฐ์ํ๋๋ ๊ฒ์ด๋ค.. ๐ฅฒ OpenAI์์ ๊ณต๊ฐํ pricing์ ํฌ๊ฒ fine-tuning ์์ ๋๋ ๋น์ฉ๊ณผ fine-tuned model์ ์ฌ์ฉํ๋๋ฐ ๋๋ ๋น์ฉ์ผ๋ก ๋๋๋ค.
- Training: $0.008 / 1K Tokens
- Usage input: $0.012 / 1K Tokens
- Usage output: $0.016 / 1K Tokens
OpenAI์์๋ 100,000๊ฐ์ ํ ํฐ์์ ๋ชจ๋ธ์ 3 epoch ๋์ ํ์ต์ํฌ ๋ ๊ฒจ์ฐ 2.4๐ฒ ๋ฐ์ ๋น์ฉ์ด ๋ฐ์ํ์ง ์๋๋ค๊ณ ๋ณด์ฌ์ฃผ์ง๋ง, ์ ๋ช ํ instruction dataset์ธ Alpaca์ 52K Self-Instruct dataset์ ์ฌ์ฉํ์ฌ fine-tuning์ ์งํํ๋ค๊ณ ํ์ ๋, ํ๋์ instruction์ด ๋๋ต 256๊ฐ ์ ๋์ ํ ํฐ์ ๊ฐ์ง๊ณ ์๋ค๋ฉด, ํ epoch๋ฅผ ํ์ต์ํค๋๋ฐ๋ ๋ฌด๋ ค 104๐ฒ ๋งํผ์ ๋น์ฉ์ด ๋ฐ์ํ๋ ๊ฒ์ด๋ค!! ๐ฑ ๋ฌผ๋ก ์ฌ์ฉํ๋ ๋ฐ์ดํฐ์ ์ ๋ฐ๋ผ ๋น์ฉ์ ์์ดํ๊ฒ ์ง๋ง, ๋๋ฌด ๋ง์ ์์ dataset์ ์ฌ์ฉํ๋ค๋ฉด ๊ทธ ๋น์ฉ๋ ์์ฒญ๋๊ฒ ์ปค์ง ์๋ ์์ ๊ฒ ๊ฐ๋ค..
A new facet of fine-tuning ๐งจ
๊ธฐ์กด์ fine-tuning์ ํตํด ์๋ก์ด ๋ชจ๋ธ์ ๋ง๋ค์ด๋ด๊ธฐ ์ํด์๋ open-source LM์ ํ์ฉํด์ fine-tuning์ ์งํํ์๋ค. ํ์ง๋ง, ์ด open-source LM์๋ ํ๊ณ๋ ์๋๋ฐ, ๊ทธ๊ฒ์ ๋ฐ๋ก proprietary model์ ๋นํด์ open-source model์ ์ฑ๋ฅ์ด ๋ค์ฒ์ง๋ค๋ ๊ฒ์ด๋ค. ์ต๊ทผ์ LLM ์ฐ๊ตฌ๋ค์์ ๋ฐํ๋ธ ๊ฒ์ฒ๋ผ, ๊ฒฐ๊ตญ์ ๊ฐ์ฅ ์ค์ํ pre-trained model์ ๊ธฐ๋ณธ์ ์ธ ์ฑ๋ฅ์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด ์๋ฌด๋ฆฌ ํ๋ คํ fine-tuning์ ๊ฑฐ์น๋ค๊ณ ํด๋ ๋ฒ ์ด์ค๊ฐ ๋๋ pre-trained model์ ์ฑ๋ฅ์ด ๋จ์ด์ง๊ฒ ๋๋ค๋ฉด ๋ณ ์ฑ๋ฅ ํฅ์์ด ์๋ค๊ณ ํ๋ค. ์ด๋ฌํ ์ ์์ ChatGPT์ fine-tuning์ด ๊ฐ๋ฅํด์ง ๊ฒ์ ์์ผ๋ก์ LM ๋ฐ์ ์ ๋ ํ๋์ ํฐ ๋ฐ๋์์ด ๋ ์ ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฒ ํฌ์คํ ์์ ์ดํด๋ณธ ๋ด์ฉ์ ๊ฐ๋ฒผ์ด ๋๋์ gpt-3.5-turbo fine-tuning์ด์๋๋ฐ ๋์ฑ ์์ธํ ๋ด์ฉ์ ์๊ณ ์ถ๋ค๋ฉด ์์ ๋งํ fine-tuning guide๋ฅผ ํ์ธํ ์ ์๊ธธ ๋ฐ๋๋ค.
'Insight ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Noise makes LLM better! - NEFTune ๐ (0) | 2023.10.18 |
---|---|
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 |