Menyesuaikan model dengan penyempurnaan
Layanan Azure OpenAI 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 melatih 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 bidikan, penyetelan halus meningkatkan model dengan melatih lebih banyak contoh daripada yang dapat sesuai dengan permintaan, memungkinkan Anda mencapai hasil yang lebih baik pada sejumlah tugas. Karena penyetelan halus menyesuaikan bobot model dasar untuk meningkatkan performa pada tugas tertentu, Anda tidak perlu menyertakan contoh atau instruksi sebanyak mungkin 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 perkiraan peringkat rendah, untuk menyempurnakan model dengan cara yang mengurangi kompleksitasnya tanpa memengaruhi performanya secara signifikan. Metode ini bekerja dengan mengurangi matriks peringkat tinggi asli dengan peringkat yang lebih rendah, sehingga hanya menyempurnakan subset parameter "penting" yang lebih kecil selama fase pelatihan yang diawasi, membuat model lebih mudah dikelola dan efisien. Bagi pengguna, ini membuat pelatihan lebih cepat dan lebih terjangkau daripada teknik lain.
Catatan
Azure OpenAI saat ini hanya mendukung penyempurnaan teks ke teks untuk semua model yang didukung termasuk GPT-4o mini.
Prasyarat
- Baca panduan Penghalusan Kapan menggunakan Azure OpenAI.
- 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.
- Akses penyempurnaan memerlukan Kontributor OpenAI Cognitive Services.
- Jika Anda belum memiliki akses untuk melihat kuota, dan menyebarkan model di Azure OpenAI Studio, Anda akan memerlukan izin tambahan.
Model
Model berikut mendukung penyempurnaan:
babbage-002
davinci-002
gpt-35-turbo
(0613)gpt-35-turbo
(1106)gpt-35-turbo
(0125)gpt-4
(0613)*gpt-4o
(2024-08-06)gpt-4o-mini
(2024-07-18)
* Penyempurnaan untuk model ini saat ini dalam pratinjau publik.
Atau Anda dapat menyempurnakan model yang sebelumnya disempurnakan, yang diformat sebagai base-model.ft-{jobid}.
Lihat halaman model untuk memeriksa wilayah mana yang saat ini mendukung penyempurnaan.
Meninjau alur kerja untuk Azure OpenAI Studio
Luangkan waktu sejenak untuk meninjau alur kerja penyempurnaan untuk menggunakan Azure OpenAI Studio:
- Siapkan data pelatihan dan validasi Anda.
- Gunakan wizard Buat model kustom di Azure OpenAI Studio untuk melatih model kustom Anda.
- Pilih model dasar.
- Pilih data pelatihan Anda.
- Secara opsional, pilih data validasi Anda.
- Secara opsional, konfigurasikan parameter tugas untuk pekerjaan penyempurnaan Anda.
- Tinjau pilihan Anda dan latih model kustom baru Anda.
- Periksa status model kustom yang disempurnakan.
- 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.
Jenis model yang berbeda memerlukan format data pelatihan yang berbeda.
Data pelatihan dan validasi yang Anda gunakan harus diformat sebagai dokumen JSON Lines (JSONL). Untuk gpt-35-turbo
(semua versi), gpt-4
, , gpt-4o
dan gpt-4o-mini
, himpunan data penyempurnaan harus diformat dalam format percakapan yang digunakan oleh API penyelesaian obrolan.
Jika Anda ingin panduan langkah demi langkah dari menyempurnakan gpt-4o-mini
model (2024-07-18) silakan lihat tutorial penyempurnaan Azure OpenAI.
Contoh format file
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}
Format file obrolan multi-giliran
Beberapa giliran percakapan dalam satu baris file pelatihan jsonl Anda juga didukung. Untuk melewati 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}]}
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.
Menggunakan wizard Buat model kustom
Azure OpenAI Studio menyediakan wizard Buat model kustom, sehingga Anda dapat membuat dan melatih model yang disempurnakan secara interaktif untuk sumber daya Azure Anda.
Buka Azure OpenAI Studio di https://oai.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 Azure OpenAI Studio, telusuri panel Alat > Penyempurnaan , dan pilih Sesuaikan model.
Wizard Buat model kustom terbuka.
Pilih model dasar
Langkah pertama dalam membuat model kustom adalah memilih model dasar. Panel Model dasar memungkinkan Anda memilih model dasar yang akan digunakan untuk model kustom Anda. Pilihan Anda memengaruhi performa dan biaya model Anda.
Pilih model dasar dari dropdown Jenis model dasar, lalu pilih Berikutnya untuk melanjutkan.
Anda dapat membuat model kustom dari salah satu model dasar berikut yang tersedia:
babbage-002
davinci-002
gpt-35-turbo
(0613)gpt-35-turbo
(1106)gpt-35-turbo
(0125)gpt-4
(0613)Atau Anda dapat menyempurnakan model yang sebelumnya disempurnakan, yang diformat sebagai base-model.ft-{jobid}.
Untuk informasi selengkapnya tentang model dasar kami yang dapat disempurnakan, lihat Model.
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. Panel 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 Koneksi Azure OpenAI.
- Pilih file dari daftar dropdown yang diperlihatkan.
Untuk mengunggah data pelatihan baru, gunakan salah satu opsi berikut:
Pilih File lokal 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?
Catatan
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 dari file lokal
Anda dapat mengunggah himpunan data pelatihan baru ke layanan dari file lokal dengan menggunakan salah satu metode berikut:
Seret dan letakkan file ke area klien panel Data pelatihan, lalu pilih Unggah file.
Pilih Telusuri file dari area klien panel Data pelatihan, pilih file yang akan diunggah dari dialog Buka , lalu pilih Unggah file.
Setelah Anda memilih dan mengunggah himpunan data pelatihan, pilih Berikutnya untuk melanjutkan.
Mengimpor data pelatihan dari penyimpanan Azure Blob
Anda dapat mengimpor himpunan data pelatihan dari Azure Blob atau lokasi web bersama lainnya dengan memberikan nama dan lokasi file.
Masukkan Nama file untuk file tersebut.
Untuk Lokasi file, berikan URL Azure Blob, tanda tangan akses bersama (SAS) Azure Storage, atau tautan lain ke lokasi web bersama yang dapat diakses.
Pilih Impor untuk mengimpor himpunan data pelatihan ke layanan.
Setelah Anda memilih dan mengunggah himpunan data pelatihan, pilih Berikutnya untuk melanjutkan.
Pilih data validasi Anda
Langkah berikutnya menyediakan opsi untuk mengonfigurasi model untuk menggunakan data validasi dalam proses pelatihan. Jika Anda tidak ingin menggunakan data validasi, Anda dapat memilih Berikutnya untuk melanjutkan ke opsi tingkat lanjut untuk model. Jika tidak, jika Anda memiliki himpunan data validasi, Anda dapat memilih data validasi yang sudah disiapkan atau mengunggah data validasi baru yang disiapkan untuk digunakan saat menyesuaikan model Anda.
Panel 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.
Catatan
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.
Mengunggah data validasi dari file lokal
Anda dapat mengunggah himpunan data validasi baru ke layanan dari file lokal dengan menggunakan salah satu metode berikut:
Seret dan letakkan file ke area klien panel Data validasi, lalu pilih Unggah file.
Pilih Telusuri file dari area klien panel Data validasi, pilih file yang akan diunggah dari dialog Buka , lalu pilih Unggah file.
Setelah Anda memilih dan mengunggah himpunan data validasi, pilih Berikutnya untuk melanjutkan.
Mengimpor data validasi dari penyimpanan Azure Blob
Anda dapat mengimpor himpunan data validasi dari Azure Blob atau lokasi web bersama lainnya dengan memberikan nama dan lokasi file.
Masukkan Nama file untuk file tersebut.
Untuk Lokasi file, berikan URL Azure Blob, tanda tangan akses bersama (SAS) Azure Storage, atau tautan lain ke lokasi web bersama yang dapat diakses.
Pilih Impor untuk mengimpor himpunan data pelatihan ke layanan.
Setelah Anda memilih dan mengunggah himpunan data validasi, pilih Berikutnya untuk melanjutkan.
Mengonfigurasi parameter tugas
Wizard Buat model kustom memperlihatkan parameter untuk melatih model yang disempurnakan pada panel Parameter tugas. Parameter berikut ini diperlukan:
Nama | Jenis | Keterangan |
---|---|---|
batch_size |
Integer | 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 |
number | Pengali tingkat pembelajaran yang akan digunakan untuk pelatihan. Tingkat pembelajaran penyesuaian adalah tingkat pembelajaran asli yang digunakan untuk pra-pelatihan 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 lewah suai. |
n_epochs |
Integer | Jumlah epoch untuk melatih model. Epoch mengacu pada satu siklus penuh melalui himpunan data pelatihan. |
seed |
Integer | Seed mengontrol reproduktifitas pekerjaan. Melewatkan seed dan parameter pekerjaan yang sama akan menghasilkan hasil yang sama, tetapi mungkin berbeda dalam kasus yang jarang terjadi. Jika seed tidak ditentukan, seed akan dibuatkan untuk Anda |
Pilih Default untuk menggunakan nilai default untuk pekerjaan penyempurnaan, atau pilih Kustom untuk menampilkan dan mengedit nilai hyperparameter. Saat default dipilih, kami menentukan nilai yang benar secara algoritma berdasarkan data pelatihan Anda.
Setelah Mengonfigurasi opsi lanjutan, pilih Berikutnya untuk meninjau pilihan Anda dan melatih model yang disempurnakan.
Tinjau pilihan Anda dan latih model Anda
Panel Tinjau wizard menampilkan informasi tentang pilihan konfigurasi Anda.
Jika Anda siap untuk melatih model Anda, pilih Mulai pekerjaan Pelatihan untuk memulai pekerjaan penyempurnaan dan kembali ke panel Model .
Periksa status model kustom Anda
Panel Model menampilkan informasi tentang model kustom Anda di tab Model yang dikustomisasi . Tab menyertakan informasi tentang status dan ID pekerjaan pekerjaan yang menyempurnakan untuk model kustom Anda. Ketika pekerjaan selesai, tab menampilkan ID file dari file hasil. Anda mungkin perlu memilih Refresh untuk melihat status yang diperbarui untuk pekerjaan pelatihan model.
Setelah Anda memulai pekerjaan penyempurnaan, perlu waktu untuk menyelesaikannya. 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.
Berikut adalah beberapa tugas yang bisa Anda lakukan di panel Model :
Periksa status pekerjaan penyempurnaan untuk model kustom Anda di kolom Status tab Model yang dikustomisasi .
Di kolom Nama model, pilih nama model untuk melihat informasi selengkapnya tentang model kustom. Anda dapat melihat status pekerjaan penyempurnaan, hasil pelatihan, peristiwa pelatihan, dan hiperparameter yang digunakan dalam pekerjaan.
Pilih Unduh file pelatihan untuk mengunduh data pelatihan yang Anda gunakan untuk model.
Pilih Unduh hasil untuk mengunduh file hasil yang dilampirkan ke pekerjaan penyempurnaan untuk model Anda dan analisis model kustom Anda untuk performa pelatihan dan validasi.
Pilih Refresh untuk memperbarui informasi di halaman.
Titik pemeriksaan
Ketika setiap epoch pelatihan menyelesaikan titik pemeriksaan 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 dapat memberikan rekam jepret model Anda sebelum overfitting terjadi. Ketika pekerjaan penyempurnaan selesai, Anda akan memiliki tiga versi terbaru dari model yang tersedia untuk disebarkan.
Evaluasi keselamatan GPT-4, GPT-4o, dan GPT-4o-mini fine-tuning - pratinjau publik
GPT-4o, GPT-4o-mini, dan GPT-4 adalah model kami yang paling canggih yang dapat disesuaikan dengan kebutuhan Anda. Seperti halnya model Azure OpenAI umumnya, kemampuan lanjutan model yang disempurnakan hadir dengan peningkatan tantangan AI yang bertanggung jawab yang terkait dengan konten berbahaya, manipulasi, perilaku seperti manusia, masalah privasi, dan banyak lagi. Pelajari selengkapnya tentang risiko, kemampuan, dan batasan dalam Gambaran Umum praktik AI yang Bertanggung Jawab dan Catatan Transparansi. Untuk membantu mengurangi risiko yang terkait dengan model yang disempurnakan tingkat lanjut, kami telah menerapkan langkah-langkah evaluasi tambahan untuk membantu mendeteksi dan mencegah konten berbahaya dalam pelatihan dan output model yang disempurnakan. Langkah-langkah ini di-grounded dalam pemfilteran konten Microsoft Responsible AI Standard dan Azure OpenAI Service.
- Evaluasi dilakukan di ruang kerja khusus pelanggan, khusus pelanggan;
- Titik akhir evaluasi berada dalam geografi yang sama dengan sumber daya Azure OpenAI;
- Data pelatihan tidak disimpan sehubungan dengan melakukan evaluasi; hanya penilaian model akhir (dapat disebarkan atau tidak dapat disebarkan) yang dipertahankan; dan
Filter evaluasi model GPT-4o, GPT-4o-mini, dan GPT-4 yang disempurnakan diatur ke ambang batas yang telah ditentukan sebelumnya dan tidak dapat dimodifikasi oleh pelanggan; mereka tidak terkait dengan konfigurasi pemfilteran konten kustom apa pun yang mungkin telah Anda buat.
Evaluasi data
Sebelum pelatihan dimulai, data Anda dievaluasi untuk konten yang berpotensi berbahaya (kekerasan, seksual, kebencian, dan keadilan, bahaya diri sendiri - lihat definisi kategori di sini). Jika konten berbahaya terdeteksi di atas tingkat keparahan yang ditentukan, pekerjaan pelatihan Anda akan gagal, dan Anda akan menerima pesan yang memberi tahu Anda tentang kategori kegagalan.
Contoh pesan:
The provided training data failed RAI checks for harm types: [hate_fairness, self_harm, violence]. Please fix the data and try again.
Data pelatihan Anda dievaluasi secara otomatis dalam pekerjaan impor data Anda sebagai bagian dari penyediaan kemampuan penyempurnaan.
Jika pekerjaan penyempurnaan gagal karena deteksi konten berbahaya dalam data pelatihan, Anda tidak akan dikenakan biaya.
Evaluasi model
Setelah pelatihan selesai tetapi sebelum model yang disempurnakan tersedia untuk penyebaran, model yang dihasilkan dievaluasi untuk respons yang berpotensi berbahaya menggunakan metrik risiko dan keamanan bawaan Azure. Menggunakan pendekatan yang sama untuk menguji yang kami gunakan untuk model bahasa besar dasar, kemampuan evaluasi kami mensimulasikan percakapan dengan model yang disempurnakan untuk menilai potensi output konten berbahaya, sekali lagi menggunakan kategori konten berbahaya tertentu (kekerasan, seksual, kebencian, dan keadilan, membahayakan diri sendiri).
Jika model ditemukan untuk menghasilkan output yang berisi konten yang terdeteksi berbahaya di atas tingkat yang dapat diterima, Anda akan diberi tahu bahwa model Anda tidak tersedia untuk penyebaran, dengan informasi tentang kategori bahaya tertentu yang terdeteksi:
Contoh Pesan:
This model is unable to be deployed. Model evaluation identified that this fine tuned model scores above acceptable thresholds for [Violence, Self Harm]. Please review your training data set and resubmit the job.
Seperti halnya evaluasi data, model dievaluasi secara otomatis dalam pekerjaan penyempurnaan Anda sebagai bagian dari menyediakan kemampuan penyempurnaan. Hanya penilaian yang dihasilkan (dapat disebarkan atau tidak dapat disebarkan) yang dicatat oleh layanan. Jika penyebaran model yang disempurnakan gagal karena deteksi konten berbahaya dalam output model, Anda tidak akan dikenakan biaya untuk eksekusi pelatihan.
Menyebarkan model yang disempurnakan
Saat pekerjaan penyempurnaan berhasil, Anda dapat menyebarkan model kustom dari panel Model . Anda harus menyebarkan model kustom agar tersedia untuk digunakan dengan panggilan penyelesaian.
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 disebarkan lebih dari lima belas (15) hari yang lalu dan tidak ada penyelesaian atau panggilan penyelesaian obrolan yang dilakukan padanya selama periode 15 hari berkelanjutan.
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 dalam harga Azure OpenAI Service, 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 Service.
Catatan
Hanya satu penyebaran yang diizinkan untuk model kustom. Pesan kesalahan ditampilkan jika Anda memilih model kustom yang sudah disebarkan.
Untuk menyebarkan model kustom Anda, pilih model kustom yang akan disebarkan, lalu pilih Sebarkan model.
Kotak dialog Sebarkan model terbuka. Dalam kotak dialog, masukkan Nama penyebaran Anda lalu pilih Buat untuk memulai penyebaran model kustom Anda.
Anda dapat memantau kemajuan penyebaran Anda di panel Penyebaran di Azure OpenAI Studio.
Penyebaran lintas wilayah
Penyempurnaan mendukung penyebaran model yang disempurnakan ke wilayah yang berbeda dari tempat model awalnya disempurnakan. Anda juga dapat menyebarkan ke langganan/wilayah yang berbeda.
Satu-satunya batasan adalah bahwa wilayah baru juga harus mendukung penyempurnaan dan saat menyebarkan langganan silang, akun yang menghasilkan token otorisasi untuk penyebaran harus memiliki akses ke langganan sumber dan tujuan.
Penyebaran lintas langganan/wilayah dapat dilakukan melalui Python atau REST.
Menggunakan model kustom yang disebarkan
Setelah model kustom Anda disebarkan, Anda dapat menggunakannya seperti model lain yang disebarkan. Anda dapat menggunakan Playground di Azure OpenAI Studio untuk bereksperimen dengan penyebaran baru Anda. Anda dapat terus menggunakan parameter yang sama dengan model kustom Anda, seperti dan max_tokens
, seperti temperature
yang Anda bisa dengan model lain yang disebarkan. Untuk penyempurnaan babbage-002
dan davinci-002
model, Anda akan menggunakan taman bermain Penyelesaian dan API Penyelesaian. Untuk model yang disempurnakan gpt-35-turbo-0613
, Anda akan menggunakan taman bermain Obrolan dan API penyelesaian Obrolan.
Menganalisis model kustom 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 tercantum untuk setiap model kustom di kolom Id file Hasil pada panel Model untuk Azure OpenAI Studio. Anda dapat menggunakan ID file untuk mengidentifikasi dan mengunduh file hasil dari panel File data Azure OpenAI Studio.
File hasil adalah file CSV yang berisi baris header dan baris untuk setiap langkah pelatihan yang dilakukan oleh pekerjaan 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 penyelesaian [[1, 2], [0, 5], [4, 2]] , nilai ini diatur ke 0,83 (5 dari 6) jika model diprediksi [[1, 1], [0, 5], [4, 2]] . |
valid_loss |
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 penyelesaian [[1, 2], [0, 5], [4, 2]] , nilai ini diatur ke 0,83 (5 dari 6) jika model diprediksi [[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 harus meningkat. |
Anda juga dapat melihat data dalam file results.csv Anda sebagai plot di Azure OpenAI Studio. Pilih tautan untuk model terlatih Anda, dan Anda akan melihat tiga bagan: kehilangan, akurasi token rata-rata, dan akurasi token. Jika Anda memberikan data validasi, kedua himpunan data akan muncul pada plot yang sama.
Carilah kerugian Anda untuk menurun dari waktu ke waktu, dan akurasi Anda meningkat. Jika Anda melihat divergensi antara data pelatihan dan validasi Anda, yang mungkin menunjukkan bahwa Anda overfitting. Coba pelatihan dengan lebih sedikit epoch, atau pengali tingkat pembelajaran yang lebih kecil.
Membersihkan penyebaran, 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 penyebaran 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 disebarkan lebih dari lima belas (15) hari yang lalu dan tidak ada penyelesaian atau panggilan penyelesaian obrolan yang dilakukan padanya selama periode 15 hari berkelanjutan.
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 dalam harga Azure OpenAI Service, 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 Service.
Anda dapat menghapus penyebaran untuk model kustom Anda di panel Penyebaran di Azure OpenAI Studio. Pilih penyebaran yang akan dihapus, lalu pilih Hapus untuk menghapus penyebaran.
Menghapus model kustom Anda
Anda dapat menghapus model kustom di panel Model di Azure OpenAI Studio. Pilih model kustom yang akan dihapus dari tab Model yang dikustomisasi , lalu pilih Hapus untuk menghapus model kustom.
Catatan
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 File data manajemen>di Azure OpenAI Studio. Pilih file yang akan dihapus, lalu pilih Hapus untuk menghapus file.
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 model yang sudah disempurnakan. Model kustom yang disempurnakan akan terlihat seperti gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7
Sebaiknya sertakan suffix
parameter untuk mempermudah membedakan antara iterasi yang berbeda dari model yang disempurnakan. suffix
mengambil string, dan diatur untuk mengidentifikasi model yang disempurnakan. Dengan OpenAI Python API, string hingga 18 karakter didukung yang akan ditambahkan ke nama model yang disempurnakan.
Penting
Item yang ditandai (pratinjau) dalam artikel ini sedang dalam pratinjau publik. Pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan kami tidak merekomendasikannya untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.
Prasyarat
Baca panduan Penghalusan Kapan menggunakan Azure OpenAI.
Langganan Azure - Buat langganan gratis.
Sumber daya hub Azure AI.
Proyek Azure AI di Azure AI Studio.
Koneksi Azure OpenAI ke sumber daya di wilayah tempat penyempurnaan didukung.
Catatan
Wilayah yang didukung mungkin bervariasi jika Anda menggunakan model Azure OpenAI dalam proyek AI Studio versus di luar proyek.
Akses penyempurnaan memerlukan peran Kontributor OpenAI Cognitive Services pada sumber daya Azure OpenAI.
Jika Anda belum memiliki akses untuk melihat kuota dan menyebarkan model di Azure AI Studio, Anda memerlukan lebih banyak izin.
Model
Model berikut mendukung penyempurnaan:
babbage-002
davinci-002
gpt-35-turbo
(0613)gpt-35-turbo
(1106)gpt-35-turbo
(0125)gpt-4
(0613)*gpt-4o
(2024-08-06)gpt-4o-mini
(2024-07-18)
* Penyempurnaan untuk model ini saat ini dalam pratinjau publik.
Atau Anda dapat menyempurnakan model yang sebelumnya disempurnakan, yang diformat sebagai base-model.ft-{jobid}.
Lihat halaman model untuk memeriksa wilayah mana yang saat ini mendukung penyempurnaan.
Meninjau alur kerja untuk Azure AI Studio
Luangkan waktu sejenak untuk meninjau alur kerja penyempurnaan untuk menggunakan Azure AI Studio:
- Siapkan data pelatihan dan validasi Anda.
- Gunakan wizard Sesuaikan model di Azure AI Studio untuk melatih model kustom Anda.
- Pilih model.
- Pilih data pelatihan Anda.
- Secara opsional, pilih data validasi Anda.
- Secara opsional, konfigurasikan parameter Anda untuk pekerjaan penyempurnaan Anda.
- Tinjau pilihan Anda dan latih model kustom baru Anda.
- Periksa status model anda yang disempurnakan.
- Secara opsional, analisis model yang disempurnakan agar performa dan kecocokan.
- Sebarkan model yang disempurnakan untuk digunakan.
- Gunakan model yang disempurnakan.
Menyiapkan data pelatihan dan validasi Anda
Himpunan data pelatihan dan validasi Anda terdiri dari contoh input dan output untuk bagaimana Anda ingin model melakukan.
Jenis model yang berbeda memerlukan format data pelatihan yang berbeda.
Data pelatihan dan validasi yang Anda gunakan harus diformat sebagai dokumen JSON Lines (JSONL). Untuk gpt-35-turbo-0613
himpunan data penyempurnaan harus diformat dalam format percakapan yang digunakan oleh API penyelesaian obrolan.
Jika Anda ingin panduan langkah demi langkah dari penyempurnaan gpt-35-turbo-0613
model, silakan lihat tutorial penyempurnaan Azure OpenAI.
Contoh format file
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}
Format file obrolan multi-giliran
Beberapa giliran percakapan dalam satu baris file pelatihan jsonl Anda juga didukung. Untuk melewati 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}]}
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.
Membuat model yang disempurnakan
Untuk menyempurnakan model Azure OpenAI dalam proyek Azure AI Studio yang sudah ada, ikuti langkah-langkah berikut:
Masuk ke Azure AI Studio dan pilih proyek Anda. Jika Anda belum memiliki proyek, pertama-tama buat proyek.
Dari menu kiri yang dapat diciutkan, pilih Fine-tuning>+ Fine-tune model.
Pilih model dasar
Pilih model dasar untuk menyempurnakan. Pilihan Anda memengaruhi performa dan biaya model Anda. Dalam contoh ini, kita memilih
gpt-35-turbo
model. Lalu pilih Konfirmasi.Karena
gpt-35-turbo
kami memiliki versi yang berbeda yang tersedia untuk penyempurnaan, jadi pilih versi mana yang ingin Anda sesuaikan. Kami akan memilih (0301).Sebaiknya sertakan
suffix
parameter untuk mempermudah membedakan antara iterasi yang berbeda dari model yang disempurnakan.suffix
mengambil string, dan diatur untuk mengidentifikasi model yang disempurnakan. Dengan OpenAI Python API, string hingga 18 karakter didukung yang akan ditambahkan ke nama model yang disempurnakan.
Jika Anda memiliki lebih dari satu koneksi Azure OpenAI yang diaktifkan untuk penyempurnaan, pilih sumber daya mana yang ingin Anda gunakan. Harap dicatat bahwa semua pengguna dengan akses ke sumber daya Azure OpenAI Anda akan memiliki akses ke model yang disempurnakan ini.
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. Panel 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 ada di proyek Anda, pilih Data di Azure AI Studio.
- Pilih file dari daftar yang diperlihatkan di panel Data pelatihan.
Jika data pelatihan Anda sudah diunggah ke layanan Azure OpenAI, pilih koneksi Azure OpenAI Anda di bawah Koneksi Azure OpenAI.
Untuk mengunggah data pelatihan untuk menyempurnakan model Anda, pilih Unggah data lalu pilih Unggah file.
- Pastikan semua contoh pelatihan Anda mengikuti format yang diharapkan untuk inferensi. Untuk menyempurnakan model secara efektif, pastikan himpunan data yang seimbang dan beragam. Ini melibatkan menjaga keseimbangan data, termasuk berbagai skenario, dan secara berkala menyempurnakan data pelatihan untuk menyelaraskan dengan harapan dunia nyata, pada akhirnya mengarah ke respons model yang lebih akurat dan seimbang. Lihat persiapan data untuk informasi selengkapnya.
- 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?
Catatan
File data pelatihan harus diformat sebagai file JSONL, dikodekan dalam UTF-8 dengan tanda urutan byte (BOM). Ukuran file harus kurang dari 512 MB.
Setelah mengunggah file, Anda akan melihat pratinjau data pelatihan Anda. Untuk melanjutkan, klik Berikutnya.
Pilih data validasi Anda
Secara opsional, Anda dapat memilih untuk memberikan data validasi untuk menyempurnakan model Anda. Jika Anda tidak ingin menggunakan data validasi, Anda bisa memilih Tidak Ada dan pilih Berikutnya untuk melanjutkan ke opsi tingkat lanjut untuk model.
Jika tidak, jika Anda memiliki himpunan data validasi, Anda dapat memilih dari data yang diunggah sebelumnya atau mengunggah data validasi yang baru disiapkan untuk digunakan untuk menyempurnakan model Anda.
Catatan
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.
Mengonfigurasi parameter Anda
Secara opsional, konfigurasikan parameter untuk pekerjaan penyempurnaan Anda. Kategori berikut tersedia:
Nama | Jenis | Keterangan |
---|---|---|
batch_size |
Integer | 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. Ketika diatur ke -1, batch_size dihitung sebagai 0,2% dari contoh dalam set pelatihan dan maksimalnya adalah 256. |
learning_rate_multiplier |
number | Pengali tingkat pembelajaran yang akan digunakan untuk pelatihan. Tingkat pembelajaran penyesuaian adalah tingkat pembelajaran asli yang digunakan untuk pra-pelatihan 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 lewah suai. |
n_epochs |
Integer | Jumlah epoch untuk melatih model. Epoch mengacu pada satu siklus penuh melalui himpunan data pelatihan. Jika diatur ke -1, jumlah epoch ditentukan secara dinamis berdasarkan data input. |
seed |
Integer | Seed mengontrol reproduktifitas pekerjaan. Melewatkan seed dan parameter pekerjaan yang sama akan menghasilkan hasil yang sama, tetapi mungkin berbeda dalam kasus yang jarang terjadi. Jika benih tidak ditentukan, satu akan dihasilkan untuk Anda. |
Anda dapat memilih untuk meninggalkan konfigurasi default atau menyesuaikan nilai dengan preferensi Anda. Setelah Anda selesai membuat konfigurasi, pilih Berikutnya.
Tinjau pilihan Anda dan latih model Anda
Tinjau pilihan Anda dan pilih Kirim untuk mulai melatih model baru anda yang disempurnakan.
Periksa status model anda yang disempurnakan
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 Menyempurnakan>Model di Azure AI Studio.
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.
Menganalisis model yang disempurnakan
Setelah penyempurnaan berhasil diselesaikan, Anda dapat mengunduh file hasil bernama results.csv dari halaman model yang disempurnakan di bawah tab Detail . Anda dapat menggunakan file hasil untuk menganalisis performa pelatihan dan validasi model kustom Anda.
File hasil adalah file CSV yang berisi baris header dan baris untuk setiap langkah pelatihan yang dilakukan oleh pekerjaan 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 penyelesaian [[1, 2], [0, 5], [4, 2]] , nilai ini diatur ke 0,83 (5 dari 6) jika model diprediksi [[1, 1], [0, 5], [4, 2]] . |
valid_loss |
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 penyelesaian [[1, 2], [0, 5], [4, 2]] , nilai ini diatur ke 0,83 (5 dari 6) jika model diprediksi [[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 harus meningkat. |
Anda juga dapat melihat data dalam file results.csv sebagai plot di Azure AI Studio di bawah tab Metrik model yang disempurnakan. Pilih tautan untuk model terlatih Anda, dan Anda akan melihat dua bagan: kehilangan, dan akurasi token. Jika Anda memberikan data validasi, kedua himpunan data akan muncul pada plot yang sama.
Carilah kerugian Anda untuk menurun dari waktu ke waktu, dan akurasi Anda meningkat. Jika Anda melihat divergensi antara data pelatihan dan validasi yang mungkin menunjukkan bahwa Anda terlalu pas. Coba pelatihan dengan lebih sedikit epoch, atau pengali tingkat pembelajaran yang lebih kecil.
Titik pemeriksaan
Ketika setiap epoch pelatihan menyelesaikan titik pemeriksaan 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 dapat memberikan rekam jepret model Anda sebelum overfitting terjadi. Ketika pekerjaan penyempurnaan selesai, Anda akan memiliki tiga versi terbaru dari model yang tersedia untuk disebarkan.
Evaluasi keamanan GPT-4, GPT-4o, GPT-4o-mini fine-tuning - pratinjau publik
GPT-4o, GPT-4o-mini, dan GPT-4 adalah model kami yang paling canggih yang dapat disesuaikan dengan kebutuhan Anda. Seperti halnya model Azure OpenAI umumnya, kemampuan lanjutan model yang disempurnakan hadir dengan peningkatan tantangan AI yang bertanggung jawab yang terkait dengan konten berbahaya, manipulasi, perilaku seperti manusia, masalah privasi, dan banyak lagi. Pelajari selengkapnya tentang risiko, kemampuan, dan batasan dalam Gambaran Umum praktik AI yang Bertanggung Jawab dan Catatan Transparansi. Untuk membantu mengurangi risiko yang terkait dengan model yang disempurnakan tingkat lanjut, kami telah menerapkan langkah-langkah evaluasi tambahan untuk membantu mendeteksi dan mencegah konten berbahaya dalam pelatihan dan output model yang disempurnakan. Langkah-langkah ini di-grounded dalam pemfilteran konten Microsoft Responsible AI Standard dan Azure OpenAI Service.
- Evaluasi dilakukan di ruang kerja khusus pelanggan, khusus pelanggan;
- Titik akhir evaluasi berada dalam geografi yang sama dengan sumber daya Azure OpenAI;
- Data pelatihan tidak disimpan sehubungan dengan melakukan evaluasi; hanya penilaian model akhir (dapat disebarkan atau tidak dapat disebarkan) yang dipertahankan; dan
Filter evaluasi model GPT-4o, GPT-4o-mini, dan GPT-4 yang disempurnakan diatur ke ambang batas yang telah ditentukan sebelumnya dan tidak dapat dimodifikasi oleh pelanggan; mereka tidak terkait dengan konfigurasi pemfilteran konten kustom apa pun yang mungkin telah Anda buat.
Evaluasi data
Sebelum pelatihan dimulai, data Anda dievaluasi untuk konten yang berpotensi berbahaya (kekerasan, seksual, kebencian, dan keadilan, bahaya diri sendiri - lihat definisi kategori di sini). Jika konten berbahaya terdeteksi di atas tingkat keparahan yang ditentukan, pekerjaan pelatihan Anda akan gagal, dan Anda akan menerima pesan yang memberi tahu Anda tentang kategori kegagalan.
Contoh pesan:
The provided training data failed RAI checks for harm types: [hate_fairness, self_harm, violence]. Please fix the data and try again.
Data pelatihan Anda dievaluasi secara otomatis dalam pekerjaan impor data Anda sebagai bagian dari penyediaan kemampuan penyempurnaan.
Jika pekerjaan penyempurnaan gagal karena deteksi konten berbahaya dalam data pelatihan, Anda tidak akan dikenakan biaya.
Evaluasi model
Setelah pelatihan selesai tetapi sebelum model yang disempurnakan tersedia untuk penyebaran, model yang dihasilkan dievaluasi untuk respons yang berpotensi berbahaya menggunakan metrik risiko dan keamanan bawaan Azure. Menggunakan pendekatan yang sama untuk menguji yang kami gunakan untuk model bahasa besar dasar, kemampuan evaluasi kami mensimulasikan percakapan dengan model yang disempurnakan untuk menilai potensi output konten berbahaya, sekali lagi menggunakan kategori konten berbahaya tertentu (kekerasan, seksual, kebencian, dan keadilan, membahayakan diri sendiri).
Jika model ditemukan untuk menghasilkan output yang berisi konten yang terdeteksi berbahaya di atas tingkat yang dapat diterima, Anda akan diberi tahu bahwa model Anda tidak tersedia untuk penyebaran, dengan informasi tentang kategori bahaya tertentu yang terdeteksi:
Contoh Pesan:
This model is unable to be deployed. Model evaluation identified that this fine tuned model scores above acceptable thresholds for [Violence, Self Harm]. Please review your training data set and resubmit the job.
Seperti halnya evaluasi data, model dievaluasi secara otomatis dalam pekerjaan penyempurnaan Anda sebagai bagian dari menyediakan kemampuan penyempurnaan. Hanya penilaian yang dihasilkan (dapat disebarkan atau tidak dapat disebarkan) yang dicatat oleh layanan. Jika penyebaran model yang disempurnakan gagal karena deteksi konten berbahaya dalam output model, Anda tidak akan dikenakan biaya untuk eksekusi pelatihan.
Menyebarkan model yang disempurnakan
Setelah model Anda disempurnakan, Anda dapat menyebarkan model dan dapat menggunakannya di aplikasi Anda sendiri. Anda tidak dapat menyebarkan model yang disempurnakan dari halaman penyebaran atau halaman playground di Azure AI Studio. Satu-satunya cara, saat ini, untuk menyebarkan model yang disempurnakan adalah dari halaman detail model untuk model tersebut.
Saat Anda menyebarkan model, Anda membuat model tersedia untuk inferensi, dan itu dikenakan biaya hosting per jam. Namun, model yang disempurnakan dapat disimpan di Azure AI Studio tanpa biaya hingga Anda siap menggunakannya.
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 disebarkan lebih dari lima belas (15) hari yang lalu dan tidak ada penyelesaian atau panggilan penyelesaian obrolan yang dilakukan padanya selama periode 15 hari berkelanjutan.
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 dalam harga Azure OpenAI Service, 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 Service.
Catatan
Hanya satu penyebaran yang diizinkan untuk model yang disempurnakan. Pesan kesalahan ditampilkan jika Anda memilih model yang sudah disempurnakan yang disempurnakan.
Anda dapat memantau kemajuan penyebaran Anda di halaman Penyebaran di Azure AI Studio.
Menggunakan model yang disempurnakan
Setelah model yang disempurnakan, Anda dapat menggunakannya seperti model lain yang disebarkan. Anda dapat menggunakan Playground di Azure AI Studio 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.
Catatan
Untuk model obrolan, pesan sistem yang Anda gunakan untuk memandu model yang disempurnakan (baik disebarkan atau tersedia untuk pengujian di taman bermain) harus sama dengan pesan sistem yang Anda gunakan untuk pelatihan. Jika Anda menggunakan pesan sistem yang berbeda, model mungkin tidak berfungsi seperti yang diharapkan.
Membersihkan penyebaran, model yang disempurnakan, dan file pelatihan Anda
Setelah selesai dengan model yang disempurnakan, Anda dapat menghapus penyebaran dan model. Anda juga dapat menghapus file pelatihan dan validasi yang Anda unggah ke layanan, jika diperlukan.
Menghapus penyebaran model yang disempurnakan
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 disebarkan lebih dari lima belas (15) hari yang lalu dan tidak ada penyelesaian atau panggilan penyelesaian obrolan yang dilakukan padanya selama periode 15 hari berkelanjutan.
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 dalam harga Azure OpenAI Service, 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 Service.
Anda dapat menghapus penyebaran untuk model yang disempurnakan di halaman Penyebaran di Azure AI Studio. Pilih penyebaran yang akan dihapus, lalu pilih Hapus untuk menghapus penyebaran.
Menghapus model yang disesuaikan
Anda dapat menghapus model yang disempurnakan di halaman Penyempurnaan di Azure AI Studio. Pilih model yang disempurnakan untuk dihapus lalu pilih Hapus untuk menghapus model yang disempurnakan.
Catatan
Anda tidak dapat menghapus model yang disempurnakan jika memiliki penyebaran yang ada. Anda harus terlebih dahulu menghapus penyebaran model sebelum dapat menghapus model yang disempurnakan.
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. Untuk ini, Anda perlu membuka Azure OpenAI Studio dan menavigasi ke panel File data manajemen>. Pilih file yang akan dihapus, lalu pilih Hapus untuk menghapus file.
Prasyarat
- Baca panduan Penghalusan Kapan menggunakan Azure OpenAI.
- 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.
- Akses penyempurnaan memerlukan Kontributor OpenAI Cognitive Services.
- Jika Anda belum memiliki akses untuk melihat kuota, dan menyebarkan model di Azure AI Studio, Anda akan memerlukan izin tambahan.
Model
Model berikut mendukung penyempurnaan:
babbage-002
davinci-002
gpt-35-turbo
(0613)gpt-35-turbo
(1106)gpt-35-turbo
(0125)gpt-4
(0613)*gpt-4o
(2024-08-06)gpt-4o-mini
(2024-07-18)
* Penyempurnaan untuk model ini saat ini dalam pratinjau publik.
Atau Anda dapat menyempurnakan model yang sebelumnya disempurnakan, yang diformat sebagai base-model.ft-{jobid}
.
Lihat halaman model untuk memeriksa wilayah mana yang saat ini mendukung penyempurnaan.
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 disesuaikan.
- Sebarkan model yang disesuaikan untuk digunakan.
- Gunakan model yang disesuaikan.
- Secara opsional, analisis model yang disesuaikan 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.
Jenis model yang berbeda memerlukan format data pelatihan yang berbeda.
Data pelatihan dan validasi yang Anda gunakan harus diformat sebagai dokumen JSON Lines (JSONL). Untuk gpt-35-turbo-0613
himpunan data penyempurnaan harus diformat dalam format percakapan yang digunakan oleh API penyelesaian obrolan.
Jika Anda ingin panduan langkah demi langkah dari penyempurnaan, gpt-35-turbo-0613
silakan lihat tutorial penyempurnaan Azure OpenAI
Contoh format file
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}
Format file obrolan multi-giliran
Beberapa giliran percakapan dalam satu baris file pelatihan jsonl Anda juga didukung. Untuk melewati 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}]}
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 yang baik 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?
Catatan
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-05-01-preview" # 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 benih. Seed mengontrol reproduktifitas pekerjaan. Melewatkan seed dan parameter pekerjaan yang sama akan 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-35-turbo-0613", # 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 | Jenis | Keterangan |
---|---|---|
batch_size |
Integer | 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 |
number | Pengali tingkat pembelajaran yang akan digunakan untuk pelatihan. Tingkat pembelajaran penyesuaian adalah tingkat pembelajaran asli yang digunakan untuk pra-pelatihan 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 |
Integer | Jumlah epoch untuk melatih model. Epoch mengacu pada satu siklus penuh melalui himpunan data pelatihan. |
seed |
Integer | Seed mengontrol reproduktifitas pekerjaan. Melewatkan seed dan parameter pekerjaan yang sama akan 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-02-01" # This API version or later is required to access fine-tuning for turbo/babbage-002/davinci-002
)
client.fine_tuning.jobs.create(
training_file="file-abc123",
model="gpt-35-turbo-0613", # 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 pekerjaan penyempurnaan
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 individu 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))
Titik pemeriksaan
Ketika setiap epoch pelatihan menyelesaikan titik pemeriksaan 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 dapat memberikan rekam jepret model Anda sebelum overfitting terjadi. 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 titik pemeriksaan daftar untuk mengambil daftar titik pemeriksaan yang terkait dengan pekerjaan penyempurnaan 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.list_events(fine_tuning_job_id=job_id, limit=10)
print(response.model_dump_json(indent=2))
Evaluasi keamanan GPT-4, GPT-4o, GPT-4o-mini fine-tuning - pratinjau publik
GPT-4o, GPT-4o-mini, dan GPT-4 adalah model kami yang paling canggih yang dapat disesuaikan dengan kebutuhan Anda. Seperti halnya model Azure OpenAI umumnya, kemampuan lanjutan model yang disempurnakan hadir dengan peningkatan tantangan AI yang bertanggung jawab yang terkait dengan konten berbahaya, manipulasi, perilaku seperti manusia, masalah privasi, dan banyak lagi. Pelajari selengkapnya tentang risiko, kemampuan, dan batasan dalam Gambaran Umum praktik AI yang Bertanggung Jawab dan Catatan Transparansi. Untuk membantu mengurangi risiko yang terkait dengan model yang disempurnakan tingkat lanjut, kami telah menerapkan langkah-langkah evaluasi tambahan untuk membantu mendeteksi dan mencegah konten berbahaya dalam pelatihan dan output model yang disempurnakan. Langkah-langkah ini di-grounded dalam pemfilteran konten Microsoft Responsible AI Standard dan Azure OpenAI Service.
- Evaluasi dilakukan di ruang kerja khusus pelanggan, khusus pelanggan;
- Titik akhir evaluasi berada dalam geografi yang sama dengan sumber daya Azure OpenAI;
- Data pelatihan tidak disimpan sehubungan dengan melakukan evaluasi; hanya penilaian model akhir (dapat disebarkan atau tidak dapat disebarkan) yang dipertahankan; dan
Filter evaluasi model GPT-4o, GPT-4o-mini, dan GPT-4 yang disempurnakan diatur ke ambang batas yang telah ditentukan sebelumnya dan tidak dapat dimodifikasi oleh pelanggan; mereka tidak terkait dengan konfigurasi pemfilteran konten kustom apa pun yang mungkin telah Anda buat.
Evaluasi data
Sebelum pelatihan dimulai, data Anda dievaluasi untuk konten yang berpotensi berbahaya (kekerasan, seksual, kebencian, dan keadilan, bahaya diri sendiri - lihat definisi kategori di sini). Jika konten berbahaya terdeteksi di atas tingkat keparahan yang ditentukan, pekerjaan pelatihan Anda akan gagal, dan Anda akan menerima pesan yang memberi tahu Anda tentang kategori kegagalan.
Contoh pesan:
The provided training data failed RAI checks for harm types: [hate_fairness, self_harm, violence]. Please fix the data and try again.
Data pelatihan Anda dievaluasi secara otomatis dalam pekerjaan impor data Anda sebagai bagian dari penyediaan kemampuan penyempurnaan.
Jika pekerjaan penyempurnaan gagal karena deteksi konten berbahaya dalam data pelatihan, Anda tidak akan dikenakan biaya.
Evaluasi model
Setelah pelatihan selesai tetapi sebelum model yang disempurnakan tersedia untuk penyebaran, model yang dihasilkan dievaluasi untuk respons yang berpotensi berbahaya menggunakan metrik risiko dan keamanan bawaan Azure. Menggunakan pendekatan yang sama untuk menguji yang kami gunakan untuk model bahasa besar dasar, kemampuan evaluasi kami mensimulasikan percakapan dengan model yang disempurnakan untuk menilai potensi output konten berbahaya, sekali lagi menggunakan kategori konten berbahaya tertentu (kekerasan, seksual, kebencian, dan keadilan, membahayakan diri sendiri).
Jika model ditemukan untuk menghasilkan output yang berisi konten yang terdeteksi berbahaya di atas tingkat yang dapat diterima, Anda akan diberi tahu bahwa model Anda tidak tersedia untuk penyebaran, dengan informasi tentang kategori bahaya tertentu yang terdeteksi:
Contoh Pesan:
This model is unable to be deployed. Model evaluation identified that this fine tuned model scores above acceptable thresholds for [Violence, Self Harm]. Please review your training data set and resubmit the job.
Seperti halnya evaluasi data, model dievaluasi secara otomatis dalam pekerjaan penyempurnaan Anda sebagai bagian dari menyediakan kemampuan penyempurnaan. Hanya penilaian yang dihasilkan (dapat disebarkan atau tidak dapat disebarkan) yang dicatat oleh layanan. Jika penyebaran model yang disempurnakan gagal karena deteksi konten berbahaya dalam output model, Anda tidak akan dikenakan biaya untuk eksekusi pelatihan.
Menyebarkan model yang disempurnakan
Ketika pekerjaan penyempurnaan berhasil, nilai fine_tuned_model
variabel dalam isi respons diatur ke nama model yang disesuaikan. Model Anda sekarang juga tersedia untuk penemuan dari daftar Model API. Namun, Anda tidak dapat mengeluarkan panggilan penyelesaian ke model yang disesuaikan hingga model yang disesuaikan disebarkan. Anda harus menyebarkan model yang disesuaikan agar tersedia untuk digunakan dengan panggilan penyelesaian.
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 disebarkan lebih dari lima belas (15) hari yang lalu dan tidak ada penyelesaian atau panggilan penyelesaian obrolan yang dilakukan padanya selama periode 15 hari berkelanjutan.
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 dalam harga Azure OpenAI Service, 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 Service.
Anda juga dapat menggunakan Azure AI Studio atau Azure CLI untuk menyebarkan model yang disesuaikan.
Catatan
Hanya satu penyebaran yang diizinkan untuk model yang disesuaikan. Kesalahan terjadi jika Anda memilih model kustomisasi yang sudah disebarkan.
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. |
resource_group | Nama grup sumber daya untuk sumber daya Azure OpenAI Anda. |
resource_name | Nama sumber daya Azure OpenAI. |
model_deployment_name | Nama kustom untuk penyebaran model baru yang disempurnakan. Ini adalah nama yang akan direferensikan dalam kode Anda saat melakukan panggilan penyelesaian obrolan. |
fine_tuned_model | Ambil nilai ini dari pekerjaan penyempurnaan Anda menghasilkan langkah sebelumnya. Ini akan terlihat seperti gpt-35-turbo-0613.ft-b044a9d3cf9c4228b5d393567f693b83 . Anda harus menambahkan nilai tersebut ke json deploy_data. Atau Anda juga dapat menyebarkan titik pemeriksaan, dengan meneruskan ID titik pemeriksaan 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-35-turbo-ft" # custom deployment name that you will use to reference the model when making inference calls.
deploy_params = {'api-version': "2023-05-01"}
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-35-turbo-0613.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())
Penyebaran lintas wilayah
Penyempurnaan mendukung penyebaran model yang disempurnakan ke wilayah yang berbeda dari tempat model awalnya disempurnakan. Anda juga dapat menyebarkan ke langganan/wilayah yang berbeda.
Satu-satunya batasan adalah bahwa wilayah baru juga harus mendukung penyempurnaan dan saat menyebarkan langganan silang, akun yang menghasilkan token otorisasi untuk penyebaran harus memiliki akses ke langganan sumber dan tujuan.
Di bawah ini adalah contoh penyebaran model yang disempurnakan dalam satu langganan/wilayah ke langganan/wilayah lainnya.
import json
import os
import requests
token= os.getenv("<TOKEN>")
subscription = "<DESTINATION_SUBSCRIPTION_ID>"
resource_group = "<DESTINATION_RESOURCE_GROUP_NAME>"
resource_name = "<DESTINATION_AZURE_OPENAI_RESOURCE_NAME>"
source_subscription = "<SOURCE_SUBSCRIPTION_ID>"
source_resource_group = "<SOURCE_RESOURCE_GROUP>"
source_resource = "<SOURCE_RESOURCE>"
source = f'/subscriptions/{source_subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.CognitiveServices/accounts/{source_resource}'
model_deployment_name ="gpt-35-turbo-ft" # custom deployment name that you will use to reference the model when making inference calls.
deploy_params = {'api-version': "2023-05-01"}
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_NAME">, # This value will look like gpt-35-turbo-0613.ft-0ab3f80e4f2242929258fff45b56a9ce
"version": "1",
"source": source
}
}
}
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())
Untuk menyebarkan antara langganan yang sama, tetapi wilayah yang berbeda, Anda hanya akan memiliki grup langganan dan sumber daya yang identik untuk variabel sumber dan tujuan dan hanya nama sumber daya sumber dan tujuan yang harus unik.
Menyebarkan model dengan Azure CLI
Contoh berikut menunjukkan cara menggunakan Azure CLI untuk menyebarkan model yang disesuaikan. Dengan Azure CLI, Anda harus menentukan nama untuk penyebaran model yang disesuaikan. Untuk informasi selengkapnya tentang cara menggunakan Azure CLI untuk menyebarkan model yang disesuaikan, lihat az cognitiveservices account deployment
.
Untuk menjalankan perintah Azure CLI ini di jendela konsol>, Anda harus mengganti tempat penampung berikut <dengan nilai yang sesuai untuk model yang disesuaikan:
Placeholder | Nilai |
---|---|
<YOUR_AZURE_SUBSCRIPTION> | Nama atau ID langganan Azure Anda. |
<YOUR_RESOURCE_GROUP> | Nama grup sumber daya Azure Anda. |
<YOUR_RESOURCE_NAME> | Nama Sumber Daya Azure OpenAI Anda. |
<YOUR_DEPLOYMENT_NAME> | Nama yang ingin Anda gunakan untuk penyebaran model Anda. |
<YOUR_FINE_TUNED_MODEL_ID> | Nama model yang disesuaikan. |
az cognitiveservices account deployment create
--resource-group <YOUR_RESOURCE_GROUP>
--name <YOUR_RESOURCE_NAME>
--deployment-name <YOUR_DEPLOYMENT_NAME>
--model-name <YOUR_FINE_TUNED_MODEL_ID>
--model-version "1"
--model-format OpenAI
--sku-capacity "1"
--sku-name "Standard"
Menggunakan model yang disesuaikan yang disebarkan
Setelah model kustom Anda disebarkan, Anda dapat menggunakannya seperti model lain yang disebarkan. Anda dapat menggunakan Playground di Azure AI Studio untuk bereksperimen dengan penyebaran baru Anda. Anda dapat terus menggunakan parameter yang sama dengan model kustom Anda, seperti dan max_tokens
, seperti temperature
yang Anda bisa dengan model lain yang disebarkan. Untuk penyempurnaan babbage-002
dan davinci-002
model, Anda akan menggunakan taman bermain Penyelesaian dan API Penyelesaian. Untuk model yang disempurnakan gpt-35-turbo-0613
, Anda akan menggunakan taman bermain Obrolan dan API penyelesaian Obrolan.
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-02-01"
)
response = client.chat.completions.create(
model="gpt-35-turbo-ft", # model = "Custom deployment name you chose for your fine-tuning model"
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
{"role": "user", "content": "Do other Azure AI services support this too?"}
]
)
print(response.choices[0].message.content)
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 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 adalah file CSV yang berisi baris header dan baris untuk setiap langkah pelatihan yang dilakukan oleh pekerjaan 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 penyelesaian [[1, 2], [0, 5], [4, 2]] , nilai ini diatur ke 0,83 (5 dari 6) jika model diprediksi [[1, 1], [0, 5], [4, 2]] . |
valid_loss |
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 penyelesaian [[1, 2], [0, 5], [4, 2]] , nilai ini diatur ke 0,83 (5 dari 6) jika model diprediksi [[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 harus meningkat. |
Anda juga dapat melihat data dalam file results.csv sebagai plot di Azure AI Studio. Pilih tautan untuk model terlatih Anda, dan Anda akan melihat tiga bagan: kehilangan, akurasi token rata-rata, dan akurasi token. Jika Anda memberikan data validasi, kedua himpunan data akan muncul pada plot yang sama.
Carilah kerugian Anda untuk menurun dari waktu ke waktu, dan akurasi Anda meningkat. Jika Anda melihat divergensi antara data pelatihan dan validasi yang dapat menunjukkan bahwa Anda overfitting. Coba pelatihan dengan lebih sedikit epoch, atau pengali tingkat pembelajaran yang lebih kecil.
Membersihkan penyebaran, model yang disesuaikan, dan file pelatihan Anda
Setelah selesai dengan model yang disesuaikan, Anda dapat menghapus penyebaran dan model. Anda juga dapat menghapus file pelatihan dan validasi yang Anda unggah ke layanan, jika diperlukan.
Hapus penyebaran 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 disebarkan lebih dari lima belas (15) hari yang lalu dan tidak ada penyelesaian atau panggilan penyelesaian obrolan yang dilakukan padanya selama periode 15 hari berkelanjutan.
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 dalam harga Azure OpenAI Service, 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 Service.
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:
Catatan
Anda tidak dapat menghapus model yang disesuaikan jika memiliki penyebaran yang sudah ada. Anda harus terlebih dahulu menghapus penyebaran model sebelum dapat menghapus model yang 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 Studio
- 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)
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 disempurnakan terlihat seperti gpt-35-turbo-0613.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-02-01"
)
response = client.fine_tuning.jobs.create(
training_file=training_file_id,
validation_file=validation_file_id,
model="gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7" # Enter base model name. Note that in Azure OpenAI the model name contains dashes and cannot contain dot/period characters.
)
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 diatur untuk mengidentifikasi model yang disempurnakan. Dengan OpenAI Python API, string hingga 18 karakter didukung yang akan ditambahkan ke nama model yang disempurnakan.
Jika Anda tidak yakin dengan ID model yang disempurnakan yang ada, informasi ini dapat ditemukan di halaman Model Azure AI Studio, atau Anda dapat membuat daftar model untuk sumber daya Azure OpenAI tertentu menggunakan REST API.
Prasyarat
- Baca panduan Penghalusan Kapan menggunakan Azure OpenAI.
- Langganan Azure. Buat akun gratis.
- Sumber daya Azure OpenAI. Untuk informasi selengkapnya, lihat Membuat sumber daya dan menyebarkan model dengan Azure OpenAI.
- Akses penyempurnaan memerlukan Kontributor OpenAI Cognitive Services.
- Jika Anda belum memiliki akses untuk melihat kuota, dan menyebarkan model di Azure AI Studio, Anda akan memerlukan izin tambahan.
Model
Model berikut mendukung penyempurnaan:
babbage-002
davinci-002
gpt-35-turbo
(0613)gpt-35-turbo
(1106)gpt-35-turbo
(0125)gpt-4
(0613)*gpt-4o
(2024-08-06)gpt-4o-mini
(2024-07-18)
* Penyempurnaan untuk model ini saat ini dalam pratinjau publik.
Atau Anda dapat menyempurnakan model yang sebelumnya disempurnakan, yang diformat sebagai base-model.ft-{jobid}.
Lihat halaman model untuk memeriksa wilayah mana yang saat ini mendukung penyempurnaan.
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 disesuaikan.
- Sebarkan model yang disesuaikan untuk digunakan.
- Gunakan model yang disesuaikan.
- Secara opsional, analisis model yang disesuaikan 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.
Jenis model yang berbeda memerlukan format data pelatihan yang berbeda.
Data pelatihan dan validasi yang Anda gunakan harus diformat sebagai dokumen JSON Lines (JSONL). Untuk gpt-35-turbo-0613
dan model terkait lainnya, himpunan data penyempurnaan harus diformat dalam format percakapan yang digunakan oleh API penyelesaian obrolan.
Jika Anda ingin panduan langkah demi langkah dari penyempurnaan, gpt-35-turbo-0613
silakan lihat tutorial penyempurnaan Azure OpenAI.
Contoh format file
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}
Format file obrolan multi-giliran
Beberapa giliran percakapan dalam satu baris file pelatihan jsonl Anda juga didukung. Untuk melewati 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}]}
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 yang baik 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.
Pilih model dasar
Langkah pertama dalam membuat model kustom adalah memilih model dasar. Panel Model dasar memungkinkan Anda memilih model dasar yang akan digunakan untuk model kustom Anda. Pilihan Anda memengaruhi performa dan biaya model Anda.
Pilih model dasar dari dropdown Jenis model dasar, lalu pilih Berikutnya untuk melanjutkan.
Anda dapat membuat model kustom dari salah satu model dasar berikut yang tersedia:
babbage-002
davinci-002
gpt-35-turbo
(0613)gpt-35-turbo
(1106)gpt-35-turbo
(0125)gpt-4
(0613)gpt-4o
(2024-08-06)gpt-4o-mini
(2023-07-18)
Atau Anda dapat menyempurnakan model yang sebelumnya disempurnakan, yang diformat sebagai base-model.ft-{jobid}.
Untuk informasi selengkapnya tentang model dasar kami yang dapat disempurnakan, lihat Model.
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?
Catatan
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 pekerjaan penyempurnaan baru dengan REST API.
Dalam contoh ini kita juga meneruskan parameter benih. Seed mengontrol reproduktifitas pekerjaan. Meneruskan seed dan parameter pekerjaan yang sama harus menghasilkan hasil yang sama, tetapi dapat berbeda dalam kasus yang jarang terjadi. Jika benih tidak ditentukan, satu akan dihasilkan untuk Anda.
curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs?api-version=2024-05-01-preview \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{
"model": "gpt-35-turbo-0613",
"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 | Jenis | Keterangan |
---|---|---|
batch_size |
Integer | 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 |
number | Pengali tingkat pembelajaran yang akan digunakan untuk pelatihan. Tingkat pembelajaran penyesuaian adalah tingkat pembelajaran asli yang digunakan untuk pra-pelatihan 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 |
Integer | Jumlah epoch untuk melatih model. Epoch mengacu pada satu siklus penuh melalui himpunan data pelatihan. |
seed |
Integer | Seed mengontrol reproduktifitas pekerjaan. Melewatkan seed dan parameter pekerjaan yang sama akan 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 yang menyempurnakan, 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-05-01-preview \
-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-05-01-preview \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY"
Titik pemeriksaan
Ketika setiap epoch pelatihan menyelesaikan titik pemeriksaan 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 dapat memberikan rekam jepret model Anda sebelum overfitting terjadi. 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 titik pemeriksaan daftar untuk mengambil daftar titik 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-05-01-preview \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY"
Evaluasi keamanan GPT-4, GPT-4o, GPT-4o-mini fine-tuning - pratinjau publik
GPT-4o, GPT-4o-mini, dan GPT-4 adalah model kami yang paling canggih yang dapat disesuaikan dengan kebutuhan Anda. Seperti halnya model Azure OpenAI umumnya, kemampuan lanjutan model yang disempurnakan hadir dengan peningkatan tantangan AI yang bertanggung jawab yang terkait dengan konten berbahaya, manipulasi, perilaku seperti manusia, masalah privasi, dan banyak lagi. Pelajari selengkapnya tentang risiko, kemampuan, dan batasan dalam Gambaran Umum praktik AI yang Bertanggung Jawab dan Catatan Transparansi. Untuk membantu mengurangi risiko yang terkait dengan model yang disempurnakan tingkat lanjut, kami telah menerapkan langkah-langkah evaluasi tambahan untuk membantu mendeteksi dan mencegah konten berbahaya dalam pelatihan dan output model yang disempurnakan. Langkah-langkah ini di-grounded dalam pemfilteran konten Microsoft Responsible AI Standard dan Azure OpenAI Service.
- Evaluasi dilakukan di ruang kerja khusus pelanggan, khusus pelanggan;
- Titik akhir evaluasi berada dalam geografi yang sama dengan sumber daya Azure OpenAI;
- Data pelatihan tidak disimpan sehubungan dengan melakukan evaluasi; hanya penilaian model akhir (dapat disebarkan atau tidak dapat disebarkan) yang dipertahankan; dan
Filter evaluasi model GPT-4o, GPT-4o-mini, dan GPT-4 yang disempurnakan diatur ke ambang batas yang telah ditentukan sebelumnya dan tidak dapat dimodifikasi oleh pelanggan; mereka tidak terkait dengan konfigurasi pemfilteran konten kustom apa pun yang mungkin telah Anda buat.
Evaluasi data
Sebelum pelatihan dimulai, data Anda dievaluasi untuk konten yang berpotensi berbahaya (kekerasan, seksual, kebencian, dan keadilan, bahaya diri sendiri - lihat definisi kategori di sini). Jika konten berbahaya terdeteksi di atas tingkat keparahan yang ditentukan, pekerjaan pelatihan Anda akan gagal, dan Anda akan menerima pesan yang memberi tahu Anda tentang kategori kegagalan.
Contoh pesan:
The provided training data failed RAI checks for harm types: [hate_fairness, self_harm, violence]. Please fix the data and try again.
Data pelatihan Anda dievaluasi secara otomatis dalam pekerjaan impor data Anda sebagai bagian dari penyediaan kemampuan penyempurnaan.
Jika pekerjaan penyempurnaan gagal karena deteksi konten berbahaya dalam data pelatihan, Anda tidak akan dikenakan biaya.
Evaluasi model
Setelah pelatihan selesai tetapi sebelum model yang disempurnakan tersedia untuk penyebaran, model yang dihasilkan dievaluasi untuk respons yang berpotensi berbahaya menggunakan metrik risiko dan keamanan bawaan Azure. Menggunakan pendekatan yang sama untuk menguji yang kami gunakan untuk model bahasa besar dasar, kemampuan evaluasi kami mensimulasikan percakapan dengan model yang disempurnakan untuk menilai potensi output konten berbahaya, sekali lagi menggunakan kategori konten berbahaya tertentu (kekerasan, seksual, kebencian, dan keadilan, membahayakan diri sendiri).
Jika model ditemukan untuk menghasilkan output yang berisi konten yang terdeteksi berbahaya di atas tingkat yang dapat diterima, Anda akan diberi tahu bahwa model Anda tidak tersedia untuk penyebaran, dengan informasi tentang kategori bahaya tertentu yang terdeteksi:
Contoh Pesan:
This model is unable to be deployed. Model evaluation identified that this fine tuned model scores above acceptable thresholds for [Violence, Self Harm]. Please review your training data set and resubmit the job.
Seperti halnya evaluasi data, model dievaluasi secara otomatis dalam pekerjaan penyempurnaan Anda sebagai bagian dari menyediakan kemampuan penyempurnaan. Hanya penilaian yang dihasilkan (dapat disebarkan atau tidak dapat disebarkan) yang dicatat oleh layanan. Jika penyebaran model yang disempurnakan gagal karena deteksi konten berbahaya dalam output model, Anda tidak akan dikenakan biaya untuk eksekusi pelatihan.
Menyebarkan model yang disempurnakan
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 disebarkan lebih dari lima belas (15) hari yang lalu dan tidak ada penyelesaian atau panggilan penyelesaian obrolan yang dilakukan padanya selama periode 15 hari berkelanjutan.
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 dalam harga Azure OpenAI Service, 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 Service.
Contoh Python berikut menunjukkan cara menggunakan REST API untuk membuat penyebaran model untuk model yang disesuaikan. REST API menghasilkan nama untuk penyebaran model yang disesuaikan.
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. |
resource_group | Nama grup sumber daya untuk sumber daya Azure OpenAI Anda. |
resource_name | Nama sumber daya Azure OpenAI. |
model_deployment_name | Nama kustom untuk penyebaran model baru yang disempurnakan. Ini adalah nama yang akan direferensikan dalam kode Anda saat melakukan panggilan penyelesaian obrolan. |
fine_tuned_model | Ambil nilai ini dari pekerjaan penyempurnaan Anda menghasilkan langkah sebelumnya. Ini akan terlihat seperti gpt-35-turbo-0613.ft-b044a9d3cf9c4228b5d393567f693b83 . Anda harus menambahkan nilai tersebut ke json deploy_data. Atau Anda juga dapat menyebarkan titik pemeriksaan, dengan meneruskan ID titik pemeriksaan 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=2023-05-01" \
-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"
}
}
}'
Penyebaran lintas wilayah
Penyempurnaan mendukung penyebaran model yang disempurnakan ke wilayah yang berbeda dari tempat model awalnya disempurnakan. Anda juga dapat menyebarkan ke langganan/wilayah yang berbeda.
Satu-satunya batasan adalah bahwa wilayah baru juga harus mendukung penyempurnaan dan saat menyebarkan langganan silang, akun yang menghasilkan token otorisasi untuk penyebaran harus memiliki akses ke langganan sumber dan tujuan.
Di bawah ini adalah contoh penyebaran model yang disempurnakan dalam satu langganan/wilayah ke langganan/wilayah lainnya.
curl -X PUT "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2023-05-01" \
-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",
"source": "/subscriptions/{sourceSubscriptionID}/resourceGroups/{sourceResourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{sourceAccount}"
}
}
}'
Untuk menyebarkan antara langganan yang sama, tetapi wilayah yang berbeda, Anda hanya akan memiliki grup langganan dan sumber daya yang identik untuk variabel sumber dan tujuan dan hanya nama sumber daya sumber dan tujuan yang harus unik.
Menyebarkan model dengan Azure CLI
Contoh berikut menunjukkan cara menggunakan Azure CLI untuk menyebarkan model yang disesuaikan. Dengan Azure CLI, Anda harus menentukan nama untuk penyebaran model yang disesuaikan. Untuk informasi selengkapnya tentang cara menggunakan Azure CLI untuk menyebarkan model yang disesuaikan, lihat az cognitiveservices account deployment
.
Untuk menjalankan perintah Azure CLI ini di jendela konsol>, Anda harus mengganti tempat penampung berikut <dengan nilai yang sesuai untuk model yang disesuaikan:
Placeholder | Nilai |
---|---|
<YOUR_AZURE_SUBSCRIPTION> | Nama atau ID langganan Azure Anda. |
<YOUR_RESOURCE_GROUP> | Nama grup sumber daya Azure Anda. |
<YOUR_RESOURCE_NAME> | Nama Sumber Daya Azure OpenAI Anda. |
<YOUR_DEPLOYMENT_NAME> | Nama yang ingin Anda gunakan untuk penyebaran model Anda. |
<YOUR_FINE_TUNED_MODEL_ID> | Nama model yang disesuaikan. |
az cognitiveservices account deployment create
--resource-group <YOUR_RESOURCE_GROUP>
--name <YOUR_RESOURCE_NAME>
--deployment-name <YOUR_DEPLOYMENT_NAME>
--model-name <YOUR_FINE_TUNED_MODEL_ID>
--model-version "1"
--model-format OpenAI
--sku-capacity "1"
--sku-name "Standard"
Menggunakan model yang disesuaikan yang disebarkan
Setelah model kustom Anda disebarkan, Anda dapat menggunakannya seperti model lain yang disebarkan. Anda dapat menggunakan Playground di Azure AI Studio untuk bereksperimen dengan penyebaran baru Anda. Anda dapat terus menggunakan parameter yang sama dengan model kustom Anda, seperti dan max_tokens
, seperti temperature
yang Anda bisa dengan model lain yang disebarkan. Untuk penyempurnaan babbage-002
dan davinci-002
model, Anda akan menggunakan taman bermain Penyelesaian dan API Penyelesaian. Untuk model yang disempurnakan gpt-35-turbo-0613
, Anda akan menggunakan taman bermain Obrolan dan API penyelesaian Obrolan.
curl $AZURE_OPENAI_ENDPOINT/openai/deployments/<deployment_name>/chat/completions?api-version=2023-05-15 \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure AI services support this too?"}]}'
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 adalah file CSV yang berisi baris header dan baris untuk setiap langkah pelatihan yang dilakukan oleh pekerjaan 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 penyelesaian [[1, 2], [0, 5], [4, 2]] , nilai ini diatur ke 0,83 (5 dari 6) jika model diprediksi [[1, 1], [0, 5], [4, 2]] . |
valid_loss |
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 penyelesaian [[1, 2], [0, 5], [4, 2]] , nilai ini diatur ke 0,83 (5 dari 6) jika model diprediksi [[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 harus meningkat. |
Anda juga dapat melihat data dalam file results.csv sebagai plot di Azure AI Studio. Pilih tautan untuk model terlatih Anda, dan Anda akan melihat tiga bagan: kehilangan, akurasi token rata-rata, dan akurasi token. Jika Anda memberikan data validasi, kedua himpunan data akan muncul pada plot yang sama.
Carilah kerugian Anda untuk menurun dari waktu ke waktu, dan akurasi Anda meningkat. Jika Anda melihat divergensi antara data pelatihan dan validasi yang mungkin menunjukkan bahwa Anda terlalu pas. Coba pelatihan dengan lebih sedikit epoch, atau pengali tingkat pembelajaran yang lebih kecil.
Membersihkan penyebaran, model yang disesuaikan, dan file pelatihan Anda
Setelah selesai dengan model yang disesuaikan, Anda dapat menghapus penyebaran dan model. Anda juga dapat menghapus file pelatihan dan validasi yang Anda unggah ke layanan, jika diperlukan.
Hapus penyebaran 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:
Catatan
Anda tidak dapat menghapus model yang disesuaikan jika memiliki penyebaran yang sudah ada. Anda harus terlebih dahulu menghapus penyebaran model sebelum dapat menghapus model yang 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:
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 disempurnakan terlihat seperti gpt-35-turbo-0613.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-35-turbo-0613.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 diatur untuk mengidentifikasi model yang disempurnakan. Akhiran dapat berisi hingga 40 karakter (a-z, A-Z, 0-9,- dan _) yang akan ditambahkan ke nama model yang disempurnakan.
Jika Anda tidak yakin dengan ID model yang disempurnakan, informasi ini dapat ditemukan di halaman Model Azure AI Studio, atau Anda dapat membuat daftar model untuk sumber daya Azure OpenAI tertentu menggunakan REST API.
Pemecahan Masalah
Bagaimana cara mengaktifkan penyempurnaan? Membuat model kustom berwarna abu-abu di Azure OpenAI Studio?
Agar berhasil mengakses penyempurnaan, Anda memerlukan Kontributor OpenAI Cognitive Services yang ditetapkan. Bahkan seseorang dengan izin Administrator Layanan tingkat tinggi masih memerlukan akun ini secara eksplisit diatur untuk mengakses penyempurnaan. Untuk informasi selengkapnya, silakan tinjau panduan kontrol akses berbasis peran.
Mengapa unggahan saya gagal?
Jika pengunggahan file Anda gagal di Azure OpenAI Studio, Anda dapat melihat pesan kesalahan di bawah "file data" di Azure OpenAI Studio. Arahkan mouse Anda ke tempat bertuliskan "kesalahan" (di bawah kolom status) dan penjelasan tentang kegagalan akan ditampilkan.
Model saya yang disempurnakan tampaknya tidak meningkat
Pesan sistem yang hilang: Anda perlu memberikan pesan sistem saat menyempurnakan; Anda akan ingin memberikan pesan sistem yang sama saat Anda menggunakan model yang disempurnakan. Jika Anda memberikan pesan sistem yang berbeda, Anda mungkin melihat hasil yang berbeda dari yang Anda sesuaikan.
Tidak cukup data: meskipun 10 adalah minimum untuk alur berjalan, Anda memerlukan ratusan hingga ribuan poin data untuk mengajarkan model keterampilan baru. Terlalu sedikit titik data berisiko overfitting dan generalisasi yang buruk. Model Anda yang disempurnakan mungkin berkinerja baik pada data pelatihan, tetapi buruk pada data lain karena telah menghafal contoh pelatihan alih-alih pola pembelajaran. Untuk hasil terbaik, rencanakan untuk menyiapkan himpunan data dengan ratusan atau ribuan titik data.
Data buruk: Himpunan data yang dikumpulkan dengan buruk atau tidak terwakili akan menghasilkan model berkualitas rendah. Model Anda mungkin mempelajari pola yang tidak akurat atau bias dari himpunan data Anda. Misalnya, jika Anda melatih chatbot untuk layanan pelanggan, tetapi hanya menyediakan data pelatihan untuk satu skenario (misalnya item kembali) tidak akan tahu cara menanggapi skenario lain. Atau, jika data pelatihan Anda buruk (berisi respons yang salah), model Anda akan belajar untuk memberikan hasil yang salah.
Langkah berikutnya
- Jelajahi kemampuan penyempurnaan dalam tutorial penyempurnaan Azure OpenAI.
- Meninjau ketersediaan regional model penyempurnaan
- Pelajari selengkapnya tentang kuota Azure OpenAI