AI-agenten · Les

Retrieval met meerdere vectoren (ColBERT)

Indexeer meerdere vectoren per document (één per token of chunk) voor verfijnde overeenkomsten.

Les 3 van 414 stappen

Retrieval met meerdere vectoren (ColBERT) is een gratis AI-agenten-les op CoddyKit. Dit is les 3 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 AI-agenten. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AI-agenten bevat in totaal 4 lessen.

Delen van deze les zijn nog niet vertaald en worden in het Engels weergegeven.

Eén vector is niet genoeg

Bij standaard-RAG wordt elk fragment omgezet in één vector. Die vector neemt alles in het fragment gemiddeld mee en verliest daardoor fijnmazige signalen.

Ophalen met meerdere vectoren slaat MEERDERE vectoren per document op en vergelijkt ze nauwkeuriger.

Het ColBERT-idee

ColBERT (Khattab & Zaharia, 2020) maakt een embedding van elk TOKEN in het document en van elke token in de zoekopdracht en berekent vervolgens de maximale overeenkomst:

score(q, d) = sum over q_token in q: max over d_token in d: cos(q_token, d_token)

Waarom ColBERT beter is dan één vector

  • Legt meerdere aspecten van een document vast, wat één vector niet kan
  • Verwerkt lange documenten beter
  • Heeft een hogere recall bij zeldzame termen

Kosten van ColBERT

Eén vector per token opslaan in plaats van per fragment:

  • Als een fragment 500 tokens bevat, is dat 500 keer zoveel opslag
  • Elke zoekopdracht vergelijkt veel meer paren

Kwantisering en snoeien verminderen dit met een factor van 10–50, maar het blijft kostbaar.

ColBERTv2

ColBERTv2 voegt residuele compressie toe — tokens worden gegroepeerd rond centroiden en elk token wordt opgeslagen als (centroid_id, small_residual). De opslag neemt 50 keer af.

ColBERT uitvoeren

De RAGatouille-bibliotheek maakt dit eenvoudig:

# pip install ragatouille
from ragatouille import RAGPretrainedModel

rag = RAGPretrainedModel.from_pretrained('colbert-ir/colbertv2.0')
rag.index(collection=documents, index_name='my_corpus')

results = rag.search(query='What is the refund policy?', k=5)

Meerdere vectoren in de praktijk

Naast ColBERT zijn er andere benaderingen met meerdere vectoren:

  • Bovenliggend-onderliggend — maak embeddings van kleine fragmenten en haal grote bovenliggende documenten op
  • Samenvatting + fragmenten — maak embeddings van zowel een documentsamenvatting als afzonderlijke fragmenten
  • Hypothetische vragen — maak embeddings van vraag-antwoordparen die uit elk document zijn samengesteld

Hypothetical Questions Pattern

def index_with_hypos(doc):
    # Generate 5 plausible questions this doc could answer
    questions = llm.invoke(f'Write 5 questions answered by this doc:\n{doc}').content.split('\n')
    for q in questions:
        vector_db.add(embed(q), payload={'doc': doc, 'question': q})
# Now queries that match a stored hypothetical question retrieve the doc.

Parent-Child with LangChain

from langchain.retrievers import ParentDocumentRetriever
from langchain.storage import InMemoryStore

store = InMemoryStore()
retriever = ParentDocumentRetriever(
    vectorstore=child_vectorstore,
    docstore=store,
    child_splitter=child_splitter,    # small
    parent_splitter=parent_splitter   # large
)
retriever.add_documents(documents)
# Indexes small chunks, returns large parents.

Wanneer ColBERT gebruiken

  • Zoekopdrachten met grote gevolgen, zoals juridische of medische zoekopdrachten
  • Lange documenten
  • Wanneer je de opslagkosten kunt dragen

Wanneer overslaan

  • Kleine corpora
  • Latentiegevoelige paden
  • Projecten met strikte kostenbeperkingen

Hybride met BM25

Combineer voor maximale recall het ophalen met meerdere vectoren met de klassieke BM25-zoekopdracht op trefwoorden. Gebruik Reciprocal Rank Fusion om de resultaten samen te voegen.

Afweging bij ColBERT

Wat is de belangrijkste afweging bij het gebruik van ophalen met meerdere vectoren in ColBERT-stijl?

Samenvatting

Eén vector per fragment verliest informatie. ColBERT slaat vectoren per token op voor een hogere precisie. RAGatouille maakt dit eenvoudig. Gebruik het wanneer recall belangrijk is en de kosten het toelaten.

Gratis beginnen

Leer AI-agenten 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
60
Lessen
239

Veelgestelde vragen

Is de les “Retrieval met meerdere vectoren (ColBERT)” gratis?

Ja — de volledige tekst van “Retrieval met meerdere vectoren (ColBERT)” 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 AI-agenten wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus AI-agenten bevat in totaal 4 lessen.

Wat leer ik in “Retrieval met meerdere vectoren (ColBERT)”?

Indexeer meerdere vectoren per document (één per token of chunk) voor verfijnde overeenkomsten. Je oefent met AI-agenten 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 AI-agenten te beginnen?

Ervaring vooraf is niet nodig. AI-agenten 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 3 van 4.

Hoe lang duurt de les “Retrieval met meerdere vectoren (ColBERT)”?

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 AI-agenten?

Ja. Elke les over AI-agenten 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

  1. Opnieuw rangschikken met cross-encoders
  2. HyDE: hypothetische documentembeddings
  3. Retrieval met meerdere vectoren (ColBERT)
  4. RAG-evaluatie (RAGAS, Recall@K)
← Terug naar AI-agenten