Bagikan melalui


Merancang dan mengembangkan solusi RAG

Pola Retrieval-Augmented Generation (RAG) adalah pendekatan standar industri untuk membangun aplikasi yang menggunakan model bahasa untuk memproses data spesifik atau data kepemilikan yang belum dikuasai oleh model. Arsitekturnya mudah, tetapi merancang, bereksperimen dengan, dan mengevaluasi solusi RAG yang sesuai dengan arsitektur ini melibatkan banyak pertimbangan kompleks yang mendapat manfaat dari pendekatan ilmiah yang ketat.

Artikel ini adalah pengenalan seri. Setiap artikel dalam seri ini mencakup fase tertentu dalam desain solusi RAG.

Artikel lain dalam seri ini mencakup pertimbangan berikut:

  • Cara menentukan dokumen dan kueri pengujian mana yang akan digunakan selama evaluasi
  • Cara memilih strategi potongan
  • Cara menentukan bagian mana yang harus Anda perkaya dan bagaimana memperkayanya
  • Cara memilih model penyematan yang tepat
  • Cara mengonfigurasi indeks pencarian
  • Cara menentukan pencarian mana, seperti vektor, teks lengkap, hibrid, dan beberapa pencarian manual, yang harus Anda lakukan
  • Cara mengevaluasi setiap langkah

Arsitektur RAG

Diagram yang menunjukkan arsitektur tingkat tinggi solusi RAG, termasuk alur permintaan dan alur data.

Alur aplikasi RAG

Alur kerja berikut menjelaskan alur tingkat tinggi untuk aplikasi RAG.

  1. Pengguna mengajukan kueri di antarmuka pengguna aplikasi pintar.
  2. Aplikasi cerdas melakukan panggilan API ke orkestrator. Anda dapat menerapkan orkestrator dengan alat atau platform seperti Semantic Kernel, layanan Azure AI Agent, atau LangChain.
  3. Orkestrator menentukan pencarian mana yang akan dilakukan di Azure AI Search dan mengeluarkan kueri.
  4. Orkestrator mengemas N hasil teratas dari kueri. Ini mengemas hasil teratas dan kueri sebagai konteks dalam perintah dan mengirim perintah ke model bahasa. Orkestrator mengembalikan respons ke aplikasi cerdas agar dapat dibaca oleh pengguna.

Aliran jalur data RAG

Alur kerja berikut menjelaskan 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 menyelesaikan langkah-langkah berikut:
    1. Dokumen gugus: Memecah dokumen menjadi bagian yang relevan secara semantik yang idealnya memiliki satu ide atau konsep.
    2. Memperkaya segmen data: Menambahkan bidang metadata yang dibuat oleh alur berdasarkan konten dalam segmen data. Alur data mengategorikan metadata ke dalam bidang diskrit, seperti judul, ringkasan, dan kata kunci.
    3. Menggunakan model embedding untuk membuat vektor dari potongan dan bidang metadata lainnya yang digunakan untuk pencarian vektor.
    4. Pertahankan gugus: Menyimpan gugus dalam indeks pencarian.

Pertimbangan desain dan evaluasi RAG

Anda harus membuat berbagai keputusan implementasi saat merancang solusi RAG Anda. Diagram berikut mengilustrasikan beberapa pertanyaan yang harus Anda ajukan saat membuat keputusan tersebut.

Diagram yang menunjukkan arsitektur tingkat tinggi solusi RAG, termasuk pertanyaan yang harus Anda ajukan saat Merancang solusi.

Daftar berikut memberikan deskripsi singkat tentang apa yang harus Anda lakukan selama setiap fase pengembangan solusi RAG.

  • Selama fase persiapan , Anda harus:

    • Tentukan domain solusi. Tentukan dengan jelas persyaratan bisnis untuk solusi RAG.
    • Kumpulkan dokumen uji yang representatif. Kumpulkan dokumen pengujian untuk solusi RAG Anda yang mewakili koleksi dokumen Anda.
    • Kumpulkan kueri uji. Kumpulkan informasi, uji berbagai kueri, dan hasilkan kueri sintetis serta kueri yang belum dicakup dalam dokumen Anda.
  • Selama fase segmentasi , Anda harus:

    • Memahami segmentasi ekonomi. Pahami faktor mana yang perlu dipertimbangkan saat Anda mengevaluasi biaya keseluruhan solusi pemartisian untuk koleksi teks Anda.
    • Lakukan analisis dokumen. Ajukan pertanyaan berikut untuk membantu Anda membuat keputusan saat menganalisis jenis dokumen:
      • Konten apa dalam dokumen yang ingin Anda abaikan atau kecualikan?
      • Konten apa yang ingin Anda ambil dalam gugus?
      • Bagaimana Anda ingin memotong konten tersebut?
    • Pahami pendekatan pengelompokan. Pahami berbagai pendekatan untuk memotong, termasuk pendekatan berbasis kalimat, ukuran tetap, dan kustom atau dengan menggunakan augmentasi model bahasa, analisis tata letak dokumen, dan model pembelajaran mesin.
    • Pahami bagaimana struktur dokumen memengaruhi pemotongan. Pilih pendekatan potongan berdasarkan tingkat struktur yang dimiliki dokumen.
  • Selama fase pengayaan potongan , Anda harus:

    • Potongan yang bersih. Terapkan pendekatan pembersihan untuk menghilangkan perbedaan yang tidak memengaruhi arti teks. Metode ini mendukung pendekatan kedekatan.
    • Tingkatkan potongan. Pertimbangkan untuk menambah data gugus Anda dengan bidang metadata umum dan pahami potensi penggunaannya dalam pencarian. Pelajari tentang alat atau teknik yang umum digunakan untuk menghasilkan konten metadata.
  • Selama fase penyematan, Anda harus:

    • Pahami pentingnya model pematriksan. Model penyematan dapat secara signifikan memengaruhi relevansi hasil pencarian vektor Anda.
    • Pilih model penyematan yang tepat untuk kasus penggunaan Anda.
    • Mengevaluasi model penyematan. Evaluasi model penyematan dengan memvisualisasikan penyematan dan menghitung jarak penyematan.
  • Selama fase pengambilan informasi , Anda harus:

    • Membuat indeks pencarian. Terapkan konfigurasi pencarian vektor yang sesuai ke bidang vektor Anda.
    • Memahami opsi pencarian. Pertimbangkan berbagai jenis pencarian, termasuk vektor, teks lengkap, hibrid, dan beberapa pencarian manual. Pelajari tentang cara membagi kueri menjadi subkueri dan memfilter kueri.
    • Mengevaluasi pencarian. Gunakan metode evaluasi pencarian kembali untuk mengevaluasi solusi pencarian Anda.
  • Selama fase evaluasi end-to-end model bahasa, Anda harus:

    • Memahami metrik evaluasi model bahasa. Ada beberapa metrik, termasuk keberpijakan, kelengkapan, pemanfaatan, dan relevansi, yang dapat Anda gunakan untuk mengevaluasi respons model bahasa.
    • Memahami kesamaan dan metrik evaluasi. Anda dapat menggunakan metrik kesamaan dan evaluasi untuk mengevaluasi solusi RAG Anda.
    • Pahami pentingnya dokumentasi, pelaporan, dan agregasi. Dokumentasikan hiperparameter dan hasil evaluasi. Agregat hasil dari beberapa kueri dan visualisasikan hasilnya.
    • Gunakan akselerator eksperimen RAG. Gunakan repositori GitHub akselerator eksperimen RAG untuk membantu tim Anda menemukan strategi terbaik untuk implementasi RAG dengan menjalankan beberapa eksperimen, bertahan, dan mengevaluasi hasilnya.

Pendekatan terstruktur

Karena jumlah langkah dan variabel, penting bagi Anda untuk mengikuti proses evaluasi terstruktur untuk solusi RAG Anda. Evaluasi hasil setiap langkah dan buat perubahan berdasarkan kebutuhan Anda. Anda harus mengevaluasi setiap langkah secara independen untuk pengoptimalan, tetapi ingat bahwa hasil akhirnya adalah apa yang dialami pelanggan Anda. Pastikan Anda memahami semua langkah dalam proses ini sebelum menentukan kriteria penerimaan Anda sendiri untuk setiap langkah.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya