The overview of this paper
๋ ผ๋ฌธ์์๋ ๋ค๋ฅธ ๋ชจ๋ธ๋ณด๋ค ํจ์ฌ ์๊ณ code๋ฅผ ์ํ LLM์ธ phi-1์ ์๊ฐํ์๋ค. phi-1์ 1.3B Transformer model์ด๊ณ , ์น์ผ๋ก๋ถํฐ textbook ํ๋ฆฌํฐ ๋ฐ์ดํฐ์ ์ ํ์ ๋ชจ์๊ณผ ์ข ํฉ์ ์ผ๋ก ์์ฑ๋ textbook์ ์ฌ์ฉํ๊ณ , GPT-3.5๋ก ํ๋ จ๋์๋ค. phi-1์ ์์ ๊ท๋ชจ์๋ ๋ถ๊ตฌํ๊ณ ๋์ pass@1 accuracy๋ฅผ ๋ฌ์ฑํ์๋ค.
Table of Contents
1. Introduction
2. Training details and the importance of high-quality data
3. Spikes of model capability after finetuning on CodeExercises
4. Evaluation on unconventional problems with LLM grading
5. Data pruning for unbiased performance evaluation
1. Introduction
์ด ๋ ผ๋ฌธ์์๋ ์ด์ ์ ์ฐ๊ตฌ๋ฅผ ๋ฐ๋ผ์ ๋ค๋ฅธ ์ถ(๋ฐ์ดํฐ ํ๋ฆฌํฐ)๊ณผ ํจ๊ป ์ฑ๋ฅ ๊ฐ์ ์ด ์ป์ด์ง ์ ์๋ค๋ ๊ฒ์ ํ๊ตฌํ์๋ค. ๋์ ํ๋ฆฌํฐ์ ๋ฐ์ดํฐ๋ ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋๋ค๋ ๊ฒ์ ์ค๋ซ๋์ ์ ์๋ ค์ง ์ฌ์ค์ด๊ณ , ์ด๋ ์ด๋ ์ ๋ ์์ ๋ฐ์ดํฐ์ ์ผ๋ก ์ด์ ์ ์ป๊ฑฐ๋ ๋ฐ์ดํฐ์์ ๋ ๋ง์ ํจ์ค๋ฅผ ํ๋ฝํด์ค๋ค. ์ต๊ทผ์ ์ฐ๊ตฌ์ ๋ฐ๋ฅด๋ฉด ๋ฐ์ดํฐ์ ํ์ง์ ๊ฐ์ ํ๋ ๊ฒ์ scaling law์ ํํ๋ ๋ฐ๊ฟ ๋ฟ๋ง ์๋๋ผ ์ ์ฌ์ ์ผ๋ก ๋๊ท๋ชจ ๋ชจ๋ธ์ ์ฑ๋ฅ๊ณผ ๋ง๋จน๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ค ์ ์๋ค๊ณ ๋ฐํ๋ค.
์ด ๋ ผ๋ฌธ์ high-quality ๋ฐ์ดํฐ๊ฐ LLM์ SoTA๋ฅผ ๊ฐ์ ์ํฌ ๋ฟ๋ง ์๋๋ผ ๋ฐ์ดํฐ์ ์ฌ์ด์ฆ์ ํ์ต ๋น์ฉ์ ์๋นํ ์ค์ผ ์ ์๋ค๋ ์ฃผ์ฅ๊ณผ ํจ๊ผ ์งํ๋๋ค. ์ค์ํ ์ ์ smaller model์ ์ ์ ํ์ต์ ํ์๋ก ํด์ LLM์ ํ๊ฒฝ์ ๋น์ฉ์ ์๋นํ ์ค์ผ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๋ ผ๋ฌธ์์๋ LLM์ด code์ ๋ํด ํ์ตํ๋ ๊ฒ์ ์ด์ ์ ๋์๊ณ , ํ๊ฐ ๋ฒค์น๋งํฌ๋ก๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ HumanEval์ ์ฌ์ฉํ์๋ค.
๋ ผ๋ฌธ์์๋ high-quality ๋ฐ์ดํฐ์ ํจ๊ณผ๋ฅผ phi-1์ด๋ผ ๋ถ๋ฅด๋ 1.3B ๋ชจ๋ธ์ ํ์ต์ํด์ผ๋ก์จ ์ค๋ช ํ์๋ค. phi-1์ ์น ์์ค๋ก๋ถํฐ ์์ง๋๊ณ ํํฐ๋ง๋ 'textbook quality' ๋ฐ์ดํฐ์์ pre-train ์ํค๊ณ , 'textbook-exercise-like' ๋ฐ์ดํฐ์์ ํ์ต์์ผฐ๋ค. phi-1์ ๋ค๋ฅธ ๋ชจ๋ธ์ ๋นํด ์๋นํ ์์ ์ฌ์ด์ฆ์์๋ ๋ถ๊ตฌํ๊ณ , HumanEval, MBAPP์์ ์ต๊ณ ์ pass@1 accuracy๋ฅผ ๋ฌ์ฑํ์๋ค. ๋ํ ๋ค๋ฅธ ๋ชจ๋ธ์ ๋นํด ๋์ฑ ์ ์ ํ ํฐ์์ ํ์ต๋์์์๋ ๋ถ๊ตฌํ๊ณ , phi-1์ ์ข์ ์ฑ๋ฅ์ ๋ณด์ฌ์คฌ๋ค. ๊ทธ๋ฆฌ๊ณ phi-1์ phi-1-small์ ๋น๊ตํจ์ผ๋ก์จ ํ๋ผ๋ฏธํฐ์ ์๊ฐ ์ค์ํ ์ญํ ์ ํ๋ค๋ ๊ฐ์ค์ ์ ์ฆํ์๋ค.
2. Training details and the importance of high-quality data
๋ ผ๋ฌธ์ ์ ๋ชฉ์์ ์ธ๊ธ๋์ด ์๋ ๊ฒ์ฒ๋ผ, phi-1์ ์ฃผ์ฑ๋ถ์ textbook quality์ training data์ ์์กดํ๋ค. ์ด์ ์๋ TheStack ๊ฐ์ text data๋ฅผ ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ์น ์๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์์ง๋ง, ์ด๋ฌํ ์์ค๋ ๋ชจ๋ธ์๊ฒ ์ด๋ป๊ฒ ๊ณํ์ ์ธ์ฐ๊ณ ์ถ๋ก ์ ํ๊ฒ ํ ์ง๋ฅผ ๊ฐ๋ฅด์น๋ ๋ฐ ์ต์ ์ด ์๋๋ค. phi-1์ ๋ชจ๋ธ ์ํคํ ์ฒ์ training method๋ ๋๊ฐ์ผ๋, ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ curateํ๋์ง๋ง ๋ค๋ฅด๋ค.
๊ธฐ์กด์ code dataset์ ๊ด๋ฒ์ํ ํ ํฝ๊ณผ ์ฌ์ฉ ์ผ์ด์ค๋ฅผ ์ปค๋ฒํ๋ ํฌ๊ณ ๋ค์ํ corpus๋ฅผ ํ์ฑํ๋ค. ํ์ง๋ง, ์ด ๋ฐ์ดํฐ๋ค์ ์ฝ๋ฉ์ ๊ธฐ๋ณธ์ ํ์ต์ํค๋๋ฐ not instructive ํ๊ณ , ๋ค์์ ์ฌ๋ฌ ๊ฒฐ์ ์ ๊ฒช๋๋ค:
- ๋ง์ ์ํ๋ค์ด ๋ ๋ฆฝ์ ์ด์ง ์์ → ๋ฐ์ดํฐ์ ์ธ๋ถ์ ์๋ ๋ค๋ฅธ ๋ชจ๋ ๋๋ ํ์ผ์ ์์กดํจ
- ์ ํ์ ์ธ example์ ์๋ฏธ์๋ computation์ ํฌํจํ์ง ์๊ณ ์ฌ์ํ code๋ก ๊ตฌ์ฑ๋์ด ์์
- ์๊ณ ๋ฆฌ์ฆ ๋ ผ๋ฆฌ๋ฅผ ํฌํจํ๋ ์ํ์ ๋ณต์กํ๊ฑฐ๋ ์ข์ง ์๋ ๋ฌธ์ํ๋ํจ์ ์์ ์จ๊ฒจ์ ธ ์์ → ์ด๊ฒ์ผ๋ก๋ถํฐ์ ํ์ต์ ์ด๋ ต๊ฒ ํจ
- example ํน์ ํ ํฝ ๋๋ ์ฌ์ฉ ์ผ์ด์ค์ ํธํฅ๋ผ์ ์ฝ๋ฉ ๊ฐ๋ ๊ณผ ์คํฌ์ unbalanceํ ๋ถํฌ๋ฅผ ๋ด๋๊ฒ ๋
๋ ผ๋ฌธ์์๋ LM๋ ์ฌ๋์ด ์ข์ textbook์ด๋ผ ์ฌ๊ธธ ์ ๋์ ํ๋ฆฌํฐ๋ฅผ ๊ฐ์ง๋ training set๋ก๋ถํฐ ์ด์ ์ ์ป์ด์ผ ํ๋ค๊ณ ์ถ์ธกํ์๋ค: ํฌ๋ช ํ๊ณ , ๋ ๋ฆฝ์ ์ด๊ณ , instructiveํ๊ณ ๋ฐธ๋ฐ์ค ์กํ ๋ฐ์ดํฐ. ๋ ผ๋ฌธ์์๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ์๋์ ์ผ๋ก high-quality ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์์ฑํ์๋ค. ์ด๋ ๊ฒ ํด์ ๋์ฑ ์์ ๋ชจ๋ธ๊ณผ ์ ์ compute๋ก๋ code-generation task์์ SoTA๋ฅผ ๋ฌ์ฑํ ์ ์์๋ค. phi-1์ training์ ๋ค์์ 3๊ฐ์ ์ฃผ๋ ๋ฐ์ดํฐ์ ์ ์์กดํ๋ค:
- LM ๊ธฐ๋ฐ ๋ถ๋ฅ๊ธฐ๋ฅผ ์ฌ์ฉํด์ ์ป์ด์ง filtered code-language dataset(TheStack & StackOverflow) - 6B tokens
- GPT-3.5๊ฐ ์์ฑํ Python ๊ต๊ณผ์์ <1B token์ผ๋ก ๊ตฌ์ฑ๋ synthetic textbook dataset
- Python exercise์ ์๋ฃจ์ ์ ~180M token์ผ๋ก ๊ตฌ์ฑ๋ ์ ์ synthetic exercise dataset
์์ ๋ฐ์ดํฐ์ ์ 7B๋ณด๋ค ์ ์ ํ ํฐ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๋ ผ๋ฌธ์์๋ filtered code-language & synthetic textbook dataset์ ์กฐํฉ์ 'CodeTextbook'์ผ๋ก ๋ถ๋ฅด๊ณ , ์ด๊ฒ์ pre-training ํ์ด์ฆ์ ์ฌ์ฉํด์ base model phi-1-base์ ์ป์๋ค. ๊ทธ ๋ค์์ 'CodeExercise' ๋ผ๊ณ ๋ถ๋ฆฌ๋ 180M token์ ํฌํจํ๊ณ ์๋ synthetic exercise ๋ฐ์ดํฐ์ ์ ์ฌ์ฉํด์ phi-1-base๋ฅผ fine-tune ํด์ phi-1์ ์ป์ ์ ์์๋ค. 'CodeExercise'์ ์์ ์ฌ์ด์ฆ์๋ ๋ถ๊ตฌํ๊ณ ์ด ๋ฐ์ดํฐ์ ์์์ fine-tuning์ ์๋นํ ๊ฐ์ ์ ๋ณด์ฌ์ค ๋ฟ๋ง ์๋๋ผ ๋ง์ ํฅ๋ฏธ๋ก์ด ๋ฅ๋ ฅ์ unlock ํ์๋ค.
2-1. FIltering of existing code datasets using a transformer-based clssifier
๋ ผ๋ฌธ์์๋ publicly availableํ TheStack๊ณผ StackOverflow์ ์๋ธ์ ์ธ Python code dataset์ ์ฌ์ฉํด์ ์คํ์ ์์ํ์๋ค. TheStack๊ณผ StackOverflow์ ํ๋ฆฌํฐ๋ GPT-4๋ฅผ ์ฌ์ฉํด์ annotate ํ์๋ค.
๋ ผ๋ฌธ์์๋ output embedding์ ์ฌ์ฉํด์ file/sample์ ํ๋ฆฌํฐ๋ฅผ ์์ธกํ๋ Random Forest Classifier๋ฅผ ํ์ต์ํค๊ธฐ ์ํด annotated dataset๋ฅผ ์ฌ์ฉํ์๋ค. ๊ทธ๋ฆฌ๊ณ GPT-4๋ฅผ TheStack & StackOverflow์ ์์ ์๋ธ์ ์ ํ๋ฆฌํฐ์์ annotation์ ํ๊ธฐ ์ํด ์ต์ํ์ผ๋ก ์ฌ์ฉํ์๋ค. ์ด๋ human effort๋ฅผ ํผํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก๋ง ์ฌ์ฉ๋์๋ค.
2-2. Creation of synthetic textbook-quality datasets
code generation์ ์ํ high-quality ๋ฐ์ดํฐ์ ์ ์์ฑํ๋๋ฐ ์ฃผ๋ ์ด๋ ค์ด ์ ์ example์ด ๋ค์ํ๊ณ ๋น๋ฐ๋ณต์ ์ด๋ผ๋ ๊ฒ์ ๋ณด์ฅํ๋ ๊ฒ์ด๋ค. ๋ค์์ฑ์ ๋ค์ผ๋ฏ์ด ๋ช ๊ฐ์ง ์ด์ ๋ก ์ธํด์ ์ค์ํ๋ค: LM์ด ๋ฌธ์ ํด๊ฒฐ์ ์ํ ์๋ก ๋ค๋ฅธ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ ธ์ถ๋๊ฒ ํด์ฃผ๊ณ overfitting์ ์ํ๊ณผ ํน์ ํจํด ๋๋ ์๋ฃจ์ ์ ๊ธฐ์ตํ๋ ๊ฒ์ ์ค์ฌ์ฃผ๊ณ , ๋ชจ๋ธ์ ์ผ๋ฐํ์ robustness๋ฅผ ์ฆ๊ฐ์์ผ์ค๋ค. ๊ทธ๋์ LM์ด ๋์ฑ ์ฐฝ์์ ์ด๊ณ ๋ค์ํด์ง๋๋ก ์ ๋ํ๊ณ , example์ ํ๋ฆฌํฐ์ ์ผ๊ด์ฑ์ ์ ์งํ๋ ์ฌ๋ฐ๋ฅธ ํธ๋ฆญ์ ์ฐพ์ ํ์๊ฐ ์์ด์ก๋ค. ์ด์ ์ฐ๊ตฌ์ ์๊ฐ์ ๋ฐ์์ ๋ค์ํ ๋ฐ์ดํฐ์ ์์ฑ์ ์ผ์ผํค๋ prompt์ ๋ฌด์์์ฑ์ ์ฃผ์ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์ ํ์๋ค.
The synthetic textbook dataset. ์ด ๋ฐ์ดํฐ์ ์ ๊ด๋ จ ์ฝ๋ snippet์ด ์ฝ์ ๋ high-quality์ ์์ฐ์ด ํ ์คํธ ์์ค๋ฅผ ์ ๊ณตํด์ค๋ค. ๋ ผ๋ฌธ์์๋ ์ถ๊ฐ์ ์ผ๋ก ์ด๋ฌํ textbook์ ์ปจํ ์ธ ๋ฅผ ์ถ๋ก ๊ณผ ๊ธฐ๋ณธ์ ์ธ ์๊ณ ๋ฆฌ์ฆ ์คํฌ์ ์ด์งํ๋ ํ ํฝ์ ์ปค๋ฒํ๋ ๊ฒ์ผ๋ก ๋ชฉํ๋ฅผ ๋์๋ค. ์ฌ๊ธฐ์๋ ํ ํฝ๊ณผ ์๊ณ ๋ฆฌ์ฆ ์คํฌ์ ํ๊น ์ฒญ์ค์๊ฒ ์ ์ฝ์ ์ ๊ณตํจ์ผ๋ก์จ ๋ค์์ฑ์ ์ ๊ณตํด์ค๋ค. ๋ค์์ ์์๋ ์ข ํฉ์ ์ผ๋ก ์์ฑ๋ textbook text๋ฅผ ์ค๋ช ํ๋ค:
The CodeExercise dataset. ๊ฐ Exercise๋ ์์ฑ๋์ด์ผ ํ๋ ํจ์์ docstring์ด๋ค. ์ด ๋ฐ์ดํฐ์ ์ ๋ชฉํ๋ ์์ฐ์ด instruction์ ๊ธฐ๋ฐํด์ ํจ์์ค๋์ฑ task๋ฅผ ์ํํ๊ธฐ ์ํด ๋ชจ๋ธ์ alignํ๊ณ ์ ํ๋ ๊ฒ์ด๋ค. ์ด ๋ฐ์ดํฐ์ ์ GPT-3.5์ ์ํด ์์ฑ๋์๊ณ , ๋ค์์ฑ์ ๋์ด๋ด๊ธฐ ์ํด ํจ์ ์ด๋ฆ์ ์ ์ฝ์ ๊ฑธ์๋ค. ์ด ๋ฐ์ดํฐ์ ์ ๋ํด์๋ ํน๋ณํ๊ฒ decontamination๊ณผ alternative ๋ฒค์น๋งํฌ๋ ์ํํ์๋ค. ๋ค์์ snippet์ ์ข ํฉ์ ์ผ๋ก ์์ฑ๋ exercise๋ฅผ ๋ฌ์ฌํ๋ค.
2-3. Model architecture & training
๋ ผ๋ฌธ์์๋ MHA์ FlashAttention์ ์ฌ์ฉํ decoder-only Transformer๋ฅผ ์ฌ์ฉํ์๋ค. ๋ํ ๋ค๋ฅธ CodeGen ๋ชจ๋ธ๊ณผ ๊ฐ์ด MHA & MLP์ ๋ณ๋ ฌ์ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ์๋ค. ๋ํ rotary position embedding(RoPE)๋ฅผ ์ฌ์ฉํ์๋ค. tokenizer๋ codegen-350M-mono์ ๋๊ฐ์ tokenizer๋ฅผ ์ฌ์ฉํ์๋ค.
pre-training๊ณผ fine-tuning์ ๋ํด ๊ฐ๊ฐ์ ๋ฐ์ดํฐ์ ์ <|endofext|>๋ฅผ ์ฌ์ฉํด์ ์ฐ๊ฒฐํ์๋ค. ๊ทธ๋ฆฌ๊ณ 2,048์ sequence length์์ next-token prediction loss๋ฅผ ์ฌ์ฉํด์ ํ์ตํ์๋ค. phi-1-base๋ 8๊ฐ์ A100 GPU์์ 4์ผ ๋์ ํ์ต๋์๊ณ , phi-1์ ๋๊ฐ์ ์ธํ ์์ 7์๊ฐ ๋์ fine-tuning ๋์๋ค.
Pretraining. phi-1-base๋ CodeTextbook ๋ฐ์ดํฐ์ ์์ ํ์ต๋์๋ค. ์์ ์ฌ์ด์ฆ์ computation์๋ ๋ถ๊ตฌํ๊ณ HumanEval์์ 29%์ ์ ํ๋๋ฅผ ๋ฌ์ฑํ์๋ค.
Finetuning. phi-1์ phi-1-base๋ฅผ CodeExercise dataset์ fine-tune ํจ์ผ๋ก์จ ์ป์ด์ก๋ค. fine-tuning๊ณผ pre-training์ ๋๊ฐ์ ์ ์ ์์ ์งํ๋์๋ค.
3. Spikes of model capability after finetuning on CodeExercises
์์ CodeExercise ๋ฐ์ดํฐ์ ์์์ fine-tuning์ผ๋ก๋ถํฐ HumanEval์์ ํฐ ์ฑ๋ฅ ๊ฐ์ ์ ๋ด๋์๋ค. ์ด ์น์ ์์๋ fine-tuning์ ๊ฑฐ์น ๋ชจ๋ธ์ fine-tuning ๋ฐ์ดํฐ์ ์์ feature ๋์ง ์์ task๋ฅผ ์ํํ๋๋ฐ ์๋นํ ์ฑ๋ฅ ๊ฐ์ ์ ๋ณด์ฌ์ค๋ค๋ ๊ฒ์ ์ค๋ช ํ๋ค. ์ด๊ฒ์ phi-1์ fine-tuning ํ๋ก์ธ์ค๊ฐ ๋ชจ๋ธ์ด pre-training ์ค์ ์ป์ ์ง์์ ์ฌ์กฐ์งํ๊ณ ๊ฐํํ๋๋ฐ ๋์์ ์ค๋ค๋ ๊ฒ์ ์ ์ํ๋ค.
3-1. Fine-tuning improves the model's understanding
๋ ผ๋ฌธ์์ ๋ง๋ค์ด๋ธ ๊ฐ๋จํ Python ํจ์๋ฅผ ์ฌ์ฉํด์ ๋ชจ๋ธ์ด fine-tuning์ ๊ฑฐ์น instruction๊ณผ ํจ๊ป ๋ ๋์ ๋ ๋ฒจ์ ์ดํด์ ์ค์๋ฅผ ๋ณด์ฌ์ค๋ค๋ ๊ฒ์ ๊ด์ฐฐํ์๋ค. phi-1-base๋ prompt์์ ๋ ผ๋ฆฌ์ ๊ด๊ณ์ ๋ํด ์ด๋ ค์์ ๊ฒช์๋๋ฐ, phi-1์ question์ ํด์ํ๊ณ , answer๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์์ฑํ์๋ค. ์๋์ ์์์์ 350M phi-1-small๋ ์๋ฃจ์ ์ด ํ๋ฆฌ๊ธด ํ์ง๋ง, ์ด๋ ์ ๋์ ๋ฌธ์ ์ดํด๋ฅผ ๋ณด์ฌ์คฌ๋ค.
3-2. Finetuning improves the model's ability to use external libraries
๋ ผ๋ฌธ์์๋ CodeExercise์์์ fine-tuning์ ์์ธก์น ๋ชปํ๊ฒ ๋ชจ๋ธ์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ๋ฅ๋ ฅ์ ๊ฐ์ ์์ผฐ๋ค. exercise์ ์ด ๋ฐ์ดํฐ๋ฅผ ํฌํจ์ํค์ง ์์์์๋ ๋ง์ด๋ค! ์ด๊ฒ์ phi-1์ fine-tuning์ด ํ๊น์ผ๋ก ์ผ๋ task๋ฅผ ๊ฐ์ ์ํฌ ๋ฟ๋ง ์๋๋ผ pre-training์ผ๋ก๋ถํฐ distillํ๊ธฐ ์ํ ๋น๊ด๋ จ task๋ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์๋ค.
PyGame Examples. ๋ ผ๋ฌธ์์๋ PyGame์ผ๋ก ๊ณต์ ์์ง์ด๋ ์ฝ๋๋ฅผ ์์ฑํ๋๋ก ๋ชจ๋ธ์๊ฒ ๋ฌผ์ด๋ดค๋ค. ์๋์ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด phi-1์ PyGame ํจ์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฉํ์๋ค. phi-1-base & phi-1-small์ ๊ตฌ๋ฌธ์ ์ผ๋ก๋ ๋ง์ผ๋, ์๋ฏธ์์ผ๋ก๋ ๊ด๋ จ์ด ์์๋ค.
TKinter Example. ๋ ๋ฒ์งธ ์์๋ก๋ TKinter์ด๋ค. ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ํด๋ฆญํจ์ ๋ฐ๋ผ textfield๋ฅผ ์ ๋ฐ์ดํธํ๋๋ก ๋ฌผ์ด๋ดค๋ค. ๊ฒฐ๊ณผ๋ฅผ ์ดํด๋ณด๋ฉด 3๊ฐ์ ๋ชจ๋ธ์ ์ฝ๋๋ prompt ์ดํด์ ํฐ ๊ฐญ์ ๋ณด์ฌ์ค๋ค. phi-1-base์ phi-1-small์ ์๋ง์ TKinter API๋ฅผ ์ฌ์ฉํ๋๋ฐ ์คํจํ๊ณ , ์๋ฏธ์์ ํจ์ ํธ์ถ์ ๋ง๋ค์ด๋๋ค. ๋ฐ๋๋ก phi-1์ GUI์ ๋ชจ๋ ํจ์๋ฅผ ์๋ง๊ฒ ๊ตฌํํ์๋ค.
Chat model Example. phi-1์ phi-1-base๋ณด๋ค ๋ ๋์ chat ๋ฅ๋ ฅ์ ๋ณด์ฌ์คฌ๋ค. chat data๋ ์ ์ ์ผ๋ก pre-training์ ์๊ณ , fine-tuning์๋ ์์์์๋ ๋ถ๊ตฌํ๊ณ ๋ง์ด๋ค.
4. Evaluation on unconventional problems with LLM grading
HumanEval์์ phi-1์ ๋๋ผ์ธ ์ ๋๋ก ์ข์ ์ฑ๋ฅ์ ๋ํ ์ ์ฌ์ ์ธ ๊ฑฑ์ ์ CodeExercise dataset์ contamination์ ๊ธฐ์ธํ๋ memorization์ด ์์ ์๋ ์๋ค. ๋ ผ๋ฌธ์์๋ ์ ํต์ ์ด์ง ์์ ๋ฐฉ์์ผ๋ก ๊ณ ์๋ ์๋ก์ด ํ๊ฐ์ ํจ๊ป ์ด๋ฌํ ๊ฑฑ์ ์ ํด๊ฒฐํ์๋ค.
real-world code base ๋๋ coding exercise์ ์ ๋ํ๋์ง ์๋ ๋ฌธ์ ๋ฅผ ๋์์ธํ๊ธฐ ์ํ instruction๊ณผ ํจ๊ป HumanEval๊ณผ ๋๊ฐ์ ํฌ๋งท์ 50๊ฐ์ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์์ฑํ์๋ค.
LM์ coding task์์ ํ๊ฐํ๋๋ฐ ํ ๊ฐ์ง ์ด๋ ค์ด ์ ์ ๋ชจ๋ธ์ output์ด ์ข ์ข binary ํ๋ค๋ ๊ฒ์ด๋ค. ํ์ง๋ง ์ฝ๋๊ฐ test๋ฅผ ํต๊ณผํ๋์ง ๊ทธ๋ ์ง ์์์ง๋ ๋ชจ๋ธ ์ฑ๋ฅ์ ๋์์ค๋ฅผ ์บก์ฒํ์ง ๋ชปํ๋ค. ๊ฑฐ์ ์๋ง์ ์ฝ๋์ด์ง๋ง, ์ฌ์ํ ์๋ฌ๋ฅผ ๊ฐ์ง๋ ์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ๋, ์ฝ๋๋ ์์ ํ ํ๋ ธ์ง๋ง, ์ฐ์ฐํ๋ ๋ช ๊ฐ์ ํ ์คํธ๋ฅผ ํต๊ณผํ๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ๋ชจ๋ธ์ ์ฝ๋ฉ ์คํฌ์ ๋์ฑ ์ ๋ณด์ ๋ฐฉ์์ผ๋ก ํ๊ฐํ๋ ๊ฒ์ coding ์ธํฐ๋ทฐ์์ output๊ณผ ์๋ง์ ์๋ฃจ์ ์ ๋น๊ตํ๊ณ ์์ธก ๋ ผ๋ฆฌ์ ์ผ๋ง๋ ์ ๋งค์นํ๋์ง์ ๊ธฐ๋ฐํด์ ํ๊ฐํ๋ ๊ฒ์ด๋ค.
๋ ผ๋ฌธ์์๋ ํ๋ณด ์๋ฃจ์ ์ ํ๊ฐ๋ฅผ ์ํด GPT-4๋ฅผ ์ฌ์ฉํด์ ์๋ฃจ์ ์ ๋ฑ๊ธ์ ๋งค๊ธฐ๋ ๋ฐฉ์์ ์ฑํํ์๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ 2๊ฐ์ง ์ฅ์ ์ด ์๋ค.
- GPT-4๋ฅผ grader๋ก ์ฌ์ฉํด์ student model์ ์ฝ๋ฉ ๋ฅ๋ ฅ์ ๋์ฑ fine-grained & meaningul signal์ ์ป์ ์ ์์์
- test์ ๋ํ ํ์๋ฅผ ์ ๊ฑฐ
prompt๋ LLM์ด student์ ์๋ฃจ์ ์ short verbal evaluation์์ ํ๊ฐํ๋๋ก instruct ํ์๋ค.
ํ 2๋ phi-1๊ณผ ๋ค๋ฅธ ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค. ๋ ผ๋ฌธ์ ์๋ก์ด grading method๋ HumanEval๊ณผ ๋๊ฐ์ ๋ญํน์ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ์ ์ ์๋ค(ํ 1 ์ฐธ๊ณ ). ์ด๋ฌํ ๊ฒฐ๊ณผ๋ phi-1 ์ฑ๋ฅ์ ์ ํจ์ฑ์ ์ ๋ขฐ๋ฅผ ํฌ๊ฒ ์ฆ๊ฐ์ํจ๋ค.
5. Data pruning for unbiased performance evaluation
CodeExercise์์์ ํ์ต์ HumanEval ๋ฒค์น๋งํฌ์์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์๋นํ ํฅ์์ ์ด๋๋ค. ์ด๋ฌํ ์ฑ๋ฅ ํฅ์์ ์กฐ์ฌํ๊ธฐ ์ํด HumanEval์ ํ์ผ๊ณผ ์ ์ฌํ ํ์ผ์ ์ ๊ฑฐํจ์ผ๋ก์จ CodeExercise๋ฅผ pruneํ๋ ๊ฒ์ ์ ์ํ์๋ค. ๊ทธ ๋ค์์ pruned data์์ ๋ชจ๋ธ์ ์ฌํ์ต์์ผฐ์์๋ HumanEval์์ ๊ฐ๋ ฅํ ์ฑ๋ฅ์ ๋ณด์ฌ์คฌ๋ค.
๋ ผ๋ฌธ์์๋ ์ด๋ฌํ data pruning ์คํ์ ์ฑ๋ฅ์ ํ๊ฐํ๊ธฐ ์ํ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ๋ฏฟ๋๋ค. ๋ํ ๊ธฐ์กด contamination ์คํ์ ํตํด CodeExercise๊ฐ HumanEval์ ์ํด contaminate๋์ง ์๋๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
5-1. N-gram overlap
N-gram์ ๊ณต์ ๋ n-word sequence์ ๊ธฐ๋ฐํด์ text segment์ ์ ์ฌ๋๋ฅผ ์ธก์ ํ๋ค. ๋ ผ๋ฌธ์์๋ ๊ฐ humaneval question๊ณผ ๊ฐ exercise์ docstring ๊ฐ์ n-gram overlap์ ๊ณ์ฐํ์๋ค. ๊ทธ ๊ฒฐ๊ณผ ์ต์ ํ๋์ ๋ฐ์ดํฐ์ entry์์ 4๊ฐ์ humaneval question์์ 13-gram overlap์ ๋ฐ๊ฒฌํ์๋ค. ๋ ผ๋ฌธ์ n-gram ovelap ๋ถ์์ phi-1 ๋ฐ์ดํฐ์ ์ด HumanEval๊ณผ ์ต์ํ์ letter-by-letter overlap์ ๊ฐ์ง๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
5-2. Embedding and syntax-based similarity analysis
์์ ๋ดค๋ ๊ฒ์ฒ๋ผ n-gram ๋ถ์์ HumanEval๊ณผ CodeExercise ๊ฐ์ ์ ์ฌ code snipper์ ์ฐพ๋๋ฐ ์ถฉ๋ถํ ๊ฐ์ ๋์ง ์์๋ค. ๊ทธ๋์ ๊ทธ ๋์ ์ ์๋ฒ ๋ฉ๊ณผ syntax-based distance์ ์กฐํฉ์ ์ฌ์ฉํ์๋ค. embedding distance ๊ณ์ฐ์ ์ํด ๋ ผ๋ฌธ์์๋ code snippet ๊ฐ์ L2 distance๋ฅผ ๊ณ์ฐํ์๋ค. embedding distance๋ code ์์ ๊ฐญ์ฒํ๋๋ฐ ์ฑ๊ณต์ ์ด์๋ค. syntac-based distance๋ฅผ ์ํด์ ๋ ผ๋ฌธ์์๋ ์ฃผ์ด์ง ๋ code snippet์ Abstract syntax trees(AST) ๊ฐ์ edit distance๋ฅผ ๊ณ์ฐํ์๋ค. AST distance๋ ์ฝ๋ ์ ๊ฐ์ ์ค๋ฒ๋ฉ์ ์ฑ๊ณต์ ์ผ๋ก ํ๋ณํด๋๋ค. CodeExercise์ pruning์ ์ํด embedding distance๋ฅผ ์ํ ๊ธฐ์ค์ ์ ๊ณ ์ ํ๊ณ , AST distance์ ๋ํด ์ฌ๋ฌ match rate๋ฅผ ํ ์คํธ ํ์๋ค.
ํ 3์ pruned dataset์์ ์ฌํ์ต๋ phi-1์ ์ฑ๋ฅ๊ณผ full CodeExercise์์ ํ์ต๋ ๊ธฐ์กด์ phi-1, StarCoder-prompted๋ฅผ ๋น๊ตํด์ ์์ฝํ์๋ค. ๋ ผ๋ฌธ์์๋ HumanEval problem์ ๊ธฐ์กด CodeExercise ๋ฐ์ดํฐ์ ๋ด๋ถ์ ์ต์ ํ๋์ close match๋ฅผ ๊ฐ์ง๋์ง ๊ทธ๋ ์ง ์์์ง์ ๊ธฐ๋ฐํด์ 2๊ฐ์ ์๋ธ์ (similar & non-similar)์ผ๋ก ๋๋ด๋ค. ๊ทธ ๋ค์์ HumanEval์ ๊ฐ ์๋ธ์ ์์ ๋ชจ๋ธ์ ์ ํ๋๋ฅผ ๊ธฐ๋กํ์๋ค. ๋ฐ์ดํฐ์ ์ ํฌ๊ฒ prune ํ ํ์๋, phi-1์ ์์ง StarCoder-Prompted๋ฅผ ํฐ ๋ง์ง์ผ๋ก ๋ฅ๊ฐํ์๋ค. ์ด๊ฒ์ phi-1์ ์ฑ๋ฅ ํฅ์์ด data contamination ๋๋ฌธ์ด ์๋๋ผ๋ ๊ฒ์ ์ ์ฆํ๋ค.
์ถ์ฒ
https://arxiv.org/abs/2306.11644