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.
Azure OpenAI di Azure AI Foundry Models memungkinkan Anda menyesuaikan model kami dengan himpunan data pribadi Anda dengan menggunakan proses yang dikenal sebagai penyempurnaan. Langkah penyesuaian ini akan memungkinkan Anda mendapatkan lebih banyak dari layanan dengan menyediakan:
- Hasil berkualitas lebih tinggi daripada apa yang bisa Anda dapatkan hanya dari rekayasa yang cepat
- Kemampuan untuk memproses lebih banyak contoh daripada yang dapat masuk ke dalam batas konteks permintaan maksimum model.
- Penghematan token karena perintah yang lebih pendek
- Permintaan latensi yang lebih rendah, terutama saat menggunakan model yang lebih kecil.
Berbeda dengan pembelajaran beberapa contoh, penyetelan lanjutan meningkatkan model dengan melatih lebih banyak contoh daripada yang dapat dimuat dalam prompt, memungkinkan Anda mencapai hasil yang lebih baik pada beragam tugas. Karena penyempurnaan mengubah bobot model dasar untuk meningkatkan performa pada tugas tertentu, Anda tidak perlu menyertakan banyak contoh atau instruksi dalam perintah Anda. Ini berarti lebih sedikit teks yang dikirim dan lebih sedikit token yang diproses pada setiap panggilan API, berpotensi menghemat biaya, dan meningkatkan latensi permintaan.
Kami menggunakan LoRA, atau adaptasi peringkat rendah, untuk menyempurnakan model dengan cara yang mengurangi kompleksitasnya tanpa memengaruhi performanya secara signifikan. Metode ini bekerja dengan mengaproksimasi matriks peringkat tinggi asli dengan matriks berperingkat lebih rendah, sehingga hanya menyempurnakan subset parameter penting yang lebih kecil selama fase pelatihan terawasi, membuat model ini lebih mudah dikelola dan efisien. Bagi pengguna, ini membuat pelatihan lebih cepat dan lebih terjangkau daripada teknik lain.
Ada dua pengalaman penyempurnaan unik di portal Azure AI Foundry:
- Tampilan Hub/Proyek - mendukung penyesuaian model dari beberapa penyedia termasuk Azure OpenAI, Meta Llama, Microsoft Phi, dll.
- Tampilan berfokus pada Azure OpenAI - hanya mendukung penyesuaian model Azure OpenAI, tetapi memiliki dukungan untuk fitur tambahan seperti integrasi pratinjau Bobot & Bias (W&B).
Jika Anda hanya menyempurnakan model Azure OpenAI, kami merekomendasikan pengalaman penyempurnaan sentris Azure OpenAI yang tersedia dengan menavigasi ke https://ai.azure.com/resource/overview.
Penting
Item-item yang ditandai (pratinjau) dalam artikel ini saat ini sedang berada dalam pratinjau publik. Pratinjau ini disediakan tanpa kesepakatan tingkat layanan, dan kami tidak merekomendasikannya untuk penggunaan dalam lingkungan produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk informasi lebih lanjut, lihat Supplemental Terms of Use for Microsoft Azure Previews.
Prasyarat
- Baca panduan penyesuaian Azure OpenAI, kapan digunakan.
- Sebuah langganan Azure. Buat akun gratis.
- Sumber daya Azure OpenAI yang terletak di wilayah yang mendukung penyempurnaan model Azure OpenAI. Periksa tabel ringkasan model dan ketersediaan wilayah untuk daftar model yang tersedia menurut wilayah dan fungsionalitas yang didukung. Untuk informasi selengkapnya, lihat Membuat sumber daya dan menyebarkan model dengan Azure OpenAI.
- Penyetelan akses memerlukan Kontributor Cognitive Services OpenAI.
- Jika Anda belum memiliki akses untuk melihat kuota, dan menyebarkan model di portal Azure AI Foundry, Anda akan memerlukan izin tambahan.
Model yang didukung
Lihat halaman model untuk memeriksa wilayah mana yang saat ini mendukung penyempurnaan.
Atau Anda dapat menyempurnakan model yang sebelumnya sudah disempurnakan, diformat sebagai base-model.ft-{jobid}.
Tinjau alur kerja untuk portal Azure AI Foundry
Luangkan waktu sejenak untuk meninjau alur kerja penyempurnaan untuk menggunakan portal Azure AI Foundry:
- Siapkan data pelatihan dan validasi Anda.
- Gunakan dialog Buat model yang disempurnakan di portal Azure AI Foundry untuk melatih model kustom Anda.
- Pilih metode pelatihan.
- Pilih model dasar.
- Pilih jenis pelatihan Anda
- Pilih data pelatihan Anda.
- Secara opsional, pilih data validasi Anda.
- Secara opsional, konfigurasikan parameter tugas untuk pekerjaan penyempurnaan Anda.
- Secara opsional, aktifkan penyebaran otomatis untuk model kustom yang dihasilkan.
- Tinjau pilihan Anda dan latih model kustom baru Anda.
- Periksa status model kustom yang telah dihaluskan secara khusus.
- Sebarkan model kustom Anda untuk digunakan.
- Gunakan model kustom Anda.
- Secara opsional, analisis model kustom Anda untuk performa dan kecocokan.
Menyiapkan data pelatihan dan validasi Anda
Himpunan data pelatihan dan validasi Anda terdiri dari contoh input dan output untuk bagaimana Anda ingin model melakukan.
Data pelatihan dan validasi yang Anda gunakan harus diformat sebagai dokumen JSON Lines (JSONL) dan harus diformat dalam format percakapan yang digunakan oleh API penyelesaian obrolan .
Umumnya disarankan untuk menggunakan instruksi dan perintah yang Anda temukan bekerja paling baik di setiap contoh pelatihan. Ini akan membantu Anda mendapatkan hasil terbaik, terutama jika Anda memiliki kurang dari seratus contoh.
Contoh format file
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who discovered Antarctica?"}, {"role": "assistant", "content": "Some chaps named Fabian Gottlieb von Bellingshausen and Mikhail Lazarev, as if they don't teach that in every school!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the biggest ocean?"}, {"role": "assistant", "content": "The Pacific Ocean. It's not like it's a small pond or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest planet?"}, {"role": "assistant", "content": "It's called Jupiter, you might have heard of it...or not."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who painted the Mona Lisa?"}, {"role": "assistant", "content": "Oh, some obscure artist named Leonardo da Vinci. Not that he is famous or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the boiling point of water?"}, {"role": "assistant", "content": "Exciting fact of the day: it's 100 degrees Celsius. Life-changing, isn't it?"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'The Odyssey'?"}, {"role": "assistant", "content": "Oh, just some poet named Homer. Nothing special, really."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest mammal?"}, {"role": "assistant", "content": "Blue Whale. Quite a big fish isn't it? Oh wait, it's not a fish!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the highest mountain peak?"}, {"role": "assistant", "content": "Everest. Brace yourself, it's not a walk in the park."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who invented the telephone?"}, {"role": "assistant", "content": "A guy named Alexander Graham Bell. Bet you didn't guess that one!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the distance from Earth to the Sun?"}, {"role": "assistant", "content": "About 93 million miles. Just a quick drive, really."}]}
Format file obrolan berbagai giliran Azure OpenAI
Beberapa bagian percakapan dalam satu baris file pelatihan jsonl Anda juga dimungkinkan. Untuk mengabaikan penyempurnaan pada pesan asisten tertentu, tambahkan pasangan nilai kunci opsional weight
. Saat ini weight
dapat diatur ke 0 atau 1.
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}
Penyelesaian percakapan dengan penglihatan
{"messages": [{"role": "user", "content": [{"type": "text", "text": "What's in this image?"}, {"type": "image_url", "image_url": {"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"}}]}, {"role": "assistant", "content": "The image appears to be a watercolor painting of a city skyline, featuring tall buildings and a recognizable structure often associated with Seattle, like the Space Needle. The artwork uses soft colors and brushstrokes to create a somewhat abstract and artistic representation of the cityscape."}]}
Selain format JSONL, file data pelatihan dan validasi harus dikodekan dalam UTF-8 dan menyertakan tanda urutan byte (BOM). Ukuran file harus kurang dari 512 MB.
Pertimbangan ukuran himpunan data
Semakin banyak contoh pelatihan yang Anda miliki, semakin baik. Pekerjaan penyempurnaan tidak akan dilanjutkan tanpa setidaknya 10 contoh pelatihan, tetapi jumlah sekecil itu tidak cukup untuk memengaruhi respons model secara nyata. Ini adalah praktik terbaik untuk menyediakan ratusan, jika tidak ribuan, contoh pelatihan agar berhasil. Disarankan untuk memulai dengan 50 data pelatihan yang dibuat dengan baik.
Secara umum, menggandakan ukuran himpunan data dapat menyebabkan peningkatan linier dalam kualitas model. Tetapi perlu diingat, contoh kualitas rendah dapat berdampak negatif pada performa. Jika Anda melatih model pada sejumlah besar data internal, tanpa terlebih dahulu memangkas himpunan data hanya untuk contoh kualitas tertinggi, Anda dapat berakhir dengan model yang berkinerja jauh lebih buruk dari yang diharapkan.
Membuat model yang disempurnakan
Portal Azure AI Foundry menyediakan dialog Buat model yang disempurnakan , jadi di satu tempat Anda dapat dengan mudah membuat dan melatih model yang disempurnakan untuk sumber daya Azure Anda.
Buka portal Azure AI Foundry di https://ai.azure.com/ dan masuk dengan kredensial yang memiliki akses ke sumber daya Azure OpenAI Anda. Selama alur kerja masuk, pilih direktori, langganan Azure, dan sumber daya Azure OpenAI yang sesuai.
Di portal Azure AI Foundry, buka panel Alat > Penyesuaian, dan pilih Sesuaikan model.
Pilih model untuk menyempurnakan, lalu pilih Berikutnya untuk melanjutkan.
Sekarang Anda akan melihat dialog Buat model yang disempurnakan .
Pilih metode pelatihan Anda
Langkah pertama adalah mengonfirmasi pilihan model dan metode pelatihan Anda. Tidak semua model mendukung semua metode pelatihan.
- Supervised Fine Tuning (SFT): didukung oleh semua model non-penalaran.
- Pengoptimalan Preferensi Langsung (Pratinjau) (DPO): didukung oleh GPT-4o.
- Penyesuaian Halus Penguatan (Pratinjau) (RFT): didukung oleh model penalaran, seperti o4-mini.
Saat memilih model, Anda juga dapat memilih model yang sebelumnya disempurnakan.
Memilih jenis pelatihan Anda
Pilih tingkat pelatihan yang ingin Anda gunakan untuk pekerjaan penyempurnaan Anda:
- Standar: pelatihan dilakukan di wilayah sumber daya Azure OpenAI saat ini, memastikan residensi data.
- Global (Pratinjau): Pelatihan per token yang lebih terjangkau , tidak menawarkan residensi data.
Jika Anda tidak memiliki persyaratan residensi data, Global adalah pilihan yang baik untuk memanfaatkan kapasitas pelatihan di luar wilayah Anda saat ini. Saat berada di pratinjau publik, Global mungkin tidak tersedia dalam wilayah Anda saat ini. Konsultasikan
Dalam beberapa kasus, Standar mungkin tidak tersedia dalam wilayah Anda saat ini. Jika Anda memerlukan residensi data, konsultasikan wilayah yang tercantum pada ketersediaan model untuk model yang Anda pilih.
Pilih data pelatihan Anda
Langkah selanjutnya adalah memilih data pelatihan yang sudah disiapkan atau mengunggah data pelatihan baru yang disiapkan untuk digunakan saat menyesuaikan model Anda dengan memilih Tambahkan data pelatihan.
Dialog Data pelatihan menampilkan himpunan data yang sudah ada dan diunggah sebelumnya dan juga menyediakan opsi untuk mengunggah data pelatihan baru.
Jika data pelatihan Anda sudah diunggah ke layanan, pilih File dari sumber daya AI tersambung.
- Pilih file dari daftar dropdown yang diperlihatkan.
Untuk mengunggah data pelatihan baru, gunakan salah satu opsi berikut:
- Pilih Unggah file untuk mengunggah data pelatihan dari file lokal.
- Pilih Blob Azure atau lokasi web bersama lainnya untuk mengimpor data pelatihan dari Azure Blob atau lokasi web bersama lainnya.
Untuk file data besar, kami sarankan Anda mengimpor dari penyimpanan Azure Blob. File besar dapat menjadi tidak stabil saat diunggah melalui formulir multi bagian, karena permintaannya atomik dan tidak dapat dicoba kembali atau dilanjutkan. Untuk informasi selengkapnya tentang Azure Blob Storage, lihat Apa itu Azure Blob Storage?
Nota
File data pelatihan harus diformat sebagai file JSONL, dikodekan dalam UTF-8 dengan tanda urutan byte (BOM). Ukuran file harus kurang dari 512 MB.
Pilih data validasi Anda (opsional)
Jika Anda memiliki himpunan data validasi, pilih Tambahkan data pelatihan. Anda dapat memilih data validasi yang sudah disiapkan atau mengunggah data validasi baru yang disiapkan untuk digunakan saat menyesuaikan model Anda.
Dialog Data validasi menampilkan himpunan data pelatihan dan validasi yang sudah ada dan diunggah sebelumnya dan menyediakan opsi untuk mengunggah data validasi baru.
Jika data validasi Anda sudah diunggah ke layanan, pilih Pilih himpunan data.
- Pilih file dari daftar yang diperlihatkan di panel Data validasi.
Untuk mengunggah data validasi baru, gunakan salah satu opsi berikut:
- Pilih File lokal untuk mengunggah data validasi dari file lokal.
- Pilih Blob Azure atau lokasi web bersama lainnya untuk mengimpor data validasi dari Azure Blob atau lokasi web bersama lainnya.
Untuk file data besar, kami sarankan Anda mengimpor dari penyimpanan Azure Blob. File besar dapat menjadi tidak stabil saat diunggah melalui formulir multi bagian, karena permintaannya atomik dan tidak dapat dicoba kembali atau dilanjutkan.
Nota
Mirip dengan file data pelatihan, file data validasi harus diformat sebagai file JSONL, dikodekan dalam UTF-8 dengan tanda urutan byte (BOM). Ukuran file harus kurang dari 512 MB.
Buat model Anda dapat diidentifikasi (opsional)
Kami juga merekomendasikan untuk menyertakan parameter suffix
agar lebih mudah membedakan antara iterasi yang berbeda dari model yang disempurnakan.
suffix
Mengambil string hingga 18 karakter dan digunakan saat memberi nama model yang disempurnakan yang dihasilkan.
Mengonfigurasi parameter pelatihan (opsional)
Anda dapat memberikan benih opsional dan menyesuaikan hiperparameter tambahan.
Benih mengontrol reprodusibilitas tugas. Menggunakan seed dan parameter pekerjaan yang sama seharusnya menghasilkan hasil yang sama, tetapi mungkin berbeda dalam kasus yang jarang terjadi. Jika benih tidak ditentukan, satu akan dibuat secara acak untuk Anda.
Hyperparameter berikut ini tersedia untuk penyetelan melalui portal Azure AI Foundry:
Nama | Tipe | Deskripsi |
---|---|---|
Ukuran Batch | bilangan bulat | Ukuran batch yang akan digunakan untuk pelatihan. Ukuran batch adalah jumlah contoh pelatihan yang digunakan untuk melatih satu pass maju dan mundur. Secara umum, kami telah menemukan bahwa ukuran batch yang lebih besar cenderung bekerja lebih baik untuk himpunan data yang lebih besar. Nilai default serta nilai maksimum untuk properti ini khusus untuk model dasar. Ukuran batch yang lebih besar berarti parameter model diperbarui lebih jarang, tetapi dengan varian yang lebih rendah. |
Pengali Tingkat Pembelajaran | nomor/angka | Pengali laju pembelajaran yang digunakan untuk pelatihan. Laju pembelajaran penyesuaian adalah laju pembelajaran awal yang digunakan untuk pra-latihan dikalikan dengan nilai ini. Tingkat pembelajaran yang lebih besar cenderung berkinerja lebih baik dengan ukuran batch yang lebih besar. Sebaiknya bereksperimen dengan nilai dalam rentang 0,02 hingga 0,2 untuk melihat apa yang menghasilkan hasil terbaik. Laju pembelajaran yang lebih kecil mungkin berguna untuk menghindari overfitting. |
Jumlah Epok | bilangan bulat | Jumlah epoch yang diperlukan untuk melatih model. Epoch mengacu pada satu siklus penuh melalui himpunan data pelatihan. |
Aktifkan penyebaran otomatis (opsional)
Untuk menghemat waktu, Anda dapat mengaktifkan penyebaran otomatis secara opsional untuk model yang dihasilkan. Jika pelatihan berhasil diselesaikan, model akan disebarkan menggunakan jenis penyebaran yang dipilih. Penyebaran akan diberi nama berdasarkan nama unik yang dihasilkan untuk model kustom Anda dan akhiran opsional yang mungkin telah Anda berikan sebelumnya.
Nota
Hanya penyebaran Standar Global dan Pengembang yang saat ini didukung untuk penyebaran otomatis. Tidak satu pun dari opsi ini memberikan residensi data. Lihat dokumentasi jenis penyebaran untuk detail selengkapnya.
Tinjau pilihan Anda dan latih model Anda
Tinjau pilihan Anda dan pilih Kirim untuk mulai melatih model baru anda yang disempurnakan.
Periksa status model kustom Anda
Setelah mengirimkan pekerjaan penyempurnaan, Anda akan melihat halaman dengan detail tentang model yang disempurnakan. Anda dapat menemukan status dan informasi selengkapnya tentang model yang disempurnakan di halaman Penyempurnaan di portal Azure AI Foundry.
Pekerjaan Anda mungkin diantrekan di belakang pekerjaan lain pada sistem. Melatih model Anda dapat memakan waktu beberapa menit atau berjam-jam tergantung pada model dan ukuran himpunan data.
Pos pemeriksaan
Setelah setiap epoch pelatihan selesai, sebuah checkpoint dihasilkan. Titik pemeriksaan adalah versi model yang berfungsi penuh yang dapat disebarkan dan digunakan sebagai model target untuk pekerjaan penyempurnaan berikutnya. Titik pemeriksaan dapat sangat berguna, karena mungkin menyediakan rekam jepret sebelum overfitting. Ketika pekerjaan penyempurnaan selesai, Anda akan memiliki tiga versi terbaru dari model yang tersedia untuk disebarkan.
Menganalisis model khusus Anda
Azure OpenAI melampirkan file hasil bernama results.csv ke setiap pekerjaan penyempurnaan setelah selesai. Anda dapat menggunakan file hasil untuk menganalisis performa pelatihan dan validasi model kustom Anda. Id file untuk file hasil dicantumkan untuk setiap model kustom di kolom Id file hasil pada panel Model untuk portal Azure AI Foundry. Anda dapat menggunakan ID file untuk mengidentifikasi dan mengunduh file hasil dari panel File data portal Azure AI Foundry.
File hasil berupa file CSV yang berisi baris header dan baris untuk setiap langkah pelatihan yang dilakukan oleh proses penyempurnaan. File hasil berisi kolom berikut:
Nama kolom | Deskripsi |
---|---|
step |
Jumlah langkah pelatihan. Langkah pelatihan mewakili satu pass, maju dan mundur, pada batch data pelatihan. |
train_loss |
Kerugian untuk batch pelatihan. |
train_mean_token_accuracy |
Persentase token dalam batch pelatihan diprediksi dengan benar oleh model. Misalnya, jika ukuran batch diatur ke 3 dan data Anda berisi hasil [[1, 2], [0, 5], [4, 2]] , nilai ini ditetapkan menjadi 0,83 (5 dari 6) apabila model meramalkan [[1, 1], [0, 5], [4, 2]] . |
valid_loss |
Nilai kerugian untuk batch validasi. |
validation_mean_token_accuracy |
Persentase token dalam batch validasi diprediksi dengan benar oleh model. Misalnya, jika ukuran batch diatur ke 3 dan data Anda berisi hasil [[1, 2], [0, 5], [4, 2]] , nilai ini ditetapkan menjadi 0,83 (5 dari 6) apabila model meramalkan [[1, 1], [0, 5], [4, 2]] . |
full_valid_loss |
Kerugian validasi dihitung pada akhir setiap epoch. Ketika pelatihan berjalan dengan baik, kerugian harus berkurang. |
full_valid_mean_token_accuracy |
Akurasi token rata-rata yang valid dihitung pada akhir setiap epoch. Ketika pelatihan berjalan dengan baik, akurasi token akan meningkat. |
Anda juga dapat melihat data dalam file results.csv Anda sebagai plot di portal Azure AI Foundry. Pilih tautan untuk model terlatih Anda, dan Anda akan melihat tiga grafik yaitu: nilai kerugian, akurasi token rata-rata, dan akurasi token. Jika Anda memberikan data validasi, kedua himpunan data akan muncul pada plot yang sama.
Perhatikan agar kerugian Anda menurun seiring berjalannya waktu, dan akurasi Anda meningkat. Jika Anda melihat divergensi antara data pelatihan dan validasi Anda, hal tersebut mungkin menunjukkan bahwa model Anda mengalami overfitting. Coba pelatihan dengan lebih sedikit epok, atau dengan pengali kecepatan pembelajaran yang lebih kecil.
Mengimplementasikan model yang telah disempurnakan
Setelah Anda puas dengan metrik dari pekerjaan penyempurnaan Anda, atau Anda hanya ingin beralih ke inferensi, Anda harus menyebarkan model.
Jika Anda menyebarkan untuk validasi lebih lanjut, pertimbangkan untuk menyebarkan pengujian menggunakan penyebaran Pengembang.
Jika Anda siap untuk menyebarkan untuk produksi atau memiliki kebutuhan residensi data tertentu, ikuti panduan penyebaran kami.
Menggunakan model yang telah diterapkan dan disempurnakan
Setelah model yang telah disempurnakan dikerahkan, Anda dapat menggunakannya seperti model lain yang disebarkan. Anda dapat menggunakan Playground di Azure AI Foundry untuk bereksperimen dengan penyebaran baru Anda. Anda juga dapat menggunakan REST API untuk memanggil model yang disempurnakan dari aplikasi Anda sendiri. Anda bahkan dapat mulai menggunakan model baru yang disempurnakan ini dalam alur prompt Anda untuk membangun aplikasi AI generatif Anda.
Nota
Untuk model obrolan, pesan sistem yang Anda gunakan untuk memandu model yang telah disempurnakan (baik disebar atau siap untuk pengujian di lingkungan uji coba) harus sama dengan pesan sistem yang digunakan saat pelatihan. Jika Anda menggunakan pesan sistem yang berbeda, model mungkin tidak berfungsi seperti yang diharapkan.
Penyempurnaan berkelanjutan
Setelah Anda membuat model yang disempurnakan, Anda mungkin ingin terus menyempurnakan model dari waktu ke waktu melalui penyempurnaan lebih lanjut. Penyempurnaan berkelanjutan adalah proses berulang untuk memilih model yang sudah disempurnakan sebagai model dasar dan menyempurnakannya lebih lanjut pada serangkaian contoh pelatihan baru.
Untuk melakukan penyempurnaan pada model yang sebelumnya telah Disempurnakan, Anda akan menggunakan proses yang sama seperti yang dijelaskan dalam membuat model yang disempurnakan tetapi alih-alih menentukan nama model dasar generik, Anda akan menentukan model yang sudah disempurnakan. Model kustom yang disempurnakan akan terlihat seperti gpt-4o-2024-08-06.ft-d93dda6110004b4da3472d96f4dd4777-ft
Bersihkan penerapan, model kustom, dan file pelatihan Anda
Setelah selesai dengan model kustom, Anda dapat menghapus penyebaran dan model. Anda juga dapat menghapus file pelatihan dan validasi yang Anda unggah ke layanan, jika diperlukan.
Hapus penerapan model Anda
Penting
Setelah Anda menyebarkan model yang disesuaikan, jika kapan saja penyebaran tetap tidak aktif selama lebih dari lima belas (15) hari, penyebaran akan dihapus. Penyebaran model yang disesuaikan tidak aktif jika model tersebut telah disebarkan lebih dari lima belas (15) hari yang lalu dan tidak ada kompletasi atau panggilan kompletasi obrolan yang dilakukan padanya selama periode 15 hari berturut-turut.
Penghapusan penyebaran yang tidak aktif tidak menghapus atau memengaruhi model yang dikustomisasi yang mendasar, dan model yang disesuaikan dapat disebarkan ulang kapan saja. Seperti yang dijelaskan di Azure OpenAI dalam harga Azure AI Foundry Models, setiap model yang disesuaikan (disempurnakan) yang disebarkan menimbulkan biaya hosting per jam terlepas dari apakah penyelesaian atau panggilan penyelesaian obrolan sedang dilakukan ke model. Untuk mempelajari selengkapnya tentang merencanakan dan mengelola biaya dengan Azure OpenAI, lihat panduan dalam Rencanakan untuk mengelola biaya untuk Azure OpenAI.
Anda dapat menghapus penyebaran untuk model kustom Anda di panel Penyebaran di portal Azure AI Foundry. Pilih penyebaran yang akan dihapus, lalu pilih Hapus untuk menghapus penyebaran.
Menghapus model kustom Anda
Anda dapat menghapus model kustom pada panel Model di portal Azure AI Foundry. Pilih model kustom yang akan dihapus dari tab Model yang dikustomisasi , lalu pilih Hapus untuk menghapus model kustom.
Nota
Anda tidak dapat menghapus model kustom jika memiliki penyebaran yang sudah ada. Anda harus terlebih dahulu menghapus penyebaran model sebelum dapat menghapus model kustom Anda.
Menghapus file pelatihan Anda
Anda dapat secara opsional menghapus file pelatihan dan validasi yang Anda unggah untuk pelatihan, dan file hasil yang dihasilkan selama pelatihan, pada panel Data Manajemen>+ indeks di portal Azure AI Foundry. Pilih file yang akan dihapus, lalu pilih Hapus untuk menghapus file.
Prasyarat
- Baca panduan penyesuaian Azure OpenAI, kapan digunakan.
- Sebuah langganan Azure. Buat akun gratis.
- Sumber daya Azure OpenAI. Untuk informasi selengkapnya, lihat Membuat sumber daya dan menyebarkan model dengan Azure OpenAI.
- Pustaka Python berikut:
os
, ,json
,requests
openai
. - Pustaka OpenAI Python harus setidaknya versi 0.28.1.
- Penyetelan akses memerlukan Kontributor Cognitive Services OpenAI.
- Jika Anda belum memiliki akses untuk melihat kuota, dan menyebarkan model di portal Azure AI Foundry, Anda akan memerlukan izin tambahan.
Nota
REST API saat ini tidak mendukung tugas pelatihan Global. Memeriksa pekerjaan pelatihan Global melalui API dapat mengembalikan informasi yang salah.
Model yang didukung
Lihat halaman model untuk memeriksa wilayah mana yang saat ini mendukung penyempurnaan.
Atau Anda dapat menyempurnakan kembali model yang sebelumnya telah disempurnakan, diformat sebagai base-model.ft-{jobid}
.
Meninjau alur kerja untuk Python SDK
Luangkan waktu sejenak untuk meninjau alur kerja penyempurnaan untuk menggunakan Python SDK dengan Azure OpenAI:
- Siapkan data pelatihan dan validasi Anda.
- Pilih model dasar.
- Unggah data pelatihan Anda.
- Latih model baru yang disesuaikan.
- Periksa status model yang telah disesuaikan.
- Sebarkan model yang disesuaikan untuk digunakan.
- Gunakan model yang disesuaikan.
- Secara opsional, analisis model yang disesuaikan untuk kinerja dan kesesuaian.
Menyiapkan data pelatihan dan validasi Anda
Himpunan data pelatihan dan validasi Anda terdiri dari contoh input dan output untuk bagaimana Anda ingin model melakukan.
Data pelatihan dan validasi yang Anda gunakan harus diformat sebagai dokumen JSON Lines (JSONL) dan harus diformat dalam format percakapan yang digunakan oleh API penyelesaian obrolan .
Jika Anda ingin panduan langkah demi langkah dari penyempurnaan, gpt-4o-mini-2024-07-18
silakan lihat tutorial penyempurnaan Azure OpenAI
Contoh format file
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who discovered Antarctica?"}, {"role": "assistant", "content": "Some chaps named Fabian Gottlieb von Bellingshausen and Mikhail Lazarev, as if they don't teach that in every school!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the biggest ocean?"}, {"role": "assistant", "content": "The Pacific Ocean. It's not like it's a small pond or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest planet?"}, {"role": "assistant", "content": "It's called Jupiter, you might have heard of it...or not."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who painted the Mona Lisa?"}, {"role": "assistant", "content": "Oh, some obscure artist named Leonardo da Vinci. Not that he is famous or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the boiling point of water?"}, {"role": "assistant", "content": "Exciting fact of the day: it's 100 degrees Celsius. Life-changing, isn't it?"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'The Odyssey'?"}, {"role": "assistant", "content": "Oh, just some poet named Homer. Nothing special, really."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest mammal?"}, {"role": "assistant", "content": "Blue Whale. Quite a big fish isn't it? Oh wait, it's not a fish!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the highest mountain peak?"}, {"role": "assistant", "content": "Everest. Brace yourself, it's not a walk in the park."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who invented the telephone?"}, {"role": "assistant", "content": "A guy named Alexander Graham Bell. Bet you didn't guess that one!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the distance from Earth to the Sun?"}, {"role": "assistant", "content": "About 93 million miles. Just a quick drive, really."}]}
Format file percakapan multi-giliran
Beberapa bagian percakapan dalam satu baris file pelatihan jsonl Anda juga dimungkinkan. Untuk mengabaikan penyempurnaan pada pesan asisten tertentu, tambahkan pasangan nilai kunci opsional weight
. Saat ini weight
dapat diatur ke 0 atau 1.
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}
Penyelesaian percakapan dengan penglihatan
{"messages": [{"role": "user", "content": [{"type": "text", "text": "What's in this image?"}, {"type": "image_url", "image_url": {"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"}}]}, {"role": "assistant", "content": "The image appears to be a watercolor painting of a city skyline, featuring tall buildings and a recognizable structure often associated with Seattle, like the Space Needle. The artwork uses soft colors and brushstrokes to create a somewhat abstract and artistic representation of the cityscape."}]}
Selain format JSONL, file data pelatihan dan validasi harus dikodekan dalam UTF-8 dan menyertakan tanda urutan byte (BOM). Ukuran file harus kurang dari 512 MB.
Membuat himpunan data pelatihan dan validasi Anda
Semakin banyak contoh pelatihan yang Anda miliki, semakin baik. Pekerjaan penyetelan halus tidak akan dilanjutkan tanpa setidaknya 10 contoh pelatihan, tetapi jumlah sekecil itu tidak cukup untuk memengaruhi respons model secara nyata. Ini adalah praktik terbaik untuk menyediakan ratusan, jika tidak ribuan, contoh pelatihan agar berhasil.
Secara umum, menggandakan ukuran himpunan data dapat menyebabkan peningkatan linier dalam kualitas model. Tetapi perlu diingat, contoh kualitas rendah dapat berdampak negatif pada performa. Jika Anda melatih model pada sejumlah besar data internal, tanpa terlebih dahulu memangkas himpunan data hanya untuk contoh kualitas tertinggi, Anda dapat berakhir dengan model yang berkinerja jauh lebih buruk dari yang diharapkan.
Mengunggah data pelatihan Anda
Langkah selanjutnya adalah memilih data pelatihan yang sudah disiapkan atau mengunggah data pelatihan baru yang disiapkan untuk digunakan saat menyesuaikan model Anda. Setelah menyiapkan data pelatihan, Anda dapat mengunggah file ke layanan. Ada dua cara untuk mengunggah data pelatihan:
Untuk file data besar, kami sarankan Anda mengimpor dari penyimpanan Azure Blob. File besar dapat menjadi tidak stabil saat diunggah melalui formulir multi bagian, karena permintaannya atomik dan tidak dapat dicoba kembali atau dilanjutkan. Untuk informasi selengkapnya tentang penyimpanan Azure Blob, lihat Apa itu penyimpanan Azure Blob?
Nota
File data pelatihan harus diformat sebagai file JSONL, dikodekan dalam UTF-8 dengan tanda urutan byte (BOM). Ukuran file harus kurang dari 512 MB.
Contoh Python berikut mengunggah file pelatihan dan validasi lokal dengan menggunakan Python SDK, dan mengambil ID file yang dikembalikan.
# Upload fine-tuning files
import os
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-10-21" # This API version or later is required to access seed/events/checkpoint capabilities
)
training_file_name = 'training_set.jsonl'
validation_file_name = 'validation_set.jsonl'
# Upload the training and validation dataset files to Azure OpenAI with the SDK.
training_response = client.files.create(
file=open(training_file_name, "rb"), purpose="fine-tune"
)
training_file_id = training_response.id
validation_response = client.files.create(
file=open(validation_file_name, "rb"), purpose="fine-tune"
)
validation_file_id = validation_response.id
print("Training file ID:", training_file_id)
print("Validation file ID:", validation_file_id)
Membuat model yang dikustomisasi
Setelah mengunggah file pelatihan dan validasi, Anda siap untuk memulai pekerjaan penyempurnaan.
Kode Python berikut menunjukkan contoh cara membuat pekerjaan penyempurnaan baru dengan Python SDK:
Dalam contoh ini kita juga meneruskan parameter seed. Seed mengendalikan reproduksibilitas tugas. Menggunakan seed dan parameter pekerjaan yang sama seharusnya menghasilkan hasil yang sama, tetapi mungkin berbeda dalam kasus yang jarang terjadi. Jika benih tidak ditentukan, satu akan dihasilkan untuk Anda.
response = client.fine_tuning.jobs.create(
training_file=training_file_id,
validation_file=validation_file_id,
model="gpt-4.1-2025-04-14", # Enter base model name. Note that in Azure OpenAI the model name contains dashes and cannot contain dot/period characters.
seed = 105 # seed parameter controls reproducibility of the fine-tuning job. If no seed is specified one will be generated automatically.
)
job_id = response.id
# You can use the job ID to monitor the status of the fine-tuning job.
# The fine-tuning job will take some time to start and complete.
print("Job ID:", response.id)
print("Status:", response.id)
print(response.model_dump_json(indent=2))
Anda juga dapat meneruskan parameter opsional tambahan seperti hyperparameter untuk mengambil kontrol yang lebih besar dari proses penyempurnaan. Untuk pelatihan awal, sebaiknya gunakan default otomatis yang ada tanpa menentukan parameter ini.
Hyperparameter yang didukung saat ini untuk penyempurnaan adalah:
Nama | Tipe | Deskripsi |
---|---|---|
batch_size |
bilangan bulat | Ukuran batch yang akan digunakan untuk pelatihan. Ukuran batch adalah jumlah contoh pelatihan yang digunakan untuk melatih satu pass maju dan mundur. Secara umum, kami telah menemukan bahwa ukuran batch yang lebih besar cenderung bekerja lebih baik untuk himpunan data yang lebih besar. Nilai default serta nilai maksimum untuk properti ini khusus untuk model dasar. Ukuran batch yang lebih besar berarti parameter model diperbarui lebih jarang, tetapi dengan varian yang lebih rendah. |
learning_rate_multiplier |
nomor/angka | Pengali laju pembelajaran yang digunakan untuk pelatihan. Laju pembelajaran penyesuaian adalah laju pembelajaran awal yang digunakan untuk pra-latihan dikalikan dengan nilai ini. Tingkat pembelajaran yang lebih besar cenderung berkinerja lebih baik dengan ukuran batch yang lebih besar. Sebaiknya bereksperimen dengan nilai dalam rentang 0,02 hingga 0,2 untuk melihat apa yang menghasilkan hasil terbaik. Tingkat pembelajaran yang lebih kecil dapat berguna untuk menghindari overfitting. |
n_epochs |
bilangan bulat | Jumlah epoch yang diperlukan untuk melatih model. Epoch mengacu pada satu siklus penuh melalui himpunan data pelatihan. |
seed |
bilangan bulat | Seed mengendalikan reproduksibilitas tugas. Menggunakan seed dan parameter pekerjaan yang sama seharusnya menghasilkan hasil yang sama, tetapi mungkin berbeda dalam kasus yang jarang terjadi. Jika benih tidak ditentukan, satu akan dihasilkan untuk Anda. |
Untuk mengatur hyperparameter kustom dengan versi 1.x dari OpenAI Python API:
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-10-21" # This API version or later is required
)
client.fine_tuning.jobs.create(
training_file="file-abc123",
model="gpt-4.1-2025-04-14", # Enter base model name. Note that in Azure OpenAI the model name contains dashes and cannot contain dot/period characters.
hyperparameters={
"n_epochs":2
}
)
Periksa status tugas penyetelan
response = client.fine_tuning.jobs.retrieve(job_id)
print("Job ID:", response.id)
print("Status:", response.status)
print(response.model_dump_json(indent=2))
Mencantumkan peristiwa penyempurnaan
Untuk memeriksa peristiwa penyempurnaan individual yang dihasilkan selama pelatihan, Anda mungkin perlu meningkatkan pustaka klien OpenAI Anda ke versi terbaru dengan pip install openai --upgrade
untuk menjalankan perintah ini.
response = client.fine_tuning.jobs.list_events(fine_tuning_job_id=job_id, limit=10)
print(response.model_dump_json(indent=2))
Pos pemeriksaan
Setelah setiap epoch pelatihan selesai, sebuah checkpoint dihasilkan. Titik pemeriksaan adalah versi model yang berfungsi penuh yang dapat disebarkan dan digunakan sebagai model target untuk pekerjaan penyempurnaan berikutnya. Titik pemeriksaan dapat sangat berguna, karena mungkin menyediakan rekam jepret sebelum overfitting. Ketika pekerjaan penyempurnaan selesai, Anda akan memiliki tiga versi terbaru dari model yang tersedia untuk disebarkan. Epoch akhir akan diwakili oleh model yang disempurnakan, dua epoch sebelumnya akan tersedia sebagai titik pemeriksaan.
Anda dapat menjalankan perintah daftar titik pemeriksaan untuk memperoleh daftar titik pemeriksaan yang terkait dengan pekerjaan penyetelan individual. Anda mungkin perlu meningkatkan pustaka klien OpenAI Anda ke versi terbaru dengan pip install openai --upgrade
untuk menjalankan perintah ini.
response = client.fine_tuning.jobs.checkpoints.list(job_id)
print(response.model_dump_json(indent=2))
Menganalisis model yang disesuaikan
Azure OpenAI melampirkan file hasil bernama results.csv ke setiap pekerjaan penyempurnaan setelah selesai. Anda dapat menggunakan file hasil untuk menganalisis performa pelatihan dan validasi model yang disesuaikan. ID file untuk file hasil tercantum untuk setiap model yang disesuaikan, dan Anda dapat menggunakan Python SDK untuk mengambil ID file dan mengunduh file hasil untuk analisis.
Contoh Python berikut mengambil ID file dari file hasil pertama yang dilampirkan ke pekerjaan penyempurnaan untuk model yang disesuaikan, lalu menggunakan Python SDK untuk mengunduh file ke direktori kerja Anda saat ini untuk analisis.
# Retrieve the file ID of the first result file from the fine-tuning job
# for the customized model.
response = client.fine_tuning.jobs.retrieve(job_id)
if response.status == 'succeeded':
result_file_id = response.result_files[0]
retrieve = client.files.retrieve(result_file_id)
# Download the result file.
print(f'Downloading result file: {result_file_id}')
with open(retrieve.filename, "wb") as file:
result = client.files.content(result_file_id).read()
file.write(result)
File hasil berupa file CSV yang berisi baris header dan baris untuk setiap langkah pelatihan yang dilakukan oleh proses penyempurnaan. File hasil berisi kolom berikut:
Nama kolom | Deskripsi |
---|---|
step |
Jumlah langkah pelatihan. Langkah pelatihan mewakili satu pass, maju dan mundur, pada batch data pelatihan. |
train_loss |
Kerugian untuk batch pelatihan. |
train_mean_token_accuracy |
Persentase token dalam batch pelatihan diprediksi dengan benar oleh model. Misalnya, jika ukuran batch diatur ke 3 dan data Anda berisi hasil [[1, 2], [0, 5], [4, 2]] , nilai ini ditetapkan menjadi 0,83 (5 dari 6) apabila model meramalkan [[1, 1], [0, 5], [4, 2]] . |
valid_loss |
Nilai kerugian untuk batch validasi. |
validation_mean_token_accuracy |
Persentase token dalam batch validasi diprediksi dengan benar oleh model. Misalnya, jika ukuran batch diatur ke 3 dan data Anda berisi hasil [[1, 2], [0, 5], [4, 2]] , nilai ini ditetapkan menjadi 0,83 (5 dari 6) apabila model meramalkan [[1, 1], [0, 5], [4, 2]] . |
full_valid_loss |
Kerugian validasi dihitung pada akhir setiap epoch. Ketika pelatihan berjalan dengan baik, kerugian harus berkurang. |
full_valid_mean_token_accuracy |
Akurasi token rata-rata yang valid dihitung pada akhir setiap epoch. Ketika pelatihan berjalan dengan baik, akurasi token akan meningkat. |
Anda juga dapat melihat data dalam file results.csv Anda sebagai plot di portal Azure AI Foundry. Pilih tautan untuk model terlatih Anda, dan Anda akan melihat tiga grafik yaitu: nilai kerugian, akurasi token rata-rata, dan akurasi token. Jika Anda memberikan data validasi, kedua himpunan data akan muncul pada plot yang sama.
Perhatikan agar kerugian Anda menurun seiring berjalannya waktu, dan akurasi Anda meningkat. Jika Anda melihat perbedaan antara data pelatihan dan data validasi, itu dapat menunjukkan bahwa Anda mengalami overfitting. Coba pelatihan dengan lebih sedikit epok, atau dengan pengali kecepatan pembelajaran yang lebih kecil.
Mengimplementasikan model yang telah disempurnakan
Setelah puas dengan metrik dari pekerjaan penyempurnaan Anda, atau Anda hanya ingin beralih ke inferensi, Anda harus menerapkan model.
Jika Anda menyebarkan untuk validasi lebih lanjut, pertimbangkan untuk menyebarkan pengujian menggunakan penyebaran Pengembang.
Tidak seperti perintah SDK sebelumnya, penyebaran harus dilakukan menggunakan API sarana kontrol yang memerlukan otorisasi terpisah, jalur API yang berbeda, dan versi API yang berbeda.
variabel | Definisi |
---|---|
token | Ada beberapa cara untuk menghasilkan token otorisasi. Metode term mudah untuk pengujian awal adalah meluncurkan Cloud Shell dari portal Azure. Kemudian jalankan az account get-access-token . Anda dapat menggunakan token ini sebagai token otorisasi sementara untuk pengujian API. Sebaiknya simpan ini dalam variabel lingkungan baru. |
langganan | ID langganan untuk sumber daya Azure OpenAI terkait. |
grup sumber daya | Nama grup sumber daya untuk sumber daya Azure OpenAI Anda. |
nama_sumber | Nama sumber daya Azure OpenAI. |
nama_penerapan_model | Nama kustom untuk penerapan model baru yang sudah disesuaikan. Ini adalah nama yang akan direferensikan dalam kode Anda saat melakukan panggilan penyelesaian obrolan. |
model yang disesuaikan | Ambil nilai ini dari hasil pekerjaan penyempurnaan Anda pada langkah sebelumnya. Ini akan terlihat seperti gpt-4.1-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83 . Anda harus menambahkan nilai tersebut ke json deploy_data. Atau Anda juga dapat menggunakan checkpoint, dengan memasukkan ID checkpoint yang akan muncul dalam format ftchkpt-e559c011ecc04fc68eaa339d8227d02d |
import json
import os
import requests
token= os.getenv("<TOKEN>")
subscription = "<YOUR_SUBSCRIPTION_ID>"
resource_group = "<YOUR_RESOURCE_GROUP_NAME>"
resource_name = "<YOUR_AZURE_OPENAI_RESOURCE_NAME>"
model_deployment_name ="gpt-41-ft" # custom deployment name that you will use to reference the model when making inference calls.
deploy_params = {'api-version': "2024-10-01"} # control plane API version rather than dataplane API for this call
deploy_headers = {'Authorization': 'Bearer {}'.format(token), 'Content-Type': 'application/json'}
deploy_data = {
"sku": {"name": "standard", "capacity": 1},
"properties": {
"model": {
"format": "OpenAI",
"name": <"fine_tuned_model">, #retrieve this value from the previous call, it will look like gpt-4.1-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83
"version": "1"
}
}
}
deploy_data = json.dumps(deploy_data)
request_url = f'https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{resource_name}/deployments/{model_deployment_name}'
print('Creating a new deployment...')
r = requests.put(request_url, params=deploy_params, headers=deploy_headers, data=deploy_data)
print(r)
print(r.reason)
print(r.json())
Pelajari selengkapnya tentang penyebaran lintas wilayah dan gunakan model yang disebarkan di sini.
Jika Anda siap untuk menyebarkan untuk produksi atau memiliki kebutuhan residensi data tertentu, ikuti panduan penyebaran kami.
Penyempurnaan berkelanjutan
Setelah Anda membuat model yang disempurnakan, Anda mungkin ingin terus menyempurnakan model dari waktu ke waktu melalui penyempurnaan lebih lanjut. Penyempurnaan berkelanjutan adalah proses berulang untuk memilih model yang sudah disempurnakan sebagai model dasar dan menyempurnakannya lebih lanjut pada serangkaian contoh pelatihan baru.
Untuk melakukan penyempurnaan pada model yang sebelumnya telah Disempurnakan, Anda akan menggunakan proses yang sama seperti yang dijelaskan dalam membuat model yang disesuaikan tetapi alih-alih menentukan nama model dasar generik, Anda akan menentukan ID model yang sudah disempurnakan. ID model yang telah dioptimalkan terlihat seperti gpt-4.1-2025-04-14.ft-5fd1918ee65d4cd38a5dcf6835066ed7
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-10-21"
)
response = client.fine_tuning.jobs.create(
training_file=training_file_id,
validation_file=validation_file_id,
model="gpt-4.1-2025-04-14.ft-5fd1918ee65d4cd38a5dcf6835066ed7"
)
job_id = response.id
# You can use the job ID to monitor the status of the fine-tuning job.
# The fine-tuning job will take some time to start and complete.
print("Job ID:", response.id)
print("Status:", response.id)
print(response.model_dump_json(indent=2))
Sebaiknya sertakan suffix
parameter untuk mempermudah membedakan antara iterasi yang berbeda dari model yang disempurnakan.
suffix
mengambil string, dan digunakan untuk mengidentifikasi model yang sudah disesuaikan. Dengan OpenAI Python API, Anda dapat menambahkan string hingga 18 karakter ke nama model yang telah disesuaikan.
Jika Anda tidak yakin dengan ID model yang disempurnakan yang ada, informasi ini dapat ditemukan di halaman Model Azure AI Foundry, atau Anda dapat membuat daftar model untuk sumber daya Azure OpenAI tertentu menggunakan REST API.
Bersihkan penyebaran Anda, model yang disesuaikan, dan file pelatihan
Setelah Anda selesai menggunakan model yang telah disesuaikan, Anda dapat menghapus penyebaran dan model tersebut. Anda juga dapat menghapus file pelatihan dan validasi yang Anda unggah ke layanan, jika diperlukan.
Hapus penerapan model Anda
Penting
Setelah Anda menyebarkan model yang disesuaikan, jika kapan saja penyebaran tetap tidak aktif selama lebih dari lima belas (15) hari, penyebaran akan dihapus. Penyebaran model yang disesuaikan tidak aktif jika model tersebut telah disebarkan lebih dari lima belas (15) hari yang lalu dan tidak ada kompletasi atau panggilan kompletasi obrolan yang dilakukan padanya selama periode 15 hari berturut-turut.
Penghapusan penyebaran yang tidak aktif tidak menghapus atau memengaruhi model yang dikustomisasi yang mendasar, dan model yang disesuaikan dapat disebarkan ulang kapan saja. Seperti yang dijelaskan di Azure OpenAI dalam harga Azure AI Foundry Models, setiap model yang disesuaikan (disempurnakan) yang disebarkan menimbulkan biaya hosting per jam terlepas dari apakah penyelesaian atau panggilan penyelesaian obrolan sedang dilakukan ke model. Untuk mempelajari selengkapnya tentang merencanakan dan mengelola biaya dengan Azure OpenAI, lihat panduan dalam Rencanakan untuk mengelola biaya untuk Azure OpenAI.
Anda dapat menggunakan berbagai metode untuk menghapus penyebaran untuk model yang disesuaikan:
Menghapus model yang dikustomisasi
Demikian pula, Anda dapat menggunakan berbagai metode untuk menghapus model yang disesuaikan:
Nota
Anda tidak dapat menghapus model yang disesuaikan jika model tersebut memiliki penerapan yang sudah ada. Anda harus terlebih dahulu menghapus penyebaran model Anda sebelum dapat menghapus model yang telah disesuaikan.
Menghapus file pelatihan Anda
Anda dapat secara opsional menghapus file pelatihan dan validasi yang Anda unggah untuk pelatihan, dan file hasil yang dihasilkan selama pelatihan, dari langganan Azure OpenAI Anda. Anda dapat menggunakan metode berikut untuk menghapus file pelatihan, validasi, dan hasil Anda:
- Azure AI Foundry
- REST API
- SDK Python
Contoh Python berikut menggunakan Python SDK untuk menghapus file pelatihan, validasi, dan hasil untuk model yang disesuaikan:
print('Checking for existing uploaded files.')
results = []
# Get the complete list of uploaded files in our subscription.
files = openai.File.list().data
print(f'Found {len(files)} total uploaded files in the subscription.')
# Enumerate all uploaded files, extracting the file IDs for the
# files with file names that match your training dataset file and
# validation dataset file names.
for item in files:
if item["filename"] in [training_file_name, validation_file_name, result_file_name]:
results.append(item["id"])
print(f'Found {len(results)} already uploaded files that match our files')
# Enumerate the file IDs for our files and delete each file.
print(f'Deleting already uploaded files.')
for id in results:
openai.File.delete(sid = id)
Prasyarat
- Baca panduan penyesuaian Azure OpenAI, kapan digunakan.
- Sebuah langganan Azure. Buat akun gratis.
- Sumber daya Azure OpenAI. Untuk informasi selengkapnya, lihat Membuat sumber daya dan menyebarkan model dengan Azure OpenAI.
- Penyetelan akses memerlukan Kontributor Cognitive Services OpenAI.
- Jika Anda belum memiliki akses untuk melihat kuota, dan menyebarkan model di portal Azure AI Foundry, Anda akan memerlukan izin tambahan.
Nota
REST API saat ini tidak mendukung tugas pelatihan Global. Memeriksa pekerjaan pelatihan Global melalui API dapat mengembalikan informasi yang salah.
Model yang didukung
Lihat halaman model untuk memeriksa wilayah mana yang saat ini mendukung penyempurnaan.
Atau Anda dapat menyempurnakan model yang sebelumnya sudah disempurnakan, diformat sebagai base-model.ft-{jobid}.
Tinjau alur kerja untuk REST API
Luangkan waktu sejenak untuk meninjau alur kerja penyempurnaan untuk menggunakan REST APIS dan Python dengan Azure OpenAI:
- Siapkan data pelatihan dan validasi Anda.
- Pilih model dasar.
- Unggah data pelatihan Anda.
- Latih model baru yang disesuaikan.
- Periksa status model yang telah disesuaikan.
- Sebarkan model yang disesuaikan untuk digunakan.
- Gunakan model yang disesuaikan.
- Secara opsional, analisis model yang disesuaikan untuk kinerja dan kesesuaian.
Menyiapkan data pelatihan dan validasi Anda
Himpunan data pelatihan dan validasi Anda terdiri dari contoh input dan output untuk bagaimana Anda ingin model melakukan.
Data pelatihan dan validasi yang Anda gunakan harus diformat sebagai dokumen JSON Lines (JSONL) dan harus diformat dalam format percakapan yang digunakan oleh API penyelesaian obrolan .
Jika Anda ingin panduan langkah demi langkah dari penyempurnaan, gpt-4o-mini-2024-07-18
silakan lihat tutorial penyempurnaan Azure OpenAI.
Contoh format file
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who discovered Antarctica?"}, {"role": "assistant", "content": "Some chaps named Fabian Gottlieb von Bellingshausen and Mikhail Lazarev, as if they don't teach that in every school!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the biggest ocean?"}, {"role": "assistant", "content": "The Pacific Ocean. It's not like it's a small pond or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest planet?"}, {"role": "assistant", "content": "It's called Jupiter, you might have heard of it...or not."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who painted the Mona Lisa?"}, {"role": "assistant", "content": "Oh, some obscure artist named Leonardo da Vinci. Not that he is famous or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the boiling point of water?"}, {"role": "assistant", "content": "Exciting fact of the day: it's 100 degrees Celsius. Life-changing, isn't it?"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'The Odyssey'?"}, {"role": "assistant", "content": "Oh, just some poet named Homer. Nothing special, really."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest mammal?"}, {"role": "assistant", "content": "Blue Whale. Quite a big fish isn't it? Oh wait, it's not a fish!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the highest mountain peak?"}, {"role": "assistant", "content": "Everest. Brace yourself, it's not a walk in the park."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who invented the telephone?"}, {"role": "assistant", "content": "A guy named Alexander Graham Bell. Bet you didn't guess that one!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the distance from Earth to the Sun?"}, {"role": "assistant", "content": "About 93 million miles. Just a quick drive, really."}]}
Format file percakapan multi-giliran
Beberapa bagian percakapan dalam satu baris file pelatihan jsonl Anda juga dimungkinkan. Untuk mengabaikan penyempurnaan pada pesan asisten tertentu, tambahkan pasangan nilai kunci opsional weight
. Saat ini weight
dapat diatur ke 0 atau 1.
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}
Penyelesaian percakapan dengan penglihatan
{"messages": [{"role": "user", "content": [{"type": "text", "text": "What's in this image?"}, {"type": "image_url", "image_url": {"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"}}]}, {"role": "assistant", "content": "The image appears to be a watercolor painting of a city skyline, featuring tall buildings and a recognizable structure often associated with Seattle, like the Space Needle. The artwork uses soft colors and brushstrokes to create a somewhat abstract and artistic representation of the cityscape."}]}
Selain format JSONL, file data pelatihan dan validasi harus dikodekan dalam UTF-8 dan menyertakan tanda urutan byte (BOM). Ukuran file harus kurang dari 512 MB.
Membuat himpunan data pelatihan dan validasi Anda
Semakin banyak contoh pelatihan yang Anda miliki, semakin baik. Pekerjaan penyetelan halus tidak akan dilanjutkan tanpa setidaknya 10 contoh pelatihan, tetapi jumlah sekecil itu tidak cukup untuk memengaruhi respons model secara nyata. Ini adalah praktik terbaik untuk menyediakan ratusan, jika tidak ribuan, contoh pelatihan agar berhasil.
Secara umum, menggandakan ukuran himpunan data dapat menyebabkan peningkatan linier dalam kualitas model. Tetapi perlu diingat, contoh kualitas rendah dapat berdampak negatif pada performa. Jika Anda melatih model pada sejumlah besar data internal tanpa terlebih dahulu memangkas himpunan data hanya untuk contoh kualitas tertinggi, Anda dapat berakhir dengan model yang berkinerja jauh lebih buruk dari yang diharapkan.
Mengunggah data pelatihan Anda
Langkah selanjutnya adalah memilih data pelatihan yang sudah disiapkan atau mengunggah data pelatihan baru yang disiapkan untuk digunakan saat menyempurnakan model Anda. Setelah menyiapkan data pelatihan, Anda dapat mengunggah file ke layanan. Ada dua cara untuk mengunggah data pelatihan:
Untuk file data besar, kami sarankan Anda mengimpor dari penyimpanan Azure Blob. File besar dapat menjadi tidak stabil saat diunggah melalui formulir multi bagian, karena permintaannya atomik dan tidak dapat dicoba kembali atau dilanjutkan. Untuk informasi selengkapnya tentang penyimpanan Azure Blob, lihat Apa itu penyimpanan Azure Blob?
Nota
File data pelatihan harus diformat sebagai file JSONL, dikodekan dalam UTF-8 dengan tanda urutan byte (BOM). Ukuran file harus kurang dari 512 MB.
Mengunggah data pelatihan
curl -X POST $AZURE_OPENAI_ENDPOINT/openai/files?api-version=2023-12-01-preview \
-H "Content-Type: multipart/form-data" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-F "purpose=fine-tune" \
-F "file=@C:\\fine-tuning\\training_set.jsonl;type=application/json"
Mengunggah data validasi
curl -X POST $AZURE_OPENAI_ENDPOINT/openai/files?api-version=2023-12-01-preview \
-H "Content-Type: multipart/form-data" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-F "purpose=fine-tune" \
-F "file=@C:\\fine-tuning\\validation_set.jsonl;type=application/json"
Membuat model yang dikustomisasi
Setelah mengunggah file pelatihan dan validasi, Anda siap untuk memulai pekerjaan penyempurnaan. Kode berikut menunjukkan contoh cara membuat tugas penyetelan baru dengan REST API.
Dalam contoh ini kita juga meneruskan parameter seed. Seed mengendalikan reproduksibilitas tugas. Penggunaan seed dan parameter pekerjaan yang sama seharusnya menghasilkan hasil yang sama, tetapi dalam kasus yang jarang, dapat berbeda. Jika benih tidak ditentukan, satu akan dihasilkan untuk Anda.
curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs?api-version=2024-10-21 \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{
"model": "gpt-4.1-2025-04-14",
"training_file": "<TRAINING_FILE_ID>",
"validation_file": "<VALIDATION_FILE_ID>",
"seed": 105
}'
Anda juga dapat meneruskan parameter opsional tambahan seperti hyperparameter untuk mengambil kontrol yang lebih besar dari proses penyempurnaan. Untuk pelatihan awal, sebaiknya gunakan default otomatis yang ada tanpa menentukan parameter ini.
Hyperparameter yang didukung saat ini untuk penyempurnaan adalah:
Nama | Tipe | Deskripsi |
---|---|---|
batch_size |
bilangan bulat | Ukuran batch yang akan digunakan untuk pelatihan. Ukuran batch adalah jumlah contoh pelatihan yang digunakan untuk melatih satu pass maju dan mundur. Secara umum, kami telah menemukan bahwa ukuran batch yang lebih besar cenderung bekerja lebih baik untuk himpunan data yang lebih besar. Nilai default serta nilai maksimum untuk properti ini khusus untuk model dasar. Ukuran batch yang lebih besar berarti parameter model diperbarui lebih jarang, tetapi dengan varian yang lebih rendah. |
learning_rate_multiplier |
nomor/angka | Pengali laju pembelajaran yang digunakan untuk pelatihan. Laju pembelajaran penyesuaian adalah laju pembelajaran awal yang digunakan untuk pra-latihan dikalikan dengan nilai ini. Tingkat pembelajaran yang lebih besar cenderung berkinerja lebih baik dengan ukuran batch yang lebih besar. Sebaiknya bereksperimen dengan nilai dalam rentang 0,02 hingga 0,2 untuk melihat apa yang menghasilkan hasil terbaik. Tingkat pembelajaran yang lebih kecil dapat berguna untuk menghindari overfitting. |
n_epochs |
bilangan bulat | Jumlah epoch yang diperlukan untuk melatih model. Epoch mengacu pada satu siklus penuh melalui himpunan data pelatihan. |
seed |
bilangan bulat | Seed mengendalikan reproduksibilitas tugas. Menggunakan seed dan parameter pekerjaan yang sama seharusnya menghasilkan hasil yang sama, tetapi mungkin berbeda dalam kasus yang jarang terjadi. Jika benih tidak ditentukan, satu akan dihasilkan untuk Anda. |
Periksa status model yang dikustomisasi
Setelah Anda memulai pekerjaan penyetelan, dapat perlu waktu untuk menyelesaikannya. Pekerjaan Anda mungkin diantrekan di belakang pekerjaan lain dalam sistem. Melatih model Anda dapat memakan waktu beberapa menit atau berjam-jam tergantung pada model dan ukuran himpunan data. Contoh berikut menggunakan REST API untuk memeriksa status pekerjaan penyempurnaan Anda. Contoh mengambil informasi tentang pekerjaan Anda dengan menggunakan ID pekerjaan yang dikembalikan dari contoh sebelumnya:
curl -X GET $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs/<YOUR-JOB-ID>?api-version=2024-10-21 \
-H "api-key: $AZURE_OPENAI_API_KEY"
Mencantumkan peristiwa penyempurnaan
Untuk memeriksa peristiwa penyempurnaan individu yang dihasilkan selama pelatihan:
curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs/{fine_tuning_job_id}/events?api-version=2024-10-21 \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY"
Pos pemeriksaan
Setelah setiap epoch pelatihan selesai, sebuah checkpoint dihasilkan. Titik pemeriksaan adalah versi model yang berfungsi penuh yang dapat disebarkan dan digunakan sebagai model target untuk pekerjaan penyempurnaan berikutnya. Titik pemeriksaan dapat sangat berguna, karena mungkin menyediakan rekam jepret sebelum overfitting. Ketika pekerjaan penyempurnaan selesai, Anda akan memiliki tiga versi terbaru dari model yang tersedia untuk disebarkan. Epoch akhir akan diwakili oleh model yang disempurnakan, dua epoch sebelumnya akan tersedia sebagai titik pemeriksaan.
Anda dapat menjalankan perintah daftar pos pemeriksaan untuk mengambil daftar pos pemeriksaan yang terkait dengan pekerjaan penyempurnaan individual.
curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints?api-version=2024-10-21 \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY"
Menganalisis model yang disesuaikan
Azure OpenAI melampirkan file hasil bernama results.csv ke setiap pekerjaan penyempurnaan setelah selesai. Anda dapat menggunakan file hasil untuk menganalisis performa pelatihan dan validasi model yang disesuaikan. ID file untuk file hasil tercantum untuk setiap model yang disesuaikan, dan Anda dapat menggunakan REST API untuk mengambil ID file dan mengunduh file hasil untuk analisis.
Contoh Python berikut menggunakan REST API untuk mengambil ID file dari file hasil pertama yang dilampirkan ke pekerjaan penyempurnaan untuk model yang disesuaikan, lalu mengunduh file ke direktori kerja Anda untuk analisis.
curl -X GET "$AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs/<JOB_ID>?api-version=2023-12-01-preview" \
-H "api-key: $AZURE_OPENAI_API_KEY")
curl -X GET "$AZURE_OPENAI_ENDPOINT/openai/files/<RESULT_FILE_ID>/content?api-version=2023-12-01-preview" \
-H "api-key: $AZURE_OPENAI_API_KEY" > <RESULT_FILENAME>
File hasil berupa file CSV yang berisi baris header dan baris untuk setiap langkah pelatihan yang dilakukan oleh proses penyempurnaan. File hasil berisi kolom berikut:
Nama kolom | Deskripsi |
---|---|
step |
Jumlah langkah pelatihan. Langkah pelatihan mewakili satu pass, maju dan mundur, pada batch data pelatihan. |
train_loss |
Kerugian untuk batch pelatihan. |
train_mean_token_accuracy |
Persentase token dalam batch pelatihan diprediksi dengan benar oleh model. Misalnya, jika ukuran batch diatur ke 3 dan data Anda berisi hasil [[1, 2], [0, 5], [4, 2]] , nilai ini ditetapkan menjadi 0,83 (5 dari 6) apabila model meramalkan [[1, 1], [0, 5], [4, 2]] . |
valid_loss |
Nilai kerugian untuk batch validasi. |
validation_mean_token_accuracy |
Persentase token dalam batch validasi diprediksi dengan benar oleh model. Misalnya, jika ukuran batch diatur ke 3 dan data Anda berisi hasil [[1, 2], [0, 5], [4, 2]] , nilai ini ditetapkan menjadi 0,83 (5 dari 6) apabila model meramalkan [[1, 1], [0, 5], [4, 2]] . |
full_valid_loss |
Kerugian validasi dihitung pada akhir setiap epoch. Ketika pelatihan berjalan dengan baik, kerugian harus berkurang. |
full_valid_mean_token_accuracy |
Akurasi token rata-rata yang valid dihitung pada akhir setiap epoch. Ketika pelatihan berjalan dengan baik, akurasi token akan meningkat. |
Anda juga dapat melihat data dalam file results.csv Anda sebagai plot di portal Azure AI Foundry. Pilih tautan untuk model terlatih Anda, dan Anda akan melihat tiga grafik yaitu: nilai kerugian, akurasi token rata-rata, dan akurasi token. Jika Anda memberikan data validasi, kedua himpunan data akan muncul pada plot yang sama.
Perhatikan agar kerugian Anda menurun seiring berjalannya waktu, dan akurasi Anda meningkat. Jika Anda melihat perbedaan antara data pelatihan dan validasi, hal itu mungkin menunjukkan bahwa Anda mengalami overfitting. Coba pelatihan dengan lebih sedikit epok, atau dengan pengali kecepatan pembelajaran yang lebih kecil.
Mengimplementasikan model yang telah disempurnakan
Setelah puas dengan metrik dari pekerjaan penyempurnaan Anda, atau Anda hanya ingin beralih ke inferensi, Anda harus menerapkan model.
Jika Anda menyebarkan untuk validasi lebih lanjut, pertimbangkan untuk menyebarkan pengujian menggunakan penyebaran Pengembang.
Jika Anda siap untuk menyebarkan untuk produksi atau memiliki kebutuhan residensi data tertentu, ikuti panduan penyebaran kami.
variabel | Definisi |
---|---|
token | Ada beberapa cara untuk menghasilkan token otorisasi. Metode term mudah untuk pengujian awal adalah meluncurkan Cloud Shell dari portal Azure. Kemudian jalankan az account get-access-token . Anda dapat menggunakan token ini sebagai token otorisasi sementara untuk pengujian API. Sebaiknya simpan ini dalam variabel lingkungan baru. |
langganan | ID langganan untuk sumber daya Azure OpenAI terkait. |
grup sumber daya | Nama grup sumber daya untuk sumber daya Azure OpenAI Anda. |
nama_sumber | Nama sumber daya Azure OpenAI. |
nama_penerapan_model | Nama kustom untuk penerapan model baru yang sudah disesuaikan. Ini adalah nama yang akan direferensikan dalam kode Anda saat melakukan panggilan penyelesaian obrolan. |
model yang disesuaikan | Ambil nilai ini dari hasil pekerjaan penyempurnaan Anda pada langkah sebelumnya. Ini akan terlihat seperti gpt-4.1-2025-04-14.ft-b044a9d3cf9c4228b5d393567f693b83 . Anda harus menambahkan nilai tersebut ke json deploy_data. Atau Anda juga dapat menggunakan checkpoint, dengan memasukkan ID checkpoint yang akan muncul dalam format ftchkpt-e559c011ecc04fc68eaa339d8227d02d |
curl -X POST "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2024-10-21" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"sku": {"name": "standard", "capacity": 1},
"properties": {
"model": {
"format": "OpenAI",
"name": "<FINE_TUNED_MODEL>",
"version": "1"
}
}
}'
Pelajari selengkapnya tentang penyebaran lintas wilayah dan gunakan model yang disebarkan di sini.
Penyempurnaan berkelanjutan
Setelah membuat model yang disempurnakan, Anda mungkin ingin terus menyempurnakan model dari waktu ke waktu melalui penyempurnaan lebih lanjut. Penyempurnaan berkelanjutan adalah proses berulang untuk memilih model yang sudah disempurnakan sebagai model dasar dan menyempurnakannya lebih lanjut pada serangkaian contoh pelatihan baru.
Untuk melakukan penyempurnaan pada model yang sebelumnya telah Disempurnakan, Anda akan menggunakan proses yang sama seperti yang dijelaskan dalam membuat model yang disesuaikan tetapi alih-alih menentukan nama model dasar generik, Anda akan menentukan ID model yang sudah disempurnakan. ID model yang telah dioptimalkan terlihat seperti gpt-4.1-2025-04-14.ft-5fd1918ee65d4cd38a5dcf6835066ed7
curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs?api-version=2023-12-01-preview \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{
"model": "gpt-4.1-2025-04-14.ft-5fd1918ee65d4cd38a5dcf6835066ed7",
"training_file": "<TRAINING_FILE_ID>",
"validation_file": "<VALIDATION_FILE_ID>",
"suffix": "<additional text used to help identify fine-tuned models>"
}'
Sebaiknya sertakan suffix
parameter untuk mempermudah membedakan antara iterasi yang berbeda dari model yang disempurnakan.
suffix
mengambil string, dan digunakan untuk mengidentifikasi model yang sudah disesuaikan. Akhiran dapat berisi hingga 40 karakter (a-z, A-Z, 0-9, - dan _) yang akan ditambahkan ke dalam nama model yang sudah disesuaikan.
Jika Anda tidak yakin dengan ID model yang disempurnakan, informasi ini dapat ditemukan di halaman Model Azure AI Foundry, atau Anda dapat membuat daftar model untuk sumber daya Azure OpenAI tertentu menggunakan REST API.
Bersihkan penyebaran Anda, model yang disesuaikan, dan file pelatihan
Setelah Anda selesai menggunakan model yang telah disesuaikan, Anda dapat menghapus penyebaran dan model tersebut. Anda juga dapat menghapus file pelatihan dan validasi yang Anda unggah ke layanan, jika diperlukan.
Hapus penerapan model Anda
Anda dapat menggunakan berbagai metode untuk menghapus penyebaran untuk model yang disesuaikan:
Menghapus model yang dikustomisasi
Demikian pula, Anda dapat menggunakan berbagai metode untuk menghapus model yang disesuaikan:
Nota
Anda tidak dapat menghapus model yang disesuaikan jika model tersebut memiliki penerapan yang sudah ada. Anda harus terlebih dahulu menghapus penyebaran model Anda sebelum dapat menghapus model yang telah disesuaikan.
Menghapus file pelatihan Anda
Anda dapat secara opsional menghapus file pelatihan dan validasi yang Anda unggah untuk pelatihan, dan file hasil yang dihasilkan selama pelatihan, dari langganan Azure OpenAI Anda. Anda dapat menggunakan metode berikut untuk menghapus file pelatihan, validasi, dan hasil Anda:
Langkah selanjutnya
- Jelajahi kemampuan penyempurnaan dalam tutorial penyempurnaan Azure OpenAI.
- Meninjau ketersediaan model yang disesuaikan secara regional
- Pelajari selengkapnya tentang kuota Azure OpenAI