본문으로 건너뛰기
실습하기

파인튜닝은 어떤 과정을 거쳐 완성될까?

이번 수업부터는 오픈AI 플랫폼을 활용하여 파인튜닝을 진행해보겠습니다.


1. 학습 데이터 준비

  • 데이터 준비: 학습에 사용할 데이터셋을 준비합니다.

  • 데이터 포맷: 모델 학습에 맞는 형식의 데이터로 변환합니다. (JSONL, CSV 등)

JSONL 데이터셋 예시
{"messages": [{"role": "system", "content": "철수는 사실적이면서도 냉소적인 챗봇입니다."}, {"role": "user", "content": "미국의 수도가 어디인가요?"}, {"role": "assistant", "content": "워싱턴 D.C입니다. 모르는 사람이 있을까요?"}]}
{"messages": [{"role": "user", "content": "로미오와 줄리엣을 쓴 사람은 누구인가요?"}, {"role": "assistant", "content": "윌리엄 셰익스피어입니다. 왜 물으시나요?"}]}
...(이하 생략)
  • OpenAI 시스템에서 파인튜닝을 진행할 때는 데이터셋을 JSONL 형식으로 변환해야 합니다. JSONL 내에는 최소 10개의 JSON 객체가 포함되어야 하며, 각 객체는 messages 필드를 포함해야 합니다.

  • OpenAI 문서에 의하면, 고품질의 데이터 50-100개로 파인튜닝을 해도 좋은 결과를 얻을 수 있다고 합니다.


2. 베이스 모델 선택

  • 베이스 모델 선택: 2024년 7월 기준, OpenAI는 파인튜닝을 위해 gpt-3.5-turbo 모델 사용을 권장하고 있습니다. GPT-4는 특별히 허가된 사용자만 파인튜닝할 수 있습니다.

3. 하이퍼파라미터 설정

  • 학습률, 배치 크기, 에폭 수 하이퍼파라미터를 설정합니다.
주요 하이퍼파라미터설명
학습률 (Learning Rate)모델 학습 속도 조절
배치 크기 (Batch Size)한 번에 학습하는 데이터 수
에폭 수 (Number of Epochs)전체 데이터셋을 반복 학습하는 횟수

참고: 3가지만 기억하세요: 학습률, 배치 크기, 에폭

  • OpenAI 플랫폼에서 별도의 값을 입력하지 않으면, auto로 설정되어 시스템 내부에서 자동으로 처리됩니다.

4. 파인튜닝 실행

  • 준비한 학습 데이터와 설정된 하이퍼파라미터를 바탕으로 기존 AI 모델을 재훈련합니다.

  • 파인튜닝 실행: OpenAI 플랫폼에서 파인튜닝을 실행합니다. (평균 20-30분 소요)


5. 파인튜닝 모델 평가

  • 파인튜닝된 모델의 훈련 손실(Training Loss)과 검증 손실(Validation Loss) 확인하고, 모델의 성능을 평가합니다.

  • 손실은 모델이 예측한 값과 실제 값 사이의 차이를 나타내며, 이 차이를 줄이는 것이 훈련의 목표입니다.

  • 훈련 손실은 훈련 데이터에서 발생하는 평균 손실 값이며, 검증 손실은 모델이 검증 데이터에서 발생하는 평균 손실 값입니다.


안내사항

OpenAI 정책으로, 외부 서비스가 OpenAI와 연결하여 파인튜닝을 진행하는 것은 여러 정책적/기술적 이슈가 있습니다.

예를 들어 업로드한 학습 데이터의 보안이 이슈가 될 수 있으며, 플랫폼에서 지원하는 최대 파인튜닝 실행 수가 3개로 엄격히 제한되어 있습니다.

실습 환경에서는 파인튜닝을 위한 JSONL을 AI로 간편하게 만드는 도구를 제공하며, 파인튜닝된 모델은 코드프렌즈가 자체적으로 제작한 모델들입니다.

정책적/기술적 이슈로 인해 파인튜닝 실행 버튼을 눌러도, 실제로 20-30분 소요되는 파인튜닝이 동작하지는 않습니다.

실제로 파인튜닝을 희망하실 경우, 코드프렌즈 실습 환경으로 만든 JSONL 학습 데이터를 OpenAI 플랫폼에서 업로드하여 직접 진행하실 수 있습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!