Pelacakan MLflow untuk agen
Penting
Fitur ini ada di Pratinjau Publik.
Artikel ini menjelaskan Pelacakan MLflow dan skenario di mana sangat membantu untuk mengevaluasi aplikasi AI generatif dalam sistem AI Anda.
Dalam pengembangan perangkat lunak, pelacakan melibatkan perekaman urutan peristiwa seperti sesi pengguna atau alur permintaan. Dalam konteks sistem AI, pelacakan sering mengacu pada interaksi yang Anda miliki dengan sistem AI. Contoh jejak sistem AI mungkin terlihat seperti melengkapi input dan parameter untuk aplikasi RAG yang menyertakan pesan pengguna dengan perintah, pencarian vektor, dan antarmuka dengan model AI generatif.
Apa itu Pelacakan MLflow?
Dengan menggunakan Pelacakan MLflow, Anda dapat mencatat, menganalisis, dan membandingkan jejak di berbagai versi aplikasi AI generatif. Ini memungkinkan Anda untuk men-debug kode AI Python generatif Anda dan melacak input dan respons. Melakukannya dapat membantu Anda menemukan kondisi atau parameter yang berkontribusi pada performa aplikasi Anda yang buruk. Pelacakan MLflow terintegrasi erat dengan alat dan infrastruktur Databricks, memungkinkan Anda menyimpan dan menampilkan semua jejak Anda di notebook Databricks atau UI eksperimen MLflow saat Anda menjalankan kode Anda.
Saat Anda mengembangkan sistem AI pada Databricks menggunakan pustaka seperti LangChain, LlamaIndex, OpenAI, atau PyFunc kustom, MLflow Tracing memungkinkan Anda melihat semua peristiwa dan output menengah dari setiap langkah agen Anda. Anda dapat dengan mudah melihat perintah, model dan pengambilan mana yang digunakan, dokumen mana yang diambil untuk menambah respons, berapa lama waktu yang dibutuhkan, dan output akhir. Misalnya, jika model Berhalusinasi, Anda dapat dengan cepat memeriksa setiap langkah yang menyebabkan halusinasi.
Mengapa menggunakan Pelacakan MLflow?
Pelacakan MLflow memberikan beberapa manfaat untuk membantu Anda melacak alur kerja pengembangan Anda. Misalnya, Anda dapat:
- Tinjau visualisasi pelacakan interaktif dan gunakan alat investigasi untuk mendiagnosis masalah dalam pengembangan.
- Verifikasi bahwa templat permintaan dan pagar pembatas menghasilkan hasil yang wajar.
- Jelajahi dan minimalkan dampak latensi dari berbagai kerangka kerja, model, ukuran gugus, dan praktik pengembangan perangkat lunak.
- Mengukur biaya aplikasi dengan melacak penggunaan token oleh model yang berbeda.
- Menetapkan himpunan data tolok ukur ("emas") untuk mengevaluasi performa versi yang berbeda.
- Simpan jejak dari titik akhir model produksi ke masalah debug, dan lakukan tinjauan dan evaluasi offline.
Menginstal Pelacakan MLflow
Pelacakan MLflow tersedia dalam MLflow versi 2.13.0 ke atas.
%pip install mlflow>=2.13.0 -qqqU
%restart_python
Atau, Anda dapat %pip install databricks-agents
menginstal versi databricks-agents
terbaru yang menyertakan versi MLflow yang kompatibel.
Menggunakan Pelacakan MLflow dalam pengembangan
Pelacakan MLflow membantu Anda menganalisis masalah performa dan mempercepat siklus pengembangan agen. Bagian berikut mengasumsikan Anda melakukan pengembangan agen dan Pelacakan MLflow dari buku catatan.
Catatan
Di lingkungan notebook, Pelacakan MLflow mungkin menambahkan hingga beberapa detik overhead ke durasi agen. Ini terutama berasal dari latensi jejak pengelogan ke eksperimen MLflow. Dalam titik akhir model produksi, MLflow Tracing memiliki dampak yang jauh lebih kecil pada performa. Lihat Menggunakan Pelacakan MLflow dalam Produksi.
Catatan
Pada Databricks Runtime 15.4 LTS ML, pelacakan MLflow diaktifkan secara default dalam notebook. Untuk menonaktifkan pelacakan, misalnya dengan LangChain, Anda dapat menjalankan mlflow.langchain.autolog(log_traces=False)
di buku catatan Anda.
Menambahkan jejak ke agen Anda
MLflow Tracing menyediakan tiga cara berbeda untuk menggunakan jejak dengan aplikasi AI generatif Anda dengan jejak. Lihat Menambahkan jejak ke agen Anda untuk contoh penggunaan metode ini. Untuk detail referensi API, lihat dokumentasi MLflow.
API | Kasus Penggunaan yang Direkomendasikan | Deskripsi |
---|---|---|
Pencatatan otomatis MLflow | Pengembangan pada pustaka GenAI terintegrasi | Autologging secara otomatis melengkapi jejak untuk kerangka kerja sumber terbuka populer seperti LangChain, LlamaIndex, dan OpenAI. Saat Anda menambahkan mlflow.<library>.autolog() di awal notebook, MLflow secara otomatis merekam jejak untuk setiap langkah eksekusi agen Anda. |
API Fasih | Agen kustom dengan Pyfunc | API kode rendah untuk melengkapi sistem AI tanpa khawatir tentang struktur pohon jejak. MLflow menentukan struktur pohon induk-anak yang sesuai (rentang) berdasarkan tumpukan Python. |
API Klien MLflow | Kasus penggunaan tingkat lanjut seperti multi-utas | MLflowClient menerapkan API yang lebih terperinci dan aman untuk kasus penggunaan tingkat lanjut. API ini tidak mengelola hubungan induk-anak dari rentang, jadi Anda perlu menentukannya secara manual untuk membangun struktur pelacakan yang diinginkan. Ini membutuhkan lebih banyak kode tetapi memberi Anda kontrol yang lebih baik atas siklus hidup jejak, terutama untuk kasus penggunaan multi-utas.Direkomendasikan untuk kasus penggunaan yang memerlukan lebih banyak kontrol, seperti aplikasi multi-utas atau instrumentasi berbasis panggilan balik. |
Meninjau jejak
Setelah menjalankan agen berinstrumen, Anda dapat meninjau jejak yang dihasilkan dengan cara yang berbeda:
- Visualisasi jejak dirender sebaris dalam output sel.
- Jejak dicatat ke eksperimen MLflow Anda. Anda dapat meninjau daftar lengkap jejak historis dan mencarinya di
Traces
tab di halaman Eksperimen. Saat agen berjalan di bawah MLflow Run aktif, Anda juga dapat menemukan jejak di halaman Jalankan. - Ambil jejak secara terprogram menggunakan API search_traces().
Menggunakan Pelacakan MLflow dalam produksi
MLflow Tracing juga terintegrasi dengan Mosaic AI Model Serving, memungkinkan Anda untuk men-debug masalah secara efisien, memantau performa, dan membuat himpunan data emas untuk evaluasi offline. Saat Pelacakan MLflow diaktifkan untuk titik akhir penyajian Anda, jejak direkam dalam tabel inferensi di bawah response
kolom.
Untuk mengaktifkan Pelacakan MLflow untuk titik akhir penyajian, Anda harus mengatur ENABLE_MLFLOW_TRACING
variabel lingkungan dalam konfigurasi titik akhir ke True
. Lihat Menambahkan variabel lingkungan teks biasa untuk cara menyebarkan titik akhir dengan variabel lingkungan kustom. Jika Anda menyebarkan agen menggunakan deploy()
API, jejak secara otomatis dicatat ke tabel inferensi. Lihat Menyebarkan agen untuk aplikasi AI generatif.
Catatan
Menulis jejak ke tabel inferensi dilakukan secara asinkron, sehingga tidak menambahkan overhead yang sama seperti di lingkungan notebook selama pengembangan. Namun, mungkin masih memperkenalkan beberapa overhead ke kecepatan respons titik akhir, terutama ketika ukuran jejak untuk setiap permintaan inferensi besar. Databricks tidak menjamin perjanjian tingkat layanan (SLA) untuk dampak latensi aktual pada titik akhir model Anda, karena sangat tergantung pada lingkungan dan implementasi model. Databricks merekomendasikan pengujian performa titik akhir Anda dan mendapatkan wawasan tentang overhead pelacakan sebelum menyebarkan ke aplikasi produksi.
Tabel berikut memberikan indikasi kasar tentang dampak pada latensi inferensi untuk ukuran jejak yang berbeda.
Ukuran pelacakan per permintaan | Dampak ke latensi (ms) |
---|---|
~10 KB | ~ 1 mdtk |
~ 1 MB | 50 ~ 100 mdtk |
10 MB | 150 ms ~ |
Batasan
Pelacakan MLflow tersedia di notebook Databricks, pekerjaan notebook, dan Model Serving.
Autologging LangChain mungkin tidak mendukung semua API prediksi LangChain. Silakan lihat dokumentasi MLflow untuk daftar lengkap API yang didukung.