본문 바로가기
Paper review

sDPO: Don’t Use Your Data All at Once 한글 리뷰

by AI미남홀란드 2024. 4. 1.
728x90

Upstage에서 발표한 논문입니다. 기존의 DPO 방법으로 SOLAR를 학습시켜서 현재 PLM으로 Langchain에서도 쓸 수 있는 모델이 되었습니다. gram 노트북에도 들어가고 폴라리스 랩소디에서 Copilot 형태처럼 solar를 탑재 등 다양한 뉴스가 나오고 있는 토종의 모델입니다. DPO 학습을 누구보다 잘 알기에 새로운 방법론 sDPO에 대한 논문이 나온 것 같습니다.

 

https://arxiv.org/abs/2403.19270

 

sDPO: Don't Use Your Data All at Once

As development of large language models (LLM) progresses, aligning them with human preferences has become increasingly important. We propose stepwise DPO (sDPO), an extension of the recently popularized direct preference optimization (DPO) for alignment tu

arxiv.org

Abstrak

대규모 언어 모델(LLM) 개발이 진행됨에 따라, 이들을 인간의 선호와 일치시키는 것이 점점 중요해지고 있습니다. 우리는 직접 선호 최적화(DPO)의 최근 확장인 단계적 DPO(sDPO)를 제안합니다. 이 방법은 사용 가능한 선호도 데이터셋을 나누어 단계별로 사용함으로써, 한 번에 전부 사용하는 대신 활용합니다. 이 방법이 DPO 훈련 프레임워크 내에서 더 정밀하게 정렬된 참조 모델 사용을 촉진한다는 것을 보여줍니다. 더욱이, sDPO로 훈련된 최종 모델은 더 많은 매개변수를 가진 기타 인기 있는 LLM들보다 더 높은 성능을 보여주며, 성능 면에서 이들을 능가합니다.

 

제목처럼 데이터를 다 한꺼번에 학습시키지마라, 단계적으로 학습시켜라 라는 방법론 같다. 여기서 참조모델이 쓰인다는데 자세히 살펴봐야 할 것 같다.

1 Introduce

 

대규모 언어 모델(LLM)은 사전 훈련, 지도 미세 조정, 정렬 조정을 포함하는 훈련 과정을 통해 자연어 처리(NLP) 분야를 혁신하였습니다. 이러한 정렬 조정 단계에서는 복잡성에도 불구하고, 근접 정책 최적화(PPO)와 같은 강화 학습 기술이 핵심입니다. LLM 훈련에서 강화 학습의 복잡한 성격을 해결하기 위해, 직접 선호 최적화(DPO)를 포함한 여러 방법들이 그 간단함과 효과로 인해 인기를 얻고 있습니다. DPO는 인간 또는 강력한 AI 판단을 사용하여 선호 데이터셋을 큐레이션 하고, 선택된 답변과 거부된 답변의 로그 확률을 비교하여 LLM을 훈련합니다. 그러나 이러한 확률을 얻는 것은 GPT-4와 같은 독점 모델에서는 입력에 대한 로그 확률을 제공하지 않기 때문에 어려울 수 있습니다. 실용적인 시나리오에서 대부분 참조 모델은 단순히 기본 SFT 모델로 설정되며, 이는 잠재적으로 정렬되지 않은 선호도를 가진 약한 대안입니다. 이 참조 모델은 DPO에서 하한으로 작용하며, 즉 대상 모델이 참조 모델만큼은 정렬되도록 최적화됩니다. 따라서 우리는 이미 더 잘 정렬된 참조 모델을 사용하는 것이 DPO 훈련에 유익할 것이라고 주장합니다. 대신, 우리는 DPO 훈련 시 선호 데이터셋(또는 선호 데이터셋의 하위 집합)을 단계별로 사용하는 '단계적 DPO', 즉 sDPO를 제안합니다. 이전 단계에서 정렬된 모델은 현재 단계의 참조 모델로 사용되며, 이는 더 잘 정렬된 참조 모델(즉, 더 나은 하한)을 사용하는 결과를 가져옵니다. 실증적으로, sDPO 사용이 최종 정렬 모델의 성능을 더 향상한다는 것을 보여줍니다. 동시에 진행된 연구들이 새로운 선호 데이터 생성의 반복적 파이프라인에 초점을 맞추고 있는 반면, 우리의 방법은 현재 사용 가능한 선호 데이터셋을 활용하는 데 초점을 맞추고 있으며, 이는 sDPO가 어떤 선호 데이터에도 쉽게 적용될 수 있으며 동시 작업과의 추가 결합이 흥미로운 미래 방향이 될 것입니다.

 

그림1

 

왼쪽은 DPO의 기본적인 프로세스를 나타내고, sDPO 는 오른쪽 그림과 같다. Step1부터 보면 DPO와 동일하게 가지만 데이터가 한 개인 것을 볼 수가 있다. Step 단위로 움직인다. 첫 번째 선호도 데이터셋 을 사용하여 초기 SFT 모델 을 기준으로 로그 확률을 계산한 후, 이를 첫 번째 정렬된 모델 을 훈련하는데 사용한다. sDPO의 번째 단계를 나타낸다. 여기서는 단계에서 얻은 정렬된 모델 을 현재 단계의 참조 및 대상 모델로 사용한다. 이 모델을 사용하여 로그 확률을 계산하고, 해당 확률은 다음 단계의 모델 을 훈련하는데 사용된다.

 

2 Methodology

2.1 Preliminary Investigation on Reference

잘 정렬된 참조 모델을 사용하는 것의 중요성을 평가하기 위해, 우수한 성능과 작은 크기를 자랑하는 Mistral-7B-OpenOrca와 OpenHermes-2.5-Mistral-7B를 SFT 기본 모델로 사용하여 Ultrafeedback 데이터셋을 가지고 DPO 훈련에 대한 예비 실험을 수행했습니다. 참조 모델로는 i) 기존 DPO 설정과 동일한 SFT 기본 모델, ii) 더 크고 훨씬 더 성능이 좋은 SOLAR-0-70B, iii) 이미 정렬된 참조 모델인 Intel-7B-DPO를 비교했습니다. 결과는 표 1에 요약되어 있습니다.

표에서 볼 수 있듯이, Intel-7B-DPO를 참조 모델로 사용하면 더 큰 모델인 SOLAR-0-70B를 사용하는 것보다도 더 나은 성능을 내며, SOLAR-0-70B는 더 많은 데이터로 훈련되었습니다. 따라서 참조 모델이 사전 정렬되었는지 여부는 결과적으로 정렬된 모델의 성능에 중요한 역할을 합니다. 불행히도, 기술적 및 안전 문제로 인해 오픈 소스 사전 정렬 모델을 참조 모델로 단순히 사용하는 것은 항상 가능한 것은 아닙니다. 즉, 그러한 모델이 아직 존재하지 않거나 다양한 도메인 특정 유해성 및 공정성 기준에 취약할 수 있습니다. 위 문제를 해결하기 위해, 우리는 훈련 프레임워크의 일부로 더 정렬된 참조 모델을 사용하는 sDPO를 제안합니다.

 

2.2 Stepwise DPO

sDPO에서는 선호 데이터셋을 한 번에 모두 사용하는 대신 단계적으로 사용할 것을 제안합니다. DPO와 sDPO의 전체적인 흐름 비교는 그림 1에 나타나 있습니다.

 

Reference model.

참조 모델은 선호 데이터셋의 로그 확률을 계산하는 데 사용됩니다. 각 단계마다 전체 데이터의 일부만 사용되며, 참조 모델은 이전 단계의 정렬된 모델 로 초기화됩니다. 초기 참조 모델은 SFT 기본 모델 로 설정됩니다. 이는 기존 DPO보다 더 정렬된 참조 모델을 사용하는 결과를 낳습니다.

 

Target model.

인 경우, 각 sDPO 단계에서 DPO의 선호 손실을 사용하여 훈련되는 대상 모델도 로 초기화되며, 이는 가 아닙니다. 이는 sDPO로 훈련된 최종 모델이 DPO로 훈련된 모델과 동일한 양의 데이터로 직접 훈련되었음을 보장합니다.

 

Intuitive explanation.

sDPO 의 흐름

 

표2. sDPO(및 제거된 버전)를 SOLAR 10.7B + SFT에 적용했을 때의 성능 비교

3 Experiments

3.1 Experimental Setup

Training details.

  • 기존에 미세 조정된 'SOLAR 10.7B' 모델을 기본 모델로 사용합니다. 이 모델은 비교적 드문 10.7B 크기임에도 뛰어난 성능을 제공합니다.
  • 'OpenOrca'와 'Ultrafeedback Cleaned' 데이터셋을 선호도 데이터로 활용합니다.
  • sDPO의 첫 번째 단계에서는 'OpenOrca'를 사용하고, 두 번째 단계에서는 'Ultrafeedback Cleaned'를 사용합니다.

Evaluation.

  • HuggingFace Open LLM 리더보드의 여섯 가지 태스크 중 네 가지(ARC, HellaSWAG, MMLU, TruthfulQA)를 사용하여 평가하고, 이 네 태스크의 평균 점수(H4)를 보고합니다.
  • 더 복잡한 생성 태스크가 아닌, 선택형 문제(multiple choice tasks)에 초점을 맞추기 위해 일부 태스크는 제외했습니다.

3.2 Main Result

  • SOLAR 10.7B에 sDPO를 적용하면 H4 점수가 상당히 향상됩니다.
  • 'SOLAR 10.7B + SFT + sDPO'는 더 많은 매개변수를 가진 다른 모델들보다 더 높은 성능을 보여줍니다. 이는 효과적인 정렬 조정이 작은 언어 모델의 성능을 향상하는 열쇠가 될 수 있음을 보여줍니다.
  • TruthfulQA의 경우, sDPO를 적용하면 특히 더 높은 점수를 얻을 수 있었습니다.

3.3 Ablation Studies

그림 2: 울트라피드백 정리된 데이터 세트의 평균 γπref 에 대한 다양한 참조 모델 S, M1 및 M2. 참고 에서 X축은 로그 스케일입니다.

  • 표 2에 제거 연구의 결과도 보고됩니다. 이 연구는 데이터를 다르게 나누어 훈련한 모델들의 성능을 비교합니다.
  • 'SOLAR 10.7B + SFT + sDPO Strat.'은 전체 데이터에서 일정 비율만을 선택하여 사용합니다.

참조 모델이 어떤 답변을 선택할 확률의 로그 비율을 나타냄. 이 값이 높을수록 해당 모델이 특정 답변을 선택할 가능성이 높다는 것을 의미한다.

 

3.4 Reference Models in sDPO

Effectiveness of sDPO in terms of alignment tuning.

sDPO에서 사용되는 참조 모델들은 보다 잘 정렬되어 있어, γπref(선호도 로그 비율) 값이 더 높아지는데, 이는 모델의 성능 하한선을 더 엄격하게 만듭니다. 이는 그림 2에서 확인할 수 있으며, 여기서 Ultrafeedback Cleaned 데이터셋에서 sDPO의 첫 번째와 두 번째 단계 참조 모델인 S와 M1의 평균 γπref를 비교합니다. S 모델을 참조 모델로 사용할 때의 γπref 평균은 -38.60인 반면, M1 모델을 사용했을 때는 -25.10으로, 로그 스케일 기준으로 13.50 증가했습니다. 즉, sDPO의 단 하나의 단계만으로도 γπref를 크게 증가시켜 더 나은 성능의 정렬된 모델을 얻을 수 있음을 보여줍니다.

 

Adopting open source models as reference models could be dangerous.

M2 모델의 평균 γπref는 84.35로, S나 M1보다 훨씬 높습니다. M2는 Ultrafeedback Cleaned 데이터셋에 대해 훈련된 모델로, 이 데이터를 이미 훈련에 사용한 데이터로써 참조 모델로 사용했습니다. 이는 오픈 소스 모델을 참조 모델로 채택할 때 발생할 수 있는 문제점을 보여줍니다. 훈련에 사용된 데이터셋이 명확하지 않고 선호도 데이터셋과 중복될 수 있기 때문에, 의도치 않게 과적합을 일으키는 참조 모델을 사용할 위험이 있습니다. 이는 단순히 오픈 소스 모델을 참조 모델로 채택하는 것보다 sDPO를 사용하는 것이 중요함을 강조합니다.

 

그림 3: sDPO 2단계의 손실 곡선 비교: 대상 모델 초기화에 따른 대상 모델의 다양한 초기화.

3.5 Target Model Initialization in sDPO

sDPO의 각 단계에서 대상 모델은 이전 단계의 정렬된 모델로 초기화됩니다. 이는 sDPO에서 최종 모델이 DPO에서의 최종 모델과 같은 양의 데이터로 훈련되었음을 보장합니다. 그림 3은 sDPO의 두 번째 단계에서 대상 모델을 다르게 초기화할 때 손실 곡선을 비교한 것입니다. 대상 모델을 기본 모델 S로 초기화하면 초기 손실이 높고, Mt−1로 초기화하면 낮습니다. 이는 대상 모델을 안정적으로 훈련시키기 위해 이전 단계에서 훈련된 모델을 사용하는 것이 더 바람직함을 나타냅니다.

 

 

4 Conclusion

기본 설정 데이터를 한 번에 사용하지 않고 단계적으로 단계적으로 사용할 것을 제안합니다. 우리는 sDPO를 적용하면 H4 점수 측면에서 DPO보다 모델보다 더 우수한 성능을 발휘한다는 것을 보여줍니다. 또한 sDPO를 적용하면 평균 γ값을 비교하여
평균 γπref 를 비교하여 참조 모델이 더 잘 정렬됨을 실증적으로 보여줍니다.

 

참조 모델은 이 정렬 과정에서 기준점으로 사용된다. 예를 들어, 모델이 "좋은" 답변을 어떻게 선택해야 하는지를 배우기 위한 비교 대상임. sDPO는 이 참조 모델을 단계적으로 개선하여 모델이 더 정확하게 사람의 선호를 따르도록 만든다. 이 과정에서 중요한 개념이 γπref(gamma)이다. 이 값은 참조 모델이 특정 답변을 선택할 확률을 나타내며, 이 값이 클수록 모델이 그 답변을 선호한다는 것을 의미함. 논문에서는 sDPO의 각 단계를 거치면서 이 값이 어떻게 변하는지를 보여준다.

sDPO에서의 단계를 정리하면

  • 첫 번째 단계에서는 기본 모델(예: S)을 참조 모델로 사용하여 모델의 정렬을 시작함.
  • 두 번째 단계에서는 첫 번째 단계에서 조정된 모델(예: M1)을 새로운 참조 모델로 사용함. 이 모델은 첫 번째 단계보다 더 "정확하게" 정렬되어 있기 때문에, 이 모델을 기준으로 하면 더 좋은 성능의 모델을 만들 수 있다.

결과적으로, sDPO를 사용하면 각 단계에서 참조 모델이 점점 더 정렬된 방향으로 개선되며, 최종적으로 사람의 선호도를 더 잘 반영하는 언어 모델을 만들 수 있다가 이 논문의 내용이다.

 

근데  DPO가 PPO 에서 RM을 없애고, 리소스를 줄였는데 다시 참조모델을 도입하면 리소스가 늘어나는 게 아닌가 생각이 든다.?

728x90