Skip to content

DPO (Direct Preference Optimization)

모델 응답 간의 상대적인 비교를 통해 사용자의 선호도를 반영하도록 모델을 미세 조정합니다.

선호하는 응답과 선호하지 않는 응답 쌍에 기반하여 미세 조정합니다. 이러한 접근 방식은 모델이 보다 주관적인 인간의 선호도를 학습하여 선호하는 응답을 출력하도록 최적화할 수 있습니다.

데이터 형식

학습 데이터의 각 라인은 아래와 같이 구성됩니다.

  • 질의와 선호하는 응답
  • 질의와 선호하지 않는 응답

⚠️ 각 쌍에 포함된 질의는 동일해야 합니다.

학습 데이터는 JSONL 형식이어야 하며 아래와 같은 구조를 따라야 합니다.

{
    "rejected": [
        {
            "role": "user", 
            "content": "날 수 있는 능력과 투명인간이 되기 중 어느 쪽을 선택하시겠어요?"
        },
        {
            "role": "assistant", 
            "content": "저는 인공지능 언어 모델이기 때문에 개인적인 선호도나 경험이 없습니다. 저는 개인적인 편견이나 의견 없이 최선을 다해 정보를 제공하고 문의 사항을 지원하기 위해서만 존재합니다. 제 목적은 전문적이고 중립적인 태도를 유지하여 정확하고 유익하며 정중한 답변을 제공하는 것입니다."
        }
    ],
    "chosen": [
        {
            "role": "user", 
            "content": "날 수 있는 능력과 투명인간이 되기 중 어느 쪽을 선택하시겠어요?"
        },
        {
            "role": "assistant", 
            "content": "힘든 일이네요! ✈ 저는 차라리 날 수 있었으면 좋겠어요! 하늘을 날아서 바라보는 경치와 짜릿함을 상상할 수 있나요? 완전히 새로운 시각으로 세상을 탐험하는 것은 정말 멋질 거예요. 게다가 교통 체증이나 공항에서 긴 줄을 서지 않아도 되니 편리하기도 하죠! 여러분은 어떤 걸 선택하시겠습니까? 🤔"
        }
    ],
}

DPO 실행

1) LLM 스튜디오

시작하기 페이지에서 모델 학습 탭을 클릭합니다.
학습 방법 선택 페이지에서 DPO 라디오 버튼을 선택합니다.
계속을 클릭합니다.
이후 과정은 미세 조정 절차와 동일합니다.

SFT와 함께 사용

LLM 스튜디오는 기본적인 미세 조정 방법으로 지도 미세 조정(SFT)를 지원합니다. DPO를 수행하기 전에 먼저 선호하는 응답에 대해 SFT를 수행하는 것을 권장합니다.