Bagikan melalui


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

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:

  1. Siapkan data pelatihan dan validasi Anda.
  2. Gunakan wizard Buat model kustom di Azure OpenAI Studio untuk melatih model kustom Anda.
    1. Pilih model dasar.
    2. Pilih data pelatihan Anda.
    3. Secara opsional, pilih data validasi Anda.
    4. Secara opsional, konfigurasikan parameter tugas untuk pekerjaan penyempurnaan Anda.
    5. Tinjau pilihan Anda dan latih model kustom baru Anda.
  3. Periksa status model kustom yang disempurnakan.
  4. Sebarkan model kustom Anda untuk digunakan.
  5. Gunakan model kustom Anda.
  6. 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-4odan 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.

  1. 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.

  2. Di Azure OpenAI Studio, telusuri panel Alat > Penyempurnaan , dan pilih Sesuaikan model.

    Cuplikan layar yang memperlihatkan cara mengakses wizard Buat model kustom di Azure OpenAI Studio.

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}.

Cuplikan layar opsi model dengan model kustom yang disempurnakan.

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.

Cuplikan layar panel Data pelatihan untuk wizard Buat model kustom di Azure OpenAI Studio.

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.

Cuplikan layar panel Data pelatihan untuk wizard Buat model kustom, dengan opsi file lokal.

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.

  1. Masukkan Nama file untuk file tersebut.

  2. Untuk Lokasi file, berikan URL Azure Blob, tanda tangan akses bersama (SAS) Azure Storage, atau tautan lain ke lokasi web bersama yang dapat diakses.

  3. Pilih Impor untuk mengimpor himpunan data pelatihan ke layanan.

Setelah Anda memilih dan mengunggah himpunan data pelatihan, pilih Berikutnya untuk melanjutkan.

Cuplikan layar panel Data pelatihan untuk wizard Buat model kustom, dengan Azure Blob dan opsi lokasi web bersama.

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.

Cuplikan layar panel Data validasi untuk wizard Buat model kustom di Azure OpenAI Studio.

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.

Cuplikan layar panel Data validasi untuk wizard Buat model kustom, dengan opsi file lokal.

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.

  1. Masukkan Nama file untuk file tersebut.

  2. Untuk Lokasi file, berikan URL Azure Blob, tanda tangan akses bersama (SAS) Azure Storage, atau tautan lain ke lokasi web bersama yang dapat diakses.

  3. Pilih Impor untuk mengimpor himpunan data pelatihan ke layanan.

Setelah Anda memilih dan mengunggah himpunan data validasi, pilih Berikutnya untuk melanjutkan.

Cuplikan layar panel Data validasi untuk wizard Buat model kustom, dengan Azure Blob dan opsi lokasi web bersama.

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

Cuplikan layar panel Opsi tingkat lanjut untuk wizard Buat model kustom, dengan opsi default dipilih.

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.

Cuplikan layar panel Tinjau untuk wizard Buat model kustom di Azure OpenAI Studio.

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.

Cuplikan layar panel Model dari Azure OpenAI Studio, dengan model kustom ditampilkan.

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.

Cuplikan layar panel Model di Azure OpenAI Studio, dengan model kustom ditampilkan.

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.

Cuplikan layar pekerjaan penyempurnaan yang gagal karena evaluasi keselamatan

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.

Cuplikan layar yang memperlihatkan cara menyebarkan model kustom di Azure OpenAI Studio.

Kotak dialog Sebarkan model terbuka. Dalam kotak dialog, masukkan Nama penyebaran Anda lalu pilih Buat untuk memulai penyebaran model kustom Anda.

Cuplikan layar dialog Sebarkan Model di Azure OpenAI Studio.

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.

Cuplikan layar panel Playground di Azure OpenAI Studio, dengan bagian disorot.

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

Cuplikan layar UI Buat model kustom dengan model yang disempurnakan disorot.

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:

  1. Siapkan data pelatihan dan validasi Anda.
  2. Gunakan wizard Sesuaikan model di Azure AI Studio untuk melatih model kustom Anda.
    1. Pilih model.
    2. Pilih data pelatihan Anda.
    3. Secara opsional, pilih data validasi Anda.
    4. Secara opsional, konfigurasikan parameter Anda untuk pekerjaan penyempurnaan Anda.
    5. Tinjau pilihan Anda dan latih model kustom baru Anda.
  3. Periksa status model anda yang disempurnakan.
  4. Secara opsional, analisis model yang disempurnakan agar performa dan kecocokan.
  5. Sebarkan model yang disempurnakan untuk digunakan.
  6. 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:

  1. Masuk ke Azure AI Studio dan pilih proyek Anda. Jika Anda belum memiliki proyek, pertama-tama buat proyek.

  2. Dari menu kiri yang dapat diciutkan, pilih Fine-tuning>+ Fine-tune model.

    Cuplikan layar opsi untuk mulai membuat model baru yang disempurnakan.

Pilih model dasar

  1. 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.

    Cuplikan layar opsi untuk memilih model untuk menyempurnakan.

  2. 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).

  3. 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.

  1. Kemudian pilih Berikutnya.

    Cuplikan layar pengaturan dasar untuk menyempurnakan 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.

Cuplikan layar panel Data pelatihan untuk wizard Menyempurnakan model di Azure AI Studio.

  • 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.

Cuplikan layar opsi untuk mengunggah data pelatihan secara lokal.

Setelah mengunggah file, Anda akan melihat pratinjau data pelatihan Anda. Untuk melanjutkan, klik Berikutnya.

Cuplikan layar pratinjau data pelatihan.

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.

Cuplikan layar antarmuka pengguna metrik.

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.

Cuplikan layar antarmuka pengguna titik pemeriksaan.

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.

Cuplikan layar pekerjaan penyempurnaan yang gagal karena evaluasi keselamatan

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, requestsopenai.
  • 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}.

Cuplikan layar opsi model dengan model kustom yang disempurnakan.

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:

  1. Siapkan data pelatihan dan validasi Anda.
  2. Pilih model dasar.
  3. Unggah data pelatihan Anda.
  4. Latih model baru yang disesuaikan.
  5. Periksa status model yang disesuaikan.
  6. Sebarkan model yang disesuaikan untuk digunakan.
  7. Gunakan model yang disesuaikan.
  8. 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.

Cuplikan layar pekerjaan penyempurnaan yang gagal karena evaluasi keselamatan

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:

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

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:

  1. Siapkan data pelatihan dan validasi Anda.
  2. Pilih model dasar.
  3. Unggah data pelatihan Anda.
  4. Latih model baru yang disesuaikan.
  5. Periksa status model yang disesuaikan.
  6. Sebarkan model yang disesuaikan untuk digunakan.
  7. Gunakan model yang disesuaikan.
  8. 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}.

Cuplikan layar opsi model dengan model kustom yang disempurnakan.

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.

Cuplikan layar pekerjaan penyempurnaan yang gagal karena evaluasi keselamatan

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.

Cuplikan layar pesan kesalahan penyempurnaan.

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