Problem
- Für semantische/Natürliche-Sprachsuche und RAG sind Vektor-Embeddings erforderlich
- Die meisten Embedding-Modelle haben eine Begrenzung der Eingabelänge
- Die Wahl einer angemessenen Eingabelänge hängt direkt mit der Suchqualität zusammen
- Wegen der Begrenzung der Eingabelänge werden Absätze in den meisten Fällen getrennt und gespeichert
- Durch das getrennte Speichern des Originaltexts wird ein einzelnes Dokument in mehrere Dokumente aufgeteilt
- Die meisten Dokumente bestehen nicht nur aus einem einzigen Textdatensatz, sondern auch aus Metadaten und anderen langen Feldern
- Um die aufgeteilten Daten zu speichern, muss entweder der aufgeteilte Originaltext zusammen mit Zusatzinformationen redundant gespeichert oder die Speicherung auf mehrere Collections (oder Tabellen) aufgeteilt werden
- Redundante Speicherung ist wegen des höheren Speicherbedarfs ineffizient, und getrennte Collections erhöhen im Suchprozess die Komplexität durch Joins, Score-Berechnung, Zählung der Dokumentanzahl usw.
- Dieses Problem tritt häufig auf, wenn man die meisten Vektorspeicher verwendet
Lösung
- Es wurde nach einer anderen Methode gesucht, bei der der Originaltext nicht aufgeteilt werden muss
- Die Datenbank und die zugehörigen Bibliotheken wurden so angepasst, dass das Feld, in dem Embedding-Daten gespeichert werden, zweidimensionale Daten annehmen kann
- Dadurch lassen sich Vektordaten variabler Länge für Dokumente speichern, die ohne Aufteilung des Originaltexts in eine oder mehrere Teile unterteilt sind
- Mit dieser Methode können der Originaltext und die aufgeteilten Vektordaten ohne Trennung in verschiedene Collections nebeneinander existieren, wodurch Datenverwaltung und Abfragen einfacher werden
Noch keine Kommentare.