Query's herschrijven en opnieuw rangschikken
Verken technieken om gebruikersquery's te optimaliseren en opgehaalde documenten opnieuw te rangschikken voor een hogere relevantie voor de LLM.
Query's herschrijven en opnieuw rangschikken is een gratis LLM-toepassingen in productie (RAG + vectordatabase + caching)-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject LLM-toepassingen in productie (RAG + vectordatabase + caching). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus LLM-toepassingen in productie (RAG + vectordatabase + caching) bevat in totaal 4 lessen.
Zoekopdrachten voor RAG optimaliseren
Welkom bij geavanceerde RAG-technieken! In deze les verkennen we twee krachtige methoden om je Retrieval Augmented Generation (RAG)-systeem nog slimmer te maken: zoekopdrachten herschrijven en herordenen.
Deze technieken zorgen ervoor dat je LLM de meest relevante informatie krijgt, wat leidt tot betere en nauwkeurigere antwoorden.
Waarom onbewerkte zoekopdrachten tekortschieten
Wanneer een gebruiker een vraag stelt, is de eerste zoekopdracht misschien niet ideaal om in je kennisbank te zoeken. De zoekopdracht kan:
- Te kort of vaag zijn: Specifieke trefwoorden missen.
- Dubbelzinnig zijn: Meerdere mogelijke betekenissen hebben.
- Synoniemen missen: Niet de exacte termen gebruiken die in je documenten staan.
Hierdoor kan je zoeksysteem minder relevante documenten ophalen.
Zoekopdrachten herschrijven begrijpen
Een zoekopdracht herschrijven is het proces waarbij je de oorspronkelijke zoekopdracht van de gebruiker voordat je die naar je documentzoeker stuurt, aanpast.
Het doel is de zoekopdracht om te vormen tot een effectievere zoekterm die waarschijnlijker overeenkomt met relevante documenten in je vectordatabase.
Technieken voor het herschrijven van zoekopdrachten
Het herschrijven van zoekopdrachten kan verschillende strategieën omvatten:
- Zoekopdracht uitbreiden: Synoniemen of verwante termen toevoegen om de zoekopdracht te verbreden.
- Zoekopdracht herformuleren: De structuur of formulering van de zoekopdracht wijzigen om de duidelijkheid te verbeteren.
- Zoekopdracht opsplitsen: Een complexe zoekopdracht met meerdere onderdelen opdelen in eenvoudigere, afzonderlijke deelzoekopdrachten.
Vaak wordt een andere LLM gebruikt om deze herschrijftaken uit te voeren.
Code: eenvoudig zoekopdrachten herschrijven
Dit is een conceptueel Python-voorbeeld van hoe een eenvoudige query-uitbreiding kan werken. In een echt systeem zou een LLM het meeste werk doen.
class QueryRewriter:
def rewrite(self, query):
# Simulate an LLM or a rule-based system
if "LLM performance" in query:
return query + " large language model efficiency optimization"
if "vector db" in query:
return query + " vector database semantic search"
return query
rewriter = QueryRewriter()
user_query_1 = "improve LLM performance"
rewritten_1 = rewriter.rewrite(user_query_1)
print(f"Original 1: {user_query_1}")
print(f"Rewritten 1: {rewritten_1}\n")
user_query_2 = "how to use vector db"
rewritten_2 = rewriter.rewrite(user_query_2)
print(f"Original 2: {user_query_2}")
print(f"Rewritten 2: {rewritten_2}")Waarom we opnieuw moeten rangschikken
Zelfs na een uitstekende eerste zoekopdracht (misschien met een herschreven query!) zijn de bovenste 'N' documenten die uw retriever teruggeeft mogelijk niet perfect gerangschikt op relevantie.
De taak van de retriever is vaak om mogelijke overeenkomsten te vinden. Opnieuw rangschikken verfijnt deze volgorde, zodat de absoluut beste documenten helemaal bovenaan staan.
Het proces van opnieuw rangschikken
Opnieuw rangschikken werkt als volgt:
- Uw eerste retriever haalt een grotere verzameling kandidaatdocumenten op (bijvoorbeeld de 50 beste).
- Een gespecialiseerd model voor opnieuw rangschikken neemt vervolgens elk van deze kandidaatdocumenten samen met de oorspronkelijke query van de gebruiker en geeft een nauwkeurigere relevantiescore.
- De documenten worden vervolgens opnieuw gesorteerd op basis van deze nieuwe, nauwkeurigere scores.
Zo worden de meest relevante documenten aan de LLM doorgegeven.
Gespecialiseerde modellen voor opnieuw rangschikken
In tegenstelling tot een retriever, die vaak embeddings gebruikt voor benaderde overeenkomst, gebruiken modellen voor opnieuw rangschikken doorgaans geavanceerdere modellen, die vaak cross-encoders worden genoemd.
- Cross-encoders ontvangen zowel de query ALS een document als invoer.
- Ze houden rechtstreeks rekening met de wisselwerking tussen de termen in de query en het document.
- Hierdoor begrijpen ze relevantie veel genuanceerder, al zijn ze rekenintensiever. Daarom worden ze slechts toegepast op een kleinere groep documenten.
Code: opnieuw rangschikken simuleren
Dit voorbeeld laat zien hoe een model voor opnieuw rangschikken een aanvankelijk opgehaalde lijst met documenten opnieuw scores kan geven en ordenen op basis van hun relevantie voor de query.
class Reranker:
def rerank(self, query, documents):
# Simulate a cross-encoder model scoring documents
scores = {}
for doc in documents:
if "vector database" in doc.lower() and "fast" in query.lower():
scores[doc] = 0.95 # Highly relevant
elif "llm" in doc.lower() and "improve" in query.lower():
scores[doc] = 0.85
elif "database" in doc.lower():
scores[doc] = 0.7
else:
scores[doc] = 0.3 # Less relevant
# Sort documents by score in descending order
sorted_docs = sorted(documents, key=lambda d: scores.get(d, 0), reverse=True)
return sorted_docs
reranker = Reranker()
user_query = "How to build a fast vector database?"
initial_docs = [
"Introduction to LLMs",
"Building a scalable vector database",
"Optimizing LLM inference",
"Fast data ingestion for databases"
]
reranked_docs = reranker.rerank(user_query, initial_docs)
print(f"Original documents: {initial_docs}\n")
print("Reranked documents (most relevant first):")
for doc in reranked_docs:
print(f"- {doc}")De kracht van combineren
De echte kracht ontstaat door beide technieken te combineren:
- Eerst maakt query herschrijven een betere zoekquery.
- Vervolgens gebruikt uw retriever deze verbeterde query om een bredere, relevantere verzameling documenten op te halen.
- Ten slotte verfijnt opnieuw rangschikken de volgorde van deze documenten, zodat de LLM de absoluut beste context ontvangt om een antwoord te genereren.
Deze aanpak met meerdere fasen verbetert de kwaliteit en nauwkeurigheid van uw RAG-systeem aanzienlijk.
Controleer uw begrip
Het is tijd om te testen wat u hebt geleerd over het optimaliseren van RAG met query herschrijven en opnieuw rangschikken.
Samenvatting en volgende stappen
Goed gedaan! In deze les hebt u geleerd over query herschrijven en opnieuw rangschikken.
- Query herschrijven past de invoer van de gebruiker aan om een effectievere zoekquery te maken.
- Opnieuw rangschikken ordent aanvankelijk opgehaalde documenten opnieuw met een nauwkeuriger model, zodat de meest relevante documenten bovenaan komen.
Samen verbeteren deze technieken de kwaliteit en nauwkeurigheid van uw RAG-toepassingen aanzienlijk. Vervolgens bekijken we nog geavanceerdere RAG-architecturen!
Leer LLM-toepassingen in productie (RAG + vectordatabase + caching) met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Query's herschrijven en opnieuw rangschikken” gratis?
Ja — de volledige tekst van “Query's herschrijven en opnieuw rangschikken” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus LLM-toepassingen in productie (RAG + vectordatabase + caching) wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus LLM-toepassingen in productie (RAG + vectordatabase + caching) bevat in totaal 4 lessen.
Wat leer ik in “Query's herschrijven en opnieuw rangschikken”?
Verken technieken om gebruikersquery's te optimaliseren en opgehaalde documenten opnieuw te rangschikken voor een hogere relevantie voor de LLM. Je oefent met LLM-toepassingen in productie (RAG + vectordatabase + caching) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met LLM-toepassingen in productie (RAG + vectordatabase + caching) te beginnen?
Ervaring vooraf is niet nodig. LLM-toepassingen in productie (RAG + vectordatabase + caching) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Query's herschrijven en opnieuw rangschikken”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over LLM-toepassingen in productie (RAG + vectordatabase + caching)?
Ja. Elke les over LLM-toepassingen in productie (RAG + vectordatabase + caching) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Query's herschrijven en opnieuw rangschikken
- RAG-patronen met meerdere stappen en agents
- Omgaan met complexe documentstructuren
- Self-querying en citaties