Merancang dan mengembangkan solusi RAG

Azure AI services
Pencarian Azure AI
Azure OpenAI Service
Azure Machine Learning

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.

  1. Pengguna mengeluarkan kueri di antarmuka pengguna aplikasi cerdas.
  2. Aplikasi cerdas melakukan panggilan API ke orkestrator. Orkestrator dapat diimplementasikan dengan alat atau platform seperti Semantic Kernel, azure Pembelajaran Mesin prompt flow, atau LangChain.
  3. Orkestrator menentukan pencarian apa yang harus dilakukan di Azure AI Search dan mengeluarkan kueri.
  4. 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.

  1. Dokumen didorong atau ditarik ke dalam alur data.

  2. Alur data memproses setiap dokumen satu per satu dengan langkah-langkah berikut:

    1. Dokumen gugus - Memecah dokumen menjadi bagian yang relevan secara semantik yang idealnya memiliki satu ide atau konsep.
    2. Memperkaya potongan - Menambahkan bidang metadata yang dibuat dari konten dalam gugus ke bidang diskrit, seperti judul, ringkasan, dan kata kunci.
    3. Potongan semat - Menggunakan model penyematan untuk mem-vektorisasi gugus dan bidang metadata lainnya yang digunakan untuk pencarian vektor.
    4. 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.

Diagram yang menunjukkan arsitektur tingkat tinggi solusi RAG, termasuk pertanyaan yang muncul saat merancang solusi.

Gambar 2. Pertanyaan yang muncul saat merancang solusi RAG

Rangkaian artikel dalam panduan ini membahas pertimbangan tersebut dan banyak lagi.

Fase persiapan

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

Fase pemotongan

  • 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

Fase pengayaan gugus

  • 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

Fase penyematan

  • 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

Fase pengambilan informasi

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

Kontributor

Langkah berikutnya