Bagikan melalui


Perspektif Azure Well-Architected Framework di Azure OpenAI Service

Azure OpenAI Service menyediakan akses REST API ke model bahasa besar (LLM) OpenAI, menambahkan kemampuan jaringan dan keamanan Azure. Artikel ini memberikan rekomendasi arsitektur untuk membantu Anda membuat keputusan berdasarkan informasi saat Anda menggunakan Azure OpenAI sebagai bagian dari arsitektur beban kerja Anda. Panduan ini didasarkan pada pilar Azure Well-Architected Framework.

Penting

Cara menggunakan panduan ini

Setiap bagian memiliki daftar periksa desain yang menyajikan area kekhawatiran arsitektur bersama dengan strategi desain yang dilokalkan ke cakupan teknologi.

Juga termasuk rekomendasi tentang kemampuan teknologi yang dapat membantu mewujudkan strategi tersebut. Rekomendasi tidak mewakili daftar lengkap semua konfigurasi yang tersedia untuk Azure OpenAI dan dependensinya. Sebaliknya, mereka mencantumkan rekomendasi utama yang dipetakan ke perspektif desain. Gunakan rekomendasi untuk membangun bukti konsep Anda atau mengoptimalkan lingkungan Anda yang ada.

Arsitektur dasar yang menunjukkan rekomendasi utama: Arsitektur referensi obrolan end-to-end Baseline OpenAI.

Cakupan teknologi

Tinjauan ini hanya berfokus pada Azure OpenAI.

Keandalan

Tujuan pilar Keandalan adalah untuk memberikan fungsionalitas berkelanjutan dengan membangun ketahanan yang cukup dan kemampuan untuk pulih dengan cepat dari kegagalan.

Prinsip desain Keandalan menyediakan strategi desain tingkat tinggi yang diterapkan untuk komponen individu, alur sistem, dan sistem secara keseluruhan.

Daftar periksa desain

Mulai strategi desain Anda berdasarkan daftar periksa tinjauan desain untuk Keandalan. Tentukan relevansinya dengan kebutuhan bisnis Anda. Perluas strategi untuk menyertakan lebih banyak pendekatan sesuai kebutuhan.

  • Ketahanan: Pilih opsi penyebaran yang sesuai dari throughput bayar sesuai penggunaan atau yang disediakan berdasarkan kasus penggunaan Anda. Karena kapasitas yang dipesan meningkatkan ketahanan, pilih throughput yang disediakan untuk solusi produksi. Pendekatan bayar sesuai penggunaan sangat ideal untuk lingkungan dev/test.

  • Redundansi: Tambahkan gateway yang sesuai di depan penyebaran Azure OpenAI Anda. Gateway harus memiliki kemampuan untuk menahan kegagalan sementara seperti pembatasan dan juga merutekan ke beberapa instans Azure OpenAI. Pertimbangkan perutean ke instans di berbagai wilayah untuk membangun redundansi regional.

  • Ketahanan: Jika Anda menggunakan throughput yang disediakan, pertimbangkan juga untuk menyebarkan instans bayar sesuai penggunaan untuk menangani luapan. Anda dapat merutekan panggilan ke instans bayar sesuai penggunaan melalui gateway Anda saat model throughput yang disediakan dibatasi.

  • Ketahanan: Pantau penggunaan kapasitas untuk memastikan Anda tidak melebihi batas throughput. Tinjau penggunaan kapasitas secara teratur untuk mencapai prakiraan yang lebih akurat dan membantu mencegah gangguan layanan karena kendala kapasitas.

  • Ketahanan: Ikuti panduan untuk menyempurnakan dengan file data besar dan mengimpor data dari penyimpanan blob Azure. File besar, 100 MB atau lebih besar, dapat menjadi tidak stabil saat diunggah melalui formulir multibagian karena permintaannya atomik dan tidak dapat dicoba kembali atau dilanjutkan.

  • Pemulihan: Tentukan strategi pemulihan yang menyertakan rencana pemulihan untuk model yang disempurnakan dan untuk data pelatihan yang diunggah ke Azure OpenAI. Karena Azure OpenAI tidak memiliki failover otomatis, Anda harus merancang strategi yang mencakup seluruh layanan dan semua dependensi, seperti penyimpanan yang berisi data pelatihan.

Rekomendasi

Rekomendasi Keuntungan
Memantau batas tarif untuk bayar sesuai penggunaan: Jika Anda menggunakan pendekatan bayar sesuai penggunaan, kelola batas tarif untuk penyebaran model Anda dan pantau penggunaan token per menit (TPM) dan permintaan per menit (RPM). Informasi throughput penting ini menyediakan informasi yang diperlukan untuk memastikan bahwa Anda menetapkan TPM yang cukup dari kuota Anda untuk memenuhi permintaan penyebaran Anda.

Menetapkan kuota yang cukup mencegah pembatasan panggilan ke model yang Anda sebarkan.
Pantau pemanfaatan yang dikelola provisi untuk throughput yang disediakan: Jika Anda menggunakan model pembayaran throughput yang disediakan, pantau pemanfaatan yang dikelola provisi. Penting untuk memantau pemanfaatan yang dikelola provisi untuk memastikan tidak melebihi 100%, untuk mencegah pembatasan panggilan ke model yang Anda sebarkan.
Aktifkan fitur kuota dinamis: Jika anggaran beban kerja Anda mendukungnya, lakukan provisi berlebih dengan mengaktifkan kuota dinamis pada penyebaran model. Kuota dinamis memungkinkan penyebaran Anda untuk menggunakan lebih banyak kapasitas daripada kuota Anda biasanya, selama ada kapasitas yang tersedia dari perspektif Azure. Kapasitas kuota tambahan berpotensi mencegah pembatasan yang tidak diinginkan.
Menyetel filter konten: Menyetel filter konten untuk meminimalkan positif palsu dari filter yang terlalu agresif. Filter konten memblokir perintah atau penyelesaian berdasarkan analisis risiko buram. Pastikan filter konten disetel untuk memungkinkan penggunaan yang diharapkan untuk beban kerja Anda.

Keamanan

Tujuan pilar Keamanan adalah untuk memberikan jaminan kerahasiaan, integritas, dan ketersediaan terhadap beban kerja.

Prinsip desain Keamanan menyediakan strategi desain tingkat tinggi untuk mencapai tujuan tersebut dengan menerapkan pendekatan pada desain teknis di sekitar Azure OpenAI.

Daftar periksa desain

Mulai strategi desain Anda berdasarkan daftar periksa ulasan desain untuk Keamanan dan identifikasi kerentanan dan kontrol untuk meningkatkan postur keamanan. Kemudian, tinjau garis besar keamanan Azure untuk Azure OpenAI. Terakhir, perluas strategi untuk menyertakan lebih banyak pendekatan sesuai kebutuhan.

  • Lindungi kerahasiaan: Jika Anda mengunggah data pelatihan ke Azure OpenAI, gunakan kunci yang dikelola pelanggan untuk enkripsi data, terapkan strategi rotasi kunci, dan hapus data pelatihan, validasi, dan hasil pelatihan. Jika Anda menggunakan penyimpanan data eksternal untuk data pelatihan, ikuti praktik terbaik keamanan untuk penyimpanan tersebut. Misalnya, untuk Azure Blob Storage, gunakan kunci yang dikelola pelanggan untuk enkripsi dan terapkan strategi rotasi kunci. Gunakan akses berbasis identitas terkelola, terapkan perimeter jaringan dengan menggunakan titik akhir privat, dan aktifkan log akses.

  • Melindungi kerahasiaan: Melindungi dari penyelundupan data dengan membatasi URL keluar yang dapat diakses sumber daya Azure OpenAI.

  • Lindungi integritas: Terapkan kontrol akses untuk mengautentikasi dan mengotorisasi akses pengguna ke sistem dengan menggunakan prinsip hak istimewa paling sedikit dan dengan menggunakan identitas individual alih-alih kunci.

  • Lindungi integritas: Terapkan deteksi risiko jailbreak untuk melindungi penyebaran model bahasa Anda dari serangan injeksi yang cepat.

  • Lindungi ketersediaan: Gunakan kontrol keamanan untuk mencegah serangan yang mungkin menghabiskan kuota penggunaan model. Anda dapat mengonfigurasi kontrol untuk mengisolasi layanan pada jaringan. Jika layanan harus dapat diakses dari internet, pertimbangkan untuk menggunakan gateway untuk memblokir dugaan penyalahgunaan dengan menggunakan perutean atau pembatasan.

Rekomendasi

Rekomendasi Keuntungan
Kunci aman: Jika arsitektur Anda memerlukan autentikasi berbasis kunci Azure OpenAI, simpan kunci tersebut di Azure Key Vault, bukan dalam kode aplikasi. Memisahkan rahasia dari kode dengan menyimpannya di Key Vault mengurangi kemungkinan kebocoran rahasia. Pemisahan juga memfasilitasi manajemen pusat rahasia, meringankan tanggung jawab seperti rotasi kunci.
Membatasi akses: Nonaktifkan akses publik ke Azure OpenAI kecuali beban kerja Anda memerlukannya. Buat titik akhir privat jika Anda tersambung dari konsumen di jaringan virtual Azure. Mengontrol akses ke Azure OpenAI membantu mencegah serangan dari pengguna yang tidak sah. Menggunakan titik akhir privat memastikan lalu lintas jaringan tetap privat antara aplikasi dan platform.
ID Microsoft Entra: Gunakan ID Microsoft Entra untuk autentikasi dan untuk mengotorisasi akses ke Azure OpenAI dengan menggunakan kontrol akses berbasis peran (RBAC). Nonaktifkan autentikasi lokal di Azure AI Services dan atur disableLocalAuth ke true. Berikan identitas yang melakukan penyelesaian atau pembuatan gambar peran Pengguna OpenAI Cognitive Services. Berikan alur otomatisasi model dan akses ilmu data ad-hoc peran seperti Kontributor OpenAI Cognitive Services. Menggunakan MICROSOFT Entra ID memusatkan komponen manajemen identitas dan menghilangkan penggunaan kunci API. Menggunakan RBAC dengan MICROSOFT Entra ID memastikan bahwa pengguna atau grup memiliki izin yang mereka butuhkan untuk melakukan pekerjaan mereka. Kontrol akses menenangkan semacam ini tidak dimungkinkan dengan kunci Azure OpenAI API.
Gunakan kunci yang dikelola pelanggan: Gunakan kunci yang dikelola pelanggan untuk model yang disempurnakan dan data pelatihan yang diunggah ke Azure OpenAI. Menggunakan kunci yang dikelola pelanggan memberi Anda fleksibilitas yang lebih besar untuk membuat, memutar, menonaktifkan, dan mencabut kontrol akses.
Melindungi dari serangan jailbreak: Gunakan Azure AI Content Safety Studio untuk mendeteksi risiko jailbreak. Deteksi upaya jailbreak untuk mengidentifikasi dan memblokir perintah yang mencoba melewati mekanisme keamanan penyebaran Azure OpenAI Anda.

Pengoptimalan Biaya

Pengoptimalan Biaya berfokus pada mendeteksi pola pengeluaran, memprioritaskan investasi di area penting, dan mengoptimalkan orang lain untuk memenuhi anggaran organisasi sambil memenuhi persyaratan bisnis.

Baca prinsip desain Pengoptimalan Biaya untuk mempelajari tentang pendekatan untuk mencapai tujuan tersebut dan tradeoff yang diperlukan dalam pilihan desain teknis yang terkait dengan Azure OpenAI.

Daftar periksa desain

Mulai strategi desain Anda berdasarkan daftar periksa ulasan desain untuk Pengoptimalan Biaya untuk investasi. Sesuaikan desain sehingga beban kerja selaras dengan anggaran yang dialokasikan. Desain Anda harus menggunakan kemampuan Azure yang sesuai, memantau investasi, dan menemukan peluang untuk dioptimalkan dari waktu ke waktu.

  • Manajemen biaya: Kembangkan model biaya Anda, dengan mempertimbangkan ukuran permintaan. Memahami input perintah dan ukuran respons dan bagaimana teks diterjemahkan ke dalam token membantu Anda membuat model biaya yang layak.

  • Pengoptimalan penggunaan: Mulailah dengan harga bayar sesuai pemakaian untuk Azure OpenAI hingga penggunaan token Anda dapat diprediksi.

  • Pengoptimalan tarif: Ketika penggunaan token Anda cukup tinggi dan dapat diprediksi selama jangka waktu tertentu, gunakan model harga throughput yang disediakan untuk pengoptimalan biaya yang lebih baik.

  • Pengoptimalan penggunaan: Pertimbangkan harga dan kemampuan model saat Anda memilih model. Mulailah dengan model yang lebih murah untuk tugas yang kurang kompleks seperti pembuatan teks atau tugas penyelesaian. Untuk tugas yang lebih kompleks seperti terjemahan bahasa atau pemahaman konten, pertimbangkan untuk menggunakan model yang lebih canggih. Pertimbangkan kemampuan model yang berbeda dan batas penggunaan token maksimum saat Anda memilih model yang sesuai untuk kasus penggunaan seperti penyematan teks, pembuatan gambar, atau skenario transkripsi. Dengan memilih model yang paling sesuai dengan kebutuhan Anda dengan cermat, Anda dapat mengoptimalkan biaya sambil tetap mencapai performa aplikasi yang diinginkan.

  • Pengoptimalan penggunaan: Gunakan batasan pembatasan token yang ditawarkan oleh panggilan API, seperti max_tokens dan n, yang menunjukkan jumlah penyelesaian yang akan dihasilkan.

  • Pengoptimalan penggunaan: Memaksimalkan titik henti harga Azure OpenAI, misalnya, penyempurnaan dan titik henti model seperti pembuatan gambar. Karena penyempurnaan dibebankan per jam, gunakan waktu sebanyak yang Anda miliki per jam untuk meningkatkan hasil penyempurnaan sambil menghindari tergelincir ke periode penagihan berikutnya. Demikian pula, biaya untuk menghasilkan 100 gambar sama dengan biaya untuk 1 gambar. Maksimalkan titik henti harga untuk keuntungan Anda.

  • Pengoptimalan penggunaan: Hapus model yang disempurnakan yang tidak digunakan saat tidak lagi digunakan untuk menghindari dikenakan biaya hosting yang sedang berlangsung.

  • Sesuaikan penggunaan: Optimalkan input prompt dan panjang respons. Permintaan yang lebih panjang meningkatkan biaya dengan mengonsumsi lebih banyak token. Namun, perintah yang kehilangan konteks yang memadai tidak membantu model menghasilkan hasil yang baik. Buat perintah ringkas yang memberikan konteks yang cukup bagi model untuk menghasilkan respons yang berguna. Pastikan juga bahwa Anda mengoptimalkan batas panjang respons.

  • Efisiensi biaya: Permintaan batch jika memungkinkan untuk meminimalkan overhead per panggilan, yang dapat mengurangi biaya keseluruhan. Pastikan Anda mengoptimalkan ukuran batch.

  • Efisiensi biaya: Karena model memiliki biaya penyempurnaan yang berbeda, pertimbangkan biaya ini jika solusi Anda memerlukan penyempurnaan.

  • Pantau dan optimalkan: Siapkan sistem pelacakan biaya yang memantau penggunaan model. Gunakan informasi tersebut untuk membantu menginformasikan pilihan model dan ukuran perintah.

Rekomendasi

Rekomendasi Keuntungan
Mendesain kode klien untuk menetapkan batas: Klien kustom Anda harus menggunakan fitur batas API penyelesaian Azure OpenAI, seperti batas maksimum jumlah token per model (max_tokens) atau jumlah penyelesaian untuk dibuat (n). Batas pengaturan memastikan bahwa server tidak menghasilkan lebih dari yang dibutuhkan klien. Menggunakan fitur API untuk membatasi penggunaan menyelaraskan konsumsi layanan dengan kebutuhan klien. Ini menghemat uang dengan memastikan model tidak menghasilkan respons yang terlalu panjang yang mengonsumsi lebih banyak token daripada yang diperlukan.
Memantau penggunaan prabayar: Jika Anda menggunakan pendekatan bayar sesuai pemakaian, pantau penggunaan TPM dan RPM. Gunakan informasi tersebut untuk menginformasikan keputusan desain arsitektur seperti model apa yang akan digunakan, dan untuk mengoptimalkan ukuran prompt. Terus memantau TPM dan RPM memberi Anda metrik yang relevan untuk mengoptimalkan biaya model Azure OpenAI. Anda dapat melakukan beberapa pemantauan ini dengan fitur model dan harga model untuk mengoptimalkan penggunaan model. Anda juga dapat menggunakan pemantauan ini untuk mengoptimalkan ukuran prompt.
Memantau penggunaan throughput yang disediakan: Jika Anda menggunakan throughput yang disediakan, pantau pemanfaatan yang dikelola provisi untuk memastikan Anda tidak memanfaatkan throughput yang disediakan yang Anda beli. Terus memantau pemanfaatan yang dikelola provisi memberi Anda informasi yang perlu Anda pahami jika Anda kurang memanfaatkan throughput yang disediakan.
Manajemen biaya: Gunakan fitur manajemen biaya dengan OpenAI untuk memantau biaya, menetapkan anggaran untuk mengelola biaya, dan membuat pemberitahuan untuk memberi tahu pemangku kepentingan tentang risiko atau anomali. Pemantauan biaya, menetapkan anggaran, dan mengatur pemberitahuan memberikan tata kelola dengan proses akuntabilitas yang sesuai.

Keunggulan Operasional

Keunggulan Operasional terutama berfokus pada prosedur untuk praktik pengembangan, pengamatan, dan manajemen rilis.

Prinsip desain Keunggulan Operasional menyediakan strategi desain tingkat tinggi untuk mencapai tujuan tersebut terhadap persyaratan operasional beban kerja.

Daftar periksa desain

Mulai strategi desain Anda berdasarkan daftar periksa ulasan desain untuk Keunggulan Operasional. Daftar periksa ini mendefinisikan proses untuk pengamatan, pengujian, dan penyebaran yang terkait dengan Azure OpenAI.

  • Budaya Azure DevOps: Pastikan penyebaran instans Azure OpenAI di berbagai lingkungan Anda, seperti pengembangan, pengujian, dan produksi. Pastikan Anda memiliki lingkungan untuk mendukung pembelajaran dan eksperimen berkelanjutan sepanjang siklus pengembangan.

  • Pengamatan: Memantau, mengagregasi, dan memvisualisasikan metrik yang sesuai.

  • Pengamatan: Jika diagnostik Azure OpenAI tidak memadai untuk kebutuhan Anda, pertimbangkan untuk menggunakan gateway seperti Azure API Management di depan Azure OpenAI untuk mencatat permintaan masuk dan respons keluar jika diizinkan. Informasi ini dapat membantu Anda memahami efektivitas model untuk permintaan masuk.

  • Sebarkan dengan percaya diri: Gunakan infrastruktur sebagai kode (IaC) untuk menyebarkan Azure OpenAI, penyebaran model, dan infrastruktur lain yang diperlukan untuk menyempurnakan model.

  • Sebarkan dengan percaya diri: Ikuti praktik operasi model bahasa besar (LLMOps) untuk mengoprasikan manajemen LLM Azure OpenAI Anda, termasuk penyebaran, penyempurnaan, dan rekayasa prompt.

  • Mengotomatiskan efisiensi: Jika Anda menggunakan autentikasi berbasis kunci, terapkan strategi rotasi kunci otomatis.

Rekomendasi

Rekomendasi Keuntungan
Mengaktifkan dan mengonfigurasi Diagnostik Azure: Mengaktifkan dan mengonfigurasi Diagnostik untuk Layanan Azure OpenAI. Diagnostik mengumpulkan dan menganalisis metrik dan log, membantu Anda memantau ketersediaan, performa, dan pengoperasian Azure OpenAI.

Efisiensi Performa

Efisiensi Performa adalah tentang mempertahankan pengalaman pengguna bahkan ketika ada peningkatan beban dengan mengelola kapasitas. Strategi ini mencakup penskalaan sumber daya, mengidentifikasi dan mengoptimalkan potensi hambatan, dan mengoptimalkan performa puncak.

Prinsip desain Efisiensi Performa menyediakan strategi desain tingkat tinggi untuk mencapai tujuan kapasitas tersebut terhadap penggunaan yang diharapkan.

Daftar periksa desain

Mulai strategi desain Anda berdasarkan daftar periksa tinjauan desain untuk Efisiensi Performa untuk menentukan garis besar berdasarkan indikator performa utama untuk beban kerja Azure OpenAI.

  • Kapasitas: Perkirakan permintaan elastisitas konsumen. Identifikasi lalu lintas berprioritas tinggi yang memerlukan respons sinkron dan lalu lintas berprioritas rendah yang dapat asinkron dan di-batch.

  • Kapasitas: Persyaratan konsumsi token token berdasarkan perkiraan permintaan dari konsumen. Pertimbangkan untuk menggunakan alat tolok ukur Azure OpenAI untuk membantu Anda memvalidasi throughput jika Anda menggunakan penyebaran unit throughput (PTU) yang disediakan.

  • Kapasitas: Gunakan throughput yang disediakan untuk beban kerja produksi. Throughput yang disediakan menawarkan memori dan komputasi khusus, kapasitas yang dipesan, dan latensi maksimum yang konsisten untuk versi model yang ditentukan. Penawaran bayar sesuai pemakaian dapat menderita masalah tetangga yang berisik seperti peningkatan latensi dan pembatasan di wilayah di bawah penggunaan berat. Selain itu, pendekatan bayar sesuai penggunaan tidak menawarkan kapasitas yang dijamin.

  • Kapasitas: Tambahkan gateway yang sesuai di depan penyebaran Azure OpenAI Anda. Pastikan gateway dapat merutekan ke beberapa instans di wilayah yang sama atau berbeda.

  • Kapasitas: Alokasikan PTUs untuk mencakup penggunaan yang diprediksi, dan melengkapi PTUs ini dengan penyebaran TPM untuk menangani elastisitas di atas batas itu. Pendekatan ini menggabungkan throughput dasar dengan throughput elastis untuk efisiensi. Seperti pertimbangan lain, pendekatan ini memerlukan implementasi gateway kustom untuk merutekan permintaan ke penyebaran TPM ketika batas PTU tercapai.

  • Kapasitas: Kirim permintaan berprioritas tinggi secara sinkron. Antrekan permintaan berprioritas rendah dan kirimkan dalam batch ketika permintaan rendah.

  • Kapasitas: Pilih model yang selaras dengan persyaratan performa Anda, mempertimbangkan tradeoff antara kecepatan dan kompleksitas output. Performa model dapat bervariasi secara signifikan berdasarkan jenis model yang dipilih. Model yang dirancang untuk kecepatan menawarkan waktu respons yang lebih cepat, yang dapat bermanfaat bagi aplikasi yang memerlukan interaksi cepat. Sebaliknya, model yang lebih canggih dapat memberikan output berkualitas lebih tinggi dengan mengorbankan waktu respons yang meningkat.

  • Mencapai performa: Untuk aplikasi seperti chatbot atau antarmuka percakapan, pertimbangkan untuk menerapkan streaming. Streaming dapat meningkatkan performa aplikasi Azure OpenAI yang dirasakan dengan memberikan respons kepada pengguna secara bertahap, meningkatkan pengalaman pengguna.

  • Mencapai performa: Tentukan kapan harus menggunakan penyempurnaan sebelum Anda berkomitmen untuk menyempurnakan. Meskipun ada kasus penggunaan yang baik untuk penyempurnaan, seperti ketika informasi yang diperlukan untuk mengarahkan model terlalu panjang atau kompleks agar sesuai dengan prompt, pastikan bahwa pendekatan rekayasa dan pengambilan generasi tambahan (RAG) yang cepat tidak berfungsi atau ditunjukkan lebih mahal.

  • Mencapai performa: Pertimbangkan untuk menggunakan penyebaran model khusus per grup konsumen untuk menyediakan isolasi penggunaan per model yang dapat membantu mencegah tetangga yang bising antara grup konsumen Anda.

Rekomendasi

Tidak ada konfigurasi yang direkomendasikan untuk Efisiensi Performa untuk Azure OpenAI.

Kebijakan Azure

Azure menyediakan serangkaian kebijakan bawaan yang luas yang terkait dengan Azure OpenAI dan dependensinya. Beberapa rekomendasi sebelumnya dapat diaudit melalui Azure Policy. Pertimbangkan definisi kebijakan berikut:

Definisi Azure Policy ini juga merupakan rekomendasi praktik terbaik keamanan Azure Advisor untuk Azure OpenAI.

Langkah berikutnya

Pertimbangkan artikel berikut sebagai sumber daya yang menunjukkan rekomendasi yang disorot dalam artikel ini.

  • Gunakan arsitektur referensi ini sebagai contoh bagaimana Anda dapat menerapkan panduan artikel ini ke beban kerja: Arsitektur referensi obrolan end-to-end Baseline OpenAI.
  • Bangun keahlian implementasi dengan menggunakan dokumentasi produk Azure Pembelajaran Mesin.