AI generatif telah memperkenalkan cara baru untuk membangun dan mengoperasikan aplikasi AI yang berbeda dari AI prediktif. Untuk membangun aplikasi AI generatif, Anda harus memilih dari berbagai arsitektur dan ukuran, menyeleksi data, membuat perintah yang optimal, menyesuaikan model untuk tugas tertentu, dan melandaskan output model pada data dunia nyata.
Dokumen ini menjelaskan cara Anda dapat mengadaptasi proses DevOps dan MLOps untuk mengembangkan, men-deploy, dan mengoperasikan aplikasi AI generatif pada model dasar yang ada. Untuk mengetahui informasi tentang men-deploy AI prediktif, lihat MLOps: Pipeline otomatisasi dan continuous delivery di machine learning.
Apa itu DevOps dan MLOps?
DevOps adalah metodologi engineering software yang menghubungkan pengembangan dan operasi. DevOps mendorong kolaborasi, otomatisasi, dan peningkatan berkelanjutan untuk menyederhanakan siklus proses pengembangan software, menggunakan praktik seperti continuous integration dan continuous delivery (CI/CD).
MLOps dibangun berdasarkan prinsip DevOps untuk mengatasi tantangan dalam membangun dan mengoperasikan sistem machine learning (ML). Sistem machine learning biasanya menggunakan AI prediktif untuk mengidentifikasi pola dan membuat prediksi. Alur kerja MLOps mencakup hal-hal berikut:
- Validasi data
- Pelatihan model
- Evaluasi dan iterasi model
- Deployment dan penayangan model
- Pemantauan model
Apa yang dimaksud dengan model dasar?
Model dasar adalah komponen inti dalam aplikasi AI generatif. Model ini adalah program besar yang menggunakan set data untuk belajar dan mengambil keputusan tanpa intervensi manusia. Model dasar dilatih dengan berbagai jenis data, termasuk teks, gambar, audio, dan video. Model dasar mencakup model bahasa besar (LLM) seperti Llama 3.1 dan model multimodal seperti Gemini.
Tidak seperti model AI prediktif, yang dilatih untuk tugas tertentu pada set data yang terfokus, model dasar dilatih pada set data yang besar dan beragam. Pelatihan ini memungkinkan Anda menggunakan model dasar untuk mengembangkan aplikasi untuk berbagai kasus penggunaan. Model dasar memiliki properti kemunculan (PDF), yang memungkinkan model memberikan respons terhadap input tertentu tanpa pelatihan eksplisit. Karena sifat-sifat emergen ini, model dasar sulit dibuat dan dioperasikan serta mengharuskan Anda menyesuaikan proses DevOps dan MLOps.
Pengembangan model dasar memerlukan resource data yang signifikan, hardware khusus, investasi yang signifikan, dan keahlian khusus. Oleh karena itu, banyak bisnis lebih memilih menggunakan model dasar yang ada untuk menyederhanakan pengembangan dan deployment aplikasi AI generatif mereka.
Siklus proses aplikasi AI generatif
Siklus proses untuk aplikasi AI generatif mencakup fase berikut:
- Penemuan: Developer dan engineer AI mengidentifikasi model dasar yang paling sesuai untuk kasus penggunaan mereka. Mereka mempertimbangkan kelebihan, kelemahan, dan biaya setiap model untuk membuat keputusan yang tepat.
- Pengembangan dan eksperimen: Developer menggunakan teknik perintah untuk membuat dan menyempurnakan perintah input guna mendapatkan output yang diperlukan. Jika tersedia, pembelajaran beberapa contoh, parameter-efficient fine-tuning (PEFT), dan penggabungan model membantu memandu perilaku model. Penggabungan model mengacu pada pengaturan panggilan ke beberapa model dalam urutan tertentu untuk membuat alur kerja.
- Deployment: Developer harus mengelola banyak artefak dalam proses deployment, termasuk template perintah, definisi rantai, model sematan, penyimpanan data pengambilan, dan adaptor model yang di-fine-tune. Artefak ini memiliki persyaratan tata kelola sendiri dan memerlukan pengelolaan yang cermat selama pengembangan dan deployment. Deployment aplikasi AI generatif juga harus memperhitungkan kemampuan teknis infrastruktur target, sehingga memastikan persyaratan hardware aplikasi terpenuhi.
- Pemantauan berkelanjutan dalam produksi: Administrator meningkatkan performa aplikasi dan mempertahankan standar keamanan melalui teknik AI yang bertanggung jawab, seperti memastikan keadilan, transparansi, dan akuntabilitas dalam output model.
- Peningkatan berkelanjutan: Developer terus menyesuaikan model dasar melalui teknik perintah, mengganti model dengan versi yang lebih baru, atau bahkan menggabungkan beberapa model untuk meningkatkan performa, efisiensi biaya, atau mengurangi latensi. Pelatihan berkelanjutan konvensional masih relevan untuk skenario saat penyesuaian berulang atau penggabungan loop masukan manusia diperlukan.
Praktik rekayasa data memiliki peran penting di semua tahap pengembangan. Untuk membuat output yang andal, Anda harus memiliki perujukan faktual (yang memastikan bahwa output model didasarkan pada informasi yang akurat dan terbaru) serta data terbaru dari sistem internal dan perusahaan. Data penyesuaian membantu menyesuaikan model dengan tugas dan gaya tertentu, serta memperbaiki error yang terus berulang.
Menemukan model dasar untuk kasus penggunaan Anda
Karena pembuatan model dasar memerlukan banyak sumber daya, sebagian besar bisnis lebih memilih menggunakan model dasar yang sudah ada dan optimal untuk kasus penggunaan mereka. Menemukan model dasar yang tepat sulit dilakukan karena ada banyak model dasar. Setiap model memiliki arsitektur, ukuran, set data pelatihan, dan lisensi yang berbeda. Selain itu, setiap kasus penggunaan memiliki persyaratan unik, sehingga Anda harus menganalisis model yang tersedia di berbagai dimensi.
Pertimbangkan faktor-faktor berikut saat Anda menilai model:
- Kualitas: Jalankan perintah pengujian untuk mengukur kualitas output.
- Latensi dan throughput: Tentukan latensi dan throughput yang tepat yang diperlukan kasus penggunaan Anda, karena faktor-faktor ini secara langsung memengaruhi pengalaman pengguna. Misalnya, chatbot memerlukan latensi yang lebih rendah daripada tugas peringkasan yang diproses dalam batch.
- Waktu pengembangan dan pemeliharaan: Pertimbangkan investasi waktu untuk pengembangan awal dan pemeliharaan berkelanjutan. Model terkelola sering kali memerlukan lebih sedikit upaya daripada model yang tersedia secara terbuka yang Anda deploy sendiri.
- Biaya penggunaan: Pertimbangkan biaya infrastruktur dan konsumsi yang terkait dengan model.
- Kepatuhan: Menilai kemampuan model untuk mematuhi peraturan dan persyaratan pemberian lisensi yang relevan.
Mengembangkan dan bereksperimen
Saat membangun aplikasi AI generatif, pengembangan dan eksperimen bersifat iteratif dan terkoordinasi. Setiap iterasi eksperimental melibatkan penyempurnaan data, penyesuaian model dasar, dan evaluasi hasil. Evaluasi memberikan masukan yang memandu iterasi berikutnya dalam feedback loop berkelanjutan. Jika performa tidak sesuai dengan ekspektasi, Anda dapat mengumpulkan lebih banyak data, memperkaya data, atau menyusun data lebih lanjut. Selain itu, Anda mungkin perlu mengoptimalkan perintah, menerapkan teknik penyesuaian, atau beralih ke model dasar lain. Siklus penyempurnaan iteratif ini, yang didorong oleh insight evaluasi, sama pentingnya untuk mengoptimalkan aplikasi AI generatif seperti halnya untuk machine learning dan AI prediktif.
Paradigma model dasar
Model dasar berbeda dari model prediktif karena merupakan model multi-tujuan. Model dasar dilatih dengan set data yang luas, bukan dilatih untuk satu tujuan dengan data khusus untuk tugas tersebut, sehingga Anda dapat menerapkan model dasar ke berbagai kasus penggunaan.
Model dasar juga sangat sensitif terhadap perubahan pada inputnya. Output model dan tugas yang dilakukannya ditentukan oleh input ke model. Model dasar dapat menerjemahkan teks, membuat video, atau mengklasifikasikan data hanya dengan mengubah input. Bahkan perubahan kecil pada input dapat memengaruhi kemampuan model untuk melakukan tugas tersebut dengan benar.
Properti model dasar ini memerlukan praktik pengembangan dan operasional yang berbeda. Meskipun model dalam konteks AI prediktif bersifat mandiri dan khusus tugas, model dasar bersifat serbaguna dan memerlukan elemen tambahan di luar input pengguna. Model AI generatif memerlukan perintah, dan lebih khusus lagi, template perintah. Template perintah adalah serangkaian petunjuk dan contoh beserta placeholder untuk mengakomodasi input pengguna. Aplikasi dapat menggabungkan template perintah dan data dinamis (seperti input pengguna) untuk membuat perintah lengkap, yaitu teks yang diteruskan sebagai input ke model dasar.
Komponen model yang diminta
Keberadaan perintah adalah fitur pembeda aplikasi AI generatif. Model dan perintah tidak cukup untuk menghasilkan konten; AI generatif memerlukan keduanya. Kombinasi model dan perintah dikenal sebagai komponen model yang diberi perintah. Komponen model yang diminta adalah komponen independen terkecil yang cukup untuk membuat aplikasi AI generatif. Perintah tidak harus rumit. Misalnya, perintahnya bisa berupa petunjuk sederhana, seperti "terjemahkan kalimat berikut dari bahasa Inggris ke bahasa Prancis", diikuti dengan kalimat yang akan diterjemahkan. Namun, tanpa petunjuk awal tersebut, model dasar tidak akan melakukan tugas terjemahan yang diperlukan. Jadi, perintah, bahkan hanya instruksi dasar, diperlukan bersama dengan input untuk membuat model dasar melakukan tugas yang diperlukan oleh aplikasi.
Komponen model yang dipicu perintah menciptakan perbedaan penting untuk praktik MLOps saat mengembangkan aplikasi AI generatif. Dalam pengembangan aplikasi AI generatif, eksperimen dan iterasi harus dilakukan dalam konteks komponen model yang diminta. Siklus eksperimen AI generatif biasanya dimulai dengan menguji variasi perintah — mengubah kata-kata dalam petunjuk, memberikan konteks tambahan, atau menyertakan contoh yang relevan — dan mengevaluasi dampak perubahan tersebut. Praktik ini biasanya disebut sebagai rekayasa perintah.
Rekayasa perintah melibatkan langkah-langkah iteratif berikut:
- Perintah: Buat dan sempurnakan perintah untuk memunculkan perilaku yang diinginkan dari model dasar untuk kasus penggunaan tertentu.
- Evaluasi: Menilai output model, idealnya secara terprogram, untuk mengukur pemahaman dan keberhasilannya dalam memenuhi petunjuk perintah.
Untuk melacak hasil evaluasi, Anda dapat mendaftarkan hasil eksperimen secara opsional. Karena perintah itu sendiri merupakan elemen inti dari proses rekayasa perintah, perintah tersebut menjadi artefak terpenting dalam artefak yang merupakan bagian dari eksperimen.
Namun, untuk bereksperimen dengan aplikasi AI generatif, Anda harus mengidentifikasi jenis artefak. Dalam AI prediktif, data, pipeline, dan kode berbeda. Namun, dengan paradigma perintah dalam AI generatif, perintah dapat mencakup konteks, petunjuk, contoh, batasan, dan data internal atau eksternal aktual yang diambil dari tempat lain.
Untuk menentukan jenis artefak, Anda harus mengenali bahwa perintah memiliki berbagai komponen dan memerlukan strategi pengelolaan yang berbeda. Pertimbangkan hal berikut:
- Perintah sebagai data: Beberapa bagian perintah berfungsi seperti data. Elemen seperti contoh sedikit tembakan (few-shot), pusat informasi, dan kueri pengguna pada dasarnya adalah titik data. Komponen ini memerlukan praktik MLOps yang berfokus pada data seperti validasi data, deteksi penyimpangan, dan pengelolaan siklus proses.
- Perintah sebagai kode: Komponen lain seperti konteks, template perintah, dan pembatasan mirip dengan kode. Komponen ini menentukan struktur dan aturan perintah itu sendiri dan memerlukan praktik yang lebih berfokus pada kode seperti proses persetujuan, pembuatan versi kode, dan pengujian.
Oleh karena itu, saat menerapkan praktik MLOps ke AI generatif, Anda harus memiliki proses yang memberi developer cara mudah untuk menyimpan, mengambil, melacak, dan mengubah prompt. Proses ini memungkinkan iterasi cepat dan eksperimen berprinsip. Sering kali, satu versi perintah dapat berfungsi dengan baik dengan versi model tertentu dan tidak berfungsi dengan baik dengan versi yang berbeda. Saat melacak hasil eksperimen, Anda harus mencatat perintah, versi komponen, versi model, metrik, dan data output.
Penggabungan dan augmentasi model
Model AI generatif, terutama model bahasa besar (LLM), menghadapi tantangan bawaan dalam mempertahankan keaktualan dan menghindari halusinasi. Mengodekan informasi baru ke dalam LLM memerlukan pra-pelatihan yang mahal dan intensif data sebelum LLM dapat di-deploy. Bergantung pada kasus penggunaan, hanya menggunakan satu model yang diberi perintah untuk melakukan pembuatan tertentu mungkin tidak cukup. Untuk mengatasi masalah ini, Anda dapat menghubungkan beberapa model yang diberi perintah, bersama dengan panggilan ke API eksternal dan logika yang dinyatakan sebagai kode. Urutan komponen model yang diminta dan terhubung bersama dengan cara ini biasanya dikenal sebagai rantai.
Diagram berikut menunjukkan komponen rantai dan proses pengembangan relatif.
Mitigasi untuk keaktualan dan halusinasi
Dua pola berbasis rantai umum yang dapat memitigasi keaktualan dan halusinasi adalah retrieval-augmented generation (RAG) (PDF) dan agen.
- RAG memperluas model yang sudah terlatih dengan pengetahuan yang diambil dari database, sehingga tidak perlu melakukan prapelatihan. RAG memungkinkan perujukan dan mengurangi halusinasi dengan menggabungkan informasi faktual terbaru langsung ke dalam proses pembuatan.
- Agen, yang dipopulerkan oleh teknik perintah ReAct (PDF), menggunakan LLM sebagai perantara yang berinteraksi dengan berbagai alat, termasuk sistem RAG, API internal atau eksternal, ekstensi kustom, atau bahkan agen lain. Agen memungkinkan kueri kompleks dan tindakan real-time dengan memilih dan menggunakan sumber informasi yang relevan secara dinamis. LLM, yang bertindak sebagai agen, menafsirkan kueri pengguna, memutuskan alat yang akan digunakan, dan merumuskan respons berdasarkan informasi yang diambil.
Anda dapat menggunakan RAG dan agen untuk membuat sistem multi-agen yang terhubung ke jaringan informasi besar, sehingga memungkinkan penanganan kueri yang canggih dan pengambilan keputusan secara real-time.
Orkestrasi berbagai model, logika, dan API bukanlah hal baru dalam aplikasi AI generatif. Misalnya, mesin pemberi saran menggabungkan model pemfilteran kolaboratif, model berbasis konten, dan aturan bisnis untuk menghasilkan rekomendasi produk yang dipersonalisasi bagi pengguna. Demikian pula, dalam deteksi penipuan, model machine learning diintegrasikan dengan sistem berbasis aturan dan sumber data eksternal untuk mengidentifikasi aktivitas yang mencurigakan.
Yang membuat rangkaian komponen AI generatif ini berbeda adalah Anda tidak dapat mengkarakterisasi distribusi input komponen sebelumnya, sehingga membuat komponen individual jauh lebih sulit dievaluasi dan dipertahankan secara terpisah. Orkestrasi menyebabkan perubahan paradigma dalam cara Anda mengembangkan aplikasi AI untuk AI generatif.
Dalam AI prediktif, Anda dapat melakukan iterasi pada model dan komponen terpisah secara terpisah, lalu menggabungkannya dalam aplikasi AI. Dalam AI generatif, Anda mengembangkan rantai selama integrasi, melakukan eksperimen pada rantai secara end-to-end, dan melakukan iterasi pada strategi perangkaian, perintah, model dasar, dan API lainnya secara terkoordinasi untuk mencapai tujuan tertentu. Anda sering kali tidak memerlukan rekayasa fitur, pengumpulan data, atau siklus pelatihan model lebih lanjut, cukup perubahan pada kata-kata dalam template perintah.
Pergeseran ke arah MLOps untuk AI generatif, berbeda dengan MLOps untuk AI prediktif, menghasilkan perbedaan berikut:
- Evaluasi: Karena keterikatan rantai yang erat, rantai memerlukan evaluasi end-to-end, bukan hanya untuk setiap komponen, guna mengukur performa keseluruhan dan kualitas outputnya. Dari segi teknik dan metrik evaluasi, mengevaluasi rangkaian mirip dengan mengevaluasi model yang diberi perintah.
- Pembuatan versi: Anda harus mengelola rantai sebagai artefak lengkap secara keseluruhan. Anda harus melacak konfigurasi rantai dengan histori revisinya sendiri untuk analisis, untuk kemampuan reproduksi, dan untuk memahami efek perubahan pada output. Log Anda harus menyertakan input, output, status perantara rantai, dan konfigurasi rantai yang digunakan selama setiap eksekusi.
- Pemantauan berkelanjutan: Untuk mendeteksi penurunan performa, pergeseran data, atau perilaku yang tidak terduga dalam rantai, Anda harus mengonfigurasi sistem pemantauan proaktif. Pemantauan berkelanjutan membantu memastikan identifikasi awal potensi masalah untuk menjaga kualitas output yang dihasilkan.
- Introspeksi: Anda harus memeriksa alur data internal rantai (yaitu, input dan output dari setiap komponen) serta input dan output seluruh rantai. Dengan memberikan visibilitas ke dalam data yang mengalir melalui rantai dan konten yang dihasilkan, developer dapat menentukan sumber kesalahan, bias, atau perilaku yang tidak diinginkan.
Diagram berikut menunjukkan cara kerja rangkaian, komponen model yang dipicu, dan penyesuaian model bersama-sama dalam aplikasi AI generatif untuk mengurangi keaktualan dan halusinasi. Data dikurasi, model di-tuning, dan rantai ditambahkan untuk lebih menyempurnakan respons. Setelah hasilnya dievaluasi, developer dapat mencatat eksperimen dan melanjutkan iterasi.
Fine tuning
Saat Anda mengembangkan kasus penggunaan AI generatif yang melibatkan model dasar, mungkin sulit, terutama untuk tugas yang kompleks, untuk hanya mengandalkan teknik dan penggabungan perintah untuk menyelesaikan kasus penggunaan. Untuk meningkatkan performa tugas, developer sering kali perlu menyesuaikan model secara langsung. Penyesuaian memungkinkan Anda mengubah secara aktif semua lapisan atau subset lapisan (penyesuaian efisien parameter) model untuk mengoptimalkan kemampuannya dalam melakukan tugas tertentu. Cara paling umum untuk menyesuaikan model adalah sebagai berikut:
- Penyesuaian terawasi: Anda melatih model secara terawasi, mengajarkannya untuk memprediksi urutan output yang tepat untuk input tertentu.
- Reinforcement Learning from Human Feedback (RLHF): Anda melatih model reward untuk memprediksi respons yang lebih disukai manusia. Kemudian, Anda menggunakan model penghargaan ini untuk mendorong LLM ke arah yang benar selama proses penyesuaian. Proses ini mirip dengan memiliki panel juri manusia yang memandu pembelajaran model.
Diagram berikut menunjukkan cara penyesuaian membantu menyempurnakan model selama siklus eksperimen.
Dalam MLOps, fine-tuning memiliki kemampuan berikut dengan pelatihan model:
- Kemampuan untuk melacak artefak yang merupakan bagian dari tugas penyesuaian. Misalnya, artefak mencakup data input atau parameter yang digunakan untuk menyesuaikan model.
- Kemampuan untuk mengukur dampak penyesuaian. Dengan kemampuan ini, Anda dapat mengevaluasi model yang disesuaikan untuk tugas tertentu yang dilatih dan membandingkan hasilnya dengan model yang disesuaikan sebelumnya atau model yang dibekukan untuk tugas yang sama.
Pelatihan dan penyesuaian berkelanjutan
Dalam MLOps, pelatihan berkelanjutan adalah praktik melatih ulang model machine learning berulang kali di lingkungan produksi. Pelatihan berkelanjutan membantu memastikan bahwa model tetap aktual dan berperforma baik seiring perubahan pola data dunia nyata dari waktu ke waktu. Untuk model AI generatif, penyesuaian berkelanjutan model sering kali lebih praktis daripada proses pelatihan ulang karena biaya data dan komputasi yang tinggi.
Pendekatan untuk penyesuaian berkelanjutan bergantung pada kasus penggunaan dan tujuan spesifik Anda. Untuk tugas yang relatif statis seperti peringkasan teks, persyaratan penyesuaian berkelanjutan mungkin lebih rendah. Namun, untuk aplikasi dinamis seperti chatbot yang memerlukan penyelarasan manusia yang konstan, penyesuaian yang lebih sering menggunakan teknik seperti RLHF yang didasarkan pada masukan manusia diperlukan.
Untuk menentukan strategi penyesuaian berkelanjutan yang tepat, Anda harus mengevaluasi sifat kasus penggunaan dan cara data input berkembang dari waktu ke waktu. Biaya juga menjadi pertimbangan utama, karena infrastruktur komputasi sangat memengaruhi kecepatan dan biaya penyesuaian. Unit pemrosesan grafis (GPU) dan tensor processing unit (TPU) adalah hardware yang diperlukan untuk penyesuaian. GPU, yang dikenal dengan kemampuan pemrosesan paralelnya, sangat efektif dalam menangani beban kerja yang intensif secara komputasi dan sering dikaitkan dengan pelatihan dan menjalankan model machine learning yang kompleks. Di sisi lain, TPU dirancang khusus oleh Google untuk mempercepat tugas machine learning. TPU unggul dalam menangani operasi matriks besar yang umum dalam jaringan neural deep learning.
Praktik data
Sebelumnya, perilaku model ML ditentukan sepenuhnya oleh data pelatihannya. Meskipun hal ini masih berlaku untuk model dasar, perilaku model untuk aplikasi AI generatif yang dibangun di atas model dasar ditentukan oleh cara Anda mengadaptasi model dengan berbagai jenis data input.
Model dasar dilatih dengan data seperti berikut:
- Kumpulan data pra-pelatihan (misalnya, C4, The Pile, atau data eksklusif)
- Set data penyesuaian instruksi
- Set data penyesuaian keamanan
- Data preferensi manusia
Aplikasi AI generatif diadaptasi berdasarkan data seperti berikut:
- Perintah
- Data yang di-augmentasi atau memiliki rujukan (misalnya, situs, dokumen, PDF, database, atau API)
- Data khusus tugas untuk PEFT
- Evaluasi khusus tugas
- Data preferensi manusia
Perbedaan utama praktik data antara ML prediktif dan AI generatif terletak di awal proses siklus proses. Dalam ML prediktif, Anda menghabiskan banyak waktu untuk rekayasa data, dan jika tidak memiliki data yang tepat, Anda tidak dapat membangun aplikasi. Dalam AI generatif, Anda memulai dengan model dasar, beberapa petunjuk, dan mungkin beberapa contoh input (seperti pembelajaran dalam konteks). Anda dapat membuat prototipe dan meluncurkan aplikasi dengan sangat sedikit data.
Namun, kemudahan pembuatan prototipe disertai dengan tantangan tambahan dalam mengelola beragam data. AI prediktif bergantung pada set data yang terdefinisi dengan baik. Dalam AI generatif, satu aplikasi dapat menggunakan berbagai jenis data, dari sumber data yang sama sekali berbeda, yang semuanya bekerja bersama.
Pertimbangkan jenis data berikut:
- Perintah pengondisian: Instruksi yang diberikan kepada model dasar untuk memandu outputnya dan menetapkan batas-batas yang dapat dihasilkannya.
- Contoh few-shot: Cara untuk menunjukkan kepada model apa yang ingin Anda capai melalui pasangan input-output. Contoh ini membantu model memahami tugas tertentu, dan dalam banyak kasus, contoh ini dapat meningkatkan performa.
- Data perujukan atau augmentasi: Data yang memungkinkan model dasar menghasilkan jawaban untuk konteks tertentu dan menjaga respons tetap terbaru dan relevan tanpa melatih ulang seluruh model dasar. Data ini dapat berasal dari API eksternal (seperti Google Penelusuran) atau API dan sumber data internal.
- Set data khusus tugas: Set data yang membantu menyesuaikan model dasar yang ada untuk tugas tertentu, sehingga meningkatkan performanya di area spesifik tersebut.
- Set data prapelatihan lengkap: Set data besar yang digunakan untuk melatih model dasar pada awalnya. Meskipun developer aplikasi mungkin tidak memiliki akses ke token atau tokenizer, informasi yang dienkode dalam model itu sendiri memengaruhi output dan performa aplikasi.
Berbagai jenis data ini menambah lapisan kompleksitas dalam hal pengorganisasian, pelacakan, dan pengelolaan siklus proses data. Misalnya, aplikasi berbasis RAG dapat menulis ulang kueri pengguna, mengumpulkan contoh yang relevan secara dinamis menggunakan serangkaian contoh yang telah dikurasi, mengkueri database vektor, dan menggabungkan informasi dengan template perintah. Aplikasi berbasis RAG mengharuskan Anda mengelola beberapa jenis data, termasuk kueri pengguna, database vektor dengan contoh beberapa cuplikan yang dikurasi dan informasi perusahaan, serta template perintah.
Setiap jenis data memerlukan pengorganisasian dan pemeliharaan yang cermat. Misalnya, database vektor memerlukan pemrosesan data menjadi penyematan, mengoptimalkan strategi pengelompokan, dan memastikan hanya informasi yang relevan yang tersedia. Template perintah memerlukan pembuatan versi dan pelacakan, dan kueri pengguna perlu ditulis ulang. Praktik terbaik MLOps dan DevOps dapat membantu tugas-tugas ini. Dalam AI prediktif, Anda membuat pipeline data untuk ekstraksi, transformasi, dan pemuatan. Dalam AI generatif, Anda membangun pipeline untuk mengelola, mengembangkan, menyesuaikan, dan mengintegrasikan berbagai jenis data dengan cara yang dapat di-versi, dilacak, dan direproduksi.
Fine-tuning model dasar dapat meningkatkan performa aplikasi AI generatif, tetapi model memerlukan data. Anda bisa mendapatkan data ini dengan meluncurkan aplikasi dan mengumpulkan data dunia nyata, membuat data sintetis, atau campuran keduanya. Penggunaan model besar untuk membuat data sintetis menjadi populer karena metode ini mempercepat proses deployment, tetapi tetap penting bagi manusia untuk memeriksa kualitas hasil. Berikut adalah contoh cara menggunakan model besar untuk tujuan rekayasa data:
- Pembuatan data sintetis: Proses ini melibatkan pembuatan data buatan yang sangat mirip dengan data dunia nyata dalam hal karakteristik dan properti statistiknya. Model yang besar dan mumpuni sering kali menyelesaikan tugas ini. Data sintetis berfungsi sebagai data pelatihan tambahan untuk AI generatif, sehingga AI dapat mempelajari pola dan hubungan meskipun data dunia nyata berlabel langka.
- Koreksi data sintetis: Teknik ini berfokus pada identifikasi dan koreksi error dan inkonsistensi dalam set data berlabel yang ada. Dengan menggunakan kemampuan model yang lebih besar, AI generatif dapat menandai potensi kesalahan pemberian label dan menyarankan koreksi untuk meningkatkan kualitas dan keandalan data pelatihan.
- Pengayaan data sintetis: Pendekatan ini tidak hanya membuat data baru. Augmentasi data sintetis melibatkan manipulasi data yang ada secara cerdas untuk membuat variasi yang beragam sambil mempertahankan fitur dan hubungan penting. AI generatif dapat menghadapi berbagai skenario yang lebih luas daripada AI prediktif selama pelatihan, yang menghasilkan generalisasi yang lebih baik dan kemampuan untuk menghasilkan output yang bernuansa dan relevan.
Tidak seperti AI prediktif, AI generatif sulit dievaluasi. Misalnya, Anda mungkin tidak mengetahui distribusi data pelatihan model dasar. Anda harus membuat set data evaluasi kustom yang mencerminkan semua kasus penggunaan Anda, termasuk kasus penting, rata-rata, dan ekstrem. Mirip dengan data penyesuaian, Anda dapat menggunakan LLM yang canggih untuk membuat, menyeleksi, dan memperkaya data untuk membangun set data evaluasi yang andal.
Evaluasi
Proses evaluasi adalah aktivitas inti dalam pengembangan aplikasi AI generatif. Evaluasi mungkin memiliki tingkat otomatisasi yang berbeda: mulai dari sepenuhnya dilakukan oleh manusia hingga sepenuhnya otomatis oleh suatu proses.
Saat Anda membuat prototipe proyek, evaluasi sering kali merupakan proses manual. Developer meninjau output model, sehingga mendapatkan pemahaman kualitatif tentang performa model. Namun, seiring perkembangan project dan bertambahnya jumlah kasus pengujian, evaluasi manual menjadi hambatan.
Otomatisasi evaluasi memiliki dua manfaat besar: memungkinkan Anda bergerak lebih cepat dan membuat evaluasi lebih andal. Hal ini juga menghilangkan subjektivitas manusia dari persamaan, yang membantu memastikan bahwa hasilnya dapat direproduksi.
Namun, mengotomatiskan evaluasi untuk aplikasi AI generatif memiliki serangkaian tantangan tersendiri. Misalnya, pertimbangkan hal berikut:
- Input (perintah) dan output dapat menjadi sangat kompleks. Satu perintah dapat mencakup beberapa petunjuk dan batasan yang harus dikelola model. Output itu sendiri sering kali berdimensi tinggi seperti gambar yang dihasilkan atau blok teks. Menangkap kualitas output ini dalam metrik sederhana sulit dilakukan. Beberapa metrik yang sudah mapan, seperti BLEU untuk terjemahan dan ROUGE untuk ringkasan, tidak selalu memadai. Oleh karena itu, Anda dapat menggunakan metode evaluasi kustom atau model dasar lain untuk mengevaluasi sistem Anda. Misalnya, Anda dapat meminta model bahasa besar (seperti AutoSxS) untuk menilai kualitas teks yang dihasilkan di berbagai dimensi.
- Banyak metrik evaluasi untuk AI generatif bersifat subjektif. Apa yang membuat satu output lebih baik daripada output lainnya dapat menjadi masalah pendapat. Anda harus memastikan bahwa evaluasi otomatis Anda selaras dengan penilaian manusia karena Anda ingin metrik Anda menjadi proksi yang andal untuk mengetahui apa yang akan dipikirkan orang. Untuk memastikan perbandingan antar-eksperimen, Anda harus menentukan pendekatan evaluasi dan metrik di awal proses pengembangan.
- Kurangnya data kebenaran dasar, terutama pada tahap awal project. Salah satu solusi adalah membuat data sintetis untuk berfungsi sebagai kebenaran dasar sementara yang dapat Anda tingkatkan seiring waktu dengan masukan manusia.
- Evaluasi komprehensif sangat penting untuk mengamankan aplikasi AI generatif dari serangan adversarial. Pelaku kejahatan dapat membuat perintah untuk mencoba mengekstrak informasi sensitif atau memanipulasi output model. Set evaluasi harus secara khusus menangani vektor serangan ini, melalui teknik seperti fuzzing perintah (memberi model variasi perintah acak) dan pengujian kebocoran informasi.
Untuk mengevaluasi aplikasi AI generatif, terapkan hal berikut:
- Otomatiskan proses evaluasi untuk membantu memastikan kecepatan, skalabilitas, dan reproduksibilitas. Anda dapat menganggap otomatisasi sebagai pengganti penilaian manusia.
- Sesuaikan proses evaluasi sesuai kebutuhan untuk kasus penggunaan Anda.
- Untuk memastikan perbandingan, stabilkan pendekatan evaluasi, metrik, dan data kebenaran nyata sedini mungkin dalam fase pengembangan.
- Buat data kebenaran nyata sintetis untuk mengakomodasi kurangnya data kebenaran nyata yang sebenarnya.
- Sertakan kasus pengujian perintah adversarial sebagai bagian dari set evaluasi untuk menguji keandalan sistem itu sendiri terhadap serangan ini.
Deploy
Aplikasi AI generatif tingkat produksi adalah sistem kompleks dengan banyak komponen yang berinteraksi. Untuk men-deploy aplikasi AI generatif ke produksi, Anda harus mengelola dan mengoordinasikan komponen ini dengan tahap pengembangan aplikasi AI generatif sebelumnya. Misalnya, satu aplikasi dapat menggunakan beberapa LLM bersama dengan database, yang semuanya diisi oleh pipeline data dinamis. Setiap komponen ini dapat memerlukan proses deployment-nya sendiri.
Men-deploy aplikasi AI generatif mirip dengan men-deploy sistem software kompleks lainnya karena Anda harus men-deploy komponen sistem seperti database dan aplikasi Python. Sebaiknya gunakan praktik teknik software standar seperti kontrol versi dan CI/CD.
Kontrol versi
Eksperimen AI generatif adalah proses iteratif yang melibatkan siklus pengembangan, evaluasi, dan modifikasi yang berulang. Untuk memastikan pendekatan yang terstruktur dan mudah dikelola, Anda harus menerapkan pembuatan versi yang ketat untuk semua komponen yang dapat dimodifikasi. Komponen ini mencakup:
- Template perintah: Kecuali jika Anda menggunakan solusi pengelolaan perintah tertentu, gunakan alat kontrol versi untuk melacak versi.
- Definisi rantai: Gunakan alat kontrol versi untuk melacak versi kode yang menentukan rantai (termasuk integrasi API, panggilan database, dan fungsi).
- Set data eksternal: Dalam sistem RAG, set data eksternal memainkan peran penting. Gunakan solusi analisis data yang ada seperti BigQuery, AlloyDB for PostgreSQL, dan Vertex AI Feature Store untuk melacak perubahan dan versi set data ini.
- Model adaptor: Teknik seperti penyesuaian LoRA untuk model adaptor terus berkembang. Gunakan solusi penyimpanan data yang sudah mapan (misalnya, Cloud Storage) untuk mengelola dan membuat versi aset ini secara efektif.
Continuous integration
Dalam framework continuous integration, setiap perubahan kode menjalani pengujian otomatis sebelum digabungkan untuk mendeteksi masalah lebih awal. Pengujian unit dan integrasi penting untuk kualitas dan keandalan. Pengujian unit berfokus pada setiap bagian kode, sedangkan pengujian integrasi memverifikasi bahwa berbagai komponen berfungsi bersama-sama.
Menerapkan sistem continuous integration membantu melakukan hal berikut:
- Memastikan output yang andal dan berkualitas tinggi: Pengujian yang ketat meningkatkan keyakinan terhadap performa dan konsistensi sistem.
- Menemukan bug lebih awal: Mengidentifikasi masalah melalui pengujian mencegahnya menyebabkan masalah yang lebih besar di kemudian hari. Menemukan bug sejak awal membuat sistem lebih andal dan tangguh terhadap kasus ekstrem dan input yang tidak terduga.
- Biaya pemeliharaan yang lebih rendah: Kasus pengujian yang didokumentasikan dengan baik menyederhanakan pemecahan masalah dan memungkinkan modifikasi yang lebih lancar di masa mendatang, sehingga mengurangi upaya pemeliharaan secara keseluruhan.
Manfaat ini berlaku untuk aplikasi AI generatif. Terapkan integrasi berkelanjutan ke semua elemen sistem, termasuk template perintah, rangkaian, logika rangkaian, model tersemat, dan sistem pengambilan.
Namun, penerapan continuous integration pada AI generatif menimbulkan tantangan berikut:
- Kesulitan membuat kasus pengujian yang komprehensif: Output AI generatif yang kompleks dan terbuka membuat sulit untuk menentukan dan membuat serangkaian kasus pengujian yang lengkap yang mencakup semua kemungkinan.
- Masalah reproduksibilitas: Mendapatkan hasil yang deterministik dan dapat direproduksi sangat sulit karena model generatif sering kali memiliki keacakan dan variabilitas intrinsik dalam outputnya, bahkan untuk input yang identik. Keacakan ini membuat pengujian perilaku yang diharapkan menjadi lebih sulit dilakukan secara konsisten.
Tantangan ini terkait erat dengan pertanyaan yang lebih luas tentang cara mengevaluasi aplikasi AI generatif. Anda dapat menerapkan banyak teknik evaluasi yang sama untuk pengembangan sistem CI bagi AI generatif.
Continuous delivery
Setelah kode digabungkan, proses continuous delivery dimulai untuk memindahkan kode yang telah di-build dan diuji melalui lingkungan yang sangat mirip dengan produksi untuk pengujian lebih lanjut sebelum deployment akhir.
Seperti yang dijelaskan dalam Mengembangkan dan bereksperimen, elemen rantai menjadi salah satu komponen utama yang perlu di-deploy karena pada dasarnya membentuk aplikasi AI generatif. Proses penayangan untuk aplikasi AI generatif yang berisi rantai ini dapat bervariasi, bergantung pada persyaratan latensi dan apakah kasus penggunaannya adalah batch atau online.
Kasus penggunaan batch mengharuskan Anda men-deploy proses batch yang dijalankan sesuai jadwal dalam produksi. Proses pengiriman berfokus pada pengujian seluruh pipeline dalam integrasi di lingkungan yang mirip dengan produksi sebelum deployment. Sebagai bagian dari proses pengujian, developer dapat menegaskan persyaratan khusus terkait throughput proses batch itu sendiri dan memeriksa apakah semua komponen aplikasi berfungsi dengan benar. (Misalnya, developer dapat memeriksa izin, infrastruktur, dan dependensi kode.)
Kasus penggunaan online mengharuskan Anda men-deploy API, yaitu aplikasi yang berisi rantai dan mampu merespons pengguna dengan latensi rendah. Proses pengiriman Anda melibatkan pengujian API dalam integrasi di lingkungan yang mirip dengan produksi. Pengujian ini memverifikasi bahwa semua komponen aplikasi berfungsi dengan benar. Anda dapat memverifikasi persyaratan non-fungsional (misalnya, skalabilitas, keandalan, dan performa) melalui serangkaian pengujian, termasuk pengujian beban.
Checklist deployment
Daftar berikut menjelaskan langkah-langkah yang harus dilakukan saat Anda men-deploy aplikasi AI generatif menggunakan layanan terkelola seperti Vertex AI:
- Mengonfigurasi kontrol versi: Terapkan praktik kontrol versi untuk deployment model. Kontrol versi memungkinkan Anda melakukan roll back ke versi sebelumnya jika diperlukan dan melacak perubahan yang dilakukan pada model atau konfigurasi deployment.
- Mengoptimalkan model: Lakukan tugas pengoptimalan model (distilasi, kuantisasi, dan pemangkasan) sebelum mengemas atau men-deploy model.
- Buat model dalam container: Kemas model terlatih ke dalam container.
- Tentukan persyaratan hardware target: Pastikan lingkungan deployment target memenuhi persyaratan untuk performa model yang optimal, seperti GPU, TPU, dan akselerator hardware khusus lainnya.
- Tentukan endpoint model: Tentukan penampung model, format input, format output, dan parameter konfigurasi tambahan.
- Alokasikan resource: Alokasikan resource komputasi yang sesuai untuk endpoint berdasarkan perkiraan traffic dan persyaratan performa.
- Konfigurasi kontrol akses: Siapkan mekanisme kontrol akses untuk membatasi akses ke endpoint berdasarkan kebijakan autentikasi dan otorisasi. Kontrol akses membantu memastikan bahwa hanya pengguna atau layanan yang diberi otorisasi yang dapat berinteraksi dengan model yang di-deploy.
- Buat endpoint model: Buat endpoint untuk men-deploy model sebagai layanan REST API. Endpoint memungkinkan klien mengirim permintaan ke endpoint dan menerima respons dari model.
- Konfigurasi pemantauan dan logging: Siapkan sistem pemantauan dan logging untuk melacak performa endpoint, penggunaan resource, dan log error.
- Deploy integrasi kustom: Integrasikan model ke dalam aplikasi atau layanan kustom menggunakan SDK atau API model.
- Men-deploy aplikasi real-time: Buat pipeline streaming yang memproses data dan menghasilkan respons secara real time.
Mencatat dan memantau
Pemantauan aplikasi AI generatif dan komponennya memerlukan teknik yang dapat Anda tambahkan ke teknik pemantauan yang Anda gunakan untuk MLOps konvensional. Anda harus mencatat dan memantau aplikasi Anda secara menyeluruh, yang mencakup pencatatan dan pemantauan input dan output keseluruhan aplikasi Anda serta setiap komponen.
Input ke aplikasi memicu beberapa komponen untuk menghasilkan output. Jika output untuk input tertentu tidak akurat secara faktual, Anda harus menentukan komponen mana yang tidak berfungsi dengan baik. Anda memerlukan silsilah dalam logging untuk semua komponen yang dieksekusi. Anda juga harus memetakan input dan komponen dengan artefak dan parameter tambahan yang menjadi dependensinya sehingga Anda dapat menganalisis input dan output.
Saat menerapkan pemantauan, prioritaskan pemantauan di tingkat aplikasi. Jika pemantauan tingkat aplikasi membuktikan bahwa aplikasi berfungsi dengan baik, hal ini menunjukkan bahwa semua komponen juga berfungsi dengan baik. Setelah itu, terapkan pemantauan pada komponen model yang diminta untuk mendapatkan hasil yang lebih terperinci dan pemahaman yang lebih baik tentang aplikasi Anda.
Seperti pemantauan konvensional di MLOps, Anda harus men-deploy proses pemberitahuan untuk memberi tahu pemilik aplikasi saat penyimpangan, kemiringan, atau penurunan performa terdeteksi. Untuk menyiapkan pemberitahuan, Anda harus mengintegrasikan alat pemberitahuan dan notifikasi ke dalam proses pemantauan.
Bagian berikut menjelaskan kemiringan dan penyimpangan pemantauan serta tugas evaluasi berkelanjutan. Selain itu, pemantauan di MLOps mencakup pemantauan metrik untuk kesehatan sistem secara keseluruhan seperti pemanfaatan resource dan latensi. Metrik efisiensi ini juga berlaku untuk aplikasi AI generatif.
Deteksi diferensiasi performa
Deteksi kemiringan dalam sistem ML konvensional mengacu pada diferensiasi performa pelatihan dan penayangan yang terjadi saat distribusi data fitur dalam produksi menyimpang dari distribusi data fitur yang diamati selama pelatihan model. Untuk aplikasi AI generatif yang menggunakan model terlatih di komponen yang dirangkai bersama untuk menghasilkan output, Anda juga harus mengukur kemiringan. Anda dapat mengukur kemiringan dengan membandingkan distribusi data input yang Anda gunakan untuk mengevaluasi aplikasi dan distribusi input ke aplikasi Anda dalam produksi. Jika kedua distribusi tersebut berbeda, Anda harus menyelidikinya lebih lanjut. Anda juga dapat menerapkan proses yang sama pada data output.
Deteksi penyimpangan
Seperti deteksi diferensiasi performa, deteksi penyimpangan memeriksa perbedaan statistik antara dua set data. Namun, alih-alih membandingkan evaluasi dan input penayangan, penyimpangan mencari perubahan pada data input. Penyimpangan memungkinkan Anda mengevaluasi input dan oleh karena itu, bagaimana perilaku pengguna Anda berubah dari waktu ke waktu.
Mengingat input ke aplikasi biasanya berupa teks, Anda dapat menggunakan berbagai metode untuk mengukur kemiringan dan penyimpangan. Secara umum, metode ini mencoba mengidentifikasi perubahan signifikan dalam data produksi, baik tekstual (seperti ukuran input) maupun konseptual (seperti topik dalam input), jika dibandingkan dengan set data evaluasi. Semua metode ini mencari perubahan yang dapat menunjukkan bahwa aplikasi mungkin tidak siap untuk menangani sifat data baru yang kini masuk dengan berhasil. Beberapa metode umum meliputi:
- Menghitung embedding dan jarak
- Menghitung panjang teks dan jumlah token
- Melacak perubahan kosakata, konsep dan intent baru, perintah dan topik dalam set data
- Menggunakan pendekatan statistik seperti perbedaan kepadatan kuadrat terkecil (PDF), perbedaan rata-rata maksimum (MMD), MMD kernel yang dipelajari (PDF), atau MMD yang sadar konteks.
Karena kasus penggunaan AI generatif sangat beragam, Anda mungkin memerlukan metrik kustom tambahan yang lebih baik dalam menangkap perubahan tak terduga dalam data Anda.
Evaluasi berkelanjutan
Evaluasi berkelanjutan adalah pendekatan umum lainnya untuk pemantauan aplikasi AI generatif. Dalam sistem evaluasi berkelanjutan, Anda merekam output produksi model dan menjalankan tugas evaluasi menggunakan output tersebut untuk memantau performa model dari waktu ke waktu. Anda dapat mengumpulkan masukan langsung dari pengguna, seperti rating, yang memberikan insight langsung tentang kualitas output yang dirasakan. Secara paralel, membandingkan respons yang dihasilkan model dengan kebenaran nyata yang telah ditetapkan memungkinkan analisis performa yang lebih mendalam. Anda dapat mengumpulkan kebenaran nyata melalui penilaian manusia atau sebagai hasil dari pendekatan model AI ansambel untuk membuat metrik evaluasi. Proses ini memberikan gambaran tentang perubahan metrik evaluasi Anda sejak Anda mengembangkan model hingga model yang Anda miliki dalam produksi saat ini.
Tata kelola
Dalam konteks MLOps, tata kelola mencakup semua praktik dan kebijakan yang menetapkan kontrol, akuntabilitas, dan transparansi atas pengembangan, deployment, dan pengelolaan berkelanjutan model machine learning, termasuk semua aktivitas yang terkait dengan siklus proses kode, data, dan model.
Dalam aplikasi AI prediktif, silsilah berfokus pada pelacakan dan pemahaman perjalanan lengkap model machine learning. Dalam AI generatif, silsilah tidak hanya mencakup artefak model, tetapi juga semua komponen dalam rantai. Pelacakan mencakup data, model, silsilah model, kode, dan data evaluasi relatif serta metrik. Pelacakan silsilah dapat membantu Anda mengaudit, men-debug, dan meningkatkan kualitas model.
Selain praktik baru ini, Anda dapat mengatur siklus proses data dan siklus proses komponen AI generatif menggunakan praktik MLOps dan DevOps standar.
Langkah berikutnya
Men-deploy aplikasi AI generatif menggunakan Vertex AI
Penulis: Anant Nawalgaria, Christos Aniftos, Elia Secchi, Gabriela Hernandez Larios, Mike Styer, dan Onofrio Petragallo