π° Dongyoung:
gpt νμ΅μ μμ΄ pre-train, fine-tuning, in-context learning μ μ€λͺ ν΄μ€π¦ ChatGPT:
GPT (Generative Pre-trained Transformer)λ λνμ μΈ μΈμ΄ λͺ¨λΈ μ€ νλλ‘, μ 체μ μΈ λ¬Έλ§₯κ³Ό μΈμ΄ ν¨ν΄μ νμ΅νμ¬ ν μ€νΈ μμ±, λ²μ, μμ½, μ§μμλ΅ λ±μ λ€μν μμ°μ΄ μ²λ¦¬ νμ€ν¬μμ λ°μ΄λ μ±λ₯μ 보μ λλ€.GPTμ νμ΅μλ ν¬κ² pre-training, fine-tuning, in-context learning μΈ κ°μ§κ° μμ΅λλ€.
- Pre-training:
GPTμ pre-trainingμ λκ·λͺ¨ ν μ€νΈ λ°μ΄ν°μ μμ λ¨Όμ μνλ©λλ€. μ΄λ GPTλ λ¨μ΄μ μμΉ μ 보λ₯Ό κ³ λ €ν transformer λͺ¨λΈμ μ¬μ©νμ¬ λ¬Έλ§₯ μ 보λ₯Ό νμ νλ©°, λ€μν μΈμ΄ μ²λ¦¬ νμ€ν¬μμ μ’μ μ±λ₯μ λ°νν μ μλλ‘ νμ΅ν©λλ€. pre-trainingλ GPT λͺ¨λΈμ μΌλ°μ μΈ μμ°μ΄ μ²λ¦¬ νμ€ν¬μμ μ’μ μ±λ₯μ 보μ λλ€.- Fine-tuning:
Fine-tuningμ pre-trainedλ GPT λͺ¨λΈμ νΉμ νμ€ν¬μ λ§κ² fine-tuningνλ κ³Όμ μ λλ€. μλ₯Ό λ€μ΄, μ§μμλ΅(Question-Answering) νμ€ν¬λ₯Ό μνν λλ, pre-trained GPT λͺ¨λΈμ μ§λ¬Έκ³Ό λ΅λ³ λ°μ΄ν°μ μ fine-tuningνμ¬ ν΄λΉ νμ€ν¬μ μ΅μ νλ λͺ¨λΈμ μ»μ μ μμ΅λλ€. Fine-tuningμ ν΅ν΄ GPTλ νΉμ νμ€ν¬μμ λ λμ μ±λ₯μ λ°νν μ μμ΅λλ€.- In-context learning:
In-context learningμ GPT λͺ¨λΈμ λ ν¨κ³Όμ μΌλ‘ μ¬μ©νκΈ° μν κΈ°μ μ€ νλμ λλ€. μλ₯Ό λ€μ΄, λ¬Έμ₯μμ μΌλΆ λ¨μ΄κ° λ§μ€νΉ λμμ λ, GPT λͺ¨λΈμ΄ μ΄λ₯Ό μμΈ‘νλλ‘ νμ΅νλ κ²μ λλ€. μ΄λ₯Ό ν΅ν΄ GPT λͺ¨λΈμ λ¬Έλ§₯ μ 보λ₯Ό λ μ νμ νκ³ , μμ°μ€λ¬μ΄ λ¬Έμ₯ μμ±μ λ μ ν©ν λͺ¨λΈμ λ§λ€ μ μμ΅λλ€. In-context learningμ pre-training λλ fine-tuning μ΄νμλ μΆκ°μ μΈ νμ΅μ ν΅ν΄ λͺ¨λΈμ μ±λ₯μ κ°μ νλ λ° μ¬μ©λ μ μμ΅λλ€.
gpt μ λν΄ κ°μ΄ 곡λΆνλ©° μΌμ μ§ννκ³ μλ νμλ€κ³Ό νμλ₯Ό νλ©΄μ, gpt κ΄λ ¨ μ©μ΄μ λν΄ μλ‘ μ‘°κΈμ© λ€λ₯΄κ² μκ°νκ³ μλ€λ μ μ μκ² λμμ΅λλ€. κ·Έλ κ·Έλ΄κ²μ΄, μ λ₯Ό ν¬ν¨ν μ ν¬ ν μΌλΆλ μ΄μ μ vision model μ μ£Όλ‘ νκ³ μμκ³ , μΌλΆλ encoder κΈ°λ° language model μ νκ³ μμλλ°, κ° modality λ³λ‘ κ°μ λ¨μ΄μ§λ§ μ ν λ€λ₯Έ μλ―Έλ₯Ό κ°μ§λ κ²½μ°κ° κ½€ μλ€λκ±Έ μκ² λμμ΅λλ€. κ²λ€ λΉμ₯μ λͺ¨λ λ¨μ΄λ€μ΄ learning, training, tuning κ°μ μ΄λ¦μ μ°κ³ μμ΄ λκ° λ°°μ°λκ±°κ³ μλ°°μ°λμ§ νκ°λ¦¬λκ² κ°μ΅λλ€.
μ΄μ μ΄λ² ν¬μ€νΈμμλ νμ¬ μμ μμ νμ΅μ μ¬μ©λλ μ©μ΄μ λν΄ μ‘°κΈ μ 리νκ³ λμ΄κ°λ € ν©λλ€ (μ ν¬ νμμ λμν μμ€μμμ).
gpt νμ΅κ³Ό κ΄λ ¨λ μ©μ΄λ₯Ό μ 리ν¨μ μμ΄ μ λ ν¬κ² 3κ°μ§ νμ΅ λ°©λ²μ κΈ°μ€μΌλ‘ λλμ΄λ³΄μμ΅λλ€. λͺ¨λΈμ λν μ¬μ νμ΅μ ν΄λΉνλ pre-train
, μ¬μ νμ΅λ λͺ¨λΈμ μμμΌλ‘ μλλλ‘ νλ ¨νλ fine-tuning
, κ·Έλ¦¬κ³ prompt μμ μν©μ μΈμν€λ in-context learning
μΈκ°μ§ κΈ°μ€μΌλ‘ μ€λͺ
ν΄λ³΄κ² μ΅λλ€.
*μ κ·Έλ¦Ό λ° λ¨μ΄ ꡬλΆμ λν κ²μ μ κ° μ΄ν΄ν λ΄μ©μ λ°νμΌλ‘ μμλ‘ λλκ²μΌλ‘ κ·Έ μλ?μ κ΄μ ?μ λ°λΌ λ¬λΌμ§ μ μμ΅λλ€.
GPT μμ pre-train
μ μ΅μ΄μ initialized λ λͺ¨λΈμ text λ°μ΄ν°λ‘λΆν° μ
λ ₯λ ν ν°μ λ€μ ν ν°μ μμΈ‘νλ λ°©μμΌλ‘ νμ΅λλ unsupervised learning
μ νλ νμλ₯Ό μ£Όλ‘ μ΄μΌκΈ° ν©λλ€. μ΄λ λ€μν ν°μ μμΈ‘νλ λ°©μμ΄κΈ°μ unsupervised 보λ€λ self-supervised learning
μ΄λΌκ³ μ΄μΌκΈ°νλκ² μ’λ μ ννκ² μ΅λλ€. pre-trainμμλ μ 체 λͺ¨λΈμ weight μ λν΄ major update λ₯Ό μνν©λλ€.
μ΄λ¬ν self-supervised learning
μ κΈ°λ³Έμ μΌλ‘ GPT μ κ°μ μμ±λͺ¨λΈμ parametric memory
λ₯Ό μ¬λ κ³Όμ μ΄ λκ² μ΅λλ€. μΌλΆ λ°©λ²λ‘ μ λν΄μλ pre-train level μμLoRA
κ°μ adapter
λ₯Ό ν¨κΌ μ°λ λ°©μλ μμ΅λλ€ (https://velog.io/@dongyoungkim/GPT-fine-tuning-4.-fine-tuning).
fine-tuning μ μ’λ 볡μ‘ν΄μ§λλ€. GPT-1
, GPT-2
, GPT-3
κΉμ§ pre-train
μ ν΅ν΄ κ·Έ μ±λ₯μ ν보νλ€λ©΄ GPT-3
μμ InstructGPT
, κ·Έλ¦¬κ³ chatGPT
κΉμ§λ fine-tuning
κΈ°λ²μ ν΅ν΄ κ·Έ μ±λ₯μ ν보ν©λλ€. μ°Έκ³ λ‘ GPT-3(2020) μμ chatGPT(2022) κΉμ§ 2λ
μ΄λ μκ°μ΄ κ±Έλ Έκ³ , μ£Όμν λ³νλ fine-tuning μνμ΄λΌκ³ λ³΄κ³ μμ΅λλ€.
instruction fine-tuning
μ pre-train λ gpt modelμ prompt μ completion μμ λ°μ΄ν°λ‘ supervised leaning μ μνν©λλ€. μ΄λ₯Όν΅ν΄ gpt κ° μ’λ μ¬λμ΄ μνλ λλ΅μ ννλ‘ λ§ν μ μλλ‘ μ 체 weight λ₯Ό μ
λ°μ΄νΈ ν©λλ€. μ’ λ μ λλ΅νκ² νκΈ° μν΄ completion μ step-by-step μ reasoning μ λν chain of thought (CoT)
λ±μ λ°μ΄ν°λ€λ μκ°λλ©΄μ gpt μκ² κΈ°λν μ μλ λλ΅μ μ±λ₯μ΄ μ¬λμ μ
μ₯μμ νμ°ν μ¬λΌκ°κ² λ©λλ€. μ΄ λ°©λ²μ domain-specific νκ² zero-shot leaning
, μ¦ prompt μ context λ₯Ό μ£Όμ§ μλλΌλ parametric memory μ μκ±°ν domain response λ₯Ό λ§λ€μ μλ λ°©λ²μ΄κΈ°λ ν©λλ€.
instruction fine-tuning
μ΄νμ gpt κ° λ§νλ λ΄μ©μ μμ΄ κ·Έλ΄λ―ν κ±°μ§λ§μ νλ λ±μ hallucination λ¬Έμ κ° λ°μνμκ³ , μ΄λ₯Ό 보μ ν΄μ£ΌκΈ°μν΄ reinforcement learning with human feedback (RLHF)
κ° λ±μ₯ν©λλ€. μ΄λ λλ΅μ μ§μ λν΄ νκ°ν μ μλ κ°ννμ΅ μμ΄μ νΈλ₯Ό μ¬λμ΄ κ°λ₯΄μΉκ³ , μ΄λ₯Ό κΈ°λ°μΌλ‘ gpt κ° μ¬λ°λ₯Έ λλ΅μ ν μ μλλ‘ μ λν νμ΅μΌλ‘, μ 체 weight μ λν μ
λ°μ΄νΈκ° μ΄λ£¨μ΄μ‘μ΅λλ€. openai μ μ¬λ¬ λΈλ‘κ·Έ κΈμ 보면 μ΄ RLHF
κ° chatGPT λ₯Ό λ§λλλ° ν° μνμ νμλ€κ³ μ€λͺ
νκ³ μμ΅λλ€ (https://openai.com/research/instruction-following, https://openai.com/blog/chatgpt).
Adaptor (p-tuning, LoRA)
λ μ΄μ ν¬μ€νΈμλ μκ°λλ Έμ΅λλ€ (https://velog.io/@dongyoungkim/GPT-fine-tuning-4.-fine-tuning). λ€λ§ μ΄λ¬ν λ°©λ²λ‘ λ€μ΄ gpt μ fine-tuning μ μν΄ κ°λ°λκ²μ μλκ³ , μ΄κ±°λ λͺ¨λΈλ€μ νμ©μ μν΄ adoption λ λ°©λ²λ‘ μ΄λΌκ³ μ΄ν΄νλκ² λ§κ² μ΅λλ€. λ λ°©λ² λͺ¨λ gpt μ λν base model update λ νμ§ μκ³ , μΌλΆ μΆκ°μ μΈ λ μ΄μ΄μ λν νμ΅λ§μ μ§ννλ―λ‘ μμ μκ°ν instruction fine-tuning
λ RLHF
λ§νΌμ λλΌλ§ν±ν νμ΅ν¨κ³Όλ₯Ό κΈ°λνκΈ΄ μ΄λ ΅μ΅λλ€λ§, μ¬μ ν μ μ νλΌλ©ν°μ μ¬μ©μΌλ‘ zero-shot μ μ λν μ μλ λ°©λ²λ‘ μΌλ‘ openai, azure, naver μ κ°μ μ΄κ±°λλͺ¨λΈ νλ«νΌμ μ΄μ©νλ νμ¬ μ
μ₯μμλ 맀λ ₯μ μΈ λ°©λ²μ
λλ€.
in-context learning
μ λͺ
μμ learning (model update) μ΄ μ‘΄μ¬ νμ§ μμ΅λλ€. λ€λ§ promptλΌλ νμλ₯Ό ν΅ν learning μ΄ λ°μν μ μκ³ μ΄μ κ΄λ ¨ν΄μλ μ ν¬μ€νΈμμ λμ°¨λ‘μ κ±Έμ² μ€λͺ
νμκ³ μ°Έκ³ λΆνλ립λλ€.
pre-train
, fine-tuning
, in-context learning
μ κ·Έ μμλλ‘ κ°κ° μ΄μ μ νμ΅μ΄ μ λμμλ λ€μμ κ²λ μ λ κ²μ΄λΌλ κ°μ μ κ°μ§κ³ μμ΅λλ€. μ΄λ₯Ό μμΌλ‘ λ§ν΄λ³΄λ©΄ μμ νμ΅λ€μ΄ μ μλμμλ μ’μ μ±λ₯μ λ΄κΈ°μν΄μλ λ€μ νμ΅μ΄ λ μ΄μ¬ν ν΄μΌνλ ꡬ쑰μ΄κ² μ΅λλ€. νΉν in-context learning μ λͺ¨λΈμ μ
λ°μ΄νΈκ° μκ³ , μ¬μ©μμ prompt μ λ°λΌ λͺ¨λΈμ μ±λ₯μ΄ λ°νλλ€λ³΄λ κ²°κ΅ μ’μ λͺ¨λΈμ prompt κ° μ§§μμ§κ³ , λμ λͺ¨λΈμ prompt κ° κΈΈμ΄μ μΌ νλ μν©μ΄ λ°μν©λλ€.
μ΄λ zero-shot learning
κ³Ό few-shot learning
μ μ°¨μ΄λ₯Ό μ€λͺ
νκΈ°λ ν©λλ€. μ’μλͺ¨λΈ, i.e. chatGPT, μ κ²½μ° λ΄κ° νκ³ μ νλ λ°λ₯Ό μ΄μΌκΈ°ν΄λ©΄ μ¬λ§νλ©΄ λ€ μμλ£μ΅λλ€. λ²μν΄μ€
, μμ½ν΄μ€
μ κ°μ κΈ°λ³Έμ μΈ(?) nlp task μμλΆν°, user μκ² input μ λ°κ³ μ΄λ₯Ό sqlite μ μ μ₯νλ python streamlit νλ‘κ·Έλ¨μ λ§λ€μ΄μ€
μ κ°μ 볡μ‘ν μꡬλ μ€λͺ
μμ΄ μ ν©λλ€. μ¦ zero-shot learning
μ΄ λ©λλ€.
pre-train, fine-tuning μ΄ λ νμν λͺ¨λΈμΌμλ‘ in-context learning
μ ν¨κ³Όκ° λ νμν©λλ€. μ¦ few-shot learning
μ΄ λμ΄μΌ ν©λλ€. λ¬Όλ‘ few-shot learning
μ΄ λλ €λ©΄ μ΄λμμ€μ pre-train, fine-tuning μ νμν©λλ€ (https://velog.io/@dongyoungkim/GPT-fine-tuning-5.-in-context-learning).
parametric memory
μ non-parametric memory
λν μ΄μ μ ν¬μ€νΈμμ μ 리ν΄λμμ΅λλ€ (https://velog.io/@dongyoungkim/OpenAI-GPT-fine-tuning-3.-memory)
parametric memory
λ pre-train κ³Ό fine-tuning μ weight update κ³Όμ μμ νμ΅λλ λ΄μ©μ μ΄μΌκΈ°νλ©°, inference λ₯Ό ν΅ν΄ κ·Έ κΈ°μ΅μ νμν©λλ€.
non-parametric memory
λ in-context learning μ μ°λ¬Όλ‘, gpt κ° parametric memory λ₯Ό μ΄μ©ν΄ prompt μ μ ν λ΄μ©μ ν΄μν΄μ μ°Έμ‘°ν¨μΌλ‘ λ°μν μ μλ non-parametric μ reference μ λ°νμ΄λΌ νκ² μ΅λλ€. μ¦ zero-shot learning μ μν©μμλ parametric memory μ μμ‘΄μ±μ΄ ν¬κ³ , in-context learning, μ¦ few-shot learning μμλ parametric memory μ non-parametric memory λλ€ μ¬μ©λ μ μκ² μ΅λλ€.
λ¨μ΄μ λν΄ μ 리νλ€λ³΄λ, gpt μ λν΄ κ³΅λΆν΄μΌ ν κ²λ€μ΄ ν¨μ¬ λμ΄λ λλμ λλ€. μλ° κ²ν₯κΈ° μμ€μ΄λΌλ gpt μ λν΄ μ΄ν΄λ νκ³ μ¬μ©ν΄μΌ ν κ² κ°μ κ³μ μ 리ν΄λ³Ό μκ°μ λλ€.