kurz
BM25 Retrieval Enhanced Generation (BM25 RAG) ist eine fortschrittliche Technik, die den BM25-Algorithmus (Best Matching 25) für das Information Retrieval mit einem großen Sprachmodell für die Texterstellung kombiniert. Durch die Verwendung eines validierten probabilistischen Retrievalmodells verbessert diese Methode die Genauigkeit und Relevanz der generierten Antworten.
BM25 RAG Arbeitsablauf
Schnellstart
Notebook
Sie können das in dieser Codebasis enthaltene Jupyter-Notebook ausführen, um das BM25 RAG im Detail zu untersuchen. https://github.com/adithya-s-k/AI-Engineering.academy/tree/main/RAG/01_BM25_RAG
Chat-Anwendung
- Abhängigkeiten installieren:
pip install -r anforderungen.txt
- Führen Sie die Anwendung aus:
python app.py
- Dynamische Aufnahme von Daten:
python app.py --ingest --data_dir /path/to/documents
Server (Computer)
Starten Sie den Server:
python server.py
Der Server enthält zwei Endpunkte:
/api/ingest
für das Ingesting neuer Dokumente/api/abfrage
: für Anfrage BM25 RAG Systeme
Die wichtigsten Merkmale des BM25 RAG
- probabilistische SucheBM25 verwendet ein probabilistisches Modell zur Einstufung von Dokumenten und bietet damit eine theoretisch fundierte Grundlage für das Retrieval.
- WortfrequenzsättigungBM25 berücksichtigt die abnehmenden Grenzerträge von doppelten Begriffen und verbessert die Suchqualität.
- Normalisierung der DokumentenlängeDer Algorithmus berücksichtigt die Länge der Dokumente und reduziert die Tendenz zu längeren Dokumenten.
- kontextuelle RelevanzBM25 RAG: Durch die Generierung einer Antwort auf der Grundlage der abgerufenen Informationen liefert das BM25 RAG eine genauere und relevantere Antwort.
- SkalierbarkeitBM25: Der Suchschritt BM25 verarbeitet effizient große Dokumentenmengen.
Vorteile des BM25 RAG
- Verbesserte GenauigkeitKombination der Vorteile von probabilistischem Retrieval und neuronaler Textgenerierung.
- InterpretierbarkeitDer Scoring-Mechanismus des BM25 ist besser interpretierbar als die Dense-Vector-Retrieval-Methode.
- Behandlung von Long-Tail-AnfragenHervorragend geeignet für Abfragen, die spezifische oder seltene Informationen erfordern.
- Keine Einbettung erforderlichIm Gegensatz zu vektorbasierten RAGs benötigt BM25 keine Dokumenteneinbettung, was den Rechenaufwand reduziert.
Vorbedingungen
- Python 3.7+
- Jupyter Notebook oder JupyterLab (zum Ausführen des Notizbuchs)
- Erforderliche Python-Pakete (siehe
Anforderungen.txt
) - API-Schlüssel für das ausgewählte Sprachmodell (z. B. OpenAI API-Schlüssel)