View a markdown version of this page

OpenAI APIs 사용하여 개방형 가중치 모델에 대한 미세 조정 작업 생성 및 관리 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

OpenAI APIs 사용하여 개방형 가중치 모델에 대한 미세 조정 작업 생성 및 관리

OpenAI 호환 미세 조정 작업 APIs 사용하면 미세 조정 작업을 생성, 모니터링 및 관리할 수 있습니다. 이 페이지에서는 강화 미세 조정을 위해 이러한 APIs를 사용하는 방법을 강조합니다. 전체 API 세부 정보는 OpenAI 미세 조정 설명서를 참조하세요.

미세 조정 작업 생성

지정된 데이터 세트에서 새 모델을 생성하는 프로세스를 시작하는 미세 조정 작업을 생성합니다. 전체 API 세부 정보는 OpenAI 미세 조정 작업 생성 설명서를 참조하세요.

예제

RFT 메서드를 사용하여 미세 조정 작업을 생성하려면 원하는 메서드의 탭을 선택한 다음 다음 단계를 따릅니다.

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Create fine-tuning job with RFT method job_response = client.fine_tuning.jobs.create( model=MODEL_ID, training_file=training_file_id, # Suffix field is not supported so commenting for now. # suffix="rft-example", # Optional: suffix for fine-tuned model name extra_body={ "method": { "type": "reinforcement", "reinforcement": { "grader": { "type": "lambda", "lambda": { "function": "arn:aws:lambda:us-west-2:123456789012:function:my-reward-function" # Replace with your Lambda ARN } }, "hyperparameters": { "n_epochs": 1, # Number of training epochs "batch_size": 4, # Batch size "learning_rate_multiplier": 1.0 # Learning rate multiplier } } } } ) # Store job ID for next steps job_id = job_response.id print({job_id})
HTTP request

에 POST 요청/v1/fine_tuning/jobs:

curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "training_file": "file-abc123", "model": "gpt-4o-mini", "method": { "type": "reinforcement", "reinforcement": { "grader": { "type": "lambda", "lambda": { "function": "arn:aws:lambda:us-west-2:123456789012:function:my-grader" } }, "hyperparameters": { "n_epochs": 1, "batch_size": 4, "learning_rate_multiplier": 1.0 } } } }'

미세 조정 이벤트 나열

미세 조정 작업에 대한 이벤트를 나열합니다. 미세 조정 이벤트는 훈련 지표, 체크포인트 생성, 오류 메시지 등 작업 진행 상황에 대한 자세한 정보를 제공합니다. 전체 API 세부 정보는 OpenAI 미세 조정 이벤트 나열 설명서를 참조하세요.

예제

미세 조정 이벤트를 나열하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # List fine-tuning events events = client.fine_tuning.jobs.list_events( fine_tuning_job_id="ftjob-abc123", limit=50 ) for event in events.data: print(f"[{event.created_at}] {event.level}: {event.message}") if event.data: print(f" Metrics: {event.data}")
HTTP request

에 GET 요청/v1/fine_tuning/jobs/{fine_tuning_job_id}/events:

curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=50

이벤트에는 다음과 같은 정보가 포함됩니다.

  • 훈련 시작 및 완료 메시지

  • 체크포인트 생성 알림

  • 각 단계의 훈련 지표(손실, 정확도)

  • 작업이 실패할 경우 오류 메시지

모든 이벤트를 페이지 매김하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Paginate through all events all_events = [] after = None while True: events = client.fine_tuning.jobs.list_events( fine_tuning_job_id="ftjob-abc123", limit=100, after=after ) all_events.extend(events.data) if not events.has_more: break after = events.data[-1].id
HTTP request

after 파라미터를 사용하여 여러 GET 요청을 수행합니다.

# First request curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=100 # Subsequent requests with 'after' parameter curl "https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=100&after=ft-event-abc123"

미세 조정 작업 검색

미세 조정 작업에 대한 자세한 정보를 가져옵니다. 전체 API 세부 정보는 OpenAI 미세 조정 작업 검색 설명서를 참조하세요.

예제

특정 작업 세부 정보를 검색하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Retrieve specific job details job_details = client.fine_tuning.jobs.retrieve(job_id) # Print raw response print(json.dumps(job_details.model_dump(), indent=2))
HTTP request

에 GET 요청을 합니다/v1/fine_tuning/jobs/{fine_tuning_job_id}.

curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123 \ -H "Authorization: Bearer $OPENAI_API_KEY"

미세 조정 작업 나열

페이지 매김 지원이 포함된 조직의 미세 조정 작업을 나열합니다. 전체 API 세부 정보는 OpenAI 미세 조정 작업 나열 설명서를 참조하세요.

예제

제한 및 페이지 매김이 있는 미세 조정 작업을 나열하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # List fine-tuning jobs with limit and pagination response = client.fine_tuning.jobs.list( limit=20 # Maximum number of jobs to return ) # Print raw response print(json.dumps(response.model_dump(), indent=2))
HTTP request

에 GET 요청/v1/fine_tuning/jobs:

curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs?limit=20 \ -H "Authorization: Bearer $OPENAI_API_KEY"

미세 조정 작업 취소

진행 중인 미세 조정 작업을 취소합니다. 취소한 후에는 작업을 재개할 수 없습니다. 전체 API 세부 정보는 OpenAI 미세 조정 작업 취소 설명서를 참조하세요.

예제

미세 조정 작업을 취소하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Cancel fine-tuning job cancel_response = client.fine_tuning.jobs.cancel("ftjob-abc123") print(f"Job ID: {cancel_response.id}") print(f"Status: {cancel_response.status}") # Should be "cancelled"
HTTP request

에 POST 요청/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel:

curl -X POST https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/cancel \ -H "Authorization: Bearer $OPENAI_API_KEY"

미세 조정 체크포인트 나열

미세 조정 작업에 대한 체크포인트를 나열합니다. 체크포인트는 다양한 훈련 단계에서 성능을 평가하는 추론에 사용할 수 있는 미세 조정 중에 생성되는 중간 모델 스냅샷입니다. 자세한 내용은 OpenAI 미세 조정 체크포인트 나열 설명서를 참조하세요.

예제

미세 조정 작업에 대한 체크포인트를 나열하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # List checkpoints for a fine-tuning job checkpoints = client.fine_tuning.jobs.checkpoints.list( fine_tuning_job_id="ftjob-abc123", limit=10 ) for checkpoint in checkpoints.data: print(f"Checkpoint ID: {checkpoint.id}") print(f"Step: {checkpoint.step_number}") print(f"Model: {checkpoint.fine_tuned_model_checkpoint}") print(f"Metrics: {checkpoint.metrics}") print("---")
HTTP request

에 GET 요청/v1/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints:

curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/checkpoints?limit=10

각 체크포인트에는 다음이 포함됩니다.

  • 체크포인트 ID - 체크포인트의 고유 식별자

  • 단계 번호 - 체크포인트가 생성된 훈련 단계

  • 모델 체크포인트 - 추론에 사용할 수 있는 모델 식별자

  • 지표 -이 체크포인트의 검증 손실 및 정확도

추론에 체크포인트 모델을 사용하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Test inference with a checkpoint response = client.chat.completions.create( model=checkpoint.fine_tuned_model_checkpoint, messages=[{"role": "user", "content": "What is AI?"}], max_tokens=100 ) print(response.choices[0].message.content)
HTTP request

에 POST 요청/v1/chat/completions:

curl https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "ft:gpt-4o-mini:openai:custom:7p4lURel:ckpt-step-1000", "messages": [{"role": "user", "content": "What is AI?"}], "max_tokens": 100 }'

미세 조정된 모델을 사용하여 추론 실행

미세 조정 작업이 완료되면 응답 API 또는 채팅 완료 API를 통해 추론에 미세 조정된 모델을 사용할 수 있습니다. 전체 API 세부 정보는 섹션을 참조하세요OpenAI APIs 사용하여 응답 생성.

응답 API

미세 조정된 모델과 함께 단일 턴 텍스트 생성에 응답 API를 사용합니다.

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Get the fine-tuned model ID job_details = client.fine_tuning.jobs.retrieve("ftjob-abc123") if job_details.status == 'succeeded' and job_details.fine_tuned_model: fine_tuned_model = job_details.fine_tuned_model print(f"Using fine-tuned model: {fine_tuned_model}") # Run inference with Responses API response = client.completions.create( model=fine_tuned_model, prompt="What is the capital of France?", max_tokens=100, temperature=0.7 ) print(f"Response: {response.choices[0].text}") else: print(f"Job status: {job_details.status}") print("Job must be in 'succeeded' status to run inference")
HTTP request

에 POST 요청/v1/completions:

curl https://bedrock-mantle.us-west-2.api.aws/v1/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "ft:gpt-4o-mini:openai:custom-model:7p4lURel", "prompt": "What is the capital of France?", "max_tokens": 100, "temperature": 0.7 }'

채팅 완료 API

채팅 완료 API를 사용하여 미세 조정된 모델과의 대화형 상호 작용을 수행합니다.

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Get the fine-tuned model ID job_details = client.fine_tuning.jobs.retrieve("ftjob-abc123") if job_details.status == 'succeeded' and job_details.fine_tuned_model: fine_tuned_model = job_details.fine_tuned_model print(f"Using fine-tuned model: {fine_tuned_model}") # Run inference inference_response = client.chat.completions.create( model=fine_tuned_model, messages=[ {"role": "user", "content": "What is the capital of France?"} ], max_tokens=100 ) print(f"Response: {inference_response.choices[0].message.content}") else: print(f"Job status: {job_details.status}") print("Job must be in 'succeeded' status to run inference")
HTTP request

에 POST 요청/v1/chat/completions:

curl https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "ft:gpt-4o-mini:openai:custom-model:7p4lURel", "messages": [ {"role": "user", "content": "What is the capital of France?"} ], "max_tokens": 100 }'