210918 Diary GPT
๋๋ ํ๋ถ์์ CS๋ฅผ ์ ๊ณตํ๊ณ , Data Mining ์ฐ๊ตฌ์ค์์ DL-based NLP๋ฅผ ์ฐ๊ตฌํ ์ฃผ์ ์ ์ฝ๋ฉ์ ์ฉ ์ข์ํ๋ ํธ์ด ์๋๋ค. ์ต๊ทผ, OpenAI์์ GPT๋ฅผ GitHub Code๋ค๋ก Fine-Tuning ํ์ฌ, Code๋ฅผ ์๋ ์์ฑํด์ฃผ๋ Copilot์ ๊ณต๊ฐํ์๋ค. Demo ์์์ ๋ณด๋ฉด ๋๋ฆ ๋ณต์กํ Logic์ Code๋ค๋ ๊ณง์ ๊ตฌํํ๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋๋ฐ, ์กฐ๋ง๊ฐ ๋์ Code๋ ๋์ ์์ฑํด์ฃผ๋ ๋ชจ๋ธ์ด ๋์ฌ๊น ์ ๋ง ์กฐ๊ธ ๊ธฐ๋ํ๋ ์ค์ด๋ค.
๋์ ๋น์ทํ ๊ธฐ๋๋ฅผ ํ๋ ์ ์นํ ์น๊ตฌ์ ํจ๊ป Copilot์ ์ฌ์ฉ๋ ๋ชจ๋ธ์ ๊ดํ Paper๋ฅผ ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด์๋ค.
(OpenAI, 2021) Evaluating Large Language Models Trained on Code
๋
ผ๋ฌธ์ Contributions๋ ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ฒ 2๊ฐ์ง๋ก ์ ๋ฆฌํ ์ ์๋ค.
โข
GPT๋ฅผ GitHub Code๋ค๋ก Fine-Tuningํ, Docstring์ผ๋ก๋ถํฐ Python Code๋ฅผ ์๋ ์์ฑํ๋ Codex๋ฅผ ์ ์ํ๊ณ ,
โข
๋ชจ๋ธ์ด ์์ฑํ Code๊ฐ ์ ๋์ํ๋์ง ํ๋จํ๋ Unit Tests(Programming Problem)๋ฅผ ํฌํจํ HumanEval, ์๋ก์ด Evaluation Set์ ๊ณต๊ฐํ๋ค.
HumanEval์์ ๊ธฐ์กด์ GPT์ GPT-J๊ฐ ๊ฐ๊ฐ 0%, 11.4%์ ๋ฌธ์ ๋ค๋ง์ ํด๊ฒฐํ ๋ฐ๋ฉด, Codex-S๋ 37.7%์ ์ ๋ต๋ฅ ์ ๋ณด์ด๊ณ , ๋ฌธ์ ๋ง๋ค 100๊ฐ์ Sample Code๋ฅผ ์์ฑํ๋ฉด 77.5%์ ๋ฌธ์ ๋ค์์ ์ ์ด๋ 1๊ฐ ์ด์์ ์ ๋ต Code๋ฅผ ํฌํจํ๋ค๊ณ ํ๋ค.
Evaluation: Functional Correctness
Docstring์์ Python Code๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ์ผ์ข
์ Translation Task๋ก ์๊ฐํ ์ ์์ง๋ง, BLEU Score๋ฅผ Evaluation Metric์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ์ค์ ์๋์ด ์ค์ํ Code์ ํน์ฑ์ ์ฌ๋ฐ๋ฅธ ์ ๊ทผ๋ฒ์ด ์๋๋ค. ๋ณธ ๋
ผ๋ฌธ์์๋ ์์ฑ๋ Code๊ฐ ๊ธฐ๋ฅ์ ์ผ๋ก ์ ๋์ํ๋์ง ํ๋จํ๋ HumanEval, Hand-Written Evaluation Set๊ณผ pass@k Metric์ ์ ์ํ๋ค. pass@k๋ ํ๋์ ๋ฌธ์ ์ k๊ฐ์ Sample Code๋ฅผ ์์ฑํ๊ณ , ์ด ์ค ํ๋๋ผ๋ ์ ๋ต์ด ์กด์ฌํ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋ ๋ฐฉ์์ด๋ค. ์ด ์์น๊ฐ Unbiased๋ ๊ฐ์ ๊ฐ๋๋ก, ์ ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณ์ฐ ๋ฐฉ์์ ์ ์ํ๋ค.
n์ k๋ณด๋ค ํฐ ์์ด๋ฉฐ, c๋ ์ ๋ต Sample์ ๊ฐ์์ด๋ค. ํด์ํ๋ฉด, k๊ฐ 5์ผ ๋(pass@5), 30๊ฐ(n=30)์ Sample์ ์์ฑํ๊ณ , ์ด๋ค ์ค์ 10๊ฐ(c=10)์ ์ ๋ต์ด ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ์. ์ด ๊ฒฝ์ฐ, 30๊ฐ Sample์์ 5๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ๊ฒฝ์ฐ ์ค ์ ๋ต์ด ์๋ 20๊ฐ์ Sample์์๋ง 5๊ฐ๋ฅผ ๊ณ ๋ฅด๋(์ค๋ต๋ง์ ์ ํํ๋) ํ๋ฅ ์ 1์์ ๋นผ์ค ๊ฐ์ด pass@5๊ฐ ๋๋ ๊ฒ์ด๋ค.
Proposed Model: Codex
๋ชจ๋ธ ์์ฒด์๋ ํน๋ณํ ์ ๋ค์ด ์๋ ๊ฒ ๊ฐ์ง ์๋ค. Pre-Trained GPT๋ก๋ถํฐ Fine-Tuning์ ์ํํ๋ ๊ฒ์ด From Scratch๋ก ์ํํ๋ ๊ฒฝ์ฐ์ ๋นํด ์ฑ๋ฅ์ ์ด์ ์ด ์๋๋ฐ, ์ด๋ Fine-Tuning Dataset์ ํฌ๊ธฐ๊ฐ ๋ฐฉ๋ํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ํ๋ค. ๊ทธ๋ผ์๋ ์ ์์ ๊ฒฝ์ฐ๊ฐ ํ์ต์ ์๋ ด์ด ๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ํด๋น ์ ๊ทผ๋ฒ์ ์ฌ์ฉํ์๊ณ , Code ํน์ฑ์ ์ฆ์ ๊ณต๋ฐฑ์ ์ถํ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ถ๊ฐ Token๋ค์ ํ์ฉํ์์์ ์ ์๋ ์ธ๊ธํ๋ค.
Experiments & Results
์คํ์ Sample Code์ ์(k), Generation์ Sampling Temperature, Model Size ๋ฑ์ ๋ณ๊ฒฝํ๋ฉฐ ์ํ๋๋ค. ๋์ผํ ๋ชจ๋ธ์ ๊ฒฝ์ฐ, ๋ ๋ง์ ์์ Sample Code๋ฅผ ์์ฑํ ์๋ก ์ ๋ต๋ฅ ์ด ๋์์ง๋๋ฐ, k๊ฐ ์ฆ๊ฐํ ์๋ก ์์ฑ๋๋ Sample์ Higher Diversity๋ฅผ ๋ณด์ฅํ ์ ์๋ ํฐ ๊ฐ์ Temperature๋ฅผ ์ค์ ํ๋ ํธ์ด ์ ๋ฆฌํ๋ค(์๋ ํ ์ฐธ์กฐ).
Code ์์ฑ์ ๊ฒฝ์ฐ์๋ Model Size๊ฐ ์ฆ๊ฐํ ์๋ก ๊ทธ ์ฑ๋ฅ์ด ํฅ์๋๋ฉฐ, ์ค์ ์๋น์ค์์์ ๊ฐ์ด ์์ฑ๋ Sample๋ค ์ค Top K๋ฅผ ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ, Mean Token Log Probability๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ข๋ค๊ณ ํ๋ค. ๋ง์ง๋ง์ผ๋ก, ๋ค์ ํ๋ BLEU Score์ ๋ฐ๋ฅธ ์ ๋ต+์ค๋ต Sample์ ํ๋ฅ ๋ฐ๋๋ฅผ ๋ํ๋ด๋๋ฐ, ํน๋ณํ ์๊ด์ฑ์ด ์๋ ๊ฒ์ผ๋ก ๋ฏธ๋ฃจ์ด ๋ณผ ๋, (์์ ์ธ๊ธํ๋ฏ) Code ์์ฑ์ Evaluation Metric์ผ๋ก BLEU Score๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ ํ์ง ์๋ค๊ณ ํ๋จ๋๋ค.