Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Item-item yang ditandai (pratinjau) dalam artikel ini saat ini sedang berada dalam pratinjau publik. Pratinjau ini disediakan tanpa kesepakatan tingkat layanan, dan kami tidak merekomendasikannya untuk penggunaan dalam lingkungan produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.
Memantau aplikasi yang disebarkan ke produksi adalah bagian penting dari siklus hidup aplikasi AI generatif. Perubahan perilaku data dan konsumen dapat memengaruhi aplikasi Anda dari waktu ke waktu. Perubahan tersebut dapat mengakibatkan sistem kedaluarsa yang berdampak negatif pada hasil bisnis dan mengekspos organisasi terhadap risiko kepatuhan, ekonomi, dan reputasi.
Nota
Untuk pendekatan yang lebih baik untuk melakukan pemantauan berkelanjutan aplikasi yang sudah diterapkan (selain arus perintah), pertimbangkan untuk menggunakan evaluasi online Azure AI.
Dengan menggunakan pemantauan Azure AI untuk aplikasi AI generatif, Anda dapat memantau aplikasi Anda dalam produksi untuk penggunaan token, kualitas pembuatan, dan metrik operasional.
Integrasi untuk memantau penyebaran alur perintah memungkinkan Anda untuk:
- Kumpulkan data inferensi produksi dari aplikasi alur prompt yang sudah Anda sebarkan.
- Terapkan metrik evaluasi AI yang Bertanggung Jawab seperti groundedness, koherensi, kefasihan, dan relevansi, yang dapat dioperasikan dengan metrik evaluasi aliran prompt.
- Pantau perintah, penyelesaian, dan total penggunaan token di setiap penyebaran model dalam alur permintaan Anda.
- Pantau metrik operasional, seperti jumlah permintaan, latensi, dan tingkat kesalahan.
- Gunakan pemberitahuan dan default yang telah dikonfigurasi sebelumnya untuk menjalankan pemantauan secara berulang.
- Gunakan visualisasi data dan konfigurasikan perilaku tingkat lanjut di portal Azure AI Foundry.
Prasyarat
Sebelum Anda mengikuti langkah-langkah dalam artikel ini, pastikan Anda memiliki prasyarat berikut:
Nota
Anda harus menggunakan proyek berbasis hub untuk fitur ini. Proyek Foundry tidak didukung. Lihat Bagaimana cara mengetahui jenis proyek mana yang saya miliki? dan Membuat proyek berbasis hub.
- Sebuah langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis.
- Jika Anda tidak memilikinya, buat proyek berbasis hub.
- Alur kerja prompt yang siap untuk diterapkan. Jika Anda tidak memilikinya, lihat Mengembangkan alur permintaan.
- Kontrol akses berbasis peran Azure digunakan untuk memberikan akses ke operasi di portal Azure AI Foundry. Untuk melakukan langkah-langkah dalam artikel ini, akun pengguna Anda harus diberi peran Pengembang Azure AI pada grup sumber daya. Untuk informasi selengkapnya tentang izin, lihat Kontrol akses berbasis peran di portal Azure AI Foundry.
Persyaratan untuk memantau metrik
Model bahasa transformator generatif yang telah dilatih sebelumnya (GPT) menghasilkan metrik pemantauan yang dikonfigurasi dengan instruksi evaluasi tertentu (templat perintah). Model-model ini bertindak sebagai evaluator untuk tugas urutan-ke-urutan. Penggunaan teknik ini untuk menghasilkan metrik pemantauan menunjukkan hasil empiris yang kuat dan korelasi tinggi dengan penilaian manusia jika dibandingkan dengan metrik evaluasi AI generatif standar. Untuk informasi selengkapnya tentang evaluasi alur perintah, lihat Mengirimkan pengujian batch dan mengevaluasi alur dan Mengevaluasi dan memantau metrik untuk AI generatif.
Model GPT berikut menghasilkan metrik pemantauan. Model GPT ini didukung dengan pemantauan dan dikonfigurasi sebagai sumber daya Azure OpenAI Anda:
- GPT-3.5 Turbo
- GPT-4
- GPT-4-32k
Metrik yang didukung untuk pemantauan
Metrik berikut didukung untuk pemantauan.
Ukuran | Deskripsi |
---|---|
Keterhubungan dengan kenyataan | Mengukur seberapa baik jawaban yang dihasilkan model selaras dengan informasi dari data sumber (konteks yang ditentukan pengguna.) |
Relevansi | Mengukur sejauh mana respons model yang dihasilkan berkaitan dan terkait langsung dengan pertanyaan yang diberikan. |
Koherensi | Mengukur sejauh mana respons yang dihasilkan model secara logis konsisten dan terhubung. |
Kefasihan | Mengukur kecakapan tata bahasa dari jawaban yang dihasilkan oleh AI generatif. |
Pemetaan nama kolom
Saat membuat alur, Anda perlu memastikan bahwa nama kolom Anda dipetakan. Nama kolom data input berikut digunakan untuk mengukur keamanan dan kualitas pembuatan.
Nama kolom input | Definisi | Diperlukan/Opsional |
---|---|---|
Pertanyaan | Perintah asli yang diberikan (juga dikenal sebagai "input" atau "pertanyaan"). | Diperlukan |
Jawaban | Penyelesaian akhir dari panggilan API yang dikembalikan (juga dikenal sebagai "output" atau "jawaban"). | Diperlukan |
Konteks | Data konteks apa pun yang dikirim ke panggilan API, bersama dengan perintah asli. Misalnya, jika Anda berharap untuk mendapatkan hasil pencarian hanya dari sumber informasi atau situs web bersertifikat tertentu, Anda dapat menentukan konteks ini dalam langkah-langkah evaluasi. | Fakultatif |
Parameter yang diperlukan untuk metrik
Parameter yang dikonfigurasi dalam aset data Anda menentukan metrik apa yang dapat Anda hasilkan, sesuai dengan tabel ini.
Ukuran | Pertanyaan | Jawaban | Konteks |
---|---|---|---|
Koherensi | Diperlukan | Diperlukan | - |
Kefasihan | Diperlukan | Diperlukan | - |
Keterhubungan dengan kenyataan | Diperlukan | Diperlukan | Diperlukan |
Relevansi | Diperlukan | Diperlukan | Diperlukan |
Untuk informasi selengkapnya tentang persyaratan pemetaan data tertentu untuk setiap metrik, lihat Persyaratan metrik kueri dan respons.
Menyiapkan pemantauan untuk alur perintah
Untuk menyiapkan pemantauan untuk aplikasi alur perintah, Anda harus terlebih dahulu menyebarkan aplikasi alur perintah dengan pengumpulan data inferensi. Kemudian Anda dapat mengonfigurasi pemantauan untuk aplikasi yang disebarkan.
Menyebarkan aplikasi alur perintah Anda dengan pengumpulan data inferensi
Di bagian ini, Anda mempelajari cara menyebarkan alur prompt dengan mengaktifkan pengumpulan data inferensi. Untuk informasi selengkapnya tentang cara menerapkan alur prompt Anda, lihat Menerapkan alur untuk inferensi real-time.
Petunjuk / Saran
Karena Anda bisa mengkustomisasi panel kiri di portal Azure AI Foundry, Anda mungkin melihat item yang berbeda dari yang diperlihatkan dalam langkah-langkah ini. Jika Anda tidak melihat apa yang Anda cari, pilih ... Lainnya di bagian bawah panel kiri.
Masuk ke Azure AI Foundry.
Jika Anda belum berada di proyek Anda, pilihlah proyek tersebut.
Nota
Anda harus menggunakan proyek berbasis hub untuk fitur ini. Proyek Foundry tidak didukung. Lihat Bagaimana cara mengetahui jenis proyek mana yang saya miliki? dan Membuat proyek berbasis hub.
Di panel kiri, pilih Alur perintah.
Pilih alur perintah yang Anda buat sebelumnya.
Artikel ini mengasumsikan bahwa Anda membuat alur perintah yang siap untuk penyebaran. Jika Anda tidak memilikinya, lihat Mengembangkan alur permintaan.
Konfirmasikan bahwa alur Anda berhasil berjalan dan bahwa input dan output yang diperlukan dikonfigurasi untuk metrik yang ingin Anda nilai.
Menyediakan parameter minimum yang diperlukan (pertanyaan/input dan jawaban/output) hanya menyediakan dua metrik: koherensi dan kefasihan. Anda harus mengonfigurasi alur seperti yang dijelaskan di bagian persyaratan untuk metrik pemantauan. Contoh ini menggunakan
question
(Pertanyaan) danchat_history
(Konteks) sebagai input alur, dananswer
(Jawaban) digunakan sebagai output alur.Pilih Sebarkan untuk mulai menyebarkan alur Anda.
Di jendela penyebaran, pastikan pengumpulan data Inferensi diaktifkan untuk mengumpulkan data inferensi aplikasi Anda dengan lancar ke Azure Blob Storage. Pengumpulan data ini diperlukan untuk pemantauan.
Lanjutkan melalui langkah-langkah di jendela penyebaran untuk menyelesaikan pengaturan tingkat lanjut.
Pada halaman Tinjau , tinjau konfigurasi penyebaran dan pilih Buat untuk menyebarkan alur Anda.
Secara default, semua input dan output aplikasi alur prompt yang Anda sebarkan dikumpulkan ke penyimpanan blob Anda. Saat pengguna memanggil penyebaran, data dikumpulkan agar dapat digunakan oleh monitor Anda.
Pilih tab Uji pada halaman penyebaran. Kemudian uji penyebaran Anda untuk memastikan bahwa sistem berfungsi sebagaimana mestinya.
Pemantauan mengharuskan setidaknya satu titik data berasal dari sumber selain tab Uji dalam penyebaran. Sebaiknya gunakan REST API yang tersedia di tab Konsumsi untuk mengirim permintaan sampel ke deployment Anda. Untuk informasi selengkapnya tentang cara mengirim permintaan sampel ke penyebaran Anda, lihat Membuat penyebaran online.
Mengonfigurasi pemantauan
Di bagian ini, Anda mempelajari cara mengonfigurasi pemantauan untuk aplikasi alur prompt yang disebarkan.
Di panel kiri, buka Aset saya>Model + titik akhir.
Pilih implementasi alur perintah yang Anda buat.
Dalam kotak Aktifkan pemantauan kualitas pembuatan , pilih Aktifkan.
Mulai konfigurasikan pemantauan dengan memilih metrik yang Anda inginkan.
Konfirmasikan bahwa nama kolom Anda dipetakan dari alur Anda seperti yang ditentukan dalam Pemetaan nama kolom.
Pilih nilai Koneksi Azure OpenAI dan Penyebaran yang ingin Anda gunakan untuk memantau alur prompt aplikasi Anda.
Pilih Opsi tingkat lanjut untuk melihat opsi lainnya untuk dikonfigurasi.
Sesuaikan laju pengambilan sampel dan ambang batas untuk metrik yang Dikonfigurasi. Tentukan alamat email yang harus menerima pemberitahuan saat skor rata-rata untuk metrik tertentu berada di bawah ambang batas.
Jika pengumpulan data tidak diaktifkan untuk penyebaran Anda, pembuatan monitor memungkinkan pengumpulan data inferensi ke penyimpanan blob Anda. Proses ini membuat penyebaran menjadi offline selama beberapa menit.
Pilih Buat untuk membuat monitor Anda.
Mengonsumsi hasil pemantauan
Setelah Anda membuat monitor, proses ini berjalan setiap hari untuk mengukur penggunaan token dan metrik kualitas pembuatan.
Buka tab Pemantauan (pratinjau) dalam penyebaran untuk melihat hasil pemantauan. Di sini, Anda akan melihat gambaran umum hasil pemantauan selama jendela waktu yang dipilih. Gunakan pemilih tanggal untuk mengubah jendela waktu data yang Anda pantau. Metrik berikut tersedia dalam gambaran umum ini:
- Jumlah permintaan total: Jumlah total permintaan yang dikirim ke penyebaran selama jendela waktu yang dipilih.
- Jumlah token total: Jumlah total token yang digunakan oleh penyebaran selama jendela waktu yang dipilih.
- Jumlah token prompt: Jumlah token prompt yang digunakan oleh deployment selama jendela waktu yang dipilih.
- Jumlah token penyelesaian: Jumlah token penyelesaian yang digunakan oleh penyebaran selama jendela waktu yang dipilih.
Lihat metrik pada tab Penggunaan token . (Tab ini dipilih secara default.) Di sini, Anda dapat melihat penggunaan token aplikasi Anda dari waktu ke waktu. Anda juga dapat melihat distribusi token perintah dan penyelesaian dari waktu ke waktu. Anda dapat mengubah nilai cakupan Trendline untuk memantau semua token di seluruh aplikasi atau penggunaan token untuk penyebaran tertentu (misalnya, GPT-4) yang dipergunakan dalam aplikasi Anda.
Buka tab Kualitas pembuatan untuk memantau kualitas aplikasi Anda dari waktu ke waktu. Metrik berikut diperlihatkan dalam bagan waktu:
- Jumlah pelanggaran: Jumlah pelanggaran untuk metrik tertentu (misalnya, kefasihan) adalah jumlah pelanggaran selama jendela waktu yang dipilih. Pelanggaran terjadi untuk metrik ketika metrik dihitung (defaultnya adalah harian) jika nilai komputasi untuk metrik berada di bawah nilai ambang yang ditetapkan.
- Skor rata-rata: Skor rata-rata untuk metrik tertentu (misalnya, kefasihan) adalah jumlah skor untuk semua instans (atau permintaan) yang dibagi dengan jumlah instans (atau permintaan) selama jendela waktu yang dipilih.
Kartu Pelanggaran kualitas pembuatan menunjukkan tingkat pelanggaran selama jendela waktu yang dipilih. Tingkat pelanggaran adalah jumlah pelanggaran yang dibagi dengan jumlah total kemungkinan pelanggaran. Anda dapat menyesuaikan ambang batas untuk metrik dalam pengaturan. Secara default, metrik dihitung setiap hari. Anda juga dapat menyesuaikan frekuensi ini di pengaturan.
Pada tab Pemantauan (Pratinjau) , Anda juga dapat melihat tabel komprehensif dari semua permintaan sampel yang dikirim ke penyebaran selama jendela waktu yang dipilih.
Pemantauan menetapkan laju pengambilan sampel default pada 10%. Misalnya, jika 100 permintaan dikirim ke penyebaran Anda, 10 diambil sampel dan digunakan untuk menghitung metrik kualitas generasi. Anda dapat menyesuaikan laju pengambilan sampel di pengaturan.
Pilih tombol Lacak di sisi kanan baris dalam tabel untuk melihat detail pelacakan untuk permintaan tertentu. Tampilan ini menyediakan detail pelacakan komprehensif untuk permintaan ke aplikasi Anda.
Tutup tampilan jejak.
Buka tab Operasional untuk melihat metrik operasional dari penyebaran dalam waktu hampir real-time. Kami mendukung metrik operasional berikut:
- Jumlah permintaan
- Keterlambatan
- Tingkat kesalahan
Hasil pada tab Pemantauan (pratinjau) penyebaran Anda memberikan wawasan untuk membantu Anda meningkatkan performa alur prompt aplikasi Anda secara proaktif.
Konfigurasi pemantauan tingkat lanjut dengan SDK v2
Pemantauan juga mendukung opsi konfigurasi tingkat lanjut dengan SDK v2. Skenario berikut didukung.
Mengaktifkan pemantauan untuk penggunaan token
Jika Anda hanya ingin mengaktifkan pemantauan penggunaan token untuk aplikasi alur prompt yang disebarkan, sesuaikan skrip berikut dengan skenario Anda:
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
MonitorSchedule,
CronTrigger,
MonitorDefinition,
ServerlessSparkCompute,
MonitoringTarget,
AlertNotification,
GenerationTokenStatisticsSignal,
)
from azure.ai.ml.entities._inputs_outputs import Input
from azure.ai.ml.constants import MonitorTargetTasks, MonitorDatasetContext
# Authentication package
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
# Update your Azure resources details
subscription_id = "INSERT YOUR SUBSCRIPTION ID"
resource_group = "INSERT YOUR RESOURCE GROUP NAME"
project_name = "INSERT YOUR PROJECT NAME" # This is the same as your Azure AI Foundry project name
endpoint_name = "INSERT YOUR ENDPOINT NAME" # This is your deployment name without the suffix (e.g., deployment is "contoso-chatbot-1", endpoint is "contoso-chatbot")
deployment_name = "INSERT YOUR DEPLOYMENT NAME"
# These variables can be renamed but it is not necessary
monitor_name ="gen_ai_monitor_tokens"
defaulttokenstatisticssignalname ="token-usage-signal"
# Determine the frequency to run the monitor, and the emails to recieve email alerts
trigger_schedule = CronTrigger(expression="15 10 * * *")
notification_emails_list = ["test@example.com", "def@example.com"]
ml_client = MLClient(
credential=credential,
subscription_id=subscription_id,
resource_group_name=resource_group,
workspace_name=project_name,
)
spark_compute = ServerlessSparkCompute(instance_type="standard_e4s_v3", runtime_version="3.3")
monitoring_target = MonitoringTarget(
ml_task=MonitorTargetTasks.QUESTION_ANSWERING,
endpoint_deployment_id=f"azureml:{endpoint_name}:{deployment_name}",
)
# Create an instance of a token statistic signal
token_statistic_signal = GenerationTokenStatisticsSignal()
monitoring_signals = {
defaulttokenstatisticssignalname: token_statistic_signal,
}
monitor_settings = MonitorDefinition(
compute=spark_compute,
monitoring_target=monitoring_target,
monitoring_signals = monitoring_signals,
alert_notification=AlertNotification(emails=notification_emails_list),
)
model_monitor = MonitorSchedule(
name = monitor_name,
trigger=trigger_schedule,
create_monitor=monitor_settings
)
ml_client.schedules.begin_create_or_update(model_monitor)
Mengaktifkan pemantauan untuk kualitas generasi
Jika Anda hanya ingin mengaktifkan pemantauan kualitas generasi untuk aplikasi alur perintah yang telah diterapkan, sesuaikan skrip berikut dengan skenario Anda:
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
MonitorSchedule,
CronTrigger,
MonitorDefinition,
ServerlessSparkCompute,
MonitoringTarget,
AlertNotification,
GenerationSafetyQualityMonitoringMetricThreshold,
GenerationSafetyQualitySignal,
BaselineDataRange,
LlmData,
)
from azure.ai.ml.entities._inputs_outputs import Input
from azure.ai.ml.constants import MonitorTargetTasks, MonitorDatasetContext
# Authentication package
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
# Update your Azure resources details
subscription_id = "INSERT YOUR SUBSCRIPTION ID"
resource_group = "INSERT YOUR RESOURCE GROUP NAME"
project_name = "INSERT YOUR PROJECT NAME" # This is the same as your Azure AI Foundry project name
endpoint_name = "INSERT YOUR ENDPOINT NAME" # This is your deployment name without the suffix (e.g., deployment is "contoso-chatbot-1", endpoint is "contoso-chatbot")
deployment_name = "INSERT YOUR DEPLOYMENT NAME"
aoai_deployment_name ="INSERT YOUR AOAI DEPLOYMENT NAME"
aoai_connection_name = "INSERT YOUR AOAI CONNECTION NAME"
# These variables can be renamed but it is not necessary
app_trace_name = "app_traces"
app_trace_Version = "1"
monitor_name ="gen_ai_monitor_generation_quality"
defaultgsqsignalname ="gsq-signal"
# Determine the frequency to run the monitor and the emails to receive email alerts
trigger_schedule = CronTrigger(expression="15 10 * * *")
notification_emails_list = ["test@example.com", "def@example.com"]
ml_client = MLClient(
credential=credential,
subscription_id=subscription_id,
resource_group_name=resource_group,
workspace_name=project_name,
)
spark_compute = ServerlessSparkCompute(instance_type="standard_e4s_v3", runtime_version="3.3")
monitoring_target = MonitoringTarget(
ml_task=MonitorTargetTasks.QUESTION_ANSWERING,
endpoint_deployment_id=f"azureml:{endpoint_name}:{deployment_name}",
)
# Set thresholds for the passing rate (0.7 = 70%)
aggregated_groundedness_pass_rate = 0.7
aggregated_relevance_pass_rate = 0.7
aggregated_coherence_pass_rate = 0.7
aggregated_fluency_pass_rate = 0.7
# Create an instance of a gsq signal
generation_quality_thresholds = GenerationSafetyQualityMonitoringMetricThreshold(
groundedness = {"aggregated_groundedness_pass_rate": aggregated_groundedness_pass_rate},
relevance={"aggregated_relevance_pass_rate": aggregated_relevance_pass_rate},
coherence={"aggregated_coherence_pass_rate": aggregated_coherence_pass_rate},
fluency={"aggregated_fluency_pass_rate": aggregated_fluency_pass_rate},
)
input_data = Input(
type="uri_folder",
path=f"{endpoint_name}-{deployment_name}-{app_trace_name}:{app_trace_Version}",
)
data_window = BaselineDataRange(lookback_window_size="P7D", lookback_window_offset="P0D")
production_data = LlmData(
data_column_names={"prompt_column": "question", "completion_column": "answer", "context_column": "context"},
input_data=input_data,
data_window=data_window,
)
gsq_signal = GenerationSafetyQualitySignal(
connection_id=f"/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.MachineLearningServices/workspaces/{project_name}/connections/{aoai_connection_name}",
metric_thresholds=generation_quality_thresholds,
production_data=[production_data],
sampling_rate=1.0,
properties={
"aoai_deployment_name": aoai_deployment_name,
"enable_action_analyzer": "false",
"azureml.modelmonitor.gsq_thresholds": '[{"metricName":"average_fluency","threshold":{"value":4}},{"metricName":"average_coherence","threshold":{"value":4}}]',
},
)
monitoring_signals = {
defaultgsqsignalname: gsq_signal,
}
monitor_settings = MonitorDefinition(
compute=spark_compute,
monitoring_target=monitoring_target,
monitoring_signals = monitoring_signals,
alert_notification=AlertNotification(emails=notification_emails_list),
)
model_monitor = MonitorSchedule(
name = monitor_name,
trigger=trigger_schedule,
create_monitor=monitor_settings
)
ml_client.schedules.begin_create_or_update(model_monitor)
Setelah membuat monitor dari SDK, Anda dapat menggunakan hasil pemantauan di portal Azure AI Foundry.
Konten terkait
- Pelajari selengkapnya tentang apa yang dapat Anda lakukan di Azure AI Foundry.
- Dapatkan jawaban atas tanya jawab umum di FAQ Azure AI Foundry.