Alternative F: BM25 + embedding + reranker + validator
Ablauf
raw chunkText
-> BM25 top 80
-> embedding top 80
-> Kandidaten-Union
-> reranker vergleicht raw chunk und jede JSONL-Kandidaten direkt
-> gibt top JSONL zurück
-> Qwen Direct-Evidence-Validator prüft direkte BeweiseRollenverteilung
BM25:
Finde die genaue Zeichenkette/API-Token-Kandidaten.code embedding:
Ergänzt Kandidaten, deren Ausdruck unterschiedlich, deren Bedeutung jedoch nahe beieinander liegt.reranker:
BM25 und Embedding bringen die Kandidaten, die mit dem Roh‑Chunk verglichen und erneut sortiert werden.Qwen Direktbeweis‑Validator:
JSONL innerhalb prüfen, ob ein direkter String‑/Muster‑Beweis für das aktuelle Chunk vorhanden ist.
JSONL ohne Beweis wird verworfen.Erwartete Sortierung im Basis‑Chunk
Kandidaten, die höher platziert werden sollten:
first_2d_game / coding_the_player
same page / clamp and AnimatedSprite2D explanationZu senkende Kandidaten:
first_3d_game / player_movement_code
unrelated api_mapping
unrelated label_prototypesPoC‑Simulation
Angenommen, dass das Basis‑Chunk in den endgültigen Empfehlungsvorgang eingefügt wird.
raw chunkText
-> BM25 top 80
-> voyage-code-3 embedding top 80
-> Kandidat-Union
-> reranker
-> Qwen direct-evidence validator1. Schritt: BM25‑Kandidaten
BM25 wird die Kandidaten liefern:
A. first_2d_game / coding_the_player
reason: Input.is_action_pressed, move_left, move_right, AnimatedSprite2D.play/stop
B. first_2d_game / clamp section
reason: position.clamp, Vector2.ZERO, screen_size
C. first_3d_game / player_movement_code
reason: Input.is_action_pressed, move_left, move_right, normalized2. Schritt: embedding Kandidaten
embedding wird die Kandidaten übernehmen:
D. first_2d_game / movement explanation
reason: 2D movement, keyboard input, animation
E. first_2d_game / screen bounds explanation
reason: keep player inside screen
F. first_3d_game / movement
reason: player movement semantic similarity3. Schritt: Kandidaten‑Union
Nach dem Union werden Duplikate zusammengeführt.
A/D -> first_2d_game / coding_the_player
B/E -> first_2d_game / clamp/screen bounds
C/F -> first_3d_game / player_movement4. Schritt: Reranker-Neusortierung
Der Reranker betrachtet den Roh‑Chunk zusammen mit den Kandidaten.
Erwartetes Reranking:
| Rerank | Kandidat | Grund |
|---|---|---|
| 1 | first_2d_game / coding_the_player |
Eingabeverarbeitung, Velocity, AnimatedSprite2D play/stop passen direkt |
| 2 | first_2d_game / clamp/screen bounds |
position.clamp, Vector2.ZERO, screen_size passen direkt |
| 3 | first_3d_game / player_movement |
Eingabe/Bewegung ist ähnlich, aber im 3D‑Kontext und AnimatedSprite2D/screen_size fehlen |
5. Schritt: Qwen Direct‑Evidence‑Validator
Beim Qwen‑Validator wird wie folgt gefragt.
Betrachte den SOURCE_CODE und das abgerufene JSONL,
Gibt es im JSONL Zeichenketten/API‑Aufrufe/Pattern, die direkt mit dem SOURCE_CODE übereinstimmen?
Entscheide zunächst mit Ja oder Nein.Kein Markdown-Fragment zum Übersetzen bereitgestellt.
first_2d_game / coding_the_player:
validator = ja
direkter Beweis = Input.is_action_pressed, AnimatedSprite2D.play, AnimatedSprite2D.stop
first_2d_game / clamp/screen bounds:
validator = ja
direkter Beweis = position.clamp, Vector2.ZERO, screen_size
first_3d_game / player_movement:
validator = nein oder geringe Relevanz
Grund = Bewegungsinput ist ähnlich, aber es ist ein 3D‑Dokument und es gibt keinen direkten Beweis für AnimatedSprite2D/screen_sizeProtokolle, die im PoC zu prüfen sind
Diese Alternative hat viele Schritte, daher muss das Folgende auf einem Bildschirm betrachtet werden.
1. raw chunkText
2. BM25‑Kandidaten und passende Begriffe
3. Embedding‑Kandidaten und Ähnlichkeit
4. Union‑Ergebnis
5. Reranker‑Punktzahl und Rangänderung
6. Qwen‑Validator Ja/Nein
7. Endgültiges akzeptieren/ablehnen JSONLSichtbare Schlussfolgerung:
BM25 und Embedding sammeln die Kandidaten breit.
Der Reranker korrigiert die Reihenfolge ähnlicher Kandidaten.
Der Qwen-Validator verwirft endgültig JSONL ohne direkte Begründung.Vorteile
- Die Qualität ist mit hoher Wahrscheinlichkeit am besten.
- BM25‑False‑Positives können reduziert werden.
- Auch Embedding‑False‑Positives lassen sich verringern.
- Die Bedingungen für rohe Chunks bleiben erhalten.
- Die Abhängigkeit von Hard‑Coding ist gering.
- Mit dem Qwen‑Validator können unbegründete JSONL‑Einträge am Ende entfernt werden.
Nachteile
- Es entstehen Kosten.
- Es gibt eine Latenz.
- Wenn zu viele Kandidaten eingefügt werden, wird es langsam.
- Da der Reranker kein Beweisprüfer ist, wird ein abschließender Validator benötigt.
Bewertung
Qualität hat höchste Priorität – endgültiger EmpfehlungsvorschlagDie endgültige Empfehlung der Originalnotiz ist dieser Struktur am nächsten.