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.
Penyempurnaan penguatan (RFT) adalah teknik untuk meningkatkan model penalaran seperti o4-mini dengan melatihnya melalui proses berbasis hadiah, daripada hanya mengandalkan data berlabel. Dengan menggunakan umpan balik atau "hadiah" untuk memandu pembelajaran, RFT membantu model mengembangkan keterampilan penalaran dan pemecahan masalah yang lebih baik, terutama dalam kasus di mana contoh berlabel adalah perilaku terbatas atau kompleks yang diinginkan.
Proses
Proses penyempurnaan Penguatan (RFT) mirip dengan penyempurnaan Diawasi (SFT) dengan beberapa perbedaan penting:
-
Pesan sistem Persiapan Data tidak didukung, dan alih-alih pesan
assistant
, pesan akhir dalam data pelatihan Anda adalah jawaban referensi. - Pemilihan model: hanya o4-mini yang mendukung RFT.
- Definisi grader: RFT memerlukan penggunaan grader untuk menilai kualitas model yang disetel dengan baik dan memandu pembelajaran. Anda dapat menggunakan pemeriksaan string, kesamaan teks, atau penilai berbasis model – atau menggabungkannya dengan penilai multi-sistem.
-
Pelatihan: mencakup parameter tambahan:
eval_samples
, ,eval_interval
,reasoning_effort
dancompute_multiplier
. Anda juga memiliki opsi untuk menjeda dan melanjutkan pekerjaan, memungkinkan Anda menjeda pelatihan, memeriksa titik pemeriksaan, dan hanya melanjutkan jika pelatihan lebih lanjut diperlukan. - Evaluasi: Selain akurasi dan kehilangan, RFT mengembalikan rata-rata imbalan dan kesalahan penguraian, serta rata-rata token.
Sepanjang proses pelatihan, platform melakukan iterasi atas himpunan data, menghasilkan beberapa respons untuk setiap permintaan. Respons ini kemudian dievaluasi oleh grader, dan pembaruan gradien kebijakan diterapkan berdasarkan skor yang diterima. Siklus ini berulang sampai data pelatihan sepenuhnya diproses atau pekerjaan dihentikan pada titik pemeriksaan tertentu, pada akhirnya menghasilkan model yang disempurnakan untuk metrik yang Anda inginkan.
Namun, terlepas dari perbedaan ini, ada banyak kesamaan antara SFT dan RFT: persiapan data adalah kunci; pekerjaan pelatihan tanpa server dapat dimulai melalui UI Foundry; dan kami mendukung penyebaran standar dan global.
Persyaratan penyusunan file pelatihan dan evaluasi
Diperlukan file pelatihan dan validasi untuk menjalankan RFT o4-mini. o4-mini menggunakan format data baru untuk penyempurnaan penguatan. Ini harus berupa file jsonl, seperti apa yang digunakan untuk penyetelan halus yang diawasi (SFT).
Setiap baris file harus berisi bidang pesan, dengan beberapa perbedaan dengan SFT:
- Pesan sistem tidak didukung
- Pesan akhir harus berasal dari pengguna, bukan asisten (seperti halnya untuk SFT)
-
Tools
,response_formats
, didukung - Gambar/data multimodal tidak didukung
Setiap baris dalam file data JSONL harus berisi array pesan, bersama dengan bidang tambahan yang diperlukan untuk menilai output dari model. Nilai ini harus berupa objek JSON yang valid (misalnya, kamus atau daftar; jenis dan struktur tertentu bergantung pada grader yang Anda pilih).
Contoh data pelatihan
Jika kita memberikan model teka-teki untuk dipecahkan dalam format pelatihan RFT yang diperlukan, itu adalah sebagai berikut:
"messages": [
{
"role": "user",
"content": "You are a helpful assistant. Your task is to solve the following logic and puzzle quiz:\n\n2. In the expression 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 = 100, replace the asterisks with arithmetic operation signs to obtain a correct equation."
}
],
"solution": "Solution. 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 \\cdot 9 = 100.\n\nEvaluation. 12 points for the correct solution.",
"final_answer": "1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 \\cdot 9 = 100"
}
Kami telah memperluas teks di atas dari satu baris jsonl
, sehingga Anda dapat melihat bidang yang diharapkan: pesan, peran, konten, dan final_answer
.
Ukuran himpunan data untuk RFT
Mulailah dengan himpunan data kecil, yang terdiri dari beberapa lusin hingga beberapa ratus contoh, untuk mengevaluasi kemanjuran RFT sebelum berkomitmen pada himpunan data yang lebih besar. Untuk alasan keamanan, set pelatihan harus menjalani proses penyaringan otomatis, yang dimulai ketika pekerjaan penyempurnaan dimulai, bukan setelah pengunggahan file. Setelah file berhasil melewati penyaringan, file dapat digunakan berulang kali tanpa penundaan.
Contoh berkualitas tinggi sangat penting, bahkan dalam jumlah terbatas. Setelah penyaringan, peningkatan volume data menguntungkan, asalkan mempertahankan kualitas tinggi. Himpunan data yang lebih besar mengizinkan penggunaan ukuran batch yang lebih tinggi, yang umumnya meningkatkan stabilitas pelatihan.
File pelatihan mungkin berisi maksimum 50.000 contoh, sementara himpunan data pengujian dapat mencakup hingga 1.000 contoh. Kedua jenis himpunan data tunduk pada penyaringan otomatis
Membuat tugas penyesuaian halus
Anda dapat membuat pekerjaan pelatihan untuk RFT o4-mini di Azure AI Foundry dengan cara yang sama seperti Anda akan menyempurnakan model lain: Pilih penyempurnaan di wilayah yang didukung dan pilih o4-mini sebagai model dasar Anda.
Pemilihan hyperparameter
Bagian hiperparameter dari metode penguatan mendukung semua hiperparameter pelatihan reguler (misalnya, tingkat pembelajaran, jumlah epoch, dan ukuran batch), serta tiga hiperparameter baru:
Nama hyperparameter | Nilai | Deskripsi |
---|---|---|
Eval_samples : |
1-10 | Jumlah sampel yang akan digunakan selama evaluasi. Metrik hadiah untuk pembagian validasi akan dirata-ratakan di berbagai sampel untuk setiap poin data. Pengaturan awal adalah 5. |
Eval_interval |
1-25 | Jumlah langkah pelatihan antara evaluasi melalui file validasi yang disediakan. Pengaturan awal adalah 1. |
Compute-multiplier |
0.5 -3.0 | Faktor pengali pada jumlah penggunaan komputasi untuk menjelajahi ruang pencarian selama pelatihan. Peningkatan akan mengakibatkan lebih banyak sampel yang digulirkan per instans. Terlalu rendah kemungkinan kurang cocok, terlalu tinggi akan rentan terhadap terlalu cocok. |
Reasoning_effort |
Rendah, Sedang, Tinggi | Jumlah upaya yang harus model curahkan dalam penalaran. Default ke upaya menengah. Jika kinerja buruk, pertimbangkan untuk meningkatkan usaha penalaran. |
Nota
Jika metode disediakan, bidang hiperparameter tingkat atas akan diabaikan. Jika Anda ingin mengatur parameter pelatihan reguler dan penguatan, atur kedua parameter tersebut di bagian hiperparameter penguatan.
Petunjuk / Saran
Semua nilai ini bersifat opsional, dan kami menyarankan pengguna untuk memulai pekerjaan pertama Anda dengan nilai default sebelum menyesuaikan hiperparameter.
Para pemeriksa
RFT unik karena menggunakan penilai untuk menilai kualitas respons model untuk mengajarkan model cara bernalar. Tidak seperti SFT, pesan akhir bukan dari asisten - sebagai gantinya kami mengambil sampel model dan menggunakan grader pada setiap sampel untuk menilai kualitasnya. Kami kemudian berlatih berdasarkan skor tersebut untuk meningkatkan performa model.
Secara efektif, grader adalah fungsi yang membandingkan jawaban referensi dari file pelatihan Anda dengan respons sampel.
Penilai:
- Mengembalikan angka titik mengambang antara 0 dan 1. Bermanfaat untuk memberikan kredit sebagian kepada model untuk jawaban, daripada menggunakan sistem biner 0/1.
- Grader ditentukan sebagai JSON (lihat di bawah)
Grader yang didukung
Kami mendukung tiga jenis grader: Pemeriksaan string, Kesamaan teks, Grader model. Ada juga opsi pada Multi-graders untuk menggunakan grader secara kombinasi.
Grader pemeriksaan string
Gunakan operasi string dasar ini untuk mengembalikan 0
atau 1
.
Spesifikasi:
{
"type": "string_check",
"name": string,
"operation": "eq" | "ne" | "like" | "ilike",
"input": string,
"reference": string,
}
Operasi yang didukung:
-
eq
: Mengembalikan 1 jika input cocok dengan referensi (peka huruf besar/kecil), 0 jika tidak -
neq
: Mengembalikan 1 jika input tidak cocok dengan referensi (peka huruf besar/kecil), 0 jika tidak -
like
: Mengembalikan 1 jika input berisi referensi (peka huruf besar/kecil), 0 jika tidak -
ilike
: Mengembalikan 1 jika input berisi referensi (tidak peka huruf besar/kecil), 0 jika tidak
Kesamaan teks
Untuk mengevaluasi seberapa dekat output yang dihasilkan model dengan referensi, dinilai dengan berbagai metrik evaluasi.
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"
}
Operasi yang didukung:
-
bleu
– menghitung skor BLEU antar string -
Fuzzy_match
– kecocokan string fuzzy, menggunakan rapidfuzz -
gleu
– menghitung skor google BLEU antar string -
meteor
– menghitung skor METEOR antar string -
rouge-*
- seperti yang didefinisikan oleh pustaka Python rouge
Model Penilaian
Ini adalah Model Grader tempat Anda dapat menggunakan LLM untuk menilai output pelatihan.
Model-model yang kami dukung sebagai model penilai adalah:
gpt-4o-2024-08-06
o3-mini-2025-01-31
{
"type": "score_model",
"name": string,
"input": Message[],
"model": string,
"pass_threshold": number,
"range": number[],
"sampling_params": {
"seed": number,
"top_p": number,
"temperature": number,
"max_completions_tokens": number,
"reasoning_effort": "low" | "medium" | "high"
}
}
Untuk menggunakan model penilaian skor, masukan adalah daftar pesan percakapan obrolan, yang masing-masing berisi peran dan isi. Keluaran grader akan dipotong sesuai rentang yang diberikan dan diatur ke nilai default 0 untuk semua keluaran non-numerik.
Multi Grader
Objek multigrader adalah penggabungan output dari berbagai penilai untuk menghasilkan satu skor.
{
"type": "multi",
"graders": dict[str, Grader],
"calculate_output": string,
"invalid_grade": float
}
Operasi yang didukung:
Operator :
-
+
(tambahan) -
-
(pengurangan) -
*
(perkalian) -
/
(divisi) -
^
(daya)
Fungsi:
min
max
abs
floor
ceil
exp
sqrt
log
Saat menggunakan UX, Anda dapat menulis prompt dan menghasilkan format penilaian serta respons yang valid dalam json sebagaimana diperlukan. Grader adalah bidang wajib yang akan dimasukkan saat mengirimkan pekerjaan penyempurnaan. Format respons bersifat opsional.
Penting
Menghasilkan skema grader yang benar memerlukan penulisan prompt yang cermat. Anda mungkin menemukan bahwa beberapa upaya pertama Anda menghasilkan skema yang tidak valid atau tidak membuat skema yang akan menangani data pelatihan Anda dengan benar. Grader adalah bidang wajib yang harus dimasukkan saat mengirimkan tugas penyempurnaan. Format respons bersifat opsional.
Berikut adalah contoh grader untuk setiap kategori:
string-check-grader - gunakan operasi string sederhana untuk mengembalikan 0 atau 1.
Contoh:
{
"name": "string_check_sample_grader",
"type": "string_check",
"input": "{{item.reference_answer}}",
"reference": "{{sample.output_text}}",
"operation": "eq"
}
Kesamaan teks - Mengevaluasi seberapa dekat output yang dihasilkan model dengan referensi, dinilai dengan berbagai metrik evaluasi.
{
"name": "text_similarity_sample_grader",
"type": "text_similarity",
"input": "{{item.reference_answer}}",
"reference": "{{sample.output_text}}", "evaluation_metric":"fuzzy_match"
}
Model Skor - Ini adalah Model Grader tempat Anda dapat menggunakan LLM untuk menilai output pelatihan.
Model yang kami dukung sebagai model grader adalah gpt-4o-2024-08-06
dan o3-mini-2025-01-31
.
{
"name": "score_model_sample_grader",
"type": "score_model",
"input": [ {
"role": "user",
"content": "Score\nhow close the reference answer is to the model answer. You will be comparing these\ntwo as JSON objects that contain 2 keys, \"extracted_text\" and\n\"clause_type\". Score 1.0 if they are both the same, 0.5 if one is\nthe same, and 0.0 if neither are the same. Return just a floating point\nscore\n\n Reference answer: {\"extracted_text\": \n{{item.extracted_text}}, \"clause_type\": {{item.clause_type}}}\n\n\nModel answer: {{sample.output_json}}"}],
"model": "gpt-4o-2024-08-06",
"sampling_params": {"seed": 42}
}
Multi Grader - Objek multigrader menggabungkan output dari beberapa grader untuk menghasilkan satu skor.
{
"name":"sample_multi_grader",
"type":"multi",
"graders":{"ext_text_similarity":{"name":"ext_text_similarity",
"type":"text_similarity",
"input":"{{sample.output_json.ext_text}}",
"reference":"{{item.ext_text}}",
"evaluation_metric":"fuzzy_match"},
"clause_string_check":{"name":"clause_string_check",
"type":"string_check",
"input":"{{sample.output_json.clause_type}}",
"operation":"eq",
"reference":"{{item.clause_type}}"}},
"calculate_output":"0.5 * ext_text_similarity + 0.5 * clause_string_check"
}
Nota
: Saat ini kami tidak mendukung multi
dengan model grader sebagai sub grader.
Multi
grader hanya didukung dengan text_Similarity
dan string_check
.
Contoh format respons yang merupakan bidang opsional:
Jika kita memerlukan respons untuk masalah teka-teki yang sama yang digunakan dalam contoh data pelatihan, maka dapat menambahkan format respons seperti yang ditunjukkan di bawah ini di mana bidang 'solusi' dan 'jawaban akhir' dibagikan dalam output terstruktur.
{
"type": "json_schema",
"name": "puzzles_assistant",
"schema": {
"type" : "object",
"properties": {
"solution": {
"type": "string",
"title": "solution"
},
"final_answer": {
"type": "string",
"title": "final_answer"
}
},
"required": [
"solution",
"final_answer"
],
"additionalProperties": false
},
"strict": true
}
Kemajuan dan hasil pelatihan
Pekerjaan RFT biasanya berjalan lama, dan mungkin memakan waktu hingga 24 jam tergantung pada pilihan parameter Anda. Anda dapat melacak kemajuan dalam kedua tampilan penyempurnaan portal AI Foundry. Anda akan melihat pekerjaan Anda melalui status yang sama dengan pekerjaan penyetelan halus normal (diantrekan, berjalan, berhasil).
Anda juga dapat meninjau file hasil saat pelatihan berjalan, untuk melihat sekilas kemajuan dan apakah pelatihan Anda berjalan seperti yang diharapkan atau tidak.
Fitur baru: jeda dan lanjutkan
Selama pelatihan, Anda dapat melihat log dan metrik RFT dan menjeda pekerjaan sesuai kebutuhan (jika metrik tidak berkonvergensi atau jika Anda merasa model tidak belajar dengan kecepatan yang tepat, grader yang salah dipilih, dll.). Setelah pekerjaan pelatihan dijeda, titik pemeriksaan yang dapat disebarkan akan dibuat dan tersedia bagi Anda untuk melakukan inferensi atau melanjutkan pekerjaan hingga selesai. Operasi jeda hanya berlaku untuk pekerjaan yang telah dilatih setidaknya selama satu langkah dan berada dalam status Berjalan .
Peraturan pembatas pada pengeluaran dalam pelatihan
Karena pekerjaan-pekerjaan RFT dapat menyebabkan biaya pelatihan yang tinggi, kami secara otomatis menjeda pekerjaan setelah biaya pelatihan total (pelatihan + penilaian) mencapai $5K. Pengguna dapat menyebarkan titik pemeriksaan terbaru atau melanjutkan pekerjaan pelatihan. Jika pengguna memutuskan untuk melanjutkan pekerjaan, penagihan akan terus berlanjut untuk pekerjaan tersebut dan tidak ada lagi batasan harga yang akan dikenakan pada pekerjaan pelatihan.
Menginterpretasikan hasil pelatihan
Untuk pekerjaan penyempurnaan penguatan, metrik utama adalah metrik hadiah per langkah. Metrik ini menunjukkan seberapa baik performa model Anda pada data pelatihan. Perhitungan dilakukan oleh grader yang telah Anda tentukan di konfigurasi pekerjaan Anda.
Metrik Hadiah
Ini adalah dua metrik hadiah tingkat atas terpisah:
train_reward_mean
: Hadiah rata-rata di seluruh sampel yang diambil dari semua titik data dalam langkah saat ini. Karena titik data tertentu dalam perubahan batch dengan setiap langkah, nilai train_reward_mean di berbagai langkah tidak dapat dibandingkan secara langsung dan nilai tertentu dapat berfluktuasi secara drastis dari langkah ke langkah.valid_reward_mean
: Hadiah rata-rata di seluruh sampel yang diambil dari semua titik data dalam set validasi, yang merupakan metrik yang lebih stabil.
Petunjuk / Saran
Anda harus selalu menguji inferensi dengan model Anda. Jika Anda telah memilih grader yang tidak pantas, ada kemungkinan bahwa hadiah rata-rata tidak mencerminkan performa model. Tinjau sampel output dari model untuk memastikan output tersebut diformat dengan benar dan masuk akal. Periksa apakah prediksi model selaras dengan kebenaran dasar dan apakah analisis deskriptif memberikan penjelasan yang wajar.
Token penalaran
Metrik train_reasoning_tokens_mean
dan valid_reasoning_tokens_mean
untuk memantau bagaimana model mengubah perilakunya seiring waktu. Metrik ini adalah jumlah rata-rata token penalaran yang digunakan oleh model untuk merespons permintaan dalam himpunan data pelatihan dan validasi. Anda juga dapat melihat jumlah token penalaran rata-rata di dasbor pengoptimalan.
Petunjuk / Saran
Seringkali, selama pelatihan, model akan secara drastis mengubah jumlah rata-rata token penalaran yang digunakannya untuk merespons permintaan. Ini adalah tanda bahwa model mengubah perilakunya sebagai respons terhadap sinyal hadiah. Model ini 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.
Evaluasi hasil
Pada saat pekerjaan penyempurnaan Anda selesai, Anda harus memiliki gambaran yang layak tentang seberapa baik performa model berdasarkan nilai rata-rata penghargaan pada set validasi. Namun, ada kemungkinan bahwa model terlalu cocok dengan data pelatihan atau telah belajar untuk memanipulasi penilai Anda, yang memungkinkannya untuk menghasilkan skor tinggi tanpa benar-benar tepat.
Memahami perilaku model dapat dilakukan dengan cepat dengan memeriksa evaluasi yang terkait dengan pekerjaan penyempurnaan. Secara khusus, perhatikan penyelesaian yang dilakukan pada langkah pelatihan terakhir untuk melihat perilaku model akhirnya. Anda juga dapat menggunakan produk evals untuk membandingkan eksekusi akhir dengan eksekusi sebelumnya dan melihat bagaimana perilaku model telah berubah selama pelatihan.
Penyebaran dan penggunaan model o4-mini RFT Anda
Model yang disempurnakan dapat disebarkan melalui UI atau REST API, sama seperti model yang disempurnakan lainnya.
Anda dapat menyebarkan pekerjaan penyempurnaan yang selesai atau titik pemeriksaan terputus-terputus yang dibuat secara otomatis atau manual dengan memicu operasi jeda. Untuk mengetahui selengkapnya tentang penyebaran model dan uji dengan Chat Playground, untuk referensi, lihat penyebaran penyempurnaan model.
Saat menggunakan model Anda, pastikan untuk menggunakan instruksi dan struktur yang sama seperti yang digunakan selama pelatihan. Ini menjaga model dalam distribusi, dan memastikan Anda melihat performa yang sama pada masalah Anda saat inferensi sebagaimana yang Anda capai selama pelatihan.
Praktik terbaik
Pemilihan penilai
Siswa kelas Anda digunakan untuk pembelajaran penguatan: memilih grader yang salah berarti bahwa hadiah Anda akan tidak valid, dan penyetelan halus Anda tidak akan menghasilkan hasil yang diharapkan.
Beberapa aturan dasar untuk pemilihan grader:
Jika Anda memiliki jawaban singkat dan spesifik seperti angka, respons Boolean, atau pilihan ganda, pilih pengoreksi dengan pencocokan string.
Jika Anda memiliki respons kompleks yang dapat dinilai pada beberapa kriteria, gunakan multi grader. Ini memungkinkan Anda untuk menilai berbagai aspek respons dan menggabungkannya menjadi agregat.
Pertimbangkan untuk memecah grader menjadi beberapa langkah, dengan memberikan nilai parsial, untuk mendorong penalaran model ke arah yang tepat, sehingga penilaian tetap stabil dan selaras dengan preferensi. Berikan beberapa contoh jawaban yang bagus, adil, dan buruk dalam instruksi.
Gunakan LLM sebagai hakim ketika kode tidak mencukupi. Untuk jawaban yang kaya dan terbuka, mintalah model bahasa lain untuk menilai. Saat membangun pemeringkat LLM, jalankan beberapa respons kandidat dan kebenaran dasar melalui penilai LLM Anda untuk memastikan
Uji siswa Anda
Semua grader yang tersedia di RFT didukung dalam evaluasi Azure OpenAI. Sebelum memulai sesi pelatihan, uji model vanilla o4-mini terhadap data validasi Anda menggunakan grader yang sama yang akan Anda gunakan untuk pelatihan. Jika skor grader tidak sesuai dengan harapan Anda - maka Anda perlu memilih grader yang berbeda.
Kami juga menyediakan API pemeriksaan grader yang dapat Anda gunakan untuk memeriksa validitas konfigurasi Anda.
Penyiapan data
Bidik beberapa ratus contoh awalnya dan pertimbangkan untuk meningkatkan skala hingga sekitar 1.000 contoh jika perlu. Himpunan data harus seimbang, dalam hal kelas yang diprediksi, untuk menghindari bias dan memastikan generalisasi.
Untuk perintah, pastikan untuk memberikan instruksi yang jelas dan terperinci, termasuk menentukan format respons dan batasan apa pun pada output (misalnya panjang minimum untuk penjelasan, hanya merespons dengan benar/salah dll.)