Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penyetelan penguatan (RFT) adalah teknik untuk meningkatkan model penalaran dengan melatihnya melalui proses berbasis hadiah, alih-alih hanya mengandalkan data berlabel. RFT membantu model mengembangkan keterampilan penalaran dan pemecahan masalah yang lebih baik, terutama dalam kasus di mana contoh berlabel terbatas atau diinginkan perilaku kompleks.
Catatan
Layanan penyesuaian akan menghentikan sementara pekerjaan RFT secara otomatis setelah mencapai $5.000 dalam biaya pelatihan total (pelatihan + evaluasi). Anda dapat menyebarkan titik pemeriksaan terbaru atau melanjutkan pekerjaan pelatihan. Jika Anda memutuskan untuk melanjutkan pekerjaan, penagihan akan berlanjut untuk pekerjaan tersebut tanpa pembatasan berdasarkan biaya lebih lanjut.
Dukungan teknis model
Penyempurnaan penguatan didukung untuk model berikut:
| Model | Versi | Dukungan RFT | Status |
|---|---|---|---|
o4-mini |
2025-04-16 |
Ya | GA |
gpt-5 |
2025-08-07 |
Ya | Pratinjau Pribadi |
Catatan
Dukungan GPT-5 untuk penyempurnaan penguatan berada dalam pratinjau privat dan mungkin tidak tersedia di langganan Anda.
Persyaratan
Penyempurnaan penguatan (RFT) memerlukan data pelatihan dan validasi yang diformat sebagai JSONL dan berisi messages array menggunakan format penyelesaian obrolan.
Namun, RFT memiliki lebih banyak persyaratan:
-
Data
- "Pesan" akhir dalam data harus diberikan peran
user. - Data dapat berisi bidang dan nilai tambahan untuk digunakan oleh grader.
- Pelatihan dan himpunan data validasi harus disediakan.
- "Pesan" akhir dalam data harus diberikan peran
-
Grader
- Penilai harus didefinisikan untuk menilai kualitas model yang dioptimalkan dan memandu pembelajaran.
- Hanya satu grader yang dapat disediakan, tetapi beberapa grader dapat dikombinasikan menggunakan multigrader.
Contoh data pelatihan
Contoh berikut menunjukkan cara menyajikan perintah ke model dan menyertakan kebenaran dasar yang dapat diakses oleh grader.
{
"messages": [
{
"role": "developer",
"content": "Your task is to solve logic puzzles. The user will provide an expression with ?'s as placeholders for arithmetic operations. Replace the ?'s with arithmetic operation signs (+, -, *, /) to obtain a valid equation."
},
{
"role": "user",
"content": "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 = 100"
}
],
"solution": "1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 * 9 = 100"
}
Catatan
Contoh ini dibagi di beberapa baris hanya untuk tujuan demonstrasi. Ini harus berupa satu baris dalam file JSONL Anda.
Grader
Grader menyediakan fungsi hadiah yang digunakan selama pelatihan dan memiliki akses ke bidang yang disediakan pengguna dalam himpunan data. Beberapa jenis grader tersedia:
- perbandingan teks: menilai konten respons berdasarkan teksnya
- model: menilai respons menggunakan model bahasa dan perintah
- kode kustom: menilai respons menggunakan kode kustom
- multigrader: skor berdasarkan kombinasi skor dari grader lain
Sebagian besar grader melakukan substitusi data runtime melalui template. Setiap properti input atau referensi dapat mencakup substitusi variabel yang diapit kurung kurawal ganda ({{ }}) yang berisi referensi ke variabel.
Setiap referensi templat harus diberi namespace menggunakan pola seperti {{ namespace.variable }}. Untuk data berlapis yang kompleks, sintaks seperti jalur JSON didukung.
Namespace berikut didukung:
-
sample- output model yang akan dinilai muncul di bawahsamplenamespace dalam format yang mirip dengan respons penyelesaian obrolan. -
item- bidang tambahan opsional yang disediakan dalam data pelatihan muncul di bawahitemnamespace.
Beberapa contoh penggantian templat yang menggunakan namespace di atas:
-
{{ sample.output_text }}- mengganti output model sebagai string -
{{ sample.output_json }}- jika model menghasilkan output terstruktur, referensikan sebagai JSON -
{{ item.answer }}- ganti bidang "jawaban" dalam himpunan data -
{{ item.ground_truth.date }}- mengganti bidang "tanggal" dari objek "ground_truth" yang ditentukan dalam himpunan data
Bagian berikut mendokumentasikan setiap penilai dan menyediakan spesifikasi JSON mereka untuk menentukan lewat API.
Nilair perbandingan teks
Gunakan pengukur perbandingan teks saat kasus penggunaan memerlukan output model berupa label definitif atau jika output harus menyerupai jawaban benar yang sudah diketahui.
Grader pemeriksaan string
Penguji pemeriksaan string menerapkan operasi tertentu ke input dan referensi untuk mengembalikan 0 atau 1, menyediakan fungsi lulus/gagal sederhana.
{
"type": "string_check",
"name": string,
"operation": "eq" | "ne" | "like" | "ilike",
"input": string,
"reference": string,
}
Operasi:
| Operasi | Mengembalikan 1 ketika | Sensitif terhadap huruf besar/kecil |
|---|---|---|
eq |
Input cocok dengan referensi | Ya |
ne |
Input tidak cocok dengan referensi | Ya |
like |
Input berisi referensi | Ya |
ilike |
Input berisi referensi | Tidak |
Kesamaan teks
Pemberi nilai kesamaan teks menghitung skor berdasarkan algoritma tertentu untuk mengukur kesamaan antara teks input dan teks referensi tertentu.
Spesifikasi:
{
"type": "text_similarity",
"name": string,
"input": string,
"reference": string,
"pass_threshold": number,
"evaluation_metric": "fuzzy_match" | "bleu" | "gleu" | "meteor" | "rouge_1" | "rouge_2" | "rouge_3" | "rouge_4" | "rouge_5" | "rouge_l"
}
Metrik evaluasi:
-
fuzzy_match– kecocokan string fuzzy, menggunakan algoritma RapidFuzz -
bleu– menghitung skor BLEU (bilingual evaluation understudy) di antara string -
gleu– menghitung skor Google BLEU antar string -
meteor– menghitung skor METEOR antara dua string -
rouge-*- seperti yang didefinisikan oleh pustaka Python Rouge
Siswa kelas model
Siswa kelas model mengambil permintaan ke model grader yang menginstruksikan cara mengevaluasi dan menilai respons tertentu. Fleksibilitas ini memungkinkan penerapan rekayasa cepat pada sistem penilaian kompleks yang mendukung penjelasan alasan di balik skor tertentu.
Model berikut dapat digunakan sebagai pengklasifikasi model:
| Model | Dapat digunakan sebagai grader |
|---|---|
gpt-4o-2024-08-06 |
Ya |
o3-mini-2025-01-31 |
Ya |
Catatan
Siswa kelas model tidak memerlukan penyebaran model di Foundry.
Model penilaian
Pemroses skor model menghasilkan skor numerik berdasarkan input dan prompt yang diberikan. Setiap kontrol yang disediakan sampling_params mengontrol perilaku model penilaian dan memungkinkan penyesuaian hal-hal seperti parameter suhu dan usaha penalaran.
{
"type": "score_model",
"name": string,
"input": Message[],
"model": string,
"pass_threshold": number,
"range": number[],
"sampling_params": object
}
Penilai kode
Pengoreksi model fleksibel tetapi tidak deterministik. Ketika Anda membutuhkan penilaian deterministik, gunakan penentu nilai kode sebagai gantinya.
Siswa kelas Python
Grader Python memungkinkan Anda untuk menjalankan kode Python arbitrer untuk menghasilkan skor.
Kode yang disediakan harus menentukan fungsi yang grade mengharapkan dua argumen posisi: sample dan item. Fungsi harus mengembalikan skor numerik.
{
"type": "python",
"name": string,
"source": "def grade(sample, item):\n return 1.0"
}
Kode Python dijalankan di lingkungan yang dibatasi dengan batasan berikut:
| Sumber daya | Batas |
|---|---|
| Ukuran kode | 256 KB |
| Jaringan | Tidak ada akses |
| Memori | 2 GB |
| Ruang disk | 1 GB |
| CPU | 1 inti |
| Runtime | 2 menit |
Tips
Kode Anda harus menangani kemungkinan kesalahan dan selalu mengembalikan nilai numerik. Jika terlalu banyak pengecualian terjadi selama eksekusi grader, pekerjaan pelatihan gagal.
Dalam runtime Python, modul dan versi berikut tersedia untuk digunakan oleh kode yang disediakan:
- numpy==2.2.4
- scipy==1.15.2
- sympy==1.13.3
- pandas==2.2.3
- rapidfuzz==3.10.1
- scikit-learn==1.6.1
- rouge-score==0.1.2
- deepdiff==8.4.2
- jsonschema==4.23.0
- pydantic==2.10.6
- pyyaml==6.0.2
- nltk==3.9.1
- sqlparse==0.5.3
- rdkit==2024.9.6
- scikit-bio==0.6.3
- ast-grep-py==0.36.2
Penilai Titik Akhir (pratinjau)
Pengukur titik akhir memanggil titik akhir jarak jauh melalui API HTTP untuk memberikan skor pada respons model. Mereka ideal untuk kasus penggunaan yang membutuhkan akses ke kebenaran dasar untuk penilaian yang akurat atau kemampuan untuk mengimplementasikan grader dalam bahasa selain Python.
Saat dalam pratinjau privat, API untuk penilai titik akhir belum diterbitkan.
Multigrader
Multigrader menggabungkan keluaran dari beberapa grader untuk menghasilkan satu skor berdasarkan ekspresi aritmatika yang diberikan dalam calculate_output.
{
"type": "multi",
"name": string,
"graders": dict[str, Grader],
"calculate_output": string
}
Saat multigrader menghitung skor, calculate_output ekspresi mereferensikan skor individual dari yang disediakan graders oleh kunci dalam graders objek.
Operator:
| Operator | Deskripsi |
|---|---|
+ |
Penambahan |
- |
Pengurangan |
* |
Perkalian |
/ |
Divisi |
^ |
Kekuatan |
Fungsi:
| Fungsi | Deskripsi |
|---|---|
min |
Menghitung nilai minimum |
max |
Menghitung nilai maksimum |
abs |
Menghitung nilai absolut |
floor |
Membulatkan nilai ke bawah |
ceil |
Membulatkan nilai ke atas |
exp |
e Menghitung ke kekuatan nilai yang disediakan |
sqrt |
Mengambil akar kuadrat dari nilai |
log |
Menghitung logaritma dari nilai yang disediakan |
Sebagai contoh, multigrader yang didefinisikan dengan dua grader, "similarity-score" dan "label-checker," yang harus menghitung rata-rata dari output mereka bisa terlihat seperti:
{
"type": "multi",
"name": "Example multigrader",
"graders": {
"similarity_score": {
"type": "text_similarity",
"name": "similarity grader",
"input": "{{ sample.output_text }}",
"reference": "{{ item.summary }}",
"evaluation_metric": "bleu"
},
"label_checker": {
"type": "string_check",
"name": "label grader",
"input": "{{ sample.output_text }}",
"reference": "{{ item.label }}",
"operation": "eq"
}
},
"calculate_output": "(similarity_score + label_checker) / 2"
}
Format respons (pilihan)
Model dapat dibuat untuk menghasilkan output terstruktur selama pelatihan baik untuk menyelaraskan dengan kasus penggunaan model yang dimaksudkan atau untuk membuat penilaian output lebih mudah.
Konfigurasi format respons mengikuti spesifikasi yang sama dengan Chat Completions, mendukung teks (default) atau JSON. Ketika model harus menghasilkan JSON, Skema JSON harus disediakan.
Untuk melanjutkan dengan contoh sebelumnya, jika model harus menghasilkan respons dalam format terstruktur seperti:
{ "solution": "1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 * 9 = 100" }
Skema JSON berikut menjelaskan format respons:
{
"type": "json_schema",
"name": "puzzles_assistant",
"schema": {
"type" : "object",
"properties": {
"solution": {
"type": "string",
"title": "solution"
}
},
"required": [
"solution",
],
"additionalProperties": false
},
"strict": true
}
Pemilihan hyperparameter
Penyetelan halus penguatan menggunakan hiperparameter yang sama dengan penyetelan halus terawasi. Selain itu, fitur kontrol hyperparameter berikut khusus untuk RFT:
| Nama hyperparameter | Nilai | Bawaan | Deskripsi |
|---|---|---|---|
eval_interval |
bilangan bulat | auto |
Jumlah tahapan pelatihan di antara setiap evaluasi. |
eval_samples |
bilangan bulat | auto |
Jumlah sampel yang akan digunakan selama evaluasi. |
compute_multiplier |
Nomor | auto |
Pengali pada jumlah penggunaan komputasi untuk menjelajahi ruang selama pelatihan. |
reasoning_effort |
low, medium, high |
medium |
Upaya penalaran yang digunakan oleh model selama pelatihan. |
Catatan
Layanan pelatihan secara otomatis mengganti hiperparameter yang diatur ke auto dengan default berdasarkan heuristik pada data pelatihan yang disediakan.
Menginterpretasikan hasil pelatihan
Penyesuaian penguatan lebih lanjut menyediakan evaluasi otomatis dari model selama pelatihan dan metrik pelatihan real-time.
Metrik pelatihan
Saat Anda memantau pekerjaan yang sedang berjalan atau memeriksa pekerjaan yang selesai, metrik "penghargaan" dan "penalaran" memberikan indikator keberhasilan pelatihan.
Hadiah
Metrik hadiah melacak skor yang dihasilkan dari grader yang bertindak sebagai fungsi hadiah.
-
train_reward_mean: hadiah rata-rata di seluruh batch data pelatihan pada langkah tertentu. Karena setiap batch mungkin berbeda di seluruh langkah, tren metrik ini lebih penting daripada membandingkan nilai di seluruh langkah. -
valid_reward_mean: Rata-rata hadiah di antara sampel yang diambil dari himpunan validasi pada satu langkah tertentu.
Metrik imbalan seharusnya umumnya meningkat sepanjang proses pelatihan. Jika mereka menyimpang secara signifikan, itu adalah indikasi bahwa model mungkin melakukan manipulasi sistem penghargaan dan alat penilaian tersebut membutuhkan pengoptimalan lebih lanjut.
Token penalaran
Setiap pekerjaan pelatihan melacak jumlah token penalaran yang dihasilkan oleh model. Metrik token penalaran menangkap bagaimana model mengubah perilakunya selama masa pakai pekerjaan pelatihan.
-
train_reasoning_tokens_mean: jumlah rata-rata token penalaran yang dihasilkan di seluruh batch data pelatihan pada langkah tertentu. -
valid_reasoning_tokens_mean: jumlah rata-rata token penalaran yang dihasilkan di seluruh data validasi pada langkah tertentu.
Model mungkin belajar menggunakan lebih sedikit token penalaran untuk mencapai hadiah yang sama, atau mungkin belajar menggunakan lebih banyak token penalaran untuk mencapai hadiah yang lebih tinggi. Metrik ini biasanya naik dan turun selama pekerjaan pelatihan.
Evaluasi otomatis
Evaluasi dibuat secara otomatis untuk setiap pekerjaan RFT. Pada interval reguler yang ditentukan oleh eval_interval hyperparameter, sistem pelatihan menjalankan evaluasi yang dijalankan menggunakan data validasi. Skor untuk setiap eksekusi tersedia melalui evaluasi tertaut, dapat ditemukan dari antarmuka pengguna Foundry.
Memeriksa evaluasi ini menyediakan informasi tambahan untuk memutuskan sebuah penghentian awal. Jika model menunjukkan pembelajaran selama pelatihan, hasil setiap evaluasi yang dijalankan harus meningkat selama masa pakai pekerjaan.
Contoh proyek dan himpunan data
Contoh demo dan himpunan data berikut menyediakan titik awal untuk pengguna baru penyempurnaan penguatan:
- Countdown Demo - demonstrasi menyeluruh penggunaan RFT untuk meningkatkan penalaran matematika.
- MedMCQ - himpunan data sampel dan grader untuk menjawab pertanyaan pilihan ganda dari domain medis.
- ClauseMatching - himpunan data sampel dan grader yang menampilkan ringkasan dan interpretasi konten di domain hukum.