Pressemitteilungen
Modelle
Produkte
keyboard_arrow_down
Leser
Lesen Sie URLs und suchen Sie im Internet nach fundierteren LLMs.
Einbettungen
Multimodale und mehrsprachige Einbettungen von Weltklasse.
Reranker
Neural Retriever der Weltklasse zur Maximierung der Suchrelevanz.
DeepSearch
Suchen, lesen und überlegen, bis die beste Antwort gefunden ist.
Mehr
keyboard_arrow_down
Klassifikator
Zero-Shot- und Few-Shot-Klassifizierung für Bild und Text.
Segmentierer
Schneiden Sie langen Text in Abschnitte und führen Sie eine Tokenisierung durch.

API-Dokumente
Automatische Codegenerierung für Ihre Copilot-IDE oder LLM
open_in_new


Unternehmen
keyboard_arrow_down
Über uns
Kontaktieren Sie unseren Vertrieb
Praktikantenprogramm
Begleiten Sie uns
open_in_new
Logo herunterladen
open_in_new
Terms & amp; Bedingungen


Einloggen
login
Was ist ein Reranker?
Warum jina-reranker-v1-base-en verwenden?
Bevor wir beginnen: Eine Anmerkung zu LlamaIndex Node-Postprocessors
Folgen Sie auf Google Colab
Fazit
Tech-Blog
März 07, 2024

Präzises RAG mit Jina Reranker und LlamaIndex

Einfach neu anordnen! Jina Reranker und LlamaIndex heben Ihr RAG auf das nächste Level.
Collaborative graphic with "RERANKER" and "Llamalindex" logos over a purple background with crossed white abstract lines.
Francesco Kruk
Saahil Ognawala
Francesco Kruk, Saahil Ognawala • 7 Minuten gelesen

Während Bi-Encoder-Modelle wie Jina Embeddings schnell viele passende Dokumente aus einer Datenbank mit vorberechneten Embeddings abrufen können, können Reranker-Modelle diese Menge durch einen langsameren, aber präziseren Cross-Encoding-Ansatz von Benutzeranfragen und abgerufenen Dokumenten verfeinern. Jina AI hat unser erstes Reranker-Modell veröffentlicht, jina-reranker-v1-base-en, und in diesem Artikel werden wir ausführlich erläutern, warum ein Reranker für die Optimierung der RAG-Genauigkeit essentiell ist und wie man mit Jina Embeddings/Reranker, LlamaIndex und dem Mixtral-8x7B-Instruct-v0.1 Sprachmodell (gehostet auf HuggingFace) ein hochmodernes RAG-System aufbaut.

Sie benötigen:

  • Einen kombinierten Schlüssel für die Jina Embeddings und Reranker API.
  • Ein HuggingFace-Konto und Token.
Reranker API
Maximize the search relevancy and RAG accuracy at ease

Da die Jina Embeddings und Reranker-Modelle sowie Mixtral remote laufen und über eine RESTful API zugegriffen werden, benötigen Sie keine spezielle Hardware.

tagWas ist ein Reranker?

Bevor wir mit dem Tutorial fortfahren, ist es wichtig zu erläutern, was Reranker überhaupt sind. Für ein vollständiges Verständnis davon, was ein Reranker ist und warum Jina Reranker V1 die beste Wahl für Sie ist, empfehlen wir Ihnen, unseren Jina Reranker V1 Release-Beitrag zu lesen, bevor Sie fortfahren.

Maximizing Search Relevance and RAG Accuracy with Jina Reranker
Boost your search and RAG accuracy with Jina Reranker. Our new model improves the accuracy and relevance by 20% over simple vector search. Try it now for free!

Zusammenfassend sind Reranker Cross-Encoder-Modelle, die als Eingabe ein Dokument-Abfrage-Paar erhalten und einen kombinierten Relevanz-Score für dieses Eingabepaar ausgeben. Mit Rerankern können Benutzer Dokumente von den relevantesten zu den am wenigsten relevanten für eine bestimmte Abfrage sortieren.

tagWarum jina-reranker-v1-base-en verwenden?

Reranking liefert viel relevantere Informationen als die ausschließliche Verwendung eines Embedding-Modells. In unserem Modell-Release-Beitrag haben wir gezeigt, dass sich Jina Reranker im Vergleich zu seinen Open- und Closed-Source-Konkurrenten auszeichnet und Suchsysteme um 8% in der Trefferquote und 33% im Mean Reciprocal Rank verbessern kann.

Dies hat einen direkten Einfluss auf die Qualität der Antworten, die durch die angewandte RAG-Lösung erhalten werden. Mit der Theorie, die diese Behauptung untermauert, zeigen wir Ihnen ein praktisches Beispiel, damit Sie mit eigenen Augen sehen können, welche Wirkung Jina Reranker auf eine mit LlamaIndex erstellte RAG-Pipeline hat.

tagBevor wir beginnen: Eine Anmerkung zu LlamaIndex Node-Postprocessors

Node-Postprocessors in LlamaIndex sind Module, die Nodes nach dem Abruf und vor der Antwortsynthese innerhalb einer Query Engine transformieren oder filtern. Als Teil dieses Pakets bietet LlamaIndex sowohl integrierte Optionen als auch eine API für benutzerdefinierte Erweiterungen.

Jina Reranker wurde nun als Node Postprocessor in LlamaIndex integriert. Um die Antwortgenauigkeit zu erhöhen, werden abgerufene Nodes basierend auf der Relevanz zur Abfrage neu geordnet, und die top N Nodes werden zurückgegeben.

tagFolgen Sie auf Google Colab

Dieses Tutorial hat ein begleitendes Notebook, das Sie auf Google Colab oder lokal ausführen können.

llama_index/docs/docs/examples/node_postprocessor/JinaRerank.ipynb at main · run-llama/llama_index
LlamaIndex is a data framework for your LLM applications - run-llama/llama_index
GitHubrun-llama

tagDer Datensatz: Nike Kids Produktkatalog 2024

Um die Leistungssteigerung von Jina Reranker für RAG-Anwendungen zu demonstrieren, haben wir den Nike Kids Produktkatalog 2024 als unseren Datensatz gewählt. Das Dokument enthält eine strukturierte Sammlung von Kinderprodukten, die Nike 2024 anbietet. Wir haben diesen Datensatz ausgewählt, da er die Wirkung eines Rerankers deutlich zeigt und für die meisten Benutzer nachvollziehbar ist.

tagInstallation der Voraussetzungen

Um die Anforderungen zu installieren, führen Sie aus:

pip install llama-index-postprocessor-jinaai-rerank
pip install llama-index-embeddings-jinaai
pip install llama-index
pip install llama-index-llms-huggingface
pip install "huggingface_hub[inference]"

tagZugriff auf Mixtral LLM

Um das Mixtral-8x7B-Instruct-v0.1 LLM zu verwenden, benötigen Sie ein HuggingFace Token.

from llama_index.llms.huggingface import HuggingFaceInferenceAPI

hf_inference_api_key = "<your HuggingFace access token here>"

mixtral_llm = HuggingFaceInferenceAPI(
    model_name="mistralai/Mixtral-8x7B-Instruct-v0.1",
    token=hf_inference_api_key,
)

tagZugriff auf Jina Embeddings und Jina Reranker

Um unsere Jina Embeddings und Jina Reranker zu verwenden, benötigen Sie einen dedizierten API-Schlüssel. Speichern Sie ihn in einer Variable namens api_key und rufen Sie das Jina Embeddings-Modell von LlamaIndex auf:

from llama_index.embeddings.jinaai import JinaEmbedding

api_key = "<your Jina key here>"
jina_embeddings = JinaEmbedding(api_key=api_key)

Auf ähnliche Weise können Sie das Jina Reranker-Modell aufrufen. Mit dem Parameter top_n können Sie festlegen, wie viele der relevantesten Dokumente in der endgültigen Ausgabe zurückgegeben werden sollen. In diesem Fall setzen wirtop_n=2:

from llama_index.postprocessor.jinaai_rerank import JinaRerank

jina_rerank = JinaRerank(api_key=api_key, top_n=2)

tagHerunterladen des Nike Kids Produktkatalogs 2024

Um die Daten herunterzuladen, führen Sie den folgenden Code aus:

from llama_index.core import SimpleDirectoryReader
import requests

url = '<https://niketeam-asset-download.nike.net/catalogs/2024/2024_Nike%20Kids_02_09_24.pdf?cb=09302022>'
response = requests.get(url)

with open('Nike_Catalog.pdf', 'wb') as f:
    f.write(response.content)

reader = SimpleDirectoryReader(
    input_files=["Nike_Catalog.pdf"]
)

documents = reader.load_data()

tagGenerieren und Indexieren von Embeddings mit Jina Embeddings

Nachdem das Setup abgeschlossen ist, werden wir die Embedding-Vektoren (Nodes) generieren und indexieren. Jina Embeddings v2 Modelle akzeptieren Eingaben von bis zu 8192 Tokens, was ausreichend ist, sodass wir für ein Dokument wie dieses keine weitere Textsegmentierung vornehmen oder prüfen müssen, ob ein Abschnitt zu viele Tokens enthält. Um das Dokument einzubetten und zu indexieren, führen Sie den folgenden Code aus:

from llama_index.core import VectorStoreIndex

index = VectorStoreIndex.from_documents(
    documents=documents, embed_model=jina_embeddings
)

tagAbfrage von Ergebnissen ohne Jina Reranker

Wenn wir nach spezifischen Informationen aus diesem Textset suchen, führt die LlamaIndex query_engine Folgendes durch:

  1. Mit Jina Embeddings V2 erstellt sie ein Embedding für die Abfrage.
  2. Sie verwendet den Index, um die top_k = 10 gespeicherten Embeddings mit der höchsten Kosinus-Ähnlichkeit zur Abfrage-Embedding zu erhalten und gibt deren Position im Index zurück.
  3. Sie sucht den entsprechenden Text im Vektor-Datenarray.

Fragen wir, was das beste Nike Trikot in Bezug auf das Material ist:

query_engine = index.as_query_engine(
    similarity_top_k=10, llm=mixtral_llm
)
response = query_engine.query(
    "What are the best padded pants that Nike sells?",
)

print(response.source_nodes[0].text)

Ergebnis:

NIKE KIDS  EQUIPMENT87NIKE BRASILIA SMALL DUFFEL 9.5 
DM3976 $37.00
SIZES: Misc  OFFER DATE: 07/01/22  END DATE: 07/01/25
Tough 600D polyester • Durable 300D polyester • Detachable shoulder
strap • Ventilated shoe or wet/dry storage • Secure zip pocket • 
Limited lifetime guarantee • Screened Swoosh design trademark
DIMENSIONS:  20" L x 10" W x 11" H 
010 Black/Black/(White) 068 Iron Grey/Black/(White)
...
Drei Nike Brasilia Small Duffel Taschen, je $37, in schwarz, grau, marine mit aufgelisteten Funktionen und Angebotsdaten von 07/01/22 bis 0

tagAbfrage von Ergebnissen mit Reranker

Jetzt wollen wir den Reranker anwenden, um zu sehen, ob die RAG-Anwendung ein anderes, relevannteres Ergebnis liefert. Dazu müssen wir die node_postprocessors zur query_engine hinzufügen:

query_engine = index.as_query_engine(
    similarity_top_k=10, llm=mixtral_llm, node_postprocessors=[jina_rerank]
)
response = query_engine.query(
    "What are the best padded pants that Nike sells?",
)

print(response.source_nodes[0].text)

Beachten Sie, dass im Vergleich zum vorherigen Fall ohne Reranker die query_engine jetzt auch den node_postprocessors Parameter enthält, der auf [jina_rerank] gesetzt ist.

Ergebnis:

NIKE KIDS  FOOTBALL – STOCK10
DJ5731 $47.00
SIZES:  XS, S, M, L, XL, 2XL, 3XL
FABRIC:  Body/panels lining: 100% polyester. Pad: 100%
ethylene vinyl acetate.
OFFER DATE:  04/01/23
END DATE:  04/01/27
Take the field ready to give it your all in the Nike Recruit
Pants. They're made from lightweight, stretchy fabric with
sweat-wicking power to help keep you dry and moving freely
when the game heats up. With integrated pads shaped for a
comfortable fit, you'll be prepared for a performance you can
be proud of. Choose from 6 different colors to outfit your
team. Nike Dri-FIT technology moves sweat away from your skin
for quicker evaporation, helping you stay dry and comfortable.
Lightweight knit fabric stretches with you to let you move
naturally. Thigh, knee, hip and tailbone pads are shaped for
an optimal fit, without compromising on coverage. A
body-hugging fit is designed to help keep the padding in place
and close to the body. Belt at the waist lets you dial in your
perfect fit to maximize comfort. Elastic at hems.
Hip width: 15", Inseam length: 11.75" (size medium).
010 Black/(White) 060 Team Anthracite/(White) 100 White/(Black)
419 Team Navy/(White) 493 Team Royal/(White) 657 Team Scarlet/(White)

Produktanzeige der Nike DF Stock Recruit Hosen für Jungen mit Größen, Preisen und verschiedenen Farboptionen.

tagFazit

Wie wir sehen können, führt die Abfrage ohne Reranker zu einem Top-Ergebnis, das "Netzrücken für Atmungsaktivität" und "schmale Passform mit weichem Griff" erwähnt. Im Vergleich dazu erhalten wir mit dem Reranker ein Top-Ergebnis, das "für optimale Atmungsaktivität entwickelt" wurde, ein "feuchtigkeitsableitendes Design" hat, das "Sie unter Wettkampfdruck trocken und kühl hält", und "leichtes Material in einer entspannten, bequemen Passform" bietet.

Das zweite Ergebnis ist viel genauer und passender für unsere Anfrage. Mit unseren letzten beiden Beiträgen haben wir sowohl aus theoretischer als auch aus praktischer Sicht gezeigt, dass das Hinzufügen von Jina Reranker zu Ihrer RAG-Pipeline die Abrufgenauigkeit erhöht und die Qualität der Antworten verbessert.

Kategorien:
Tech-Blog
rss_feed
Büros
location_on
Sunnyvale, Kalifornien
710 Lakeway Dr, Ste 200, Sunnyvale, CA 94085, USA
location_on
Berlin, Deutschland (Hauptsitz)
Prinzessinnenstraße 19-20, 10969 Berlin, Deutschland
location_on
Peking, China
Ebene 5, Gebäude 6, Nr. 48 Haidian West St. Peking, China
location_on
Shenzhen, China
402 Etage 4, Fu'an Technology Building, Shenzhen, China
Stiftung durchsuchen
Leser
Einbettungen
Reranker
DeepSearch
Klassifikator
Segmentierer
API-Dokumentation
Jina API-Schlüssel abrufen
Ratenbegrenzung
API-Status
Unternehmen
Über uns
Kontaktieren Sie unseren Vertrieb
Pressemitteilungen
Praktikantenprogramm
Begleiten Sie uns
open_in_new
Logo herunterladen
open_in_new
Bedingungen
Sicherheit
Terms & amp; Bedingungen
Privatsphäre
Cookie-Einstellungen
email
Jina AI © 2020-2025.