Ringkasan RAG Engine

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).

  1. Penyerapan data: Mengambil data dari berbagai sumber data. Misalnya, file lokal, Cloud Storage, dan Google Drive.

  2. Transformasi data: Konversi data sebagai persiapan untuk pengindeksan. Misalnya, data dibagi menjadi beberapa bagian.

  3. 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.

  4. 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.

  5. Pengambilan: Saat pengguna mengajukan pertanyaan atau memberikan perintah, komponen pengambilan di RAG Engine akan menelusuri pusat informasinya untuk menemukan informasi yang relevan dengan kueri.

  6. 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:

    1. Buka halaman IAM di project Google Cloud Anda.
    2. Pilih Sertakan pemberian peran yang disediakan Google.
    3. Telusuri akun layanan Vertex AI RAG Data Service Agent.
    4. Klik Bagikan di folder Drive, lalu bagikan ke akun layanan.
    5. 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
Batasan berikut berlaku:
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