본문으로 건너뛰기

OpenAI 파인튜닝

Weights & Biases를 사용하면 OpenAI GPT-3.5 또는 GPT-4 모델의 파인튜닝 메트릭과 설정을 Weights & Biases에 로그하여 새로 파인튜닝된 모델의 성능을 분석하고 이해하며 동료와 결과를 공유할 수 있습니다. 파인튜닝할 수 있는 모델은 여기에서 확인하세요.

정보

Weights and Biases 파인튜닝 인테그레이션은 openai >= 1.0과 함께 작동합니다. pip install -U openai를 통해 openai의 최신 버전을 설치하십시오.

2줄로 OpenAI 파인튜닝 결과 동기화하기

OpenAI의 API를 사용하여 OpenAI 모델을 파인튜닝하는 경우, 이제 W&B 인테그레이션을 사용하여 중앙 대시보드에서 실험, 모델 및 데이터셋을 추적할 수 있습니다.

from wandb.integration.openai.fine_tuning import WandbLogger

# 파인튜닝 로직

WandbLogger.sync(fine_tune_job_id=FINETUNE_JOB_ID)

상호작용 가능한 예제 확인하기

몇 줄의 코드로 파인튜닝 동기화하기

최신 버전의 openai와 wandb를 사용하고 있는지 확인하십시오.

pip install --upgrade openai wandb

그런 다음 스크립트에서 결과를 동기화하십시오.

from wandb.integration.openai.fine_tuning import WandbLogger

# 한 줄 코맨드
WandbLogger.sync()

# 선택적 파라미터 전달
WandbLogger.sync(
fine_tune_job_id=None,
num_fine_tunes=None,
project="OpenAI-Fine-Tune",
entity=None,
overwrite=False,
**kwargs_wandb_init
)

참조

인수설명
fine_tune_job_idclient.fine_tuning.jobs.create를 사용하여 파인튜닝 작업을 생성할 때 얻는 OpenAI 파인튜닝 ID입니다. 이 인수가 None(기본값)인 경우, 이미 동기화되지 않은 모든 OpenAI 파인튜닝 작업이 W&B에 동기화됩니다.
openai_clientsync에 초기화된 OpenAI 클라이언트를 전달합니다. 클라이언트가 제공되지 않으면 로거 자체에 의해 하나가 초기화됩니다. 기본적으로 None입니다.
num_fine_tunesID가 제공되지 않으면 모든 동기화되지 않은 파인튜닝이 W&B에 로그됩니다. 이 인수를 사용하면 동기화할 최근 파인튜닝의 수를 선택할 수 있습니다. num_fine_tunes가 5이면 가장 최근의 5개 파인튜닝을 선택합니다.
project파인튜닝 메트릭, 모델, 데이터 등이 로그될 Weights and Biases 프로젝트 이름입니다. 기본적으로 프로젝트 이름은 "OpenAI-Fine-Tune"입니다.
entity실행을 보내는 Weights & Biases 사용자 이름 또는 팀 이름입니다. 기본적으로 기본 엔티티가 사용되며, 보통 사용자 이름입니다.
overwrite로깅을 강제하고 기존 wandb 실행을 덮어쓰게 합니다. 기본적으로 이는 False입니다.
wait_for_job_successOpenAI 파인튜닝 작업이 시작되면 보통 시간이 조금 걸립니다. 파인튜닝 작업이 완료되자마자 메트릭이 W&B에 로그되도록 하려면, 이 설정은 파인튜닝 작업의 상태가 "succeeded"로 변경될 때까지 60초마다 확인합니다. 파인튜닝 작업이 성공적으로 감지되면 메트릭이 자동으로 W&B에 동기화됩니다. 기본적으로 True로 설정되어 있습니다.
**kwargs_wandb_initwandb.init()에 직접 전달된 추가 인수

데이터셋 버전 관리 및 시각화

버전 관리

파인튜닝을 위해 OpenAI에 업로드하는 트레이닝 및 검증 데이터는 더 쉬운 버전 관리를 위해 W&B Artifacts로 자동 로그됩니다. 아래는 Artifacts에서 트레이닝 파일의 뷰입니다. 여기서 이 파일을 로그한 W&B 실행, 로그된 시간, 데이터셋의 버전, 메타데이터 및 트레이닝 데이터에서 훈련된 모델까지의 DAG 계보를 볼 수 있습니다.

시각화

데이터셋은 또한 W&B 테이블로 시각화되어 데이터셋을 탐색, 검색 및 상호작용할 수 있습니다. 아래는 W&B 테이블을 사용하여 시각화된 트레이닝 샘플을 확인하세요.

파인튜닝된 모델 및 모델 버전 관리

OpenAI는 파인튜닝된 모델의 ID를 제공합니다. 모델 가중치에 접근할 수 없기 때문에, WandbLogger는 모델의 모든 세부 정보(하이퍼파라미터, 데이터 파일 ID 등)와 fine_tuned_model`` id를 포함한 model_metadata.json` 파일을 생성하고 이를 W&B Artifact로 로그합니다.

이 모델(메타데이터) 아티팩트는 W&B 모델 레지스트리의 모델과 연결되거나 W&B Launch와 함께 사용될 수 있습니다.

자주 묻는 질문

W&B에서 파인튜닝 결과를 팀과 어떻게 공유하나요?

파인튜닝 작업을 팀 계정으로 로그하려면:

WandbLogger.sync(entity="YOUR_TEAM_NAME")

실행을 어떻게 조직화할 수 있나요?

W&B 실행은 자동으로 조직화되며, job 유형, 기본 모델, 학습률, 트레이닝 파일 이름 및 기타 모든 하이퍼파라미터와 같은 모든 설정 파라미터를 기반으로 필터링/정렬할 수 있습니다.

또한, 실행을 이름을 바꾸거나, 노트를 추가하거나 태그를 생성하여 그룹화할 수 있습니다.

만족하면 워크스페이스를 저장하고 실행 및 저장된 아티팩트(트레이닝/검증 파일)에서 데이터를 가져와 리포트를 생성할 수 있습니다.

파인튜닝된 모델에 어떻게 엑세스하나요?

파인튜닝된 모델 ID는 W&B에 아티팩트(model_metadata.json) 및 설정으로 로그됩니다.

import wandb

ft_artifact = wandb.run.use_artifact("ENTITY/PROJECT/model_metadata:VERSION")
artifact_dir = artifact.download()

여기서 VERSION은 다음 중 하나입니다:

  • 버전 번호, 예: v2
  • 파인튜닝 ID, 예: ft-xxxxxxxxx
  • 자동으로 추가되거나 수동으로 추가된 에일리어스, 예: latest

다운로드한 model_metadata.json 파일을 읽음으로써 fine_tuned_model ID에 엑세스할 수 있습니다.

파인튜닝이 성공적으로 동기화되지 않았다면 어떻게 하나요?

파인튜닝이 W&B에 성공적으로 로그되지 않았다면, overwrite=True를 사용하고 파인튜닝 작업 ID를 전달하십시오:

WandbLogger.sync(
fine_tune_job_id="FINE_TUNE_JOB_ID",
overwrite=True,
)

W&B로 데이터셋과 모델을 추적할 수 있나요?

트레이닝 및 검증 데이터는 아티팩트로 자동으로 W&B에 로그됩니다. 파인튜닝된 모델의 ID를 포함한 메타데이터도 아티팩트로 로그됩니다.

wandb.Artifact, wandb.log 등과 같은 저수준 wandb API를 사용하여 파이프라인을 항상 제어할 수 있습니다. 이를 통해 데이터와 모델의 완전한 추적성을 확보할 수 있습니다.

리소스

Was this page helpful?👍👎