Die Evaluierung von LLM-Anwendungen, insbesondere solchen, die RAG (Retrieval-Augmented Era) verwenden, ist wichtig, wird aber oft vernachlässigt. Ohne eine ordnungsgemäße Bewertung ist es quick unmöglich zu bestätigen, ob der Retriever Ihres Methods effektiv ist, ob die Antworten des LLM in den Quellen verankert sind (oder halluzinieren) und ob die Kontextgröße optimum ist.

Da bei ersten Checks die notwendigen realen Benutzerdaten für eine Basislinie fehlen, sind synthetische Bewertungsdatensätze eine praktische Lösung. In diesem Artikel erfahren Sie, wie Sie diese realistischen Testfälle mit DeepEval generieren, einem Open-Supply-Framework, das die LLM-Bewertung vereinfacht und es Ihnen ermöglicht, Ihre RAG-Pipeline zu vergleichen, bevor sie reside geht. Schauen Sie sich das an VOLLSTÄNDIGE CODES hier.

Installieren der Abhängigkeiten

!pip set up deepeval chromadb tiktoken pandas

OpenAI-API-Schlüssel

Da DeepEval externe Sprachmodelle nutzt, um seine detaillierten Bewertungsmetriken durchzuführen, ist für die Ausführung dieses Tutorials ein OpenAI-API-Schlüssel erforderlich.

  • Wenn Sie neu auf der OpenAI-Plattform sind, müssen Sie möglicherweise Rechnungsdetails hinzufügen und eine kleine Mindestzahlung (normalerweise 5 $) leisten, um Ihren API-Zugriff vollständig zu aktivieren.

Den Textual content definieren

In diesem Schritt erstellen wir manuell eine Textvariable, die als Quelldokument für die Generierung synthetischer Bewertungsdaten dient.

Dieser Textual content kombiniert vielfältige Sachinhalte aus mehreren Bereichen – darunter Biologie, Physik, Geschichte, Weltraumforschung, Umweltwissenschaften, Medizin, Informatik und antike Zivilisationen – um sicherzustellen, dass das LLM über reichhaltiges und abwechslungsreiches Materials verfügt, mit dem es arbeiten kann.

Der Synthesizer von DeepEval wird später:

  • Teilen Sie diesen Textual content in semantisch zusammenhängende Abschnitte auf.
  • Wählen Sie aussagekräftige Kontexte aus, die zur Generierung von Fragen geeignet sind, und
  • Erstellen Sie synthetische „goldene“ Paare – (Eingabe, erwartete_Ausgabe) – die echte Benutzeranfragen und ideale LLM-Antworten simulieren.

Nachdem wir die Textvariable definiert haben, speichern wir sie als .txt-Datei, damit DeepEval sie später lesen und verarbeiten kann. Sie können jedes andere Textdokument Ihrer Wahl verwenden – etwa einen Wikipedia-Artikel, eine Forschungszusammenfassung oder einen technischen Weblog-Beitrag – solange es informative und intestine strukturierte Inhalte enthält. Schauen Sie sich das an VOLLSTÄNDIGE CODES hier.

textual content = """
Crows are among the many smartest birds, able to utilizing instruments and recognizing human faces even after years.
In distinction, the archerfish shows exceptional precision, capturing jets of water to knock bugs off branches.
In the meantime, on the earth of physics, superconductors can carry electrical present with zero resistance -- a phenomenon
found over a century in the past however nonetheless unlocking new applied sciences like quantum computer systems in the present day.

Shifting to historical past, the Library of Alexandria was as soon as the most important middle of studying, however a lot of its assortment was
misplaced in fires and wars, turning into a logo of human curiosity and fragility. In area exploration, the Voyager 1 probe,
launched in 1977, has now left the photo voltaic system, carrying a golden report that captures sounds and pictures of Earth.

Nearer to residence, the Amazon rainforest produces roughly 20% of the world's oxygen, whereas coral reefs -- typically referred to as the
"rainforests of the ocean" -- assist practically 25% of all marine life regardless of protecting lower than 1% of the ocean ground.

In drugs, MRI scanners use robust magnetic fields and radio waves
to generate detailed photos of organs with out dangerous radiation.

In computing, Moore's Legislation noticed that the variety of transistors
on microchips doubles roughly each two years, although current advances
in AI chips have shifted that development.

The Mariana Trench is the deepest a part of Earth's oceans,
reaching practically 11,000 meters beneath sea degree, deeper than Mount Everest is tall.

Historic civilizations just like the Sumerians and Egyptians invented
mathematical programs 1000's of years earlier than trendy algebra emerged.
"""
with open("instance.txt", "w") as f:
    f.write(textual content)

Generierung synthetischer Bewertungsdaten

In diesem Code verwenden wir die Synthesizer-Klasse aus der DeepEval-Bibliothek, um automatisch synthetische Bewertungsdaten – auch Goldens genannt – aus einem vorhandenen Dokument zu generieren. Das Modell „gpt-4.1-nano“ wurde aufgrund seines geringen Gewichts ausgewählt. Wir stellen den Pfad zu unserem Dokument (instance.txt) bereit, das sachliche und beschreibende Inhalte zu verschiedenen Themen wie Physik, Ökologie und Informatik enthält. Der Synthesizer verarbeitet diesen Textual content, um aussagekräftige Frage-Antwort-Paare (Goldens) zu erstellen, die später zum Testen und Benchmarken der LLM-Leistung bei Verständnis- oder Abrufaufgaben verwendet werden können.

Das Skript generiert erfolgreich bis zu sechs synthetische Goldens. Die generierten Beispiele sind recht umfangreich – in einer Eingabe wird beispielsweise nach „EBewerten Sie die kognitiven Fähigkeiten von Rabenvögeln bei Gesichtserkennungsaufgaben“, während ein anderer erforscht „Der Sauerstoffbeitrag des Amazonas und seine Rolle in Ökosystemen.“ Jede Ausgabe enthält eine kohärente erwartete Antwort und direkt aus dem Dokument abgeleitete Kontextausschnitte, die zeigen, wie DeepEval automatisch hochwertige synthetische Datensätze für die LLM-Bewertung erstellen kann. Schauen Sie sich das an VOLLSTÄNDIGE CODES hier.

from deepeval.synthesizer import Synthesizer

synthesizer = Synthesizer(mannequin="gpt-4.1-nano")

# Generate artificial goldens out of your doc
synthesizer.generate_goldens_from_docs(
    document_paths=("instance.txt"),
    include_expected_output=True
)

# Print generated outcomes
for golden in synthesizer.synthetic_goldens(:3):  
    print(golden, "n")

Verwendung von EvolutionConfig zur Kontrolle der Eingabekomplexität

In diesem Schritt konfigurieren wir die EvolutionConfig, um zu beeinflussen, wie der DeepEval-Synthesizer komplexere und vielfältigere Eingaben generiert. Durch die Zuweisung von Gewichtungen zu verschiedenen Evolutionstypen – wie z ARGUMENTATION, MULTIKONTEXT, VERGLEICH, HYPOTHETISCHUnd IN_BREADTH – Wir leiten das Modell an, um Fragen zu erstellen, die sich in Argumentationsstil, Kontextverwendung und Tiefe unterscheiden.

Der num_evolutions Der Parameter gibt an, wie viele Entwicklungsstrategien auf jeden Textblock angewendet werden, sodass mehrere Perspektiven aus demselben Quellmaterial synthetisiert werden können. Dieser Ansatz trägt dazu bei, umfassendere Bewertungsdatensätze zu generieren, die die Fähigkeit eines LLM testen, differenzierte und vielschichtige Abfragen zu verarbeiten.

Die Ausgabe zeigt, wie sich diese Konfiguration auf die generierten Goldens auswirkt. In einer Eingabe wird beispielsweise nach dem Werkzeuggebrauch und der Gesichtserkennung von Krähen gefragt, was den LLM dazu veranlasst, eine detaillierte Antwort zu Problemlösung und adaptivem Verhalten zu erstellen. Ein weiterer Beitrag vergleicht die goldene Schallplatte von Voyager 1 mit der Bibliothek von Alexandria, was eine Argumentation über mehrere Kontexte und historische Bedeutung hinweg erfordert.

Jeder Golden umfasst den Originalkontext, angewandte Evolutionstypen (z. B. Hypothetisch, In-Breadth, Reasoning) und eine synthetische Qualitätsbewertung. Selbst mit einem einzigen Dokument erstellt dieser evolutionsbasierte Ansatz vielfältige, hochwertige synthetische Bewertungsbeispiele zum Testen der LLM-Leistung. Schauen Sie sich das an VOLLSTÄNDIGE CODES hier.

from deepeval.synthesizer.config import EvolutionConfig, Evolution

evolution_config = EvolutionConfig(
    evolutions={
        Evolution.REASONING: 1/5,
        Evolution.MULTICONTEXT: 1/5,
        Evolution.COMPARATIVE: 1/5,
        Evolution.HYPOTHETICAL: 1/5,
        Evolution.IN_BREADTH: 1/5,
    },
    num_evolutions=3
)

synthesizer = Synthesizer(evolution_config=evolution_config)
synthesizer.generate_goldens_from_docs(("instance.txt"))

Durch diese Fähigkeit, hochwertige, komplexe synthetische Daten zu generieren, umgehen wir die anfängliche Hürde fehlender echter Benutzerinteraktionen. Durch die Nutzung des Synthesizers von DeepEval – insbesondere unter Anleitung von EvolutionConfig – gehen wir weit über einfache Frage-Antwort-Paare hinaus.

Das Framework ermöglicht es uns, strenge Testfälle zu erstellen, die die Grenzen des RAG-Methods ausloten und alles von Multikontextvergleichen und hypothetischen Szenarien bis hin zu komplexen Überlegungen abdecken.

Dieser umfangreiche, individuell erstellte Datensatz bietet eine konsistente und vielfältige Foundation für das Benchmarking und ermöglicht es Ihnen, Ihre Abruf- und Generierungskomponenten kontinuierlich zu iterieren, Vertrauen in die Erdungsfunktionen Ihrer RAG-Pipeline aufzubauen und sicherzustellen, dass sie zuverlässige Leistung liefert, lange bevor sie überhaupt ihre erste Dwell-Abfrage verarbeitet. Schauen Sie sich das an VOLLSTÄNDIGE CODES hier.

Die obige iterative RAG-Verbesserungsschleife nutzt die synthetischen Daten von DeepEval, um einen kontinuierlichen, strengen Testzyklus für Ihre Pipeline einzurichten. Durch die Berechnung wesentlicher Metriken wie Erdung und Kontext erhalten Sie das notwendige Suggestions, um Ihre Retriever- und Modellkomponenten iterativ zu verfeinern. Dieser systematische Prozess stellt sicher, dass Sie ein verifiziertes, hochzuverlässiges RAG-System erhalten, das die Zuverlässigkeit vor der Bereitstellung aufrechterhält.


Schauen Sie sich das an VOLLSTÄNDIGE CODES hier. Schauen Sie sich gerne bei uns um GitHub-Seite für Tutorials, Codes und Notebooks. Sie können uns auch gerne weiter folgen Twitter und vergessen Sie nicht, bei uns mitzumachen 100.000+ ML SubReddit und Abonnieren Unser Publication. Warten! Bist du im Telegram? Jetzt können Sie uns auch per Telegram kontaktieren.


Ich habe einen Abschluss im Bauingenieurwesen (2022) von Jamia Millia Islamia, Neu-Delhi, und interessiere mich sehr für Datenwissenschaft, insbesondere für neuronale Netze und deren Anwendung in verschiedenen Bereichen.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert