Promptteknik til AI · Lektion

Vektordatabaser til prompting

Udforsk, hvordan vektordatabaser lagrer og henter relevante oplysninger, som effektivt kan fødes ind i RAG-prompts.

Lektion 3 af 311 trin

Vektordatabaser til prompting er en gratis Promptteknik til AI-lektion på CoddyKit. Dette er lektion 3 af 3. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Promptteknik til AI, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Promptteknik til AI-kurset indeholder 3 lektioner i alt.

Hvad er vektordatabaser?

Velkommen til vektordatabasernes verden! Disse specialiserede databaser ændrer spillereglerne for arbejde med store sprogmodeller (LLM'er).

VDB'er gemmer oplysninger som numeriske vektorer, der blot er lister med tal. Det gør det muligt hurtigt at finde data, der er "semantisk ens" – det vil sige, at den underliggende betydning er den samme, ikke blot at nøgleordene er identiske.

Sprog som tal: Embeddings

Før data kommer ind i en VDB, omdannes de til en embedding. En embedding er en numerisk repræsentation af tekst, hvor ord eller sætninger med lignende betydning ligger tæt på hinanden i et flerdimensionalt rum.

  • Tekst til vektor: En embedding-model konverterer din tekst til en vektor.
  • Betydningen bevares: Disse vektorer indfanger tekstens semantiske betydning.
  • LLM'ens sprog: Det er sådan, LLM'er 'forstår' og behandler sprog internt.

Lagring af data i en vektordatabase

Tænk på en vektordatabase som et særdeles velorganiseret bibliotek, hvor hver bog (eller tekststykke) er forsynet med et unikt numerisk fingeraftryk – dens embedding-vektor.

Når du føjer data til en VDB, ser processen således ud:

  1. Din tekst opdeles i mindre stykker (hvis det er nødvendigt).
  2. Hvert stykke omdannes til en embedding-vektor.
  3. VDB'en gemmer denne vektor sammen med den oprindelige tekst og eventuelle tilknyttede metadata.

Magien ved lighedssøgning

VDB'ernes egentlige styrke ligger i deres evne til at udføre lighedssøgning. I stedet for at matche nøgleord finder de vektorer, der ligger numerisk "tæt" på din forespørgselsvektor.

Hvis du spørger om "hunde som ledsagere", kan en VDB hente dokumenter, der nævner "hunde" eller "kæledyr", selv om netop de ord ikke forekommer. Den forstår den underliggende betydning!

VDB'er i Retrieval Augmented Generation (RAG)

Vektordatabaser er kernekomponenten i informationshentningstrinnet i et RAG-system. De fungerer som den eksterne vidensbase, som LLM'er kan trække på.

Her er det forenklede forløb:

  1. En bruger stiller et spørgsmål.
  2. Spørgsmålet omdannes til en vektor ved hjælp af en embedding.
  3. VDB'en finder de mest relevante dokumentstykker (vektorer).
  4. Disse stykker sendes til LLM'en som kontekst, så den kan besvare spørgsmålet.

Udfyldning af en VDB: Eksempelkode

Lad os se på et begrebsmæssigt Python-eksempel på, hvordan du kan føje dokumenter til en vektordatabase. Processen indebærer, at din tekst omdannes til embeddings, hvorefter de resulterende vektorer gemmes.

Husk, at denne kode kun illustrerer princippet og i et system fra den virkelige verden kræver specifikke klientbiblioteker til vektordatabaser samt en embedding-model.

import numpy as np

# Imagine an embedding model function
def get_embedding(text):
    # In a real scenario, this uses an LLM API
    # or a local embedding model.
    # For illustration, let's return a dummy vector.
    return np.random.rand(128).tolist() # 128-dim vector

# Imagine a simplified VectorDB client
class SimpleVectorDB:
    def __init__(self):
        self.vectors = {} # Stores {id: {'vector': [...], 'text': '...'}}

    def add_document(self, doc_id, text_content):
        vector = get_embedding(text_content)
        self.vectors[doc_id] = {'vector': vector, 'text': text_content}
        print(f"Added '{text_content[:20]}...' (ID: {doc_id})")

# --- Main simulation --- 
db = SimpleVectorDB()
db.add_document("doc1", "The capital of France is Paris.")
db.add_document("doc2", "Eiffel Tower is a landmark in Paris.")
db.add_document("doc3", "Berlin is the capital of Germany.")

Forespørgsler mod en VDB: Eksempelkode

Når din vektordatabase er udfyldt, kan du forespørge i den for at finde relevante oplysninger. Selve forespørgslen bliver også indlejret, hvorefter VDB'en søger efter de vektorer, der ligger tættest på.

Denne konceptuelle Python-kode viser, hvordan du søger efter semantisk lignende indhold.

import numpy as np
from scipy.spatial.distance import cosine # For similarity

# (Re-using get_embedding and SimpleVectorDB conceptually)
def get_embedding(text):
    return np.random.rand(128).tolist()

class SimpleVectorDB:
    def __init__(self):
        self.vectors = {}

    def add_document(self, doc_id, text_content):
        vector = get_embedding(text_content)
        self.vectors[doc_id] = {'vector': vector, 'text': text_content}

    def search(self, query_text, top_k=1):
        query_vector = get_embedding(query_text)
        
        scores = []
        for doc_id, data in self.vectors.items():
            doc_vector = data['vector']
            # Cosine similarity: 1 - cosine distance
            similarity = 1 - cosine(query_vector, doc_vector)
            scores.append({'id': doc_id, 'text': data['text'], 'score': similarity})
        
        # Sort by similarity in descending order
        scores.sort(key=lambda x: x['score'], reverse=True)
        return scores[:top_k]

# --- Main simulation --- 
db = SimpleVectorDB()
db.add_document("doc1", "The capital of France is Paris.")
db.add_document("doc2", "Eiffel Tower is a landmark in Paris.")
db.add_document("doc3", "Berlin is the capital of Germany.")

user_query = "What is the capital city of France?"
results = db.search(user_query, top_k=2)

print(f"Query: '{user_query}'")
print("Top results:")
for res in results:
    print(f"- Text: '{res['text']}' (Score: {res['score']:.2f})")

Vigtige fordele ved at bruge VDB'er

Ved at integrere vektordatabaser i din RAG-arbejdsgang får du betydelige fordele:

  • Semantisk søgning: Finder resultater baseret på betydning, ikke kun nøgleord.
  • Færre hallucinationer: Forankrer LLM'er i faktuelle, eksterne data, så svarene bliver mere pålidelige.
  • Skalerbarhed: Håndterer effektivt store mængder ustrukturerede data.
  • Opdateringer i realtid: Kan nemt opdateres med nye oplysninger, så LLM-konteksten holdes aktuel.

Vigtige overvejelser om VDB'er

Overvej disse punkter for at opnå den bedste ydeevne med din vektordatabase:

  • Valg af embeddingsmodel: Kvaliteten af dine embeddings påvirker søgenøjagtigheden direkte.
  • Strategi for opdeling: Den måde, du opdeler dokumenter på (f.eks. efter afsnit eller sætninger), påvirker detaljeringsgraden ved hentning.
  • Datas aktualitet: Opdater regelmæssigt din VDB med nye oplysninger for at sikre, at LLM'en har den nyeste kontekst.
  • Metadata: Gem nyttige metadata sammen med vektorerne, så du kan filtrere og hente oplysninger bedre.

Hurtigt tjek: Vektordatabaser i RAG

Vektordatabaser spiller en afgørende rolle i at forbedre LLM'ers ydeevne og pålidelighed. Lad os teste din forståelse af deres primære funktion i et system til hentningsforstærket generering (RAG).

Opsummering: Dine VDB'er og LLM'er

I denne lektion undersøgte vi vektordatabaser og deres afgørende rolle i moderne AI-programmer, især sammen med RAG.

  • VDB'er gemmer numeriske embeddings, der indfanger tekstens betydning.
  • De muliggør effektiv semantisk søgning, hvor oplysninger findes ud fra konteksten.
  • VDB'er forbedrer LLM'er betydeligt ved at levere eksterne, faktuelle data, hvilket giver mere nøjagtige og pålidelige resultater.

Det er afgørende at mestre VDB'er for at kunne opbygge robuste og intelligente AI-systemer!

Gratis at komme i gang

Lær Promptteknik til AI med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
53
Lektioner
199

Ofte stillede spørgsmål

Er lektionen “Vektordatabaser til prompting” gratis?

Ja — alle 3 lektioner i læringssporet Promptteknik til AI, inklusive “Vektordatabaser til prompting”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Promptteknik til AI-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Vektordatabaser til prompting”?

Udforsk, hvordan vektordatabaser lagrer og henter relevante oplysninger, som effektivt kan fødes ind i RAG-prompts. Du øver dig i Promptteknik til AI med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Promptteknik til AI?

Der kræves ingen tidligere erfaring. Promptteknik til AI på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 3.

Hvor lang tid tager lektionen “Vektordatabaser til prompting”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Promptteknik til AI-lektion?

Ja. Alle Promptteknik til AI-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Prompting med eksterne data
  2. Retrieval Augmented Generation (RAG)
  3. Vektordatabaser til prompting
← Tilbage til Promptteknik til AI