AI generatif telah memperkenalkan cara baru untuk membuat dan mengoperasikan aplikasi AI yang berbeda dari AI prediktif. Untuk membuat aplikasi AI generatif, Anda harus memilih dari berbagai arsitektur dan ukuran, menyeleksi data, membuat perintah yang optimal, menyesuaikan model untuk tugas tertentu, dan mendasarkan output model pada data dunia nyata.
Dokumen ini menjelaskan cara menyesuaikan proses DevOps dan MLOps untuk mengembangkan, men-deploy, dan mengoperasikan aplikasi AI generatif pada model dasar yang ada. Untuk mengetahui informasi tentang cara men-deploy AI prediktif, lihat MLOps: Pipeline otomatisasi dan continuous delivery di machine learning.
Apa yang dimaksud dengan 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 dibuat 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 meliputi 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 membuat 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 multi-modal seperti Gemini.
Tidak seperti model AI prediktif, yang dilatih untuk tugas tertentu pada set data yang terfokus, model dasar dilatih pada set data yang masif dan beragam. Dengan pelatihan ini, Anda dapat menggunakan model dasar untuk mengembangkan aplikasi untuk banyak kasus penggunaan yang berbeda. Model dasar memiliki properti yang muncul (PDF), yang memungkinkannya memberikan respons ke input tertentu tanpa pelatihan eksplisit. Karena properti yang muncul ini, model dasar sulit dibuat dan dioperasikan serta mengharuskan Anda menyesuaikan proses DevOps dan MLOps.
Mengembangkan model dasar memerlukan resource data yang signifikan, hardware khusus, investasi yang signifikan, dan keahlian khusus. Oleh karena itu, banyak bisnis lebih memilih untuk 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 cocok untuk kasus penggunaan mereka. Mereka mempertimbangkan kelebihan, kelemahan, dan biaya setiap model untuk membuat keputusan yang tepat.
- Pengembangan dan eksperimen: Developer menggunakan rekayasa perintah untuk membuat dan meningkatkan kualitas perintah input guna mendapatkan output yang diperlukan. Jika tersedia, pembelajaran dengan sedikit contoh, penyesuaian halus (PEFT) yang efisien parameter, dan penyambungan model akan membantu memandu perilaku model. Rantai 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 tersemat, penyimpanan data pengambilan, dan adaptor model yang disesuaikan. Artefak ini memiliki persyaratan tata kelolanya sendiri dan memerlukan pengelolaan yang cermat selama pengembangan dan deployment. Deployment aplikasi AI generatif juga harus mempertimbangkan 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, menukar 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 engineering data memiliki peran penting di semua tahap pengembangan. Untuk membuat output yang andal, Anda harus memiliki dasar faktual (yang memastikan bahwa output model didasarkan pada informasi yang akurat dan terbaru) dan data terbaru dari sistem internal dan perusahaan. Menyesuaikan data membantu menyesuaikan model dengan tugas dan gaya tertentu, serta memperbaiki error yang persisten.
Menemukan model dasar untuk kasus penggunaan Anda
Karena pembuatan model dasar memerlukan banyak resource, sebagian besar bisnis lebih memilih menggunakan model dasar yang ada dan optimal untuk kasus penggunaan mereka. Menemukan model dasar yang tepat sulit 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, yang mengharuskan Anda menganalisis model yang tersedia di beberapa 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 ini secara langsung memengaruhi pengalaman pengguna. Misalnya, chatbot memerlukan latensi yang lebih rendah daripada tugas ringkasan yang diproses secara 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 mem-build aplikasi AI generatif, pengembangan dan eksperimen bersifat iteratif dan terkoordinasi. Setiap iterasi eksperimental melibatkan penyempurnaan data, menyesuaikan model dasar, dan mengevaluasi hasil. Evaluasi memberikan masukan yang memandu iterasi berikutnya dalam lingkaran masukan berkelanjutan. Jika performa tidak sesuai dengan ekspektasi, Anda dapat mengumpulkan lebih banyak data, menambah data, atau menyeleksi data lebih lanjut. Selain itu, Anda mungkin perlu mengoptimalkan perintah, menerapkan teknik penyesuaian, atau beralih ke model fondasi lain. Siklus peningkatan 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 dengan model prediktif karena merupakan model multifungsi. Alih-alih dilatih untuk satu tujuan pada data yang spesifik untuk tugas tersebut, model dasar dilatih pada set data yang luas, yang memungkinkan Anda menerapkan model dasar ke berbagai kasus penggunaan.
Model dasar juga sangat sensitif terhadap perubahan 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 yang tidak signifikan 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 multifungsi dan memerlukan elemen tambahan di luar input pengguna. Model AI generatif memerlukan prompt, dan lebih khusus lagi, template prompt. Template perintah adalah kumpulan 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
Kehadiran perintah adalah fitur pembeda dari aplikasi AI generatif. Model dan perintah tidak memadai untuk pembuatan konten; AI generatif memerlukan keduanya. Kombinasi model dan perintah dikenal sebagai komponen model yang diminta. Komponen model yang diminta adalah komponen independen terkecil yang memadai untuk membuat aplikasi AI generatif. Perintah tidak perlu rumit. Misalnya, perintah ini dapat 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 petunjuk dasar, diperlukan bersama input untuk membuat model dasar melakukan tugas yang diperlukan oleh aplikasi.
Komponen model yang diminta membuat 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 petunjuk, memberikan konteks tambahan, atau menyertakan contoh yang relevan — dan mengevaluasi dampak perubahan tersebut. Praktik ini biasanya disebut sebagai rekayasa perintah.
Engineering perintah melibatkan langkah-langkah iteratif berikut:
- Perintah: Buat dan perbaiki 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 adalah elemen inti dari proses rekayasa perintah, perintah 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, pembatasan, dan data internal atau eksternal sebenarnya yang diambil dari tempat lain.
Untuk menentukan jenis artefak, Anda harus menyadari bahwa perintah memiliki komponen yang berbeda dan memerlukan strategi pengelolaan yang berbeda. Pertimbangkan hal berikut:
- Perintah sebagai data: Beberapa bagian perintah berfungsi seperti data. Elemen seperti contoh singkat, 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 serupa dengan kode. Komponen ini menentukan struktur dan aturan perintah itu sendiri dan memerlukan lebih banyak praktik yang berfokus pada kode seperti proses persetujuan, pembuatan versi kode, dan pengujian.
Akibatnya, saat menerapkan praktik MLOps ke AI generatif, Anda harus memiliki proses yang memberi developer cara mudah untuk menyimpan, mengambil, melacak, dan mengubah perintah. Proses ini memungkinkan iterasi yang cepat dan eksperimen berdasarkan prinsip. 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.
Rantai dan augmentasi model
Model AI generatif, terutama model bahasa besar (LLM), menghadapi tantangan bawaan dalam mempertahankan keaktualan dan menghindari halusinasi. Mengekode informasi baru ke dalam LLM memerlukan pra-pelatihan yang mahal dan intensif data sebelum dapat di-deploy. Bergantung pada kasus penggunaan, hanya menggunakan satu model yang diminta untuk melakukan pembuatan tertentu mungkin tidak memadai. Untuk mengatasi masalah ini, Anda dapat menghubungkan beberapa model yang diminta secara bersamaan, beserta panggilan ke API eksternal dan logika yang dinyatakan sebagai kode. Urutan komponen model yang diminta yang 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 mengurangi keaktualan dan halusinasi adalah retrieval-augmented generation (RAG) (PDF) dan agen.
- RAG meningkatkan model terlatih dengan pengetahuan yang diambil dari database, yang menghilangkan kebutuhan akan prapelatihan. RAG memungkinkan dasar dan mengurangi halusinasi dengan menggabungkan informasi faktual terbaru langsung ke dalam proses pembuatan.
- Agen, yang dipopulerkan oleh teknik perintah ReAct (PDF), menggunakan LLM sebagai mediator 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.
Pengaturan berbagai model, logika, dan API bukanlah hal baru untuk aplikasi AI generatif. Misalnya, mesin rekomendasi 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 terintegrasi dengan sistem berbasis aturan dan sumber data eksternal untuk mengidentifikasi aktivitas yang mencurigakan.
Yang membuat rantai komponen AI generatif ini berbeda adalah Anda tidak dapat menguraikan distribusi input komponen sebelumnya, yang membuat setiap komponen jauh lebih sulit dievaluasi dan dikelola secara terpisah. Orkestrasi menyebabkan pergeseran 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 merantainya dalam aplikasi AI. Dalam AI generatif, Anda mengembangkan rantai selama integrasi, melakukan eksperimen pada rantai secara menyeluruh, dan melakukan iterasi strategi rantai, perintah, model dasar, dan API lainnya secara terkoordinasi untuk mencapai sasaran tertentu. Anda sering kali tidak memerlukan rekayasa fitur, pengumpulan data, atau siklus pelatihan model lebih lanjut; cukup ubah kata-kata template perintah.
Pergeseran ke MLOps untuk AI generatif, berbeda dengan MLOps untuk AI prediktif, menghasilkan perbedaan berikut:
- Evaluasi: Karena pengaitan rantai yang erat, rantai memerlukan evaluasi menyeluruh, bukan hanya untuk setiap komponen, untuk mengukur performa keseluruhan dan kualitas outputnya. Dalam hal teknik dan metrik evaluasi, mengevaluasi rantai mirip dengan mengevaluasi model yang diminta.
- Pembuatan versi: Anda harus mengelola rantai sebagai artefak lengkap secara keseluruhan. Anda harus melacak konfigurasi rantai dengan histori revisinya sendiri untuk analisis, reproduksi, dan untuk memahami efek perubahan pada output. Log Anda harus menyertakan input, output, status perantara rantai, dan konfigurasi rantai apa pun yang digunakan selama setiap eksekusi.
- Pemantauan berkelanjutan: Untuk mendeteksi penurunan performa, penyimpangan data, atau perilaku yang tidak terduga dalam rantai, Anda harus mengonfigurasi sistem pemantauan proaktif. Pemantauan berkelanjutan membantu memastikan identifikasi awal potensi masalah untuk mempertahankan kualitas output yang dihasilkan.
- Introspeksi: Anda harus memeriksa alur data internal rantai (yaitu input dan output dari setiap komponen) serta input dan output dari seluruh rantai. Dengan memberikan visibilitas ke data yang mengalir melalui rantai dan konten yang dihasilkan, developer dapat menentukan sumber error, bias, atau perilaku yang tidak diinginkan.
Diagram berikut menunjukkan cara rantai, komponen model yang diminta, dan penyesuaian model bekerja sama dalam aplikasi AI generatif untuk mengurangi keaktualan dan halusinasi. Data diseleksi, model disesuaikan, dan rantai ditambahkan untuk meningkatkan kualitas respons lebih lanjut. Setelah hasil dievaluasi, developer dapat mencatat eksperimen dan terus melakukan iterasi.
Fine tuning
Saat Anda mengembangkan kasus penggunaan AI generatif yang melibatkan model dasar, akan sulit, terutama untuk tugas yang kompleks, untuk hanya mengandalkan prompt engineering dan chaining untuk menyelesaikan kasus penggunaan. Untuk meningkatkan performa tugas, developer sering kali perlu menyesuaikan model secara langsung. Dengan penyesuaian, Anda dapat secara aktif mengubah semua lapisan atau sebagian lapisan (penyesuaian parameter yang efisien) model untuk mengoptimalkan kemampuannya dalam melakukan tugas tertentu. Cara paling umum untuk menyesuaikan model adalah sebagai berikut:
- Penyesuaian terperinci yang diawasi: Anda melatih model dengan cara yang diawasi, mengajarinya 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 reward 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 meningkatkan kualitas model selama siklus eksperimen.
Dalam MLOps, penyesuaian memiliki kemampuan berikut yang sama 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. Kemampuan ini memungkinkan Anda mengevaluasi model yang disesuaikan untuk tugas tertentu yang dilatih dan untuk membandingkan hasil dengan model yang disesuaikan sebelumnya atau model beku untuk tugas yang sama.
Pelatihan dan penyesuaian berkelanjutan
Dalam MLOps, pelatihan berkelanjutan adalah praktik pelatihan ulang model machine learning berulang kali di lingkungan produksi. Pelatihan berkelanjutan membantu memastikan bahwa model tetap terbaru dan berperforma baik saat pola data dunia nyata berubah dari waktu ke waktu. Untuk model AI generatif, penyesuaian berkelanjutan terhadap 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 sasaran spesifik Anda. Untuk tugas yang relatif statis seperti ringkasan teks, persyaratan penyesuaian berkelanjutan mungkin lebih rendah. Namun, untuk aplikasi dinamis seperti chatbot yang memerlukan penyesuaian 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 bagaimana 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 daya pemrosesan paralelnya, sangat efektif dalam menangani beban kerja komputasi yang intensif 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 di deep learning neural network.
Praktik data
Sebelumnya, perilaku model ML hanya ditentukan oleh data pelatihannya. Meskipun hal ini masih berlaku untuk model dasar, perilaku model untuk aplikasi AI generatif yang dibuat di atas model dasar ditentukan oleh cara Anda menyesuaikan model dengan berbagai jenis data input.
Model dasar dilatih dengan data seperti berikut:
- Set data prapelatihan (misalnya, C4, The Pile, atau data eksklusif)
- Set data penyesuaian instruksi
- Set data penyesuaian keamanan
- Data preferensi manusia
Aplikasi AI generatif disesuaikan dengan data seperti berikut:
- Perintah
- Data yang ditambahkan atau divalidasi (misalnya, situs, dokumen, PDF, database, atau API)
- Data khusus tugas untuk PEFT
- Evaluasi khusus tugas
- Data preferensi manusia
Perbedaan utama untuk praktik data antara ML prediktif dan AI generatif adalah di awal proses siklus proses. Dalam ML prediktif, Anda menghabiskan banyak waktu untuk engineering data, dan jika tidak memiliki data yang tepat, Anda tidak dapat mem-build 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 data yang beragam. AI prediktif mengandalkan 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 sama.
Pertimbangkan jenis data berikut:
- Prompt pengondisian: Petunjuk yang diberikan ke model dasar untuk memandu outputnya dan menetapkan batasan apa 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 dasar atau augmentasi: Data yang memungkinkan model dasar menghasilkan jawaban untuk konteks tertentu dan membuat respons tetap aktual 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 meningkatkan kualitas model dasar yang ada untuk tugas tertentu, sehingga meningkatkan performanya di area tertentu tersebut.
- Set data prapelatihan lengkap: Set data besar yang digunakan untuk melatih model dasar pada awalnya. Meskipun developer aplikasi mungkin tidak memiliki akses ke model atau tokenizer, informasi yang dienkode dalam model itu sendiri memengaruhi output dan performa aplikasi.
Berbagai jenis data ini menambah lapisan kompleksitas dalam hal pengelolaan siklus proses, pelacakan, dan organisasi data. Misalnya, aplikasi berbasis RAG dapat menulis ulang kueri pengguna, mengumpulkan contoh yang relevan secara dinamis menggunakan kumpulan contoh yang diseleksi, membuat kueri database vektor, dan menggabungkan informasi dengan template perintah. Aplikasi berbasis RAG mengharuskan Anda mengelola beberapa jenis data, termasuk kueri pengguna, database vektor dengan contoh sedikit yang diseleksi dan informasi perusahaan, serta template perintah.
Setiap jenis data memerlukan pengaturan dan pemeliharaan yang cermat. Misalnya, database vektor memerlukan pemrosesan data menjadi penyematan, mengoptimalkan strategi pengelompokan, dan memastikan hanya informasi yang relevan yang tersedia. Template prompt memerlukan pembuatan versi dan pelacakan, dan kueri pengguna perlu ditulis ulang. Praktik terbaik MLOps dan DevOps dapat membantu tugas ini. Dalam AI prediktif, Anda membuat pipeline data untuk ekstraksi, transformasi, dan pemuatan. Dalam AI generatif, Anda membuat pipeline untuk mengelola, mengembangkan, menyesuaikan, dan mengintegrasikan berbagai jenis data dengan cara yang dapat di-build versi, dilacak, dan direproduksi.
Menyesuaikan model dasar dapat meningkatkan performa aplikasi AI generatif, tetapi model tersebut 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 menghasilkan data sintetis menjadi populer karena metode ini mempercepat proses deployment, tetapi tetap penting untuk meminta manusia memeriksa hasilnya untuk jaminan kualitas. Berikut adalah contoh cara menggunakan model besar untuk tujuan engineering data:
- Pembuatan data sintetis: Proses ini melibatkan pembuatan data buatan yang sangat mirip dengan data dunia nyata dalam hal karakteristik dan properti statistiknya. Model besar dan andal sering kali menyelesaikan tugas ini. Data sintetis berfungsi sebagai data pelatihan tambahan untuk AI generatif, sehingga dapat mempelajari pola dan hubungan meskipun data dunia nyata berlabel langka.
- Koreksi data sintetis: Teknik ini berfokus pada identifikasi dan perbaikan error serta inkonsistensi dalam set data berlabel yang ada. Dengan menggunakan kemampuan model yang lebih besar, AI generatif dapat menandai potensi kesalahan pemberian label dan mengusulkan koreksi untuk meningkatkan kualitas dan keandalan data pelatihan.
- Augmentasi data sintetis: Pendekatan ini tidak hanya menghasilkan data baru. Augmentasi data sintetis melibatkan manipulasi data yang ada secara cerdas untuk membuat variasi yang beragam sekaligus mempertahankan fitur dan hubungan yang penting. AI generatif dapat mengalami 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, termasuk kasus penting, rata-rata, dan ekstrem. Serupa dengan data yang dioptimalkan, Anda dapat menggunakan LLM yang canggih untuk membuat, menyeleksi, dan menambah data untuk membuat set data evaluasi yang andal.
Evaluasi
Proses evaluasi adalah aktivitas inti dari pengembangan aplikasi AI generatif. Evaluasi mungkin memiliki tingkat otomatisasi yang berbeda: dari sepenuhnya didorong oleh manusia hingga sepenuhnya otomatis oleh proses.
Saat Anda membuat prototipe project, evaluasi sering kali merupakan proses manual. Developer meninjau output model, mendapatkan gambaran kualitatif tentang performanya. Namun, seiring project berkembang dan jumlah kasus pengujian meningkat, penilaian manual menjadi bottleneck.
Mengotomatiskan evaluasi memiliki dua manfaat besar: memungkinkan Anda bergerak lebih cepat dan membuat penilaian lebih andal. Hal ini juga menghilangkan subjektivitas manusia, 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 mungkin menyertakan beberapa petunjuk dan batasan yang harus dikelola model. Output itu sendiri sering kali memiliki dimensi 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 lainnya untuk mengevaluasi sistem. 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 yang lain bisa jadi merupakan masalah pendapat. Anda harus memastikan bahwa evaluasi otomatis sesuai dengan penilaian manusia karena Anda ingin metrik menjadi proxy yang andal tentang apa yang akan dipikirkan orang. Untuk memastikan kemampuan komparasi antar-eksperimen, Anda harus menentukan pendekatan dan metrik evaluasi di awal proses pengembangan.
- Kurangnya data ground truth, terutama pada tahap awal project. Salah satu cara mengatasinya adalah dengan membuat data sintetis untuk berfungsi sebagai kebenaran dasar sementara yang dapat Anda tingkatkan dari waktu ke waktu dengan masukan manusia.
- Evaluasi komprehensif sangat penting untuk melindungi aplikasi AI generatif dari serangan adversarial. Pelaku kejahatan dapat membuat perintah untuk mencoba mengekstrak informasi sensitif atau memanipulasi output model. Set evaluasi perlu secara khusus mengatasi vektor serangan ini, melalui teknik seperti fuzzing perintah (memberi model variasi acak pada perintah) dan menguji kebocoran informasi.
Untuk mengevaluasi aplikasi AI generatif, terapkan hal berikut:
- Otomatiskan proses evaluasi untuk membantu memastikan kecepatan, skalabilitas, dan reproducibilitas. Anda dapat menganggap otomatisasi sebagai proxy untuk penilaian manusia.
- Sesuaikan proses evaluasi sesuai kebutuhan untuk kasus penggunaan Anda.
- Untuk memastikan kecocokan, stabilkan pendekatan evaluasi, metrik, dan data kebenaran dasar 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 evaluasi yang ditetapkan 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 sebelumnya dari pengembangan aplikasi AI generatif. Misalnya, satu aplikasi mungkin menggunakan beberapa LLM bersama database, yang semuanya diberi makan 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 rekayasa software standar seperti kontrol versi dan CI/CD.
Kontrol versi
Eksperimen AI generatif adalah proses iteratif yang melibatkan siklus pengembangan, evaluasi, dan modifikasi berulang. Untuk memastikan pendekatan yang terstruktur dan dapat dikelola, Anda harus menerapkan pembuatan versi yang ketat untuk semua komponen yang dapat diubah. 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 untuk 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 akan melalui pengujian otomatis sebelum penggabungan untuk mendeteksi masalah lebih awal. Pengujian unit dan integrasi penting untuk kualitas dan keandalan. Pengujian unit berfokus pada setiap potongan kode, sedangkan pengujian integrasi memverifikasi bahwa berbagai komponen berfungsi secara bersamaan.
Menerapkan sistem continuous integration membantu melakukan hal berikut:
- Memastikan output yang andal dan berkualitas tinggi: Pengujian yang ketat meningkatkan kepercayaan pada performa dan konsistensi sistem.
- Menemukan bug lebih awal: Mengidentifikasi masalah melalui pengujian akan mencegahnya menyebabkan masalah yang lebih besar di hilir. Mendeteksi bug lebih awal membuat sistem lebih andal dan tahan 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, rantai, logika rantai, model tersemat, dan sistem pengambilan.
Namun, menerapkan continuous integration ke AI generatif akan menimbulkan tantangan berikut:
- Kesulitan menghasilkan kasus pengujian yang komprehensif: Sifat output AI generatif yang kompleks dan terbuka membuat sulit untuk menentukan dan membuat kumpulan kasus pengujian yang lengkap yang mencakup semua kemungkinan.
- Masalah reproduksi: Mendapatkan hasil yang deterministik dan dapat direproduksi 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 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 pada pengembangan sistem CI untuk AI generatif.
Continuous delivery
Setelah kode digabungkan, proses continuous delivery akan mulai memindahkan kode yang 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 chain menjadi salah satu komponen utama yang akan di-deploy karena pada dasarnya elemen tersebut membentuk aplikasi AI generatif. Proses pengiriman untuk aplikasi AI generatif yang berisi rantai dapat bervariasi bergantung pada persyaratan latensi dan apakah kasus penggunaannya bersifat 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 pen-deployment. Sebagai bagian dari proses pengujian, developer dapat menyatakan persyaratan tertentu seputar 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, yang merupakan 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: Menerapkan praktik kontrol versi untuk deployment model. Kontrol versi memungkinkan Anda melakukan rollback ke versi sebelumnya jika diperlukan dan melacak perubahan yang dilakukan pada konfigurasi model atau deployment.
- Optimalkan model: Lakukan tugas pengoptimalan model (distilasi, kuantisasi, dan pemangkasan) sebelum memaketkan atau men-deploy model.
- Buat container model: Paketkan model yang dilatih ke dalam container.
- Menentukan persyaratan hardware target: Pastikan lingkungan deployment target memenuhi persyaratan untuk performa model yang optimal, seperti GPU, TPU, dan akselerator hardware khusus lainnya.
- Menentukan endpoint model: Tentukan penampung model, format input, format output, dan parameter konfigurasi tambahan.
- Alokasikan resource: Alokasikan resource komputasi yang sesuai untuk endpoint berdasarkan persyaratan performa dan traffic yang diharapkan.
- Konfigurasikan 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.
- Men-deploy integrasi kustom: Mengintegrasikan 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 secara menyeluruh, yang mencakup logging dan pemantauan input dan output keseluruhan aplikasi serta setiap komponen.
Input ke aplikasi memicu beberapa komponen untuk menghasilkan output. Jika output untuk input tertentu secara faktual tidak akurat, Anda harus menentukan komponen mana yang berperforma buruk. Anda memerlukan lineage 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 berperforma baik, hal ini menyiratkan bahwa semua komponen juga berperforma baik. Setelah itu, terapkan pemantauan ke 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 drift, skew, atau penurunan performa terdeteksi. Untuk menyiapkan pemberitahuan, Anda harus mengintegrasikan alat pemberitahuan dan notifikasi ke dalam proses pemantauan.
Bagian berikut menjelaskan pemantauan penyimpangan dan penyimpangan serta tugas penilaian berkelanjutan. Selain itu, pemantauan di MLOps mencakup pemantauan metrik untuk kondisi 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 kemiringan 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 dalam komponen yang dikaitkan bersama untuk menghasilkan output, Anda juga harus mengukur kemiringan. Anda dapat mengukur bias dengan membandingkan distribusi data input yang digunakan untuk mengevaluasi aplikasi dan distribusi input ke aplikasi dalam produksi. Jika kedua distribusi tersebut terpisah, Anda harus menyelidiki 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, drift mencari perubahan pada data input. Drift memungkinkan Anda mengevaluasi input dan karenanya bagaimana perilaku pengguna berubah dari waktu ke waktu.
Mengingat input ke aplikasi biasanya berupa teks, Anda dapat menggunakan metode yang berbeda 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 berhasil menangani sifat data baru yang sekarang masuk. Beberapa metode umum termasuk yang berikut:
- Menghitung penyematan 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 least-squares (PDF), perbedaan rata-rata maksimum (MMD), MMD kernel yang dipelajari (PDF), atau MMD berbasis konteks.
Karena kasus penggunaan AI generatif sangat beragam, Anda mungkin memerlukan metrik kustom tambahan yang lebih baik dalam menangkap perubahan yang tidak terduga dalam data Anda.
Evaluasi berkelanjutan
Evaluasi berkelanjutan adalah pendekatan umum lainnya untuk pemantauan aplikasi AI generatif. Dalam sistem evaluasi berkelanjutan, Anda mengambil output produksi model dan menjalankan tugas evaluasi menggunakan output tersebut untuk melacak 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 dasar yang ditetapkan memungkinkan analisis performa yang lebih mendalam. Anda dapat mengumpulkan kebenaran nyata melalui penilaian manusia atau sebagai hasil dari pendekatan model AI ensemble untuk membuat metrik evaluasi. Proses ini memberikan gambaran tentang bagaimana metrik evaluasi Anda berubah sejak Anda mengembangkan model hingga 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, lineage berfokus pada pelacakan dan pemahaman perjalanan lengkap model machine learning. Dalam AI generatif, garis keturunan lebih jauh dari artefak model untuk diperluas ke semua komponen dalam rantai. Pelacakan mencakup data, model, silsilah model, kode, serta data dan metrik evaluasi relatif. Pelacakan lineage dapat membantu Anda mengaudit, men-debug, dan meningkatkan model.
Bersama dengan praktik baru ini, Anda dapat mengatur siklus proses data dan siklus proses komponen AI generatif menggunakan praktik MLOps dan DevOps standar.
Langkah selanjutnya
Men-deploy aplikasi AI generatif menggunakan Vertex AI