Bagikan melalui


Evaluator generasi Retrieval-Augmented (RAG)

Sistem Retrieval-Augmented Generation (RAG) mencoba menghasilkan jawaban yang paling relevan yang konsisten dengan dokumen dasar sebagai respons terhadap kueri pengguna. Kueri pengguna memicu pengambilan pencarian di korpus dokumen grounding untuk memberikan konteks grounding bagi model AI untuk menghasilkan respons.

Penilai Praktik terbaik Gunakan ketika diperlukan Kegunaan Keluaran
Pengambilan Dokumen Evaluasi proses Kualitas pengambilan adalah hambatan untuk RAG Anda, dan Anda memiliki label relevansi kueri (kebenaran dasar) untuk metrik kualitas pencarian yang tepat untuk penelusuran kesalahan dan pengoptimalan parameter Mengukur metrik kualitas pencarian (Fidelity, NDCG, XDCG, Max Relevance, Holes) dengan membandingkan dokumen yang diambil dengan label kebenaran dasar Komposit: Fidelity, NDCG, XDCG, Max Relevance, Holes (dengan Pass/Fail)
Retrieval Evaluasi proses Anda ingin menilai kualitas tekstual konteks yang diambil, tetapi Anda tidak memiliki kebenaran dasar Mengukur seberapa relevan potongan konteks yang diambil untuk mengatasi kueri menggunakan hakim LLM Biner: Lulus/Gagal berdasarkan ambang batas (skala 1-5)
Groundedness Evaluasi sistem Anda menginginkan definisi groundedness yang dibulatkan dengan baik yang berfungsi dengan input agen, dan membawa model GPT Anda sendiri sebagai hakim LLM Mengukur seberapa baik respons yang dihasilkan selaras dengan konteks yang diberikan tanpa membuat konten (aspek presisi) Biner: Lulus/Gagal berdasarkan ambang batas (skala 1-5)
Groundedness Pro (pratinjau) Evaluasi sistem Anda ingin definisi groundedness ketat yang didukung oleh Azure AI Content Safety dan menggunakan model layanan kami Mendeteksi apakah respons sangat konsisten dengan konteks menggunakan layanan Azure AI Content Safety Biner: True/False
Relevansi Evaluasi sistem Anda ingin menilai seberapa baik respons RAG mengatasi kueri tetapi tidak memiliki kebenaran dasar Mengukur akurasi, kelengkapan, dan relevansi langsung respons terhadap kueri Biner: Lulus/Gagal berdasarkan ambang batas (skala 1-5)
Kelengkapan Respons (pratinjau) Evaluasi sistem Anda ingin memastikan respons RAG tidak melewatkan informasi penting (aspek pengenalan) dari kebenaran dasar Anda Mengukur seberapa lengkap respons mencakup informasi yang diharapkan dibandingkan dengan kebenaran dasar Biner: Lulus/Gagal berdasarkan ambang batas (skala 1-5)

Pikirkan tentang groundedness dan kelengkapan respons sebagai:

  • Groundedness berfokus pada aspek presisi respons. Ini tidak berisi konten di luar konteks grounding.
  • Kelengkapan respons berfokus pada aspek pengenalan respons. Ini tidak melewatkan informasi penting dibandingkan dengan respons yang diharapkan atau kebenaran dasar.

Evaluasi sistem

Evaluasi sistem memeriksa kualitas respons akhir dalam alur kerja RAG Anda. Evaluator ini memastikan bahwa konten yang dihasilkan AI akurat, relevan, dan lengkap berdasarkan konteks dan kueri pengguna yang disediakan:

  • Groundedness - Apakah respons di-grounded dalam konteks yang disediakan tanpa fabrikasi?
  • Groundedness Pro - Apakah respons benar-benar mematuhi konteks (Azure AI Content Safety)?
  • Relevansi - Apakah respons secara akurat mengatasi kueri pengguna?
  • Kelengkapan Respons (pratinjau) - Apakah respons mencakup semua informasi penting dari kebenaran dasar?

Examples:

Evaluasi proses

Evaluasi proses menilai kualitas langkah pengambilan dokumen dalam sistem RAG. Langkah pengambilan sangat penting untuk memberikan konteks yang relevan dengan model bahasa:

  • Pengambilan - Seberapa relevan potongan konteks yang diambil ke kueri?
  • Pengambilan Dokumen - Seberapa baik pengambilan cocok dengan label kebenaran dasar (memerlukan qrels)?

Untuk contoh selengkapnya, lihat semua sampel evaluator kualitas.

Menggunakan evaluator RAG

Evaluator RAG menilai seberapa baik sistem AI mengambil dan menggunakan konteks untuk menghasilkan respons yang di-grounded. Setiap evaluator memerlukan pemetaan dan parameter data tertentu:

Penilai Input yang diperlukan Parameter yang diperlukan
Groundedness response, context (disarankan); query opsional untuk penilaian yang ditingkatkan; atau query, response untuk mode respons agen deployment_name
Groundedness Pro (pratinjau) query, , responsecontext (tidak ada)
Relevansi query, response deployment_name
Kelengkapan Respons (pratinjau) ground_truth, response deployment_name
Retrieval query, context deployment_name
Pengambilan Dokumen retrieval_ground_truth, retrieved_documents (tidak ada)

Contoh masukan

Himpunan data pengujian Anda harus berisi bidang yang dirujuk dalam pemetaan data Anda:

{"query": "What are the store hours?", "context": "Our store is open Monday-Friday 9am-6pm and Saturday 10am-4pm.", "response": "The store is open weekdays from 9am to 6pm and Saturdays from 10am to 4pm."}
{"query": "What is the return policy?", "context": "Items can be returned within 30 days with original receipt for full refund.", "response": "You can return items within 30 days if you have your receipt."}

Format konteks

Bidang context adalah string biasa yang berisi konteks yang diambil yang disediakan untuk model. Untuk pengambilan multi-gugus, gabungkan potongan menjadi satu string menggunakan pemisah seperti \n\n di antara gugus:

{"query": "What is the return policy?", "context": "Items can be returned within 30 days with receipt.\n\nGift items are eligible for store credit only.", "response": "You can return items within 30 days with your receipt."}

Nota

Untuk evaluasi agen dengan {{sample.output_items}}, context bidang bersifat opsional jika respons berisi pesan panggilan alat — evaluator dapat mengekstrak konteks dari hasil panggilan alat.

Contoh konfigurasi

Sintaks pemetaan data:

  • {{item.field_name}} mereferensikan bidang dari himpunan data pengujian Anda (misalnya, {{item.query}}).
  • {{sample.output_items}} mereferensikan respons agen yang dihasilkan atau diambil selama evaluasi. Gunakan ini saat mengevaluasi dengan target agen atau sumber data respons agen. Untuk evaluasi agen, context bersifat opsional jika respons berisi panggilan alat—evaluator dapat mengekstrak konteks dari hasil panggilan alat.

Petunjuk / Saran

Untuk hasil Groundedness terbaik, berikan ketiga bidang — query, response, dan context. Bidang query bersifat opsional tetapi meningkatkan akurasi penilaian saat tersedia.

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "groundedness",
        "evaluator_name": "builtin.groundedness",
        "initialization_parameters": {"deployment_name": model_deployment},
        "data_mapping": {
            "context": "{{item.context}}",
            "response": "{{item.response}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "relevance",
        "evaluator_name": "builtin.relevance",
        "initialization_parameters": {"deployment_name": model_deployment},
        "data_mapping": {"query": "{{item.query}}", "response": "{{item.response}}"},
    },
    {
        "type": "azure_ai_evaluator",
        "name": "retrieval",
        "evaluator_name": "builtin.retrieval",
        "initialization_parameters": {"deployment_name": model_deployment},
        "data_mapping": {"query": "{{item.query}}", "context": "{{item.context}}"},
    },
]

Lihat Menjalankan evaluasi dari SDK untuk detail tentang menjalankan evaluasi dan mengonfigurasi sumber data.

Contoh output

Evaluator ini mengembalikan skor dari 1 hingga 5, di mana 1 sangat buruk dan 5 sangat baik. Ambang batas pass default adalah 3. Skor pada atau di atas ambang dianggap lolos. Bidang output utama:

{
    "type": "azure_ai_evaluator",
    "name": "Groundedness",
    "metric": "groundedness",
    "score": 4,
    "label": "pass",
    "reason": "The response is well-grounded in the provided context without fabricating content.",
    "threshold": 3,
    "passed": true
}

Groundedness Pro menggunakan layanan Azure AI Content Safety dan mengembalikan hasil boolean alih-alih skor numerik:

{
    "type": "azure_ai_evaluator",
    "name": "Groundedness Pro",
    "metric": "groundedness_pro",
    "label": "pass",
    "reason": "The response is strictly consistent with the provided context.",
    "passed": true
}

Pengambilan dokumen

Karena peran hulunya dalam RAG, kualitas pengambilan penting. Jika kualitas pengambilan buruk dan respons membutuhkan pengetahuan khusus korpus, ada lebih sedikit kemungkinan model bahasa Anda memberi Anda jawaban yang memuaskan. Pengukuran yang paling tepat adalah menggunakan document_retrieval evaluator untuk mengevaluasi kualitas pengambilan dan mengoptimalkan parameter pencarian Anda untuk RAG.

  • Evaluator pengambilan dokumen mengukur seberapa baik RAG mengambil dokumen yang benar dari penyimpanan dokumen. Sebagai evaluator komposit yang berguna untuk skenario RAG dengan kebenaran dasar, ini menghitung daftar metrik kualitas pencarian yang berguna untuk men-debug alur RAG Anda:

    Ukuran Kategori Deskripsi
    Kesetiaan Keakuratan Pencarian Seberapa baik potongan n teratas yang diambil mencerminkan konten untuk kueri tertentu: jumlah dokumen yang baik yang dikembalikan dari jumlah total dokumen baik yang diketahui dalam himpunan data
    NDCG Cari NDCG Seberapa baik peringkat ke urutan yang ideal di mana semua item yang relevan berada di bagian atas daftar
    XDCG Cari XDCG Seberapa baik hasilnya ada di dokumen top-k terlepas dari penilaian dokumen indeks lainnya
    Relevansi Maks N Cari Relevansi Maks Relevansi maksimum dalam gugus top-k
    Holes Kewarasan Label Pencarian Jumlah dokumen dengan penilaian relevansi kueri yang hilang, atau kebenaran dasar
  • Untuk mengoptimalkan RAG Anda dalam skenario yang disebut sapuan parameter, Anda dapat menggunakan metrik ini untuk mengkalibrasi parameter pencarian untuk hasil RAG yang optimal. Hasilkan hasil pengambilan yang berbeda untuk berbagai parameter pencarian seperti algoritma pencarian (vektor, semantik), top_k, dan ukuran gugus yang Anda minati dalam pengujian. Kemudian gunakan document_retrieval untuk menemukan parameter pencarian yang menghasilkan kualitas pengambilan tertinggi.

Contoh pengambilan dokumen

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "document_retrieval",
        "evaluator_name": "builtin.document_retrieval",
        "initialization_parameters": {
            "ground_truth_label_min": 1,  # SDK default: 0
            "ground_truth_label_max": 5,  # SDK default: 4
        },
        "data_mapping": {
            "retrieval_ground_truth": "{{item.retrieval_ground_truth}}",
            "retrieved_documents": "{{item.retrieved_documents}}",
        },
    },
]

retrieval_ground_truth berisi skor relevansi berlabel manusia per dokumen:

retrieval_ground_truth = [
    {"document_id": "1", "query_relevance_label": 4},
    {"document_id": "2", "query_relevance_label": 2},
]

berisi retrieved_documents skor dari sistem pencarian Anda:

retrieved_documents = [
    {"document_id": "2", "relevance_score": 45.1},
    {"document_id": "6", "relevance_score": 35.8},
]

Output pengambilan dokumen

Evaluator document_retrieval mengembalikan beberapa metrik untuk kualitas pengambilan:

[
    {
        "type": "azure_ai_evaluator",
        "name": "Document Retrieval",
        "metric": "ndcg@3",
        "score": 0.646,
        "label": "pass",
        "passed": true
    },
    {
        "type": "azure_ai_evaluator",
        "name": "Document Retrieval",
        "metric": "fidelity",
        "score": 0.019,
        "label": "fail",
        "passed": false
    },
    # more metrics...
]

Evaluator juga mengembalikan xdcg@3metrik , , top3_max_relevancetop1_relevance, holes, dan holes_ratio .