This template can be used for both Azure AI Studio and Azure Machine Learning.
It can be used for both AZURE and LOCAL execution.
It supports all types of flow - python Class flows, Function flows and YAML flows.
It supports Github, Azure DevOps and Jenkins CI/CD orchestration.
It supports pure python based Evaluation as well using promptflow-evals package.
It should be used for INNER-LOOP Experimentation and Evaluation.
It should be used for OUTER-LOOP Deployment and Inferencing.
NOTE: A new FAQ section is added to help Engineers, Data Scientist and developers find answers to general questions on configuring and using this template.
FAQ DI SINI
Operasi Model Bahasa Besar, atau LLMOps, telah menjadi landasan rekayasa cepat yang efisien serta pengembangan dan penerapan aplikasi yang dipicu oleh LLM. Karena permintaan akan aplikasi yang dipicu LLM terus melonjak, organisasi memerlukan proses yang kohesif dan efisien untuk mengelola siklus hidup end-to-end mereka.
Munculnya AI dan model bahasa besar (LLM) telah mengubah berbagai industri, memungkinkan pengembangan aplikasi inovatif dengan kemampuan pemahaman dan pembuatan teks seperti manusia. Revolusi ini telah membuka kemungkinan-kemungkinan baru di berbagai bidang seperti layanan pelanggan, pembuatan konten, dan analisis data.
Ketika LLM berkembang pesat, pentingnya Rekayasa Cepat menjadi semakin jelas. Rekayasa Cepat memainkan peran penting dalam memanfaatkan potensi penuh LLM dengan menciptakan petunjuk efektif yang memenuhi skenario bisnis tertentu. Proses ini memungkinkan pengembang untuk menciptakan solusi AI yang disesuaikan, menjadikan AI lebih mudah diakses dan berguna bagi khalayak yang lebih luas.
Ini adalah kerangka eksperimen dan evaluasi untuk Prompt Flow. Ini bukan pipeline CI/CD untuk Prompt Flow, meskipun mendukungnya. Ini memiliki serangkaian fitur yang kaya untuk eksperimen, evaluasi, penerapan dan pemantauan Prompt Flow. Ini adalah solusi end-to-end yang lengkap untuk operasionalisasi Prompt Flow.
Templat ini mendukung Azure AI Studio serta Azure Machine Learning. Bergantung pada konfigurasinya, templat dapat digunakan untuk Azure AI Studio dan Azure Machine Learning. Ini memberikan pengalaman migrasi yang lancar untuk eksperimen, evaluasi, dan penerapan Prompt Flow di seluruh layanan.
Templat ini mendukung berbagai jenis alur, memungkinkan Anda menentukan dan menjalankan alur kerja berdasarkan kebutuhan spesifik Anda. Dua jenis aliran utama yang didukung adalah:
Arus Fleksibel
Aliran Grafik Asiklik Terarah (DAG).
Salah satu fitur canggih dari proyek ini adalah kemampuannya untuk secara otomatis mendeteksi jenis aliran dan menjalankan aliran yang sesuai. Hal ini memungkinkan Anda bereksperimen dengan berbagai jenis aliran dan memilih salah satu yang paling sesuai dengan kebutuhan Anda.
Templat ini mendukung:
Mengelola alur berbasis Bahasa Besar, mulai dari eksperimen lokal hingga penerapan produksi, bukanlah tugas yang mudah dan bukan merupakan tugas yang bisa dilakukan untuk semua orang.
Setiap aliran memiliki siklus hidup yang unik, mulai dari eksperimen awal hingga penerapan, dan setiap tahap menghadirkan serangkaian tantangannya sendiri.
Organisasi sering kali menangani berbagai aliran secara bersamaan, masing-masing memiliki tujuan, persyaratan, dan kompleksitasnya sendiri. Hal ini dapat dengan cepat menjadi sangat membebani tanpa alat manajemen yang tepat.
Hal ini melibatkan penanganan berbagai aliran, siklus hidupnya yang unik, eksperimen dengan berbagai konfigurasi, dan memastikan penerapan yang lancar.
Di situlah LLMOps dengan aliran Prompt masuk. LLMOps dengan aliran Prompt adalah "template dan panduan LLMOps" untuk membantu Anda membangun aplikasi yang dilengkapi LLM menggunakan aliran Prompt. Ini menyediakan fitur-fitur berikut:
Hosting Kode Terpusat: Repo ini mendukung kode hosting untuk beberapa aliran berdasarkan aliran cepat, menyediakan satu repositori untuk semua aliran Anda. Bayangkan platform ini sebagai repositori tunggal tempat semua kode aliran cepat Anda berada. Ini seperti perpustakaan untuk alur Anda, membuatnya mudah untuk menemukan, mengakses, dan berkolaborasi dalam berbagai proyek.
Manajemen Siklus Hidup: Setiap aliran menikmati siklus hidupnya sendiri, memungkinkan transisi yang mulus dari eksperimen lokal ke penerapan produksi.
Eksperimen Varian dan Hyperparameter: Bereksperimenlah dengan beberapa varian dan hyperparameter, evaluasi varian aliran dengan mudah. Varian dan hyperparameter ibarat bahan dalam resep. Platform ini memungkinkan Anda bereksperimen dengan berbagai kombinasi varian di beberapa node dalam satu alur.
Penerapan A/B: Menerapkan penerapan A/B dengan lancar, memungkinkan Anda membandingkan versi aliran yang berbeda dengan mudah. Sama seperti pengujian A/B tradisional untuk situs web, platform ini memfasilitasi penerapan A/B untuk aliran cepat. Artinya, Anda dapat dengan mudah membandingkan berbagai versi aliran di lingkungan dunia nyata untuk menentukan mana yang memiliki kinerja terbaik.
Hubungan kumpulan data/aliran banyak-ke-banyak: Mengakomodasi beberapa kumpulan data untuk setiap alur standar dan evaluasi, memastikan keserbagunaan dalam pengujian dan evaluasi alur. Platform ini dirancang untuk mengakomodasi beberapa kumpulan data untuk setiap aliran.
Beberapa Target Penerapan: Repo mendukung penerapan alur ke Kubernetes dan komputasi Terkelola Azure yang didorong melalui konfigurasi untuk memastikan bahwa alur Anda dapat diskalakan sesuai kebutuhan.
Pelaporan Komprehensif: Hasilkan laporan terperinci untuk setiap konfigurasi varian, memungkinkan Anda mengambil keputusan yang tepat. Menyediakan pengumpulan metrik terperinci untuk semua varian dan eksperimen yang dijalankan secara massal, memungkinkan keputusan berdasarkan data dalam file csv dan HTML.
Menawarkan BYOF (bawa arus Anda sendiri). Sebuah platform lengkap untuk mengembangkan beberapa kasus penggunaan yang terkait dengan aplikasi yang dilengkapi LLM.
Menawarkan pengembangan berbasis konfigurasi . Tidak perlu menulis kode boiler-plate yang ekstensif.
Menyediakan eksekusi eksperimen dan evaluasi cepat secara lokal dan juga di cloud.
Menyediakan buku catatan untuk evaluasi lokal atas petunjuknya. Menyediakan perpustakaan fungsi untuk eksperimen lokal.
Pengujian titik akhir dalam saluran setelah penerapan untuk memeriksa ketersediaan dan kesiapannya.
Menyediakan Human-in-loop opsional untuk memvalidasi metrik cepat sebelum penerapan.
LLMOps dengan aliran Prompt memberikan kemampuan untuk aplikasi yang dilengkapi LLM sederhana maupun kompleks. Ini sepenuhnya dapat disesuaikan dengan kebutuhan aplikasi.
Setiap kasus penggunaan (kumpulan standar aliran Prompt dan aliran evaluasi) harus mengikuti struktur folder seperti yang ditunjukkan di sini:
Selain itu, ada file experiment.yaml
yang mengonfigurasi kasus penggunaan (lihat deskripsi dan spesifikasi file untuk detail selengkapnya). Ada juga file sample-request.json yang berisi data pengujian untuk titik akhir pengujian setelah penerapan.
Folder '.azure-pipelines' berisi alur umum Azure DevOps untuk platform dan perubahan apa pun pada alur tersebut akan memengaruhi eksekusi semua alur.
Folder '.github' berisi alur kerja Github untuk platform serta kasus penggunaan. Ini sedikit berbeda dari Azure DevOps karena semua alur kerja Github harus berada dalam satu folder ini untuk dieksekusi.
Folder '.jenkins' berisi alur deklaratif Jenkins untuk platform serta kasus penggunaan dan pekerjaan individual.
Folder 'dokumen' berisi dokumentasi panduan langkah demi langkah untuk konfigurasi terkait Azure DevOps, Alur Kerja Github, dan Jenkins.
Folder 'llmops' berisi semua kode yang terkait dengan eksekusi aliran, evaluasi, dan penerapan.
Folder 'dataops' berisi semua kode yang terkait dengan penerapan saluran data.
Folder 'local_execution' berisi skrip python untuk menjalankan alur standar dan evaluasi secara lokal.
Proyek ini mencakup 6 contoh yang menunjukkan skenario berbeda:
Lokasi: ./web_classification Pentingnya: Mendemonstrasikan ringkasan konten situs web dengan berbagai varian, menampilkan fleksibilitas dan opsi penyesuaian yang tersedia di template.
Lokasi: ./named_entity_recognition Pentingnya: Menampilkan ekstraksi entitas bernama dari teks, yang berguna untuk berbagai tugas pemrosesan bahasa alami dan ekstraksi informasi.
Lokasi: ./math_coding Pentingnya: Menampilkan kemampuan untuk melakukan penghitungan matematis dan menghasilkan cuplikan kode, menyoroti keserbagunaan templat dalam menangani tugas komputasi.
Lokasi: ./chat_with_pdf Pentingnya: Menunjukkan antarmuka percakapan untuk berinteraksi dengan dokumen PDF, memanfaatkan kekuatan retrieval-augmented generation (RAG) untuk memberikan respons yang akurat dan relevan.
Lokasi: ./function_flows Pentingnya: Mendemonstrasikan pembuatan cuplikan kode berdasarkan permintaan pengguna, menunjukkan potensi untuk mengotomatiskan tugas pembuatan kode.
Lokasi: ./class_flows Pentingnya: Menampilkan aplikasi obrolan yang dibuat menggunakan alur berbasis kelas, yang menggambarkan penataan dan pengorganisasian antarmuka percakapan yang lebih kompleks.
Repo ini membantu penerapan ke Kubernetes, Kubernetes ARC, Azure Web Apps, dan komputasi Terkelola AzureML bersama dengan penerapan A/B untuk komputasi Terkelola AzureML.
Eksekusi pipeline terdiri dari beberapa tahapan dan pekerjaan di setiap tahap:
Repo menghasilkan beberapa laporan (contoh percobaan dan metrik ditampilkan):
Untuk memanfaatkan kemampuan eksekusi lokal , ikuti langkah-langkah instalasi berikut:
git clone https://github.com/microsoft/llmops-promptflow-template.git
aoai
. Tambahkan baris aoai={"api_key": "","api_base": "","api_type": "azure","api_version": "2023-03-15-preview"}
dengan nilai yang diperbarui untuk api_key dan api_base. Jika koneksi tambahan dengan nama berbeda digunakan dalam alur Anda, koneksi tersebut harus ditambahkan sesuai dengan itu. Saat ini, aliran dengan AzureOpenAI sebagai penyedia yang didukung. experiment_name=
connection_name_1={ " api_key " : " " , " api_base " : " " , " api_type " : " azure " , " api_version " : " 2023-03-15-preview " }
connection_name_2={ " api_key " : " " , " api_base " : " " , " api_type " : " azure " , " api_version " : " 2023-03-15-preview " }
python -m pip install promptflow promptflow-tools promptflow-sdk jinja2 promptflow[azure] openai promptflow-sdk[builtins] python-dotenv
Bawa atau tulis alur Anda ke dalam templat berdasarkan dokumentasi di sini.
Tulis skrip python mirip dengan contoh yang diberikan di folder local_execution.
DataOps menggabungkan aspek DevOps, metodologi tangkas, dan praktik manajemen data untuk menyederhanakan proses pengumpulan, pemrosesan, dan analisis data. DataOps dapat membantu menerapkan disiplin dalam membangun kumpulan data (pelatihan, eksperimen, evaluasi, dll.) yang diperlukan untuk pengembangan aplikasi LLM.
Alur data disimpan terpisah dari alur rekayasa cepat. Alur data membuat himpunan data dan himpunan data tersebut didaftarkan sebagai aset data di Azure ML untuk digunakan alurnya. Pendekatan ini membantu mengukur dan memecahkan masalah secara independen di berbagai bagian sistem.
Untuk detail tentang cara memulai DataOps, ikuti dokumen ini - Cara Mengonfigurasi DataOps.
Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda berhak, dan memang benar, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.opensource.microsoft.com.
Saat Anda mengirimkan permintaan tarik, bot CLA akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghiasi PR dengan tepat (misalnya, pemeriksaan status, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di seluruh repo menggunakan CLA kami.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi lebih lanjut lihat FAQ Pedoman Perilaku atau hubungi [email protected] jika ada pertanyaan atau komentar tambahan.
Proyek ini mungkin berisi merek dagang atau logo untuk proyek, produk, atau layanan. Penggunaan resmi atas merek dagang atau logo Microsoft tunduk dan harus mengikuti Pedoman Merek Dagang & Merek Microsoft. Penggunaan merek dagang atau logo Microsoft dalam versi modifikasi proyek ini tidak boleh menimbulkan kebingungan atau menyiratkan sponsor Microsoft. Segala penggunaan merek dagang atau logo pihak ketiga tunduk pada kebijakan pihak ketiga tersebut.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi lebih lanjut lihat FAQ Pedoman Perilaku atau hubungi [email protected] jika ada pertanyaan atau komentar tambahan.
Hak Cipta (c) Microsoft Corporation. Semua hak dilindungi undang-undang.
Berlisensi di bawah lisensi MIT.