Merancang RAG Multi-Tenancy dengan Milvus: Praktik Terbaik untuk Basis Pengetahuan Perusahaan yang Dapat Diskalakan
Pendahuluan
Selama beberapa tahun terakhir, Retrieval-Augmented Generation (RAG ) telah muncul sebagai solusi tepercaya bagi organisasi besar untuk meningkatkan aplikasi mereka yang didukung LLM, terutama yang memiliki pengguna yang beragam. Seiring dengan pertumbuhan aplikasi tersebut, penerapan kerangka kerja multi-tenancy menjadi sangat penting. Multi-tenancy menyediakan akses yang aman dan terisolasi ke data untuk kelompok pengguna yang berbeda, memastikan kepercayaan pengguna, memenuhi standar peraturan, dan meningkatkan efisiensi operasional.
Milvus adalah basis data vektor sumber terbuka yang dibuat untuk menangani data vektor berdimensi tinggi. Milvus adalah komponen infrastruktur yang sangat diperlukan dari RAG, yang menyimpan dan mengambil informasi kontekstual untuk LLM dari sumber eksternal. Milvus menawarkan strategi multi-tenancy yang fleksibel untuk berbagai kebutuhan, termasuk multi-tenancy tingkat basis data, tingkat koleksi, dan tingkat partisi.
Dalam artikel ini, kami akan membahasnya:
Apa itu Multi-Tenancy dan Mengapa Itu Penting
Strategi Multi-Tenancy di Milvus
Contoh: Strategi Multi-Tenancy untuk Basis Pengetahuan Perusahaan yang Didukung RAG
Apa itu Multi-Tenancy dan Mengapa Itu Penting
Multi-Tenancy adalah arsitektur di mana beberapa pelanggan atau tim, yang dikenal sebagai "penyewa", berbagi satu contoh aplikasi atau sistem. Setiap data dan konfigurasi penyewa terisolasi secara logis, sehingga menjamin privasi dan keamanan, sementara semua penyewa berbagi infrastruktur dasar yang sama.
Bayangkan sebuah platform SaaS yang menyediakan solusi berbasis pengetahuan untuk banyak perusahaan. Setiap perusahaan adalah penyewa.
Penyewa A adalah organisasi layanan kesehatan yang menyimpan FAQ dan dokumen kepatuhan yang berhubungan dengan pasien.
Tenant B adalah perusahaan teknologi yang mengelola alur kerja pemecahan masalah TI internal.
Tenant C adalah bisnis ritel dengan FAQ layanan pelanggan untuk pengembalian produk.
Setiap penyewa beroperasi di lingkungan yang sepenuhnya terisolasi, memastikan bahwa tidak ada data dari Penyewa A yang bocor ke sistem Penyewa B atau sebaliknya. Selain itu, alokasi sumber daya, kinerja kueri, dan keputusan penskalaan bersifat spesifik untuk setiap penyewa, memastikan kinerja tinggi terlepas dari lonjakan beban kerja di satu penyewa.
Multi-tenancy juga berfungsi untuk sistem yang melayani tim yang berbeda dalam organisasi yang sama. Bayangkan sebuah perusahaan besar yang menggunakan basis pengetahuan yang didukung RAG untuk melayani departemen internalnya, seperti SDM, Hukum, dan Pemasaran. Setiap departemen adalah penyewa dengan data dan sumber daya yang terisolasi dalam pengaturan ini.
Multi-tenancy menawarkan manfaat yang signifikan, termasuk efisiensi biaya, skalabilitas, dan keamanan data yang kuat. Dengan berbagi infrastruktur tunggal, penyedia layanan dapat mengurangi biaya overhead dan memastikan konsumsi sumber daya yang lebih efektif. Pendekatan ini juga mudah untuk diterapkan-penerimaan penyewa baru membutuhkan sumber daya yang jauh lebih sedikit daripada membuat instance terpisah untuk setiap penyewa, seperti pada model penyewaan tunggal. Yang terpenting, multi-tenancy menjaga keamanan data yang kuat dengan memastikan isolasi data yang ketat untuk setiap penyewa, dengan kontrol akses dan enkripsi yang melindungi informasi sensitif dari akses yang tidak sah. Selain itu, pembaruan, tambalan, dan fitur baru dapat diterapkan di semua penyewa secara bersamaan, menyederhanakan pemeliharaan sistem dan mengurangi beban administrator sambil memastikan bahwa standar keamanan dan kepatuhan ditegakkan secara konsisten.
Strategi Multi-Penyewaan di Milvus
Untuk memahami bagaimana Milvus mendukung multi-tenancy, penting untuk melihat bagaimana Milvus mengatur data pengguna.
Bagaimana Milvus Mengatur Data Pengguna
Milvus menyusun data dalam tiga lapisan, mulai dari yang luas hingga terperinci: Basis Data, Koleksi, dan Partisi/Kunci Partisi.
Gambar- Bagaimana Milvus mengatur data pengguna .png
Gambar: Bagaimana Milvus mengatur data pengguna
Basis data: Ini bertindak sebagai sebuah wadah logis, mirip dengan basis data pada sistem relasional tradisional.
Koleksi: Mirip dengan tabel dalam database, koleksi mengatur data ke dalam kelompok-kelompok yang dapat dikelola.
Partisi/Kunci Partisi: Di dalam sebuah koleksi, data dapat disegmentasi lebih lanjut oleh Partisi. Dengan menggunakan Kunci Partisi, data dengan kunci yang sama dikelompokkan bersama. Sebagai contoh, jika Anda menggunakan ID pengguna sebagai Kunci Partisi, semua data untuk pengguna tertentu akan disimpan dalam segmen logis yang sama. Hal ini memudahkan untuk mengambil data yang terkait dengan masing-masing pengguna.
Ketika Anda berpindah dari Database ke Collection ke Partition Key, perincian organisasi data menjadi semakin halus.
Untuk memastikan keamanan data yang lebih kuat dan kontrol akses yang tepat, Milvus juga menyediakan Role-Based Access Control (RBAC) yang kuat, yang memungkinkan administrator untuk menentukan izin khusus untuk setiap pengguna. Hanya pengguna yang memiliki izin yang dapat mengakses data tertentu.
Milvus mendukung berbagai strategi untuk mengimplementasikan multi-tenancy, menawarkan fleksibilitas berdasarkan kebutuhan aplikasi Anda: multi-tenancy tingkat basis data, tingkat koleksi, dan tingkat partisi.
Multi-tenancy Tingkat Basis Data
Dengan pendekatan multi-tenancy tingkat basis data, setiap penyewa diberikan basis data mereka sendiri dalam cluster Milvus yang sama. Strategi ini memberikan isolasi data yang kuat dan memastikan kinerja pencarian yang optimal. Namun, hal ini dapat menyebabkan pemanfaatan sumber daya yang tidak efisien jika penyewa tertentu tetap tidak aktif.
Multi-Penyewaan Tingkat Koleksi
Di sini, dalam multi-tenancy tingkat koleksi, kita dapat mengatur data untuk penyewa dengan dua cara.
Satu Koleksi untuk Semua Penyewa: Semua penyewa berbagi satu koleksi, dengan bidang khusus penyewa yang digunakan untuk penyaringan. Meskipun mudah untuk diterapkan, pendekatan ini dapat mengalami hambatan kinerja ketika jumlah penyewa meningkat.
Satu Koleksi per Penyewa: Setiap penyewa dapat memiliki koleksi khusus, meningkatkan isolasi dan kinerja tetapi membutuhkan lebih banyak sumber daya. Pengaturan ini dapat menghadapi keterbatasan skalabilitas jika jumlah penyewa melebihi kapasitas koleksi Milvus.
Penyewaan Multi-tingkat Partisi
Partition-Level Multi-Tenancy berfokus pada pengaturan penyewa dalam satu koleksi. Di sini, kami juga memiliki dua cara untuk mengatur data penyewa.
Satu Partisi per Penyewa: Penyewa berbagi koleksi, tetapi data mereka disimpan dalam partisi terpisah. Kita dapat mengisolasi data dengan memberikan setiap penyewa sebuah partisi khusus, menyeimbangkan isolasi dan kinerja pencarian. Namun, pendekatan ini dibatasi oleh batas maksimum partisi Milvus.
Multi-Penyewaan Berbasis Kunci Partisi: Ini adalah opsi yang lebih terukur di mana satu koleksi menggunakan kunci partisi untuk membedakan penyewa. Metode ini menyederhanakan manajemen sumber daya dan mendukung skalabilitas yang lebih tinggi, tetapi tidak mendukung penyisipan data secara massal.
Tabel di bawah ini merangkum perbedaan utama antara pendekatan multi-penyewaan utama.
Perincian | Tingkat basis data | Tingkat koleksi | Tingkat Kunci Partisi |
---|---|---|---|
Penyewa Maksimal yang Didukung | ~1,000 | ~10,000 | ~10,000,000 |
Fleksibilitas Organisasi Data | Tinggi: Pengguna dapat menentukan beberapa koleksi dengan skema khusus. | Sedang: Pengguna terbatas pada satu koleksi dengan skema khusus. | Rendah: Semua pengguna berbagi koleksi, membutuhkan skema yang konsisten. |
Biaya per Pengguna | Tinggi | Sedang | Rendah |
Isolasi Sumber Daya Fisik | Ya | Ya | Tidak |
RBAC | Ya | Ya | Tidak |
Performa Pencarian | Kuat | Sedang | Kuat |
Contoh: Strategi Multi-Penyewaan untuk Basis Pengetahuan Perusahaan yang Didukung RAG
Saat merancang strategi multi-tenancy untuk sistem RAG, penting untuk menyelaraskan pendekatan Anda dengan kebutuhan spesifik bisnis dan penyewa Anda. Milvus menawarkan berbagai strategi multi-tenancy, dan memilih strategi yang tepat bergantung pada jumlah penyewa, kebutuhan mereka, dan tingkat isolasi data yang diperlukan. Berikut adalah panduan praktis untuk membuat keputusan ini, dengan menggunakan basis pengetahuan perusahaan yang didukung RAG sebagai contoh.
Memahami Struktur Penyewa Sebelum Memilih Strategi Multi-Penyewaan
Basis pengetahuan perusahaan yang didukung RAG sering kali melayani sejumlah kecil penyewa. Penyewa ini biasanya merupakan unit bisnis independen seperti TI, Penjualan, Hukum, dan Pemasaran, yang masing-masing membutuhkan layanan basis pengetahuan yang berbeda. Sebagai contoh, Departemen SDM mengelola informasi karyawan yang sensitif seperti panduan orientasi dan kebijakan tunjangan, yang seharusnya bersifat rahasia dan hanya dapat diakses oleh personil SDM.
Dalam hal ini, setiap unit bisnis harus diperlakukan sebagai penyewa yang terpisah dan strategi multi-tenancy tingkat database sering kali merupakan yang paling sesuai. Dengan memberikan database khusus untuk setiap penyewa, organisasi dapat mencapai isolasi logis yang kuat, menyederhanakan manajemen dan meningkatkan keamanan. Penyiapan ini memberikan penyewa fleksibilitas yang signifikan-mereka dapat menentukan model data khusus dalam koleksi, membuat sebanyak mungkin koleksi yang dibutuhkan, dan secara mandiri mengelola kontrol akses untuk koleksi mereka.
Meningkatkan Keamanan dengan Isolasi Sumber Daya Fisik
Dalam situasi di mana keamanan data sangat diprioritaskan, isolasi logis pada tingkat database mungkin tidak cukup. Sebagai contoh, beberapa unit bisnis mungkin menangani data yang sangat penting atau sangat sensitif, sehingga membutuhkan jaminan yang lebih kuat terhadap gangguan dari penyewa lain. Dalam kasus seperti itu, kita dapat menerapkan pendekatan isolasi fisik di atas struktur multi-tenancy tingkat database.
Milvus memungkinkan kita untuk memetakan komponen logis, seperti database dan koleksi, ke sumber daya fisik. Metode ini memastikan bahwa aktivitas penyewa lain tidak berdampak pada operasi penting. Mari kita telusuri bagaimana pendekatan ini bekerja dalam praktiknya.
Gambar- Bagaimana Milvus mengelola sumber daya fisik.png
Gambar: Bagaimana Milvus mengelola sumber daya fisik
Seperti yang ditunjukkan pada diagram di atas, ada tiga lapisan manajemen sumber daya di Milvus: Query Node, Resource Group, dan Database.
Query Node: Komponen yang memproses tugas-tugas kueri. Komponen ini berjalan pada mesin fisik atau kontainer (misalnya, pod di Kubernetes).
Grup Sumber Daya: Kumpulan Node Kueri yang bertindak sebagai jembatan antara komponen logis (basis data dan koleksi) dan sumber daya fisik. Anda dapat mengalokasikan satu atau beberapa basis data atau koleksi ke satu Resource Group.
Pada contoh yang ditunjukkan pada diagram di atas, ada tiga Database logis: X, Y, dan Z.
Database X: Berisi Koleksi A.
Database Y: Berisi Koleksi B dan C.
Database Z: Berisi Koleksi D dan E.
Katakanlah Database X menyimpan basis pengetahuan penting yang tidak ingin terpengaruh oleh beban dari Database Y atau Database Z. Untuk memastikan isolasi data:
Database X diberikan Resource Group sendiri untuk menjamin bahwa basis pengetahuan kritisnya tidak terpengaruh oleh beban kerja dari database lain.
Koleksi E juga dialokasikan ke Resource Group yang terpisah di dalam database induknya(Z). Hal ini memberikan isolasi pada tingkat koleksi untuk data penting tertentu dalam database bersama.
Sementara itu, koleksi yang tersisa di Database Y dan Z berbagi sumber daya fisik dari Resource Group 2.
Dengan memetakan komponen logis ke sumber daya fisik secara hati-hati, organisasi dapat mencapai arsitektur multi-tenancy yang fleksibel, terukur, dan aman yang disesuaikan dengan kebutuhan bisnis mereka yang spesifik.
Merancang Akses Tingkat Pengguna Akhir
Setelah kita mempelajari praktik terbaik dalam memilih strategi multi-tenancy untuk RAG perusahaan, mari kita telusuri cara mendesain akses tingkat pengguna dalam sistem tersebut.
Dalam sistem ini, pengguna akhir biasanya berinteraksi dengan basis pengetahuan dalam mode hanya-baca melalui LLM. Namun, organisasi masih perlu melacak data tanya jawab yang dibuat oleh pengguna dan menautkannya ke pengguna tertentu untuk berbagai tujuan, seperti meningkatkan akurasi basis pengetahuan atau menawarkan layanan yang dipersonalisasi.
Ambil contoh meja layanan konsultasi pintar di rumah sakit. Pasien mungkin mengajukan pertanyaan seperti, "Apakah ada janji temu dengan dokter spesialis yang tersedia hari ini?" atau "Apakah ada persiapan khusus yang diperlukan untuk operasi saya yang akan datang?" Meskipun pertanyaan-pertanyaan ini tidak secara langsung berdampak pada basis pengetahuan, namun penting bagi rumah sakit untuk melacak interaksi semacam itu untuk meningkatkan layanan. Pasangan tanya jawab ini biasanya disimpan dalam basis data terpisah (tidak harus berupa basis data vektor) yang didedikasikan untuk mencatat interaksi.
Gambar- Arsitektur multi-tenancy untuk basis pengetahuan RAG perusahaan .png
Gambar: Arsitektur multi-tenancy untuk basis pengetahuan RAG perusahaan
Diagram di atas menunjukkan arsitektur multi-tenancy dari sistem RAG perusahaan.
Administrator Sistem mengawasi sistem RAG, mengelola alokasi sumber daya, menetapkan basis data, memetakannya ke kelompok sumber daya, dan memastikan skalabilitas. Mereka menangani infrastruktur fisik, seperti yang ditunjukkan pada diagram, di mana setiap kelompok sumber daya (misalnya, Kelompok Sumber Daya 1, 2, dan 3) dipetakan ke server fisik (node kueri).
Penyewa (pemilik dan pengembang basis data) mengelola basis pengetahuan, mengulanginya berdasarkan data Tanya Jawab yang dibuat pengguna, seperti yang ditunjukkan dalam diagram. Basis data yang berbeda (Basis Data X, Y, Z) berisi koleksi dengan konten basis pengetahuan yang berbeda (Koleksi A, B, dsb.).
Pengguna Akhir berinteraksi dengan sistem dengan cara hanya-baca melalui LLM. Ketika mereka menanyakan sistem, pertanyaan mereka dicatat dalam tabel catatan Tanya Jawab yang terpisah (basis data yang terpisah), yang secara terus menerus memasukkan data yang berharga ke dalam sistem.
Desain ini memastikan bahwa setiap lapisan proses - mulai dari interaksi pengguna hingga administrasi sistem - berjalan dengan lancar, membantu organisasi membangun basis pengetahuan yang kuat dan terus meningkat.
Ringkasan
Dalam blog ini, kami telah mengeksplorasi bagaimana kerangka kerja multi-tenancy memainkan peran penting dalam skalabilitas, keamanan, dan kinerja basis pengetahuan yang didukung RAG. Dengan mengisolasi data dan sumber daya untuk penyewa yang berbeda, bisnis dapat memastikan privasi, kepatuhan terhadap peraturan, dan alokasi sumber daya yang dioptimalkan di seluruh infrastruktur bersama. Milvus, dengan strategi multi-tenancy yang fleksibel, memungkinkan bisnis untuk memilih tingkat isolasi data yang tepat - dari tingkat basis data hingga tingkat partisi - tergantung pada kebutuhan spesifik mereka. Memilih pendekatan multi-tenancy yang tepat memastikan perusahaan dapat memberikan layanan yang disesuaikan untuk penyewa, bahkan ketika berurusan dengan data dan beban kerja yang beragam.
Dengan mengikuti praktik terbaik yang diuraikan di sini, perusahaan dapat secara efektif merancang dan mengelola sistem RAG multi-tenancy yang tidak hanya memberikan pengalaman pengguna yang unggul, tetapi juga meningkatkan skala dengan mudah seiring dengan pertumbuhan kebutuhan bisnis. Arsitektur Milvus memastikan bahwa perusahaan dapat mempertahankan tingkat isolasi, keamanan, dan kinerja yang tinggi, sehingga menjadikannya komponen penting dalam membangun basis pengetahuan bertenaga RAG tingkat perusahaan.
Nantikan Lebih Banyak Wawasan tentang Multi-Tenancy RAG
Dalam blog ini, kami telah membahas bagaimana strategi multi-tenancy Milvus dirancang untuk mengelola penyewa, tetapi tidak untuk pengguna akhir di dalam penyewa tersebut. Interaksi pengguna akhir biasanya terjadi pada lapisan aplikasi, sementara database vektor itu sendiri tetap tidak mengetahui pengguna tersebut.
Anda mungkin bertanya-tanya: Jika saya ingin memberikan jawaban yang lebih tepat berdasarkan riwayat pertanyaan setiap pengguna akhir, bukankah Milvus perlu mempertahankan konteks tanya jawab yang dipersonalisasi untuk setiap pengguna?
Itu adalah pertanyaan yang bagus, dan jawabannya sangat bergantung pada kasus penggunaan. Sebagai contoh, dalam layanan konsultasi sesuai permintaan, pertanyaan bersifat acak, dan fokus utamanya adalah pada kualitas basis pengetahuan daripada melacak konteks historis pengguna.
Namun, dalam kasus lain, sistem RAG harus sadar konteks. Ketika hal ini diperlukan, Milvus perlu berkolaborasi dengan lapisan aplikasi untuk mempertahankan memori yang dipersonalisasi dari setiap konteks pengguna. Desain ini sangat penting untuk aplikasi dengan pengguna akhir yang sangat besar, yang akan kita bahas secara lebih rinci di posting saya berikutnya. Nantikan terus artikel saya selanjutnya!
- Pendahuluan
- Apa itu Multi-Tenancy dan Mengapa Itu Penting
- Strategi Multi-Penyewaan di Milvus
- Contoh: Strategi Multi-Penyewaan untuk Basis Pengetahuan Perusahaan yang Didukung RAG
- Ringkasan
- Nantikan Lebih Banyak Wawasan tentang Multi-Tenancy RAG
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word