Pola Retrieval-Augmented Generation (RAG) adalah pendekatan standar industri untuk membangun aplikasi yang menggunakan model bahasa besar untuk alasan atas data tertentu atau kepemilikan yang belum diketahui oleh model bahasa besar. Meskipun arsitekturnya mudah, merancang, bereksperimen dengan, dan mengevaluasi solusi RAG yang sesuai dengan arsitektur ini melibatkan banyak pertimbangan kompleks yang mendapat manfaat dari pendekatan ilmiah yang ketat.
Panduan ini disajikan sebagai seri. Setiap artikel dalam seri ini mencakup fase tertentu dalam merancang solusi RAG.
Pertimbangan ini yang dibahas artikel dalam panduan ini meliputi:
- Menentukan dokumen dan kueri pengujian apa yang akan digunakan selama evaluasi
- Memilih strategi penggugusan
- Menentukan apa dan bagaimana Anda harus memperkaya gugus
- Memilih model penyematan yang tepat
- Menentukan cara mengonfigurasi indeks pencarian
- Menentukan pencarian apa yang ingin Anda lakukan: vektor, teks lengkap, hibrid, beberapa manual
- Mengevaluasi setiap langkah
Artikel dalam panduan ini membahas semua pertimbangan tersebut.
Arsitektur RAG
Diagram memperlihatkan arsitektur tingkat tinggi solusi RAG, termasuk alur permintaan dan alur data.
Gambar 1. Arsitektur RAG tingkat tinggi
Alur aplikasi RAG
Berikut ini adalah alur tingkat tinggi untuk aplikasi RAG.
- Pengguna mengeluarkan kueri di antarmuka pengguna aplikasi cerdas.
- Aplikasi cerdas melakukan panggilan API ke orkestrator. Orkestrator dapat diimplementasikan dengan alat atau platform seperti Semantic Kernel, azure Pembelajaran Mesin prompt flow, atau LangChain.
- Orkestrator menentukan pencarian apa yang harus dilakukan di Azure AI Search dan mengeluarkan kueri.
- Orkestrator mengemas hasil N teratas dari kueri, mengemasnya sebagai konteks dalam perintah, bersama dengan kueri, dan mengirim permintaan ke model bahasa besar. Orkestrator mengembalikan respons ke aplikasi cerdas untuk dibaca pengguna.
Alur data RAG
Berikut ini adalah aliran tingkat tinggi untuk alur data yang memasok data grounding untuk aplikasi RAG.
Dokumen didorong atau ditarik ke dalam alur data.
Alur data memproses setiap dokumen satu per satu dengan langkah-langkah berikut:
- Dokumen gugus - Memecah dokumen menjadi bagian yang relevan secara semantik yang idealnya memiliki satu ide atau konsep.
- Memperkaya potongan - Menambahkan bidang metadata yang dibuat dari konten dalam gugus ke bidang diskrit, seperti judul, ringkasan, dan kata kunci.
- Potongan semat - Menggunakan model penyematan untuk mem-vektorisasi gugus dan bidang metadata lainnya yang digunakan untuk pencarian vektor.
- Mempertahankan gugus - Menyimpan gugus dalam indeks pencarian.
Pertimbangan desain dan evaluasi RAG
Ada berbagai keputusan implementasi yang harus Anda buat saat merancang solusi RAG Anda. Gambar berikut mengilustrasikan beberapa keputusan tersebut.
Gambar 2. Pertanyaan yang muncul saat merancang solusi RAG
Rangkaian artikel dalam panduan ini membahas pertimbangan tersebut dan banyak lagi.
- Menentukan domain solusi - Membahas pentingnya menentukan persyaratan bisnis dengan jelas untuk solusi RAG
- Kumpulkan dokumen pengujian perwakilan - Membahas pertimbangan dan panduan tentang pengumpulan dokumen pengujian untuk solusi RAG Anda yang mewakili korpus Anda.
- Kumpulkan kueri pengujian - Membahas informasi apa yang harus Anda kumpulkan bersama dengan kueri pengujian Anda, memberikan panduan tentang menghasilkan kueri dan kueri sintetis yang tidak dicakup dokumen Anda.
- Memahami potongan ekonomi - Membahas faktor-faktor yang perlu dipertimbangkan saat melihat biaya keseluruhan solusi potongan Anda untuk korpus teks Anda
- Melakukan analisis dokumen - Menyediakan daftar pertanyaan yang dapat Anda tanyakan saat menganalisis jenis dokumen yang membantu Anda menentukan apa dalam dokumen yang ingin Anda abaikan atau kecualikan, apa yang ingin Anda ambil dalam potongan dan bagaimana Anda ingin memotong
- Memahami pendekatan penggugusan - Menguraikan berbagai pendekatan untuk memotong seperti berbasis kalimat, ukuran tetap, augmentasi model bahasa kustom, besar, analisis tata letak dokumen, menggunakan model pembelajaran mesin
- Memahami bagaimana struktur dokumen memengaruhi pemotongan - Membahas bagaimana tingkat struktur dokumen telah memengaruhi pilihan Anda untuk pendekatan penggugusan
- Potongan bersih - Membahas berbagai pendekatan pembersihan yang dapat Anda terapkan untuk mendukung kecocokan kedekatan dengan menghilangkan potensi perbedaan yang bukan material untuk semantik teks
- Potongan tambahan - Membahas beberapa bidang metadata umum yang harus Anda pertimbangkan untuk menambah data gugus Anda bersama dengan beberapa panduan tentang potensi penggunaannya dalam pencarian, dan alat atau teknik yang umumnya digunakan untuk menghasilkan konten metadata
- Memahami pentingnya model penyematan - Membahas bagaimana model penyematan dapat memiliki efek signifikan pada relevansi hasil pencarian vektor Anda
- Memilih model penyematan - Memberikan panduan tentang memilih model penyematan
- Mengevaluasi model penyematan - Membahas dua cara mengevaluasi model penyematan: memvisualisasikan penyematan dan menghitung jarak penyematan
- Membuat indeks pencarian - Membahas beberapa keputusan utama yang harus Anda buat untuk konfigurasi pencarian vektor yang berlaku untuk bidang vektor
- Memahami opsi pencarian - Memberikan gambaran umum tentang jenis pencarian yang dapat Anda pertimbangkan seperti vektor, teks lengkap, hibrid, dan beberapa manual. Menyediakan panduan tentang memisahkan kueri menjadi subkueri, memfilter kueri
- Mengevaluasi pencarian - Menyediakan panduan tentang mengevaluasi solusi pencarian Anda
Fase evaluasi ujung ke ujung model bahasa besar
- Memahami metrik evaluasi model bahasa besar - Memberikan gambaran umum tentang beberapa metrik yang dapat Anda gunakan untuk mengevaluasi respons model bahasa besar termasuk groundedness, kelengkapan, pemanfaatan, dan relevansi
- Memahami metrik kesamaan dan evaluasi - Menyediakan daftar kecil metrik kesamaan dan evaluasi yang dapat Anda gunakan saat mengevaluasi solusi RAG Anda
- Memahami pentingnya dokumentasi, pelaporan, dan agregasi - Membahas pentingnya mendokumentasikan hiperparameter bersama dengan hasil evaluasi, menggabungkan hasil dari beberapa kueri, dan memvisualisasikan hasilnya
- Akselerator Eksperimen RAG - Membahas bagaimana repositori GITHub RAG Experiment Accelerator dapat digunakan untuk membantu tim menemukan strategi terbaik untuk implementasi RAG dengan menjalankan beberapa eksperimen, bertahan, dan mengevaluasi hasilnya
Pendekatan terstruktur
Karena jumlah langkah dan variabel, penting untuk merancang solusi RAG Anda melalui proses evaluasi terstruktur. Evaluasi hasil setiap langkah dan adaptasi, mengingat kebutuhan Anda. Meskipun Anda harus mengevaluasi setiap langkah secara independen untuk pengoptimalan, hasil akhirnya adalah apa yang akan dialami oleh pengguna Anda. Pastikan untuk memahami semua langkah dalam proses ini sebelum menentukan kriteria penerimaan Anda sendiri untuk setiap langkah individu.