30 lines
1.9 KiB
Markdown
30 lines
1.9 KiB
Markdown
# Validierung – Cluster/Fast Mode
|
||
|
||
## Funktionsprüfungen
|
||
|
||
Geprüft wurden:
|
||
|
||
- Semantic-Hash-Kandidatensuche findet einen absichtlich nahezu identischen Vektorkandidaten.
|
||
- Exakte Cosine-Arbeit ist auf `Anchors × CandidatesPerAnchor` begrenzt.
|
||
- Approximate Similarity Retrieval findet einen identischen Query-Vektor als Top-1.
|
||
- ENV-Parsing und Validierung für alle Cluster/Fast-Parameter.
|
||
- Runtime-Normalisierung `precise`/`clustered`.
|
||
- Reviewer-Evidenzlimit und Domain-Diversifizierung.
|
||
- JavaScript-Syntax von Haupt- und Analysis-UI.
|
||
- Projektweite Go-Typkompilierung und `go vet` in der verfügbaren Toolchain-Testkopie.
|
||
|
||
## Synthetischer A/B-Test
|
||
|
||
In der lokalen Validierungsumgebung wurde ein 5.000-Node/128-Dimensionen-Korpus mit 48 Anchors verglichen:
|
||
|
||
- `precise`: 239.952 vollständige Cosine-Berechnungen, ca. 71,8 ms
|
||
- `clustered`: 239.952 billige Hash-/Hamming-Vergleiche + 4.579 vollständige Cosine-Berechnungen, ca. 39,1 ms
|
||
|
||
Das sind in diesem Test rund 98,1 % weniger vollständige Dot-Products. Der reale 768-Dimensionen-Korpus profitiert stärker von jeder vermiedenen Cosine-Berechnung. Laufzeiten sind hardware- und datensatzabhängig; die Vergleichszahlen sind daher keine garantierten Produktionswerte.
|
||
|
||
Für den aktuellen Export mit etwa 21.500 Wissensvektoren und 48 Anchors sinkt das konfigurationsbedingte Maximum der vollen Cosine-Shortlist im Cluster-Modus auf 4.608, während der bisherige Modus ungefähr eine Million volle Paarbewertungen pro Schritt erzeugt.
|
||
|
||
## Umgebungslimit
|
||
|
||
Das Projekt deklariert Go 1.26 und `modernc.org/sqlite v1.37.1`. Die verfügbare Ausführungsumgebung enthält Go 1.23.2 und keinen Modul-Netzwerkzugriff. Für Typkompilierung und `go vet` wurde deshalb ausschließlich in einer temporären Kopie die Go-Direktive auf 1.23 gesetzt und ein lokaler compile-only SQLite-Stub verwendet. Der ausgelieferte Quellbaum behält Go 1.26 und die echte SQLite-Abhängigkeit unverändert.
|