Latih ulang dan sebarkan model pembelajaran mesin

BERLAKU UNTUK:Berlaku untuk.Machine Learning Studio (klasik) Tidak berlaku untuk. Azure Machine Learning

Penting

Dukungan untuk Studio Azure Machine Learning (klasik) akan berakhir pada 31 Agustus 2024. Sebaiknya Anda transisi ke Azure Machine Learning sebelum tanggal tersebut.

Mulai 1 Desember 2021, Anda tidak akan dapat membuat sumber daya Studio Azure Machine Learning (klasik) baru. Hingga 31 Agustus 2024, Anda dapat terus menggunakan sumber daya Pembelajaran Mesin Studio (klasik) yang ada.

ML Dokumentasi Studio (klasik) sedang berhenti dan mungkin tidak diperbarui di masa mendatang.

Pelatihan ulang adalah salah satu cara untuk memastikan model pembelajaran mesin tetap akurat dan berdasarkan data yang paling relevan yang tersedia. Artikel ini memperlihatkan cara melatih kembali dan menyebarkan model pembelajaran mesin sebagai layanan web baru di Studio (klasik). Jika Anda ingin melatih kembali layanan web klasik, lihat artikel cara menggunakan ini.

Artikel ini mengasumsikan Anda sudah memiliki layanan web prediktif yang disebarkan. Jika Anda belum memiliki layanan web prediktif, pelajari cara menyebarkan layanan web Studio (klasik) di sini.

Anda akan mengikuti langkah-langkah ini untuk melatih kembali dan menyebarkan layanan web baru pembelajaran mesin:

  1. Sebarkan layanan web pelatihan ulang
  2. Latih model baru menggunakan layanan web pelatihan ulang Anda
  3. Perbarui eksperimen prediktif yang ada untuk menggunakan model baru

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Sebarkan layanan web pelatihan ulang

Layanan web pelatihan ulang memungkinkan Anda melatih kembali model Anda dengan set parameter baru, seperti data baru, dan menyimpannya untuk nanti. Saat Anda menyambungkan Output Layanan Web ke Latih Model, eksperimen pelatihan menghasilkan model baru untuk Anda gunakan.

Gunakan langkah-langkah berikut untuk menyebarkan layanan web pelatihan ulang:

  1. Sambungkan modul Input Layanan Web ke input data Anda. Biasanya, Anda ingin memastikan bahwa data input Anda diproses dengan cara yang sama seperti data pelatihan asli Anda.

  2. Sambungkan modul Output Layanan Web ke output Melatih Model Anda.

  3. Jika Anda memiliki modul Model Evaluasi, Anda dapat menyambungkan modul Output Layanan Web untuk menghasilkan hasil evaluasi

  4. Jalankan eksperimen Anda.

    Setelah menjalankan eksperimen Anda, alur kerja yang dihasilkan akan mirip dengan gambar berikut:

    Alur kerja yang dihasilkan

    Sekarang, Anda menyebarkan eksperimen pelatihan sebagai pelatihan ulang layanan web yang menghasilkan model terlatih dan hasil evaluasi model.

  5. Di bagian bawah kanvas eksperimen, klik Set Layanan Web

  6. Pilih Sebarkan Layanan Web [Baru] . Portal Layanan Web Azure Machine Learning terbuka ke halaman Menyebarkan Layanan Web.

  7. Ketik nama untuk layanan web Anda dan pilih paket pembayaran.

  8. Pilih Sebarkan.

Latih ulang model

Untuk contoh ini, kami menggunakan C# untuk membuat aplikasi pelatihan ulang. Anda juga dapat menggunakan kode sampel Python atau R untuk menyelesaikan tugas ini.

Gunakan langkah-langkah berikut untuk memanggil API pelatihan ulang:

  1. Buat aplikasi konsol C# di Visual Studio: Project>Baru>Kontrol C#>Aplikasi Konsol Desktop Klasik Windows>(.NET Framework) .
  2. Masuk ke portal Layanan Web Azure Machine Learning.
  3. Klik layanan web yang sedang Anda kerjakan.
  4. Klik Konsumsi.
  5. Di bagian bawah halaman Konsumsi, di bagian Sampel Kode, klik Batch.
  6. Salin sampel kode C# untuk eksekusi batch dan tempelkan ke dalam file Program.cs. Pastikan bahwa namespace layanan tetap utuh.

Tambahkan paket NuGet Microsoft.AspNet.WebApi.Client, seperti yang ditentukan dalam komentar. Untuk menambahkan referensi ke Microsoft.WindowsAzure.Storage.dll, Anda mungkin perlu menginstal pustaka klien untuk layanan Azure Storage.

Cuplikan layar berikut menunjukkan halaman Penggunaan di portal Layanan Web Azure Machine Learning.

Halaman Konsumsi

Perbarui deklarasi apikey

Temukan deklarasi apikey:

const string apiKey = "abc123"; // Replace this with the API key for the web service

Di bagian Info konsumsi dasar halaman Konsumsi, temukan kunci primer, dan salin ke deklarasi apikey.

Perbarui informasi Azure Storage

Kode sampel BES mengunggah file dari drive lokal (misalnya, "C:\temp\CensusInput.csv") ke Azure Storage, memprosesnya, dan menulis hasilnya kembali ke Azure Storage.

  1. Masuk ke portal Microsoft Azure
  2. Di kolom navigasi kiri, klik Layanan lainnya, cari akun Penyimpanan, dan pilih.
  3. Dari daftar akun penyimpanan, pilih salah satu untuk menyimpan pelatihan ulang model.
  4. Di kolom navigasi kiri, klik Kunci akses.
  5. Salin dan simpan Kunci Akses Utama.
  6. Di kolom navigasi kiri, klik Blobs.
  7. Pilih kontainer yang sudah ada, atau buat yang baru dan simpan nama.

Temukan deklarasi StorageAccountName, StorageAccountKey, dan StorageContainerName, dan perbarui nilai yang Anda simpan dari portal.

const string StorageAccountName = "mystorageacct"; // Replace this with your Azure storage account name
const string StorageAccountKey = "a_storage_account_key"; // Replace this with your Azure Storage key
const string StorageContainerName = "mycontainer"; // Replace this with your Azure Storage container name

Anda juga harus memastikan bahwa file input tersedia di lokasi yang Anda tentukan dalam kode.

Tentukan lokasi output

Ketika Anda menentukan lokasi output dalam Payload Permintaan, ekstensi file yang ditentukan dalam RelativeLocation harus ditentukan sebagai ilearner.

Outputs = new Dictionary<string, AzureBlobDataReference>() {
    {
        "output1",
        new AzureBlobDataReference()
        {
            ConnectionString = storageConnectionString,
            RelativeLocation = string.Format("{0}/output1results.ilearner", StorageContainerName) /*Replace this with the location you want to use for your output file and a valid file extension (usually .csv for scoring results or .ilearner for trained models)*/
        }
    },

Berikut adalah sampel melatih ulang output:

Latih ulang output

Evaluasi hasil pelatihan ulang

Saat Anda menjalankan aplikasi, output menyertakan URL dan membagikan token tanda tangan akses yang diperlukan untuk mengakses hasil evaluasi.

Anda dapat melihat performa hasil dari model yang dilatih kembali dengan menggabungkan BaseLocation, RelativeLocation, dan SasBlobToken dari hasil output untuk output2 dan menempelkan URL lengkap ke bilah alamat browser.

Periksa hasil untuk menentukan apakah model yang baru dilatih berkinerja lebih baik daripada yang ada.

Simpan BaseLocation, RelativeLocation, dan SasBlobToken dari hasil output.

Perbarui eksperimen prediktif

Masuk ke Azure Resource Manager

Pertama, masuk ke akun Azure Anda dari dalam lingkungan PowerShell dengan menggunakan cmdlet Connect-AzAccount.

Dapatkan objek Definisi Layanan Web

Selanjutnya, dapatkan objek Definisi Layanan Web dengan memanggil cmdlet Get-AzMlWebService.

$wsd = Get-AzMlWebService -Name 'RetrainSamplePre.2016.8.17.0.3.51.237' -ResourceGroupName 'Default-MachineLearning-SouthCentralUS'

Untuk menentukan nama grup sumber daya dari layanan web yang ada, jalankan cmdlet Get-AzMlWebService tanpa parameter apa pun untuk menampilkan layanan web di langganan Anda. Temukan layanan web, lalu lihat ID layanan webnya. Nama grup sumber daya adalah elemen keempat dalam ID, tepat setelah elemen resourceGroups. Dalam sampel berikut, nama grup sumber daya adalah Default-MachineLearning-SouthCentralUS.

Properties : Microsoft.Azure.Management.MachineLearning.WebServices.Models.WebServicePropertiesForGraph
Id : /subscriptions/<subscription ID>/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/RetrainSamplePre.2016.8.17.0.3.51.237
Name : RetrainSamplePre.2016.8.17.0.3.51.237
Location : South Central US
Type : Microsoft.MachineLearning/webServices
Tags : {}

Atau, untuk menentukan nama grup sumber daya dari layanan web yang sudah ada, masuk ke portal Layanan Web Azure Machine Learning. Pilih layanan web. Nama grup sumber daya adalah elemen kelima dari URL layanan web, tepat setelah elemen resourceGroups. Dalam sampel berikut, nama grup sumber daya adalah Default-MachineLearning-SouthCentralUS.

https://services.azureml.net/subscriptions/<subscription ID>/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/RetrainSamplePre.2016.8.17.0.3.51.237

Ekspor objek Definisi Layanan Web sebagai JSON

Untuk memodifikasi definisi model terlatih untuk menggunakan model yang baru dilatih, Anda harus terlebih dahulu menggunakan cmdlet Export-AzMlWebService untuk mengekspornya ke file format JSON.

Export-AzMlWebService -WebService $wsd -OutputFile "C:\temp\mlservice_export.json"

Perbarui referensi ke blob ilearner

Dalam aset, temukan [model terlatih], perbarui nilai uri di simpullocationInfo dengan URI dari ilearner blob. URI dihasilkan dengan menggabungkan BaseLocation dan RelativeLocation dari output panggilan pelatihan ulang BES.

"asset3": {
    "name": "Retrain Sample [trained model]",
    "type": "Resource",
    "locationInfo": {
        "uri": "https://mltestaccount.blob.core.windows.net/azuremlassetscontainer/baca7bca650f46218633552c0bcbba0e.ilearner"
    },
    "outputPorts": {
        "Results dataset": {
            "type": "Dataset"
        }
    }
},

Impor JSON ke dalam objek Definisi Layanan Web

Gunakan cmdlet Import-AzMlWebService untuk mengonversi file JSON yang dimodifikasi kembali menjadi objek Definisi Layanan Web yang dapat Anda gunakan untuk memperbarui eksperimen predikat.

$wsd = Import-AzMlWebService -InputFile "C:\temp\mlservice_export.json"

Perbarui layanan web

Terakhir, gunakan cmdlet Update-AzMlWebService untuk memperbarui eksperimen prediktif.

Update-AzMlWebService -Name 'RetrainSamplePre.2016.8.17.0.3.51.237' -ResourceGroupName 'Default-MachineLearning-SouthCentralUS'

Langkah berikutnya

Untuk mempelajari selengkapnya tentang cara mengelola layanan web atau melacak beberapa eksperimen yang dijalankan, lihat artikel berikut ini: