Sebelumnya disebut LlamaIndex di Vertex AI dan yang terbaru, Knowledge Engine, RAG Engine adalah framework data untuk mengembangkan aplikasi model bahasa besar (LLM) yang dilengkapi konteks. Augmentasi konteks terjadi saat Anda menerapkan LLM ke data. Ini mengimplementasikan retrieval-augmented generation (RAG).
Masalah umum dengan LLM adalah LLM tidak memahami pengetahuan pribadi, yaitu data organisasi Anda. Dengan RAG Engine, Anda dapat memperkaya konteks LLM dengan informasi pribadi tambahan, karena model dapat mengurangi halusinasi dan menjawab pertanyaan dengan lebih akurat.
Dengan menggabungkan sumber pengetahuan tambahan dengan pengetahuan yang ada yang dimiliki LLM, konteks yang lebih baik akan diberikan. Konteks yang ditingkatkan beserta kueri akan meningkatkan kualitas respons LLM.
Konsep berikut adalah kunci untuk memahami RAG Engine. Konsep ini tercantum dalam urutan proses retrieval-augmented generation (RAG).
Penyerapan data: Mengambil data dari berbagai sumber data. Misalnya, file lokal, Cloud Storage, dan Google Drive.
Transformasi data: Konversi data sebagai persiapan untuk pengindeksan. Misalnya, data dibagi menjadi beberapa bagian.
Embedding: Representasi numerik dari kata atau potongan teks. Angka ini menangkap makna semantik dan konteks teks. Kata atau teks yang serupa atau terkait cenderung memiliki penyematan yang serupa, yang berarti keduanya lebih dekat dalam ruang vektor berdimensi tinggi.
Pengindeksan data: RAG Engine membuat indeks yang disebut korpus. Indeks menyusun basis pengetahuan sehingga dioptimalkan untuk penelusuran. Misalnya, indeks seperti daftar isi mendetail untuk buku referensi yang besar.
Pengambilan: Saat pengguna mengajukan pertanyaan atau memberikan perintah, komponen pengambilan di RAG Engine akan menelusuri pusat informasinya untuk menemukan informasi yang relevan dengan kueri.
Pembuatan: Informasi yang diambil menjadi konteks yang ditambahkan ke kueri pengguna asli sebagai panduan bagi model AI generatif untuk menghasilkan respons yang berdasarkan fakta dan relevan.
Model AI generatif yang mendukung RAG
Bagian ini mencantumkan model yang mendukung RAG.
Model Gemini
Tabel berikut mencantumkan model Gemini dan versinya yang mendukung RAG Engine:
Model | Versi |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-002 gemini-1.5-flash-001 |
Gemini 1.5 Pro | gemini-1.5-pro-002 gemini-1.5-pro-001 |
Gemini 1.0 Pro | gemini-1.0-pro-001 gemini-1.0-pro-002 |
Gemini 1.0 Pro Vision | gemini-1.0-pro-vision-001 |
Gemini | gemini-experimental |
Model yang di-deploy sendiri
RAG Engine mendukung semua model di Model Garden.
Gunakan RAG Engine dengan endpoint model terbuka yang Anda deploy sendiri.
# Create a model instance with your self-deployed open model endpoint
rag_model = GenerativeModel(
"projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID",
tools=[rag_retrieval_tool]
)
Model dengan API terkelola di Vertex AI
Model dengan API terkelola di Vertex AI yang mendukung RAG Engine mencakup hal berikut:
Contoh kode berikut menunjukkan cara menggunakan Gemini
GenerateContent
API untuk membuat instance model generatif. ID model,
/publisher/meta/models/llama-3.1-405B-instruct-maas
, ditemukan di
kartu model.
# Create a model instance with Llama 3.1 MaaS endpoint
rag_model = GenerativeModel(
"projects/PROJECT_ID/locations/REGION/publisher/meta/models/llama-3.1-405B-instruct-maas",
tools=[rag_retrieval_tool]
)
Contoh kode berikut menunjukkan cara menggunakan ChatCompletions
API
yang kompatibel dengan OpenAI untuk menghasilkan respons model.
# Generate a response with Llama 3.1 MaaS endpoint
response = client.chat.completions.create(
model="meta/llama-3.1-405b-instruct-maas",
messages=[{"role": "user", "content": "your-query"}],
extra_body={
"extra_body": {
"google": {
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": rag_corpus_resource
},
"similarity_top_k": 10
}
}
}
},
)
Model embedding
Model penyematan digunakan untuk membuat korpus serta untuk penelusuran dan pengambilan selama pembuatan respons. Bagian ini mencantumkan model penyematan yang didukung.
textembedding-gecko@003
textembedding-gecko-multilingual@001
text-embedding-004
(default)text-multilingual-embedding-002
textembedding-gecko@002
(khusus versi yang disesuaikan)textembedding-gecko@001
(khusus versi yang disesuaikan)
Untuk informasi selengkapnya tentang cara menyesuaikan model penyematan, lihat Menyesuaikan embedding teks.
Model penyematan terbuka berikut juga didukung. Anda dapat menemukannya di Model Garden.
e5-base-v2
e5-large-v2
e5-small-v2
multilingual-e5-large
multilingual-e5-small
Jenis dokumen yang didukung untuk RAG
Hanya dokumen teks yang didukung. Tabel berikut menunjukkan jenis file dan batas ukuran filenya:
Jenis file | Batas ukuran file |
---|---|
Google dokumen | 10 MB saat diekspor dari Google Workspace |
Google drawings | 10 MB saat diekspor dari Google Workspace |
Google Slide | 10 MB saat diekspor dari Google Workspace |
File HTML | 10 MB |
File JSON | 1 MB |
File Markdown | 10 MB |
Slide Microsoft PowerPoint (file PPTX) | 10 MB |
Dokumen Microsoft Word (file DOCX) | 50 MB |
File PDF | 50 MB |
File teks | 10 MB |
Anda dapat menggunakan RAG Engine dengan jenis dokumen lain, tetapi dapat menghasilkan respons berkualitas lebih rendah.
Sumber data yang didukung untuk RAG
Sumber data berikut didukung:
- Mengupload file lokal: Upload satu file menggunakan
upload_file
(maksimal 25 MB), yang merupakan panggilan sinkron. - Cloud Storage: Mengimpor file dari Cloud Storage.
Google Drive: Mengimpor direktori dari Google Drive.
Akun layanan harus diberi izin yang benar untuk mengimpor file. Jika tidak, tidak ada file yang diimpor dan tidak ada pesan error yang ditampilkan. Untuk mengetahui informasi selengkapnya tentang batas ukuran file, lihat Jenis dokumen yang didukung.
Untuk mengautentikasi dan memberikan izin, lakukan hal berikut:
- Buka halaman IAM di project Google Cloud Anda.
- Pilih Sertakan pemberian peran yang disediakan Google.
- Telusuri akun layanan Vertex AI RAG Data Service Agent.
- Klik Bagikan di folder Drive, lalu bagikan ke akun layanan.
- Berikan izin
Viewer
ke akun layanan di folder atau file Google Drive Anda. ID resource Google Drive dapat ditemukan di URL web.
Slack: Mengimpor file dari Slack menggunakan konektor data.
Jira: Mengimpor file dari Jira menggunakan konektor data.
Untuk informasi selengkapnya, lihat referensi RAG API.
Menyesuaikan transformasi RAG
Setelah dokumen diserap, RAG Engine akan menjalankan serangkaian transformasi untuk menyiapkan data untuk pengindeksan. Anda dapat mengontrol kasus penggunaan menggunakan parameter berikut:
Parameter | Deskripsi |
---|---|
chunk_size |
Saat dokumen diserap ke dalam indeks, dokumen tersebut akan dibagi menjadi beberapa bagian. Parameter chunk_size (dalam token) menentukan ukuran bagian. Ukuran potongan default adalah 1.024 token. |
chunk_overlap |
Secara default, dokumen dibagi menjadi beberapa bagian dengan jumlah tumpang-tindih tertentu untuk meningkatkan relevansi dan kualitas pengambilan. Tumpang-tindih bagian default adalah 200 token. |
Ukuran bagian yang lebih kecil berarti penyematan lebih akurat. Ukuran potongan yang lebih besar berarti penyematan mungkin lebih umum, tetapi dapat melewatkan detail tertentu.
Misalnya, jika Anda mengonversi 200 kata, bukan 1.000 kata, menjadi array penyematan dengan dimensi yang sama, Anda dapat kehilangan detail. Ini juga merupakan contoh yang baik saat Anda mempertimbangkan batas panjang konteks model. Potongan teks yang besar mungkin tidak sesuai dengan model jendela kecil.
Kuota RAG
Untuk setiap layanan yang melakukan retrieval-augmented generation (RAG) menggunakan RAG Engine, kuota berikut berlaku, dengan kuota yang diukur sebagai permintaan per menit (RPM).Layanan | Kuota | Metrik |
---|---|---|
API pengelolaan data RAG Engine | 60 RPM | VertexRagDataService requests per minute per region |
RetrievalContexts API |
1.500 RPM | VertexRagService retrieve requests per minute per region |
base_model: textembedding-gecko |
1.500 RPM | Online prediction requests per base model per minute per region per base_model Filter tambahan yang dapat Anda tentukan adalah base_model: textembedding-gecko |
Layanan | Batas | Metrik |
---|---|---|
Permintaan ImportRagFiles serentak |
3 RPM | VertexRagService concurrent import requests per region |
Jumlah file maksimum per permintaan ImportRagFiles |
10.000 | VertexRagService import rag files requests per region |
Untuk mengetahui batas kapasitas dan kuota selengkapnya, lihat Batas kapasitas AI Generatif di Vertex AI.
Parameter pengambilan
Tabel berikut menyertakan parameter pengambilan:
Parameter | Deskripsi |
---|---|
similarity_top_k |
Mengontrol jumlah maksimum konteks yang diambil. |
vector_distance_threshold |
Hanya konteks dengan jarak yang lebih kecil dari nilai minimum yang dipertimbangkan. |
Mengelola pusat informasi (korpus) RAG
Bagian ini menjelaskan cara mengelola korpus untuk tugas RAG dengan melakukan pengelolaan indeks dan pengelolaan file.
Pengelolaan korpus
Korpus, yang juga disebut sebagai indeks, adalah kumpulan dokumen atau sumber informasi. Korpus dapat dikueri untuk mengambil konteks yang relevan untuk pembuatan respons. Saat membuat korpus untuk pertama kalinya, prosesnya mungkin memerlukan waktu tambahan satu menit.
Operasi korpus berikut didukung:
Operasi | Deskripsi | Parameter | Contoh |
---|---|---|---|
Membuat korpus RAG. | Buat indeks untuk mengimpor atau mengupload dokumen. | Membuat parameter | Membuat contoh |
Memperbarui korpus RAG. | Perbarui indeks yang dibuat sebelumnya untuk mengimpor atau mengupload dokumen. | Memperbarui parameter | Contoh update |
Mencantumkan korpus RAG. | Mencantumkan semua indeks. | Mencantumkan parameter | Contoh daftar |
Mendapatkan korpus RAG. | Mendapatkan metadata yang menjelaskan indeks. | Mendapatkan parameter | Mendapatkan contoh |
Menghapus korpus RAG. | Hapus indeks. | Menghapus parameter | Contoh penghapusan |
Operasi serentak pada korpus tidak didukung. Untuk informasi selengkapnya, lihat referensi RAG API.
Pengelolaan file
Operasi file berikut didukung:
Operasi | Deskripsi | Parameter | Contoh |
---|---|---|---|
Upload file RAG. | Upload file dari penyimpanan lokal dengan informasi tambahan yang memberikan konteks ke LLM untuk menghasilkan respons yang lebih akurat. | Parameter upload | Contoh upload |
Mengimpor file RAG. | Mengimpor kumpulan file dari beberapa penyimpanan lain ke lokasi penyimpanan. | Mengimpor parameter | Contoh impor |
Mendapatkan file RAG. | Mendapatkan detail tentang file RAG untuk digunakan oleh LLM. | Mendapatkan parameter | Mendapatkan contoh |
Menghapus file RAG. | Upload file dari penyimpanan lokal dengan informasi tambahan yang memberikan konteks ke LLM untuk menghasilkan respons yang lebih akurat. | Menghapus parameter | Contoh penghapusan |
Untuk informasi selengkapnya, lihat referensi RAG API.
Langkah selanjutnya
- Untuk mempelajari batas ukuran file, lihat Jenis dokumen yang didukung.
- Untuk mempelajari kuota yang terkait dengan RAG Engine, lihat Kuota RAG Engine.
- Untuk mempelajari cara menyesuaikan parameter, lihat Parameter pengambilan.
- Untuk mempelajari RAG API lebih lanjut, lihat RAG Engine API.
- Untuk mempelajari lebih lanjut pentanahan, lihat Ringkasan pentanahan.
- Untuk mempelajari lebih lanjut perbedaan antara grounding dan RAG, lihat Respons ground menggunakan RAG.
- Untuk mempelajari AI Generatif di Vertex AI lebih lanjut, lihat Ringkasan AI Generatif di Vertex AI.
- Untuk mempelajari arsitektur RAG lebih lanjut, lihat Infrastruktur untuk aplikasi AI generatif berkemampuan RAG menggunakan Vertex AI.