Scaling Laws
- Scaling Laws for Neural Language Models
- 최근 등장하고 있는 NLP 모델의 크기는 지속적으로 커지고 있고 (Scaling Up) , GPT-3 모델의 최대 크기는 175 Billion, 즉 175,000,000,000 개의 parameter 를 가짐.
- 모델의 파라미터를 늘릴수록, 성능이 향상되며 수행할 수 있는 task의 종류가 늘어남
- 모델 크기 뿐 아니라, 데이터 크기와 컴퓨팅 능력을 적절히 확장하면 언어 모델링 성능을 예측 가능하게 향상시킬 수 있음 - 모델 성능에 영향을 주는 요인
(1) 모델 파라미터 수 N (Parameters) - 임베딩 제외 모델 파라미터 수
(2) 학습에 사용된 데이터의 크기 D (Dataset Size)
(3) 학습에 필요한 컴퓨팅 양 C (Compute) - 모델의 구조적 형태는 성능에 영향을 끼치는 주요 요인이 아님.
- 넓은 Layer 를 얕게 쌓은 모델 (좌측) vs. 좁은 Layer를 깊게 쌓은 모델 (우측) - Scaling Laws
특징 1) 가장 최적의 성능 향상을 위해서는, 요인 3가지는 함께 Scaling up 되어야 함.
- 최적의 성능을 위해서는 3가지 요인 모델 파라미터 수 N, 학습에 사용된 데이터의 크기 D, 학습에 필요한 컴퓨팅 양 C 은 모두 함께 Scaling up 되어야 함.
- 하지만, 현실적으로 3개 중 2개나 1개 요인은 고정되고 나머지 요인만 증가시킬 수 있는 경우, 오히려 성능이 저하될 수 있음
특징 2) 특히, 모델 파라미터 수 N 과 학습에 사용된 데이터의 크기 D 를 동시에 Scaling up한다면 성능은 예측가능하게 개선 가능.
- 하지만 N, D 중 하나는 고정, 다른 요인은 증가하면 고정인 요인은 패널티를 받아 성능 증가가 감소.
- 예) 같은 데이터로 크기만 다른 모델을 구축하는 경우, 큰 모델의 성능이 낮을 수 있음.
특징 3) 큰 모델일 수록 더 적은 학습 단계, 더 적은 데이터에서 동일한 수준의 성능 달성 가능 (Sample-Efficient)
RLHF
- 큰 언어모델의 약점
- Scaling Laws 와 모순되게, 언어 모델을 크게 만든다고 해서 무조건 사용자의 의도를 더 잘 따르는 것은 아님.
- 데이터가 많이 필요하기에, 학습 데이터에 웹 크롤링 등 자동으로 구축한 검증되지 않은 데이터가 포함될 확률이 높아지고, 학습된 모델이 거짓이거나 유해하거나 사용자에게 도움이 되지 않는 출력을 생성가능. - Reinforcement Learning by Human Feedback (RLHF)
- Human Feedback : 사람에게 모델의 응답을 여러 가지 제시하고, 좀 더 선호하는 응답을 선택하게 한다.
- Reinforcement Learning : 사람을 통해 구축한 데이터를 바탕으로 모델을 강화학습함으로써 다양한 Task에 대해 사용자의 의도를 따르는 모델을 학습하는 기법.
InstructGPT
- InstructGPT
- 3개의 단계를 거쳐 모델 학습
Step1 : SFT (Supervised Fine-tuning)
- Labeler를 통해, Prompt와 모델이 응답했으면 하는 응답인 Demonstration 쌍을 구축
- 데이터 예시) Prompt : 6살 아이에게 달 착륙에 대해 설명해주세요 Demonstration : 어떤 사람들은 달에 가길 원했고…
- 구축된 데이터를 바탕으로 기존의 GPT 모델을 Fine-Tuning (Supervised Learning)
Step2 : RM (Reward Model)
- 사용자가 입력한 Prompt 를 가지고 Model에 여러 개의 응답을 요청하고, Labeler에게 여러 개 응답 중 순위를 매기게 함.
- 순위를 매긴 데이터셋을 사용해서, 여러 응답 중 어떤 응답이 더 좋은 응답인지 판단하는 Reward Model 학습
Step3 : RL (Reinforcement Learning)
- Reward Model의 점수를 사용하여 사용자가 더 선호하는 응답에는 Reward(보상), 덜 선호하는 응답에는 Penalty(벌칙)을 주어 학습.
- 강화학습을 사용해 최대 보상을 얻는 모델로 학습 - InstructGPT 평가
- 정성적 평가 결과 : RLHF를 거친 모델은, 엉뚱하거나 유해한 응답을 하지 않고, 사람이 원하는 응답을 하게 됨
- 정량적 평가 결과 : 같은 Prompt 를 입력했을 때 사용자가 InstructGPT 모델의 출력을 다른 모델의 출력과 비교하도록 하여 사용자의 의도를 얼마나 잘 따르는지 평가
- RealToxicity : 얼마나 안전한 응답이 출력되는지 측정
- TruthfulQA : 모델이 인간의 거짓말을 어떻게 흉내 내는지 측정
- Hallucinations : 거짓 내용을 얼마나 그럴듯한 응답이 출력되는지 측정
- Customer Assistant Appropriate : 사용자가 얼마나 더 선호하는 응답이 출력되는지 측정
- RLHF를 통해 더 안전하고, 거짓으로 그럴듯한 응답을 생성하지 않으며 사용자가 더 선호하는 응답을 출력하는 모델이 됨.
Prompt Engineering
- Prompt Engineering
- Prompt : 모델에게 어떤 task 를 수행해야 하는지를 알려주는 자세한 지시사항
- Engineering : 사용자의 의도에 맞게 task 를 수행 가능하도록 효과적으로 설계하는 과정
- Prompt Engineering : 모델에 추가 tuning 을 하지 않고도 사용자의 의도를 잘 수행하도록 Prompt 를 효과적으로 설계하는 과정 - Prompt에 따른 결과 차이
- 명확하고 구체적인 Prompt 작성하기
- Prompt 가 길어지더라도 명확한 Prompt 를 제시하기
- 대부분의 경우 긴 Prompt가 모델에게 더 많은 명확성과 맥락을 제공 하며 실제로 더 상세하고 관련 있는 출력 유도
- 구조화된 출력 요청 : 출력을 보기 편하게 만들기 위해 구조화된 출력을 요청(HTML 또는 JSON)
- 조건이 충족되는지 확인 : task 를 잘 수행하는지 먼저 확인, 만약 조건이 충족되지 않으면 prompt 를 변경
- Few-Shot Prompting : GPT의 Few-Shot Setting, Instruction과 예시를 제시
- 모델에 생각할 시간을 제공.
- 사람과 마찬가지로, 모델도 짧은 시간이나 적은 단어로 너무 복잡한 작업을 주면, 잘못될 응답을 하게 될 가능성이 높아짐.
- 작업을 완료하기 위해 필요한 단계를 구체적으로 명시
- 성급히 결론으로 도달하기 전에 모델에게 자체적, 단계적으로 해결책을 찾도록 지시.