Membangun Sistem Penelusuran berkualitas Google dengan Vertex AI

1. Sebelum memulai

Berikut beberapa hal yang perlu diperhatikan sebelum melanjutkan codelab ini.

Prasyarat

  • Pemahaman dasar tentang LLM
  • Pemahaman dasar tentang sistem RAG

Yang akan Anda pelajari

  • Cara membuat mesin telusur berkualitas Google yang dapat menjawab pertanyaan Anda dari data yang Anda upload
  • Cara membuat Datastore Vertex AI
  • Cara membuat Agen Vertex AI
  • Cara memanfaatkan Cloud Run untuk men-deploy aplikasi

Yang Anda butuhkan

  • Akun Google Cloud
  • Project Google Cloud
  • IDE dengan terminal

Pengantar

Google Penelusuran adalah alat canggih yang menggunakan indeks besar halaman web dan konten lainnya untuk memberikan hasil yang relevan terhadap kueri pengguna. Hal ini dimungkinkan oleh teknik yang disebut Retrieval Augmented Generation (RAG), yang merupakan teknik utama dalam AI modern.

RAG bekerja dengan terlebih dahulu mengambil bagian yang relevan dari korpus dokumen. Hal ini dilakukan menggunakan berbagai metode, seperti pencocokan kata kunci, kesamaan semantik, dan machine learning. Setelah bagian yang relevan diambil, bagian tersebut digunakan untuk membuat ringkasan atau jawaban atas kueri pengguna.

Manfaat utama RAG adalah memungkinkan model bahasa menghindari halusinasi. Halusinasi adalah istilah yang digunakan untuk mendeskripsikan pembuatan teks yang tidak didukung oleh bukti dalam korpus dokumen. Hal ini dapat terjadi jika model bahasa tidak dapat membedakan antara informasi yang relevan dan tidak relevan.

RAG membantu menghindari halusinasi dengan memastikan bahwa teks yang dihasilkan selalu didasarkan pada bukti dari korpus dokumen. Hal ini menjadikannya sumber informasi yang lebih andal dan tepercaya.

RAG adalah teknik canggih yang digunakan dalam berbagai aplikasi, termasuk mesin telusur, chatbot, dan sistem question answering. Teknologi ini kemungkinan akan memainkan peran yang semakin penting dalam AI pada tahun-tahun mendatang.

Berikut beberapa contoh penggunaan RAG dalam praktiknya:

  • Banyak sistem penelusuran menggunakan RAG untuk membuat hasil penelusuran yang relevan dengan kueri pengguna.
  • Chatbot menggunakan RAG untuk menghasilkan respons terhadap pertanyaan pengguna yang informatif dan menarik.
  • Sistem menjawab pertanyaan menggunakan RAG untuk menghasilkan jawaban atas pertanyaan pengguna yang akurat dan komprehensif.

RAG adalah teknik serbaguna yang dapat digunakan untuk menghasilkan teks di berbagai domain dan aplikasi. Alat ini adalah alat canggih yang membantu membuat AI menjadi lebih cerdas dan informatif.

Dalam codelab ini, kita akan membangun sistem RAG yang dapat membantu menjawab pertanyaan Anda dengan korpus yang disediakan seperti yang diupload oleh Anda. Platform RAG siap pakai yang disebut Vertex AI Search/Agent Builder membantu Anda mempercepat pembangunan sistem RAG sehingga Anda tidak perlu melakukan upaya manual untuk mengumpulkan dokumen, mengurai, mengelompokkan, membuat embedding, memperluas kueri, mengambil & memberi peringkat kandidat. Meskipun sistem RAG siap pakai membantu Anda memulai dengan cepat, Google Cloud juga menyediakan API terpisah untuk setiap proses guna membangun sistem RAG DIY Anda sendiri yang membantu menyempurnakan sistem RAG agar sesuai dengan persyaratan bisnis Anda.

Yang akan Anda bangun

Di akhir codelab ini, Anda akan memiliki sistem RAG yang berfungsi dan di-deploy yang dapat membantu menjawab pertanyaan Anda dengan informasi faktual, yang didasarkan dan dikutip dengan referensi yang tepat.

Anda juga akan lebih memahami cara menggunakan Vertex AI Search API untuk membangun arsitektur RAG ini di Google Cloud. Selain itu, Anda juga akan mempelajari cara men-deploy aplikasi arsitektur RAG ini (dengan frontend dan backend) di Cloud Run, yang merupakan platform serverless untuk men-deploy aplikasi sebagai container di Google Cloud.

2d055ded874603a6.png

Cara kerja aplikasi

  • Mengupload data Anda: Pengguna dapat mengupload korpus data mereka sendiri, yaitu file PDF sebagai input.
  • Mengajukan kueri di kotak penelusuran: Pengguna dapat mengajukan pertanyaan di kotak penelusuran berdasarkan korpus data yang diupload.
  • Mengambil jawaban: Pengguna dapat mengambil hasil/kandidat penelusuran dan memeriksa faktualitas/dasar jawaban yang diambil berdasarkan relevansi kueri.

2. Penyiapan Lingkungan

  1. Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
  2. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.
  3. Anda akan menggunakan Cloud Shell, lingkungan command line yang berjalan di Google Cloud. Untuk mengaksesnya, klik Activate Cloud Shell di bagian atas Konsol Google Cloud.

1829c3759227c19b.png

  1. Setelah terhubung ke Cloud Shell, Anda dapat memeriksa bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke project ID Anda menggunakan perintah berikut:
gcloud auth list
  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda.
gcloud config list project
  1. Jika project Anda belum ditetapkan, gunakan perintah berikut untuk menetapkannya:
gcloud config set project <YOUR_PROJECT_ID>
  1. Pastikan API berikut diaktifkan:
  • Cloud Run
  • Vertex AI
  • Cloud Storage

Alternatif untuk menggunakan perintah gcloud adalah membuka konsol menggunakan link ini. Baca dokumentasi untuk mempelajari perintah gcloud dan penggunaannya.

3. Langkah 1: Buat Bucket GCP

  • Buka konsol dan di kotak penelusuran, ketik Cloud Storage.
  • Pilih Cloud Storage dari hasil yang disarankan. 21d2bc910e71f7ec.png
  • Klik Buat Bucket

adf5c0382f6c3540.png

  • Berikan nama yang unik secara global untuk bucket
  • Klik Lanjutkan
  • Di Jenis Lokasi, pilih Multi-Region
  • Di menu drop-down, pastikan untuk memilih opsi us (multiple regions in United States)

731aead7d8497725.png

  • Klik Buat Bucket

f7ac409ed9c4af21.png

4. Langkah 2: Buat Vertex AI Datastore

  • Di kotak penelusuran halaman konsol, ketik "Vertex AI Agent Builder"
  • Pilih produk pertama, "Agent Builder"

c4a67b92bb7900e3.png

  • Di halaman Agent Builder, klik "Data Stores" seperti yang ditunjukkan di menu navigasi sebelah kiri

f86f67d344d398fb.png

  • Klik "Create Data Store"

e64e771f33543f46.png

  • Pilih Cloud Storage sebagai penyimpanan data Anda
  • Klik "Pilih" di bawah ikon Cloud Storage

3a8d22888e7eedc2.png

  • Pada tab di bawah opsi "Folder", klik tombol "Browse"
  • Pilih bucket yang Anda buat di Langkah 1.
  • Pada opsi di bawah, pastikan untuk memilih "Dokumen tidak terstruktur tertaut (JSONL dengan metadata)"
  • Klik Lanjutkan

13876b5d12dbe1fb.png

  • Di halaman Konfigurasi, pilih "global" sebagai lokasi penyimpanan data Anda
  • Berikan nama yang mudah dikenali untuk penyimpanan data Anda
  • Klik Buat

618b7a456fbffad4.png

Brownie:

  • Tepat di atas tombol "Buat", Anda dapat melihat opsi pemrosesan dokumen.
  • Anda dapat mencoba berbagai parser seperti parser digital, OCR, atau tata letak
  • Anda juga dapat mengaktifkan pembuatan potongan lanjutan dan memberikan batas ukuran potongan kustom Anda sendiri

38471c1d3411610d.png

5. Langkah 3: Buat Agen

  • Setelah penyimpanan data dibuat, klik aplikasi di menu navigasi di sebelah kiri, lalu pilih "Aplikasi"
  • Klik tombol "Buat Aplikasi"
  • Pilih jenis aplikasi yang akan menjadi "Penelusuran" (Anda juga dapat membuat agen, bot percakapan, rekomendasi, dll.)

ae5294e33f63567c.png

  • Pastikan Anda memilih "Generik" di bagian Konten. Anda juga dapat memilih Media atau Rekomendasi berdasarkan penyimpanan data dan jenis data serta sistem yang ingin Anda buat.
  • Pastikan untuk mengaktifkan fitur Edisi Enterprise dan LLM Lanjutan
  • Berikan nama aplikasi Anda
  • Berikan nama perusahaan Anda

f8a41c9751f7a8d3.png

  • Pastikan untuk memilih region yang akan ditetapkan sebagai "global"
  • Klik "Lanjutkan" ed17b18e094ba59a.png
  • Di layar berikutnya, pilih penyimpanan data yang Anda buat di Langkah 2
  • Klik "Buat"

bc77006e0025ae9e.png

6. Langkah 4: Dockerisasi aplikasi Anda

  • Buka terminal Anda di konsol Google Cloud
  • Clone repositori <sample_repository_link> menggunakan perintah berikut

git clone https://github.com/kkrishnan90/vertex-ai-search-agent-builder-demo

  • Ubah direktori dan buka repositori yang di-clone menggunakan perintah berikut

cd vertex-ai-search-agent-builder-demo

  • Struktur folder
  • Backend - Ini akan menyimpan penerapan API berbasis python yang akan membantu membuat endpoint RESTful untuk berinteraksi dengan frontend Anda.
  • Frontend - Ini akan menyimpan aplikasi berbasis react dan akan menayangkan UI. Hal ini juga akan berisi panggilan tingkat aplikasi yang diperlukan ke backend melalui endpoint REST
  • Dockerfile - File ini akan berisi semua perintah yang relevan untuk membuat container Docker
  • Di root direktori repositori, jalankan perintah berikut yang akan membantu mem-build image Docker (catatan: pastikan untuk menggunakan tanda - - platform saat mem-build container Docker di Macbook yang menggunakan chip Apple Silicon seperti M1, M2, dll. Tanda ini tidak diperlukan jika Anda melakukan build menggunakan mesin Windows atau jika arsitektur CPU Anda berbasis Intel)

docker build --platform linux/amd64 -t your-image-name .

  • Setelah pembuatan container Docker berhasil, jalankan perintah berikut untuk memberi tag pada container dengan tag yang tepat guna memastikan Anda menyediakan versi image. Ingat, mungkin ada beberapa versi aplikasi dan oleh karena itu ada beberapa versi sebagai tag dalam container Docker. Memastikan bahwa versi stabil terbaru selalu digunakan adalah pendekatan yang direkomendasikan dari perspektif DevOps.

docker tag your-image-name REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG

  • Setelah pemberian tag pada image container docker berhasil, kita akan mengirim image ke Google Artifact Registry (GAR). GAR adalah platform yang dikelola sepenuhnya dari Google untuk membantu mengelola dan mengontrol versi container Docker Anda. Jalankan perintah berikut yang akan mengirim container yang diberi tag di atas ke GAR. Untuk mengetahui informasi selengkapnya, lihat link berikut [ https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling]

docker push REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG

7. Langkah 5: Deploy aplikasi Anda di Cloud Run

  • Minimalkan terminal Anda. Di kotak penelusuran konsol Google Cloud, telusuri Cloud Run
  • Klik produk Cloud Run yang disarankan

592103eb61c16738.png

  • Klik "Buat Layanan"
  • Di halaman berikutnya, pastikan "Deploy one revision from an existing container image" dipilih
  • Di bawah, klik "Pilih"
  • Anda akan melihat menu navigasi di sebelah kanan.
  • Pastikan untuk memeriksa apakah Artifact Registry dipilih sebagai tab
  • Pastikan untuk memeriksa apakah project dipilih dengan benar
  • Klik panah untuk meluaskan akordeon di link image container yang di-deploy
  • Pilih tag penampung dan perluas (selalu pilih tag terbaru yang di-deploy - dengan tag terbaru yang tepat, yaitu v1, v2, dll.)
  • Klik image container yang ditampilkan di bawah nama tag container

aac35d55d7dd874e.png

  • Di area Konfigurasi
  • Berikan nama layanan untuk aplikasi Cloud Run Anda (nama ini akan menjadi bagian dari URL saat Anda men-deploy aplikasi di Cloud Run)
  • Pilih region yang sesuai (dalam hal ini us-central1 atau apa pun pilihan Anda)
  • Di bagian Autentikasi
  • Pastikan "Izinkan pemanggilan yang tidak diautentikasi" dipilih
  • Di bagian Alokasi CPU dan Harga
  • Pilih "CPU hanya dialokasikan selama pemrosesan permintaan"
  • Ubah Penskalaan Otomatis Layanan menjadi 1 (untuk tujuan produksi, sebaiknya jalankan instance minimum untuk menangani traffic harian Anda, Anda bahkan dapat membiarkannya 0, yaitu Nol)
  • Tetapkan "Kontrol Masuk" ke "Semua" untuk mengizinkan traffic dari internet mengakses aplikasi Anda
  • Klik "Buat"
  • Tindakan ini akan men-deploy instance Cloud Run dan penyediaannya mungkin memerlukan waktu beberapa menit

b8b147265b8d457b.png

  • Setelah di-deploy, Anda akan dapat melihat URL yang tersedia secara publik yang dapat Anda akses dari aplikasi web Anda

1dfdb007c52581a1.png

8. Cara kerjanya

  • Setelah berada di halaman beranda aplikasi, klik tombol "Upload Dokumen"
  • Upload file PDF Anda
  • Setelah upload selesai
  • Klik Kotak Penelusuran di bagian atas halaman web
  • Mulai menelusuri kueri yang terkait dengan dokumen yang Anda upload
  • Setelah Anda mengetik kueri dan mengklik Penelusuran, semua jawaban yang relevan dari dokumen yang baru saja Anda upload akan ditampilkan
  • Anda dapat bereksperimen dengan melihat kode backend dan menambahkan lebih banyak konfigurasi seperti berikut
  • Menambahkan cuplikan
  • Menambahkan segmen ekstraktif
  • Menambahkan jawaban
  • Menyesuaikan hasil top-k untuk membantu LLM meringkas jawaban (seperti Ringkasan AI di Google Penelusuran)
  • Sebagai add-on, Anda juga dapat menambahkan tag metadata saat mengupload dokumen. Hal ini akan membantu menghasilkan aspek dan kategori yang dapat difilter

9. Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam codelab ini, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Manage resources.
  2. Dalam daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
  4. Atau, Anda dapat membuka Cloud Run di konsol, memilih layanan yang baru saja Anda deploy, lalu menghapusnya.

10. Selamat

Selamat! Anda telah berhasil membangun sistem RAG siap pakai yang cepat menggunakan model canggih yang didukung oleh Google dan untuk memberikan hasil berkualitas Google pada kueri penelusuran Anda. Codelab ini hanya untuk tujuan demonstrasi. Lebih banyak keamanan dan batasan harus disiapkan untuk kasus penggunaan produksi. Link ke repositori lengkap ada di sini. Dengan memanfaatkan Google Cloud dan hanya dalam 5 langkah, kita dapat membuat sistem RAG end-to-end yang dapat menyajikan hasil berkualitas Google secara langsung dalam beberapa menit. Seiring berkembangnya AI generatif dan model bahasa besar, membangun sistem RAG seperti ini juga membantu kita menghindari bahaya halusinasi dan informasi yang tidak dikutip.

Meskipun ini hanyalah titik awal, kita dapat melakukan banyak hal dengan API RAG DIY yang sepenuhnya dapat disesuaikan, yang memberi Anda lebih banyak transparansi, kemampuan, dan efisiensi untuk menangani setiap bagian dari proses pipeline secara efektif.