Die grundlegende Retrieval-Augmented Technology (RAG)-Pipeline verwendet ein Encodermodell, um bei einer Abfrage nach ähnlichen Dokumenten zu suchen.
Dies nennt man auch semantische Suche weil der Encoder Textual content in eine hochdimensionale Vektordarstellung (Einbettung genannt) umwandelt, in der semantisch ähnliche Texte nahe beieinander liegen.
Bevor wir Giant Language Fashions (LLMs) hatten, um diese Vektoreinbettungen zu erstellen, struggle der BM25-Algorithmus ein sehr beliebter Suchalgorithmus. BM25 konzentriert sich auf wichtige Schlüsselwörter und sucht nach exakten Übereinstimmungen in den verfügbaren Dokumenten. Dieser Ansatz heißt Stichwortsuche.
Wenn Sie Ihre RAG-Pipeline auf die nächste Ebene bringen möchten, sollten Sie versuchen Hybridsuche. Die Hybridsuche kombiniert die Vorteile der Stichwortsuche und der semantischen Suche, um die Suchqualität zu verbessern.
In diesem Artikel behandeln wir die Theorie und implementieren alle drei Suchansätze in Python.
Inhaltsverzeichnis
· RAG-Abruf
∘ Stichwortsuche mit BM25
∘ Semantische Suche mit dichten Einbettungen
∘ Semantische Suche oder Hybridsuche?
∘ Hybride Suche
∘ Alles zusammenfügen
·…