

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Sempurnakan model bobot terbuka menggunakan -kompatibel OpenAI APIs
<a name="fine-tuning-openai-apis"></a>

Amazon Bedrock menyediakan endpoint API yang OpenAI kompatibel untuk model foundation fine-tuning. Titik akhir ini memungkinkan Anda menggunakan alat yang familiar OpenAI SDKs dan alat untuk membuat, memantau, dan mengelola pekerjaan fine-tuning dengan model Amazon Bedrock. Halaman ini menyoroti penggunaan ini APIs untuk fine-tuning penguatan.

## Kemampuan kunci
<a name="fine-tuning-openai-key-capabilities"></a>
+ **Unggah file pelatihan** — Gunakan Files API untuk mengunggah dan mengelola data pelatihan untuk pekerjaan fine-tuning
+ **Buat pekerjaan fine-tuning — Mulai fine-tuning pekerjaan** dengan data pelatihan khusus dan fungsi hadiah
+ **Daftar dan ambil pekerjaan** — Lihat semua pekerjaan fine-tuning dan dapatkan informasi rinci tentang pekerjaan tertentu
+ **Pantau acara pekerjaan** - Lacak kemajuan fine-tuning melalui log peristiwa terperinci
+ **Akses pos pemeriksaan** - Ambil pos pemeriksaan model menengah yang dibuat selama pelatihan
+ **Inferensi langsung** — Setelah fine-tuning selesai, gunakan model fine-tuned yang dihasilkan untuk inferensi sesuai permintaan melalui Amazon Bedrock yang kompatibel dengan OpenAI (API respons/penyelesaian obrolan) tanpa langkah penerapan tambahan APIs 
+ **Migrasi mudah** - Kompatibel dengan basis kode OpenAI SDK yang ada

## Alur kerja fine-tuning penguatan untuk model bobot terbuka
<a name="fine-tuning-openai-workflow"></a>

Sebelum melakukan fine-tuning, pastikan Anda memiliki prasyarat karena Amazon Bedrock memerlukan izin khusus untuk membuat dan mengelola proses fine-tuning. Untuk informasi keamanan dan izin yang komprehensif, lihat[Akses dan keamanan untuk model berbobot terbuka](rft-open-weight-access-security.md).

Jalankan fine-tuning penguatan untuk model berbobot terbuka dalam 5 langkah:

1. **Unggah Dataset Pelatihan** — Gunakan Files API untuk mengunggah prompt dalam format yang diperlukan (misalnya, JSONL) dengan tujuan “fine-tune” sebagai kumpulan data pelatihan fine-tuning penguatan. Untuk informasi selengkapnya, lihat [Siapkan data untuk model berbobot terbuka](rft-prepare-data-open-weight.md).

1. **Konfigurasi Fungsi Hadiah** — Tentukan grader untuk menilai respons model berdasarkan kebenaran, struktur, nada, atau tujuan lain menggunakan fungsi Lambda. Untuk informasi selengkapnya, lihat [Menyiapkan fungsi hadiah untuk model berbobot terbuka](reward-functions-open-weight.md).

1. **Buat Fine-tuning Job** — Luncurkan pekerjaan fine-tuning penguatan menggunakan OpenAI API yang kompatibel dengan menentukan model dasar, kumpulan data, fungsi reward, dan pengaturan opsional lainnya seperti hyperparameters. Untuk informasi selengkapnya, lihat [Buat pekerjaan fine-tuning](fine-tuning-openai-job-create.md#fine-tuning-openai-create-job).

1. **Pantau Kemajuan Pelatihan** — Lacak status pekerjaan, acara, dan metrik pelatihan menggunakan pekerjaan fine-tuning. APIs Untuk informasi selengkapnya, lihat [Daftar acara fine-tuning](fine-tuning-openai-job-create.md#fine-tuning-openai-list-events). Akses pos pemeriksaan model perantara untuk mengevaluasi kinerja pada tahap pelatihan yang berbeda, lihat[Daftar pos pemeriksaan fine-tuning](fine-tuning-openai-job-create.md#fine-tuning-openai-list-checkpoints).

1. **Jalankan Inferensi** — Gunakan ID model yang disetel dengan baik secara langsung untuk inferensi melalui Respons atau Penyelesaian Obrolan yang kompatibel dengan Amazon Bedrock. OpenAI APIs Untuk informasi selengkapnya, lihat [Jalankan inferensi dengan model yang disetel dengan baik](fine-tuning-openai-job-create.md#fine-tuning-openai-inference).

## Wilayah dan titik akhir yang didukung
<a name="fine-tuning-openai-supported-regions"></a>

Tabel berikut menunjukkan model pondasi dan wilayah yang mendukung APIs fine-tuning yang OpenAI kompatibel:


**Model dan wilayah yang didukung untuk fine-tuning yang OpenAI kompatibel APIs**  

| Penyedia | Model | ID Model | Nama wilayah | Wilayah | Titik akhir | 
| --- | --- | --- | --- | --- | --- | 
| OpenAI | GPT-OSS-20b | openai.gpt-oss-20b | AS Barat (Oregon) | us-west-2 | batuan-mantle.us-west-2.api.aws | 
| Qwen | Qwen3 32B | qwen.qwen3-32b | AS Barat (Oregon) | us-west-2 | batuan-mantle.us-west-2.api.aws | 

# Akses dan keamanan untuk model berbobot terbuka
<a name="rft-open-weight-access-security"></a>

Sebelum Anda memulai reinforcement fine-tuning (RFT), pastikan Anda memahami jenis akses yang dibutuhkan Amazon Bedrock untuk operasi khusus RFT. RFT memerlukan izin tambahan di luar fine-tuning standar karena kemampuan eksekusi fungsi reward.

## Prasyarat
<a name="fine-tuning-openai-prereq"></a>

Sebelum menggunakan fine-tuning yang OpenAI kompatibel dengan Amazon Bedrock APIs, pastikan Anda memiliki yang berikut:

1.  AWS Akun dengan izin yang sesuai untuk mengakses Amazon Bedrock

1. **Otentikasi** - Anda dapat mengautentikasi menggunakan:
   + Kunci Amazon Bedrock API (diperlukan untuk OpenAI SDK dan tersedia untuk permintaan HTTP)
   + AWS kredensil (didukung untuk permintaan HTTP)
**catatan**  
[Jika Anda menggunakan kunci API jangka pendek/jangka panjang Amazon Bedrock, pastikan peran Anda memiliki akses ke izin kebijakan IAM berikut: dan Peran. `AmazonBedrockMantleFullAccess` AWSLambda](https://docs.aws.amazon.com/bedrock/latest/ug/rft-open-weight-access-security#openai-fine-tuning-lambda-permissions)

1. **OpenAISDK (opsional)** - Instal SDK OpenAI Python jika menggunakan permintaan berbasis SDK.

1. **Variabel lingkungan** - Mengatur variabel lingkungan berikut:
   + `OPENAI_API_KEY`— Setel ke kunci API Amazon Bedrock Anda
   + `OPENAI_BASE_URL`— Setel ke titik akhir Amazon Bedrock untuk wilayah Anda (misalnya,) `https://bedrock-mantle.us-west-2.api.aws/v1`

   Untuk informasi selengkapnya, lihat [Respons API](bedrock-mantle.md#bedrock-mantle-responses).

1. **Data pelatihan** diformat sebagai file JSONL dengan tujuan. `fine-tune` Untuk informasi selengkapnya, lihat [Siapkan data untuk model berbobot terbuka](rft-prepare-data-open-weight.md).

## Izin Lambda untuk fungsi hadiah
<a name="openai-fine-tuning-lambda-permissions"></a>

Anda harus menambahkan izin pemanggilan Lambda. Berikut ini menunjukkan contoh kebijakan yang dapat Anda gunakan:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:*:function:reward-function-name"
            ]
        }
    ]
}
```

Anda juga dapat menggunakan model yang dihosting Amazon Bedrock sebagai Hakim untuk menyiapkan fungsi hadiah. Anda perlu menambahkan izin khusus untuk memanggil model dasar ke peran eksekusi Lambda. Di peran lambda, Anda dapat mengonfigurasi kebijakan terkelola ini LLMs untuk penilaian. Lihat [AmazonBedrockLimitedAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockLimitedAccess.html).

Berikut ini adalah contoh untuk menjalankan model foundation Amazon Bedrock sebagai hakim menggunakan Invoke API:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:*:*:foundation-model/*"
            ]
        }
    ]
}
```

# Siapkan data untuk model berbobot terbuka
<a name="rft-prepare-data-open-weight"></a>

Saat Anda menyempurnakan model bobot terbuka dengan penyetelan penguatan menggunakan OpenAI yang kompatibel dengan OpenAI APIs, berikan data pelatihan dengan membawa petunjuk Anda sendiri dalam format JSONL dengan tujuan tersebut. `fine-tune`

## Format dan persyaratan data pelatihan
<a name="rft-data-format-open-weight"></a>

Data pelatihan harus mengikuti format penyelesaian obrolan OpenAI dengan contoh 100-20K. Setiap contoh pelatihan berisi:
+ `messages`: Di bidang ini, sertakan peran pengguna, sistem atau asisten yang berisi prompt input yang diberikan kepada model.
+ `reference_answer`: Di bidang ini, harus berisi output yang diharapkan atau kriteria evaluasi yang digunakan fungsi hadiah Anda untuk menilai respons model. Ini tidak terbatas pada output terstruktur—dapat berisi format apa pun yang membantu fungsi hadiah Anda mengevaluasi kualitas.
+ [Opsional] Anda dapat menambahkan bidang yang digunakan oleh grader Lambda untuk penilaian.

**Persyaratan:**
+ Format JSONL dengan petunjuk dalam format penyelesaian obrolan OpenAI (satu prompt per baris)
+ Tujuan harus diatur ke `fine-tune`
+ Minimal 100 catatan dalam dataset pelatihan
+ Amazon Bedrock secara otomatis memvalidasi format kumpulan data pelatihan

------
#### [ Example: General question-answering ]

```
{
            "messages": [
                {
                    "role": "system", 
                    "content": "You are a helpful assistant"
                },
                {
                    role": "user", 
                    "content": "What is machine learning?"}
            ],
            "reference_answer": "Machine learning is a subset of artificial intelligence that enables computers to learn and make decisions from data without being explicitly programmed."
            }
```

------
#### [ Example: Math problem ]

```
{
  "id": "sample-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  }
}
```

------

## File API
<a name="fine-tuning-openai-files-api"></a>

Anda dapat menggunakan api file yang kompatibel dengan OpenAI untuk mengunggah data pelatihan Anda untuk pekerjaan fine-tuning. File disimpan dengan aman di Amazon Bedrock, dan digunakan saat membuat pekerjaan fine-tuning. Untuk detail API selengkapnya, lihat [dokumentasi OpenAI File](https://platform.openai.com/docs/api-reference/files).

### Unggah file pelatihan
<a name="fine-tuning-openai-upload-file"></a>

Untuk mengunggah file pelatihan, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Upload training file
with open(TRAINING_FILE_PATH, 'rb') as f:
    file_response = client.files.create(
        file=f,
        purpose='fine-tune'
    )

# Store file ID for next steps
training_file_id = file_response.id
print(f"✅ Training file uploaded successfully: {training_file_id}")
```

------
#### [ HTTP request ]

Buat permintaan POST untuk`/v1/files`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F purpose="fine-tune" \
  -F file="@training_data.jsonl"
```

------

### Ambil detail file
<a name="fine-tuning-openai-retrieve-file"></a>

Untuk mengambil detail tentang file tertentu, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Retrieve file details
file_details = client.files.retrieve(training_file_id)

# Print raw response
print(json.dumps(file_details.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Buat permintaan GET untuk`/v1/files/{file_id}`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

### Daftar file
<a name="fine-tuning-openai-list-files"></a>

Untuk mencantumkan file yang diunggah, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List files
files_response = client.files.list(purpose='fine-tune')

# Print raw response
print(json.dumps(files_response.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Buat permintaan GET untuk`/v1/files`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files?purpose=fine-tune \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

### Hapus berkas
<a name="fine-tuning-openai-delete-file"></a>

Untuk menghapus file, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Delete file
delete_response = client.files.delete(training_file_id)
```

------
#### [ HTTP request ]

Buat permintaan DELETE ke`/v1/files/{file_id}`:

```
curl -X DELETE https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Karakteristik data pelatihan yang efektif
<a name="rft-data-characteristics-open-weight"></a>

Data pelatihan RFT yang efektif membutuhkan tiga karakteristik utama:
+ **Kejelasan dan konsistensi** - Gunakan petunjuk yang jelas dan tidak ambigu dengan pemformatan yang konsisten. Hindari label yang kontradiktif, instruksi ambigu, atau jawaban referensi yang bertentangan yang menyesatkan pelatihan.
+ **Keragaman** — Sertakan beragam format input, kasus tepi, dan tingkat kesulitan yang mencerminkan pola penggunaan produksi di berbagai jenis dan skenario pengguna.
+ **Fungsi hadiah yang efisien** — Merancang fungsi yang dijalankan dengan cepat (detik, bukan menit), sejajar dengan AWS Lambda, dan mengembalikan skor yang konsisten untuk pelatihan hemat biaya.

## Properti tambahan
<a name="rft-additional-properties-open-weight"></a>

Format data RFT mendukung bidang khusus di luar persyaratan skema inti (`messages`dan`reference_answer`). Fleksibilitas ini memungkinkan Anda untuk menambahkan data tambahan apa pun yang dibutuhkan fungsi hadiah Anda untuk evaluasi yang tepat.

**catatan**  
Anda tidak perlu mengonfigurasi ini dalam resep Anda. Format data secara inheren mendukung bidang tambahan. Cukup sertakan mereka dalam data pelatihan Anda JSON, dan mereka akan diteruskan ke fungsi hadiah Anda di `metadata` lapangan.

**Properti tambahan umum**
+ `task_id`— Pengidentifikasi unik untuk melacak
+ `difficulty_level`— Indikator kompleksitas masalah
+ `domain`— Bidang subjek atau kategori
+ `expected_reasoning_steps`— Jumlah langkah dalam solusi

Bidang tambahan ini diteruskan ke fungsi hadiah Anda selama evaluasi, memungkinkan logika penilaian canggih yang disesuaikan dengan kasus penggunaan spesifik Anda.

**Contoh dengan properti tambahan**

------
#### [ Chemistry problem ]

```
{
  "id": "chem-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful chemistry assistant"
    },
    {
      "role": "user",
      "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C"
    }
  ],
  "reference_answer": {
    "donor_bond_counts": 2,
    "acceptor_bond_counts": 4
  }
}
```

`reference_answer`Bidang berisi output yang diharapkan atau kriteria evaluasi yang digunakan fungsi hadiah Anda untuk menilai respons model. Ini tidak terbatas pada output terstruktur—dapat berisi format apa pun yang membantu fungsi hadiah Anda mengevaluasi kualitas.

------
#### [ Math problem with metadata ]

```
{
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  },
  "task_id": "algebra_001",
  "difficulty_level": "easy",
  "domain": "algebra",
  "expected_reasoning_steps": 3
}
```

------

# Menyiapkan fungsi hadiah untuk model berbobot terbuka
<a name="reward-functions-open-weight"></a>

Fungsi penghargaan mengevaluasi kualitas respons dan memberikan sinyal umpan balik untuk pelatihan model. Anda dapat mengatur fungsi hadiah menggunakan fungsi Lambda khusus. Pilih pendekatan yang sesuai dengan persyaratan tugas Anda.

## Fungsi Lambda Kustom untuk Evaluasi Hadiah
<a name="rft-custom-lambda-functions"></a>

Anda dapat mengatur fungsi hadiah menggunakan fungsi Lambda khusus. Dalam fungsi Lambda Anda, Anda memiliki fleksibilitas dalam cara Anda menerapkan logika evaluasi:
+ **Tugas obyektif** — Untuk tugas obyektif seperti pembuatan kode atau penalaran matematika, gunakan grader berbasis aturan yang dapat diverifikasi yang memeriksa kebenaran terhadap standar atau kasus uji yang diketahui.
+ **Tugas subyektif** — Untuk tugas subjektif seperti mengikuti instruksi atau interaksi chatbot, hubungi model yayasan Amazon Bedrock sebagai juri dalam fungsi Lambda Anda untuk mengevaluasi kualitas respons berdasarkan kriteria Anda.

Fungsi Lambda Anda dapat menerapkan logika kompleks, mengintegrasikan eksternal APIs, melakukan perhitungan multi-langkah, atau menggabungkan beberapa kriteria evaluasi tergantung pada persyaratan tugas Anda.

**catatan**  
Saat menggunakan fungsi Lambda khusus:  
Tingkatkan batas waktu Lambda dari default 3 detik menjadi maksimum 15 menit untuk evaluasi kompleks.
Peran eksekusi Lambda memerlukan izin untuk menjalankan fungsi Lambda seperti yang dijelaskan dalam. [Izin Lambda untuk fungsi hadiah](rft-open-weight-access-security.md#openai-fine-tuning-lambda-permissions)

## Detail implementasi fungsi Lambda
<a name="rft-lambda-implementation-open-weight"></a>

Saat menerapkan fungsi hadiah Lambda khusus, fungsi Anda harus menerima dan mengembalikan data dalam format berikut.

------
#### [ Input structure ]

```
[{
  "id": "123",
  "messages": [
    {
      "role": "user",
      "content": "Do you have a dedicated security team?"
    },
    {
      "role": "assistant",
      "content": "As an AI developed by Amazon, I don not have a dedicated security team..."
    }
  ],
  "metadata": {
    "reference_answer": {
      "compliant": "No",
      "explanation": "As an AI developed by Company, I do not have a traditional security team..."
    },
    "my_key": "sample-001"
  }
}]
```

------
#### [ Output structure ]

```
[{
  "id": "123",
  "aggregate_reward_score": 0.85,
  "metrics_list": [
    {
      "name": "accuracy",
      "value": 0.9,
      "type": "Reward"
    },
    {
      "name": "policy_compliance",
      "value": 0.8,
      "type": "Metric"
    }
  ]
}]
```

------

**Pedoman desain**
+ **Tanggapan peringkat** — Berikan jawaban terbaik dengan skor yang jelas lebih tinggi
+ **Gunakan pemeriksaan yang konsisten** — Evaluasi penyelesaian tugas, kepatuhan format, keamanan, dan panjang yang wajar
+ **Pertahankan penskalaan yang stabil** - Jaga skor tetap normal dan tidak dapat dieksploitasi

# Buat dan kelola pekerjaan fine-tuning untuk model berbobot terbuka menggunakan OpenAI APIs
<a name="fine-tuning-openai-job-create"></a>

Pekerjaan fine-tuning yang kompatibel dengan OpenAI APIs memungkinkan Anda membuat, memantau, dan mengelola pekerjaan fine-tuning. Halaman ini menyoroti penggunaan ini APIs untuk fine-tuning penguatan. Untuk detail API selengkapnya, lihat dokumentasi [OpenAIFine-tuning](https://platform.openai.com/docs/api-reference/fine-tuning).

## Buat pekerjaan fine-tuning
<a name="fine-tuning-openai-create-job"></a>

Membuat pekerjaan fine-tuning yang memulai proses pembuatan model baru dari kumpulan data tertentu. Untuk detail API selengkapnya, lihat dokumentasi [OpenAICreate fine-tuning jobs.](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/create)

### Contoh
<a name="fine-tuning-openai-create-job-examples"></a>

Untuk membuat pekerjaan fine-tuning dengan metode RFT, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ 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 ]

Buat permintaan POST untuk`/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
        }
      }
    }
  }'
```

------

## Daftar acara fine-tuning
<a name="fine-tuning-openai-list-events"></a>

Daftar acara untuk pekerjaan fine-tuning. Acara fine-tuning memberikan informasi terperinci tentang kemajuan pekerjaan Anda, termasuk metrik pelatihan, pembuatan pos pemeriksaan, dan pesan kesalahan. Untuk detail API selengkapnya, lihat dokumentasi [OpenAIDaftarkan acara fine-tuning.](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/list_events)

### Contoh
<a name="fine-tuning-openai-list-events-examples"></a>

Untuk membuat daftar acara fine-tuning, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ 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 ]

Buat permintaan GET untuk`/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
```

------

Acara mencakup informasi seperti:
+ Pelatihan dimulai dan menyelesaikan pesan
+ Pemberitahuan pembuatan pos pemeriksaan
+ Metrik pelatihan (kehilangan, akurasi) di setiap langkah
+ Pesan galat jika pekerjaan gagal

Untuk melakukan paginasi melalui semua acara, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ 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 ]

Buat beberapa permintaan GET dengan `after` parameter:

```
# 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"
```

------

## Ambil pekerjaan fine-tuning
<a name="fine-tuning-openai-retrieve-job"></a>

Dapatkan informasi terperinci tentang pekerjaan fine-tuning. Untuk detail API selengkapnya, lihat [OpenAIMendapatkan dokumentasi lowongan fine-tuning](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/retrieve).

### Contoh
<a name="fine-tuning-openai-retrieve-job-examples"></a>

Untuk mengambil detail pekerjaan tertentu, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ 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 ]

Buat permintaan GET untuk`/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"
```

------

## Daftar pekerjaan fine-tuning
<a name="fine-tuning-openai-list-jobs"></a>

Daftar pekerjaan fine-tuning organisasi Anda dengan dukungan pagination. Untuk detail API selengkapnya, lihat [OpenAIdaftar dokumentasi fine-tuning jobs.](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/list)

### Contoh
<a name="fine-tuning-openai-list-jobs-examples"></a>

Untuk membuat daftar pekerjaan fine-tuning dengan limit dan pagination, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ 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 ]

Buat permintaan GET untuk`/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"
```

------

## Batalkan pekerjaan fine-tuning
<a name="fine-tuning-openai-cancel-job"></a>

Membatalkan pekerjaan fine-tuning yang sedang berlangsung. Setelah dibatalkan, pekerjaan tidak dapat dilanjutkan. Untuk detail API selengkapnya, lihat dokumentasi [OpenAICancel fine-tuning job.](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/cancel)

### Contoh
<a name="fine-tuning-openai-cancel-job-examples"></a>

Untuk membatalkan pekerjaan fine-tuning, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ 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 ]

Buat permintaan POST untuk`/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"
```

------

## Daftar pos pemeriksaan fine-tuning
<a name="fine-tuning-openai-list-checkpoints"></a>

Daftar pos pemeriksaan untuk pekerjaan fine-tuning. Checkpoint adalah snapshot model perantara yang dibuat selama fine-tuning yang dapat digunakan untuk inferensi guna mengevaluasi kinerja pada tahap pelatihan yang berbeda. Untuk informasi selengkapnya, lihat dokumentasi [OpenAIdaftar fine-tuning checkpoints.](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/subresources/checkpoints/methods/list)

### Contoh
<a name="fine-tuning-openai-list-checkpoints-examples"></a>

Untuk membuat daftar pos pemeriksaan untuk pekerjaan fine-tuning, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ 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 ]

Buat permintaan GET untuk`/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
```

------

Setiap pos pemeriksaan meliputi:
+ **Checkpoint ID** - Pengidentifikasi unik untuk pos pemeriksaan
+ **Nomor langkah** — Langkah pelatihan di mana pos pemeriksaan dibuat
+ **Pos pemeriksaan model** — Pengidentifikasi model yang dapat digunakan untuk inferensi
+ **Metrik — Kehilangan** dan akurasi validasi di pos pemeriksaan ini

Untuk menggunakan model pos pemeriksaan untuk inferensi, pilih tab untuk metode pilihan Anda, lalu ikuti langkah-langkahnya:

------
#### [ 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 ]

Buat permintaan POST untuk`/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
  }'
```

------

## Jalankan inferensi dengan model yang disetel dengan baik
<a name="fine-tuning-openai-inference"></a>

Setelah pekerjaan fine-tuning selesai, Anda dapat menggunakan model fine-tuned untuk inferensi melalui Responses API atau Chat Completions API. Untuk detail API selengkapnya, lihat[Hasilkan tanggapan menggunakan OpenAI APIs](bedrock-mantle.md).

### Respons API
<a name="fine-tuning-openai-responses-api"></a>

Gunakan Responses API untuk pembuatan teks satu putaran dengan model yang disetel dengan baik:

------
#### [ 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 ]

Buat permintaan POST untuk`/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 Penyelesaian Obrolan
<a name="fine-tuning-openai-inference-examples"></a>

Gunakan API Penyelesaian Obrolan untuk interaksi percakapan dengan model yang disetel dengan baik:

------
#### [ 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 ]

Buat permintaan POST untuk`/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
  }'
```

------