0Pricing
AI Agents · Lekcja

Ocena RAG (RAGAS, Recall@K)

Mierz wierność, trafność odpowiedzi, precyzję kontekstu i recall@K, aby sprawdzić, czy wprowadzone zmiany pomagają.

Ocena RAG (RAGAS, Recall@K) to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Nie można ulepszyć tego, czego nie można zmierzyć

RAG ma wiele parametrów: rozmiar fragmentu, top-K, reranker, prompt, model. Bez metryk każda zmiana jest zgadywaniem.

Kluczowe metryki RAG

  1. Pobieranie: czy pobraliśmy właściwe fragmenty?
  2. Wierność: czy odpowiedź pozostaje oparta na fragmentach?
  3. Trafność odpowiedzi: czy odpowiedź odnosi się do pytania?
  4. Precyzja/pełność kontekstu: jaki odsetek pobranych fragmentów jest użyteczny

Recall@K

Należy utworzyć referencyjny zbiór par (pytanie, lista identyfikatorów istotnych fragmentów). Następnie zmierzyć, jak często wśród pobranych fragmentów top-K znajduje się co najmniej jeden istotny:

def recall_at_k(eval_set, k=5):
    hits = 0
    for item in eval_set:
        retrieved = retriever(item['question'], k=k)
        if any(c.id in item['relevant_ids'] for c in retrieved):
            hits += 1
    return hits / len(eval_set)

Precision@K

Jaka część pobranych fragmentów jest istotna?

def precision_at_k(eval_set, k=5):
    total_relevant = 0
    total_retrieved = 0
    for item in eval_set:
        retrieved = retriever(item['question'], k=k)
        total_relevant += sum(1 for c in retrieved if c.id in item['relevant_ids'])
        total_retrieved += k
    return total_relevant / total_retrieved

MRR (średnia odwrotność rangi)

Jak wysoko w rankingu znajduje się PIERWSZY istotny dokument?

def mrr(eval_set, k=10):
    total = 0
    for item in eval_set:
        retrieved = retriever(item['question'], k=k)
        for rank, c in enumerate(retrieved, start=1):
            if c.id in item['relevant_ids']:
                total += 1 / rank
                break
    return total / len(eval_set)

Wierność (LLM-as-Judge)

Należy użyć LLM do sprawdzenia, czy każde twierdzenie w odpowiedzi jest poparte przez kontekst:

judge_prompt = '''
Given the context and answer, identify each factual claim in the answer.
For each claim, judge whether the context supports it.
Return {claims: [{claim, supported: true/false}]}.
'''
result = judge_llm.invoke(judge_prompt.format(context=ctx, answer=ans))

Trafność odpowiedzi

Ocena odwrotna: należy zapytać LLM „Czy ta odpowiedź mogłaby być odpowiedzią na to pytanie?”. Pozwala wykrywać odpowiedzi nie na temat.

Framework RAGAS

RAGAS automatyzuje powyższe metryki:

# pip install ragas
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision, context_recall

results = evaluate(
    dataset,            # HF dataset with question, contexts, answer, ground_truth
    metrics=[faithfulness, answer_relevancy, context_precision, context_recall]
)
print(results)

Tworzenie zbioru referencyjnego

20–200 krotek (pytanie, oczekiwana odpowiedź, istotne fragmenty) wyselekcjonowanych przez ludzi. Należy uwzględnić:

  • Typowe zapytania
  • Przypadki brzegowe
  • Dane adversarialne (pytania spoza korpusu)

Syntetyczne zbiory ewaluacyjne

Inicjalizacja: należy poprosić LLM o wygenerowanie par pytań i odpowiedzi na podstawie dokumentów. Jakość będzie niższa, ale proces szybszy:

synth_prompt = 'Read this document and write 3 questions a user might ask, with answers from the doc:\n{doc}'
# Use as a starting point; humans curate later.
print(synth_prompt)

Zbiory danych LangSmith i Langfuse

Oba narzędzia pozwalają przekształcać ślady produkcyjne w zbiory ewaluacyjne. Należy wybrać 50 rzeczywistych pytań, dla których uzyskano słabe wyniki, oznaczyć poprawne odpowiedzi i użyć tego zbioru jako punktu odniesienia.

Nie optymalizować nadmiernie jednej metryki

Maksymalizowanie Recall@K może pogorszyć Precision@K, powodując zbyt wiele wyników fałszywie dodatnich. Należy śledzić wiele metryk oraz metrykę złożoną.

Testy A/B na produkcji

Gdy dostępna jest ewaluacja offline skorelowana z zadowoleniem użytkowników, można testować zmiany A/B na produkcji i porównywać zarówno metryki, jak i odsetek pozytywnych ocen użytkowników.

Definicja Recall@K

Co oznacza Recall@5 = 0.8?

Podsumowanie

Należy utworzyć referencyjny zbiór danych. Mierzyć Recall@K, Precision@K, MRR, wierność i trafność odpowiedzi. Używać RAGAS do automatyzacji. Iteracyjnie ulepszać system na podstawie metryk.

Często zadawane pytania

Czy lekcja „Ocena RAG (RAGAS, Recall@K)” jest bezpłatna?

Tak — pełny tekst „Ocena RAG (RAGAS, Recall@K)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Ocena RAG (RAGAS, Recall@K)”?

Mierz wierność, trafność odpowiedzi, precyzję kontekstu i recall@K, aby sprawdzić, czy wprowadzone zmiany pomagają. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Ocena RAG (RAGAS, Recall@K)”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Ponowne szeregowanie za pomocą cross-encoderów
  2. HyDE: embeddingi hipotetycznych dokumentów
  3. Wyszukiwanie wielowektorowe (ColBERT)
  4. Ocena RAG (RAGAS, Recall@K)
← Powrót do AI Agents