Was macht embedding-strategies?
Wählen und optimieren Sie Embedding-Modelle für semantische Suche und RAG-Anwendungen. Verwenden Sie dies bei der Auswahl von Embedding-Modellen, der Implementierung von Chunking-Strategien oder der Optimierung der Embedding-Qualität für spezifische Domänen.
Beschreibung
Dieser Skill hilft Ihnen, fundierte Entscheidungen über Embedding-Modelle zu treffen, die für Ihre semantischen Such- und RAG-Anwendungen verwendet werden. Er deckt Modellauswahl, Chunking-Strategien und Qualitätsoptimierung ab.
Modelle
| Modell | Dimensionen | Kontextfenster | Anwendungsfall |
|---|---|---|---|
text-embedding-3-small | 512, 1536 | 8191 Tokens | Allgemeine Zwecke, Kostenoptimierung |
text-embedding-3-large | 256, 1024, 3072 | 8191 Tokens | Höchste Genauigkeit |
BAAI/bge-large-en-v1.5 | 1024 | 512 Tokens | Zweisprachig (EN/ZH), hohe Leistung |
sentence-transformers/all-MiniLM-L6-v2 | 384 | 256 Tokens | Leichtgewichtig, lokale Inferenz |
Chunking-Strategien
Optimale Chunk-Größe
- Kurz (128-256 Tokens): Ideal für präzise Fragen/Antworten
- Mittel (256-512 Tokens): Guter Kompromiss für allgemeine Suche
- Lang (512-1024 Tokens): Besser für zusammenfassende oder kontextreiche Abfragen
Überlappungsstrategie
def chunk_document(text, chunk_size=512, overlap=64):
"""Teilt Text in Chunks mit Überlappung."""
chunks = []
start = 0
while start < len(text):
end = start + chunk_size
chunk = text[start:end]
chunks.append(chunk)
start = end - overlap
return chunks
Optimierungstipps
Domänenspezifische Feinabstimmung
Erwägen Sie die Feinabstimmung von Embedding-Modellen auf Ihren spezifischen Datensatz für verbesserte Leistung in Nischenbereichen.
Dimensionsreduktion
Verwenden Sie niedrigere Dimensionen (z. B. 256 für text-embedding-3-large), wenn Speicher oder Kosten kritisch sind, während eine akzeptable Genauigkeit beibehalten wird.
Embedding-Qualitätsmetriken
- Rekall@k: Misst den Anteil relevanter Dokumente in den Top-k-Ergebnissen
- Mean Reciprocal Rank (MRR): Bewertet die Rangposition der ersten relevanten Antwort
- Normalized Discounted Cumulative Gain (NDCG): Berücksichtigt die Rangposition aller relevanten Ergebnisse
Verwendung
# Beispiel: Embeddings mit OpenAI-Modell erzeugen
python -c "from openai import OpenAI; client = OpenAI(); response = client.embeddings.create(input='Suchtext', model='text-embedding-3-small'); print(response.data[0].embedding[:5])"
Lizenz
Dieses Repository ist lizenziert unter der MIT-Lizenz.