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 }'

微調整されたモデルで推論を実行する

ファインチューニングジョブが完了したら、 Responses API または Chat Completions API を使用して、ファインチューニングされたモデルを推論に使用できます。API の詳細については、「」を参照してくださいOpenAI APIsを使用してレスポンスを生成する

レスポンス API

Responses 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 }'