
Messung und Schließung der Text-Vektor-Integritätslücke in Offline-RAG: Margin-Gesetz, Vektordatenbank-Audits und Verifikation auf Code-Ebene.
Code, Daten und Ergebnisse für das Paper Signed but Steerable: Measuring and Closing the Text-Vector Integrity Gap in Offline Retrieval-Augmented Generation (G. Feretzakis, A. Papaspyridis, securagen.ai).
Archiviert auf Zenodo: 10.5281/zenodo.23945569 (alle Versionen; Release v1.0.2, zitiert im Paper: 10.5281/zenodo.23948839). Die arXiv-Kennung des Papers wird ergänzt, sobald sie verfügbar ist.
ragtrust/ gemeinsame Bibliothek, einschließlich codeverify.py, dem referenziellen Verifier auf Code-Ebene, der für jedes
Code-Verifikationsergebnis verwendet wird (Ambiguität wird ausschließlich aus der Neuberechnung des Verifiers entschieden; Akzeptanz nur
bei Nachbarschaft; Kanonisierung).desktop/ Experimente, die auf dem Desktop ausgeführt wurden: Abstention-Scoring (E1) und dessen MS-MARCO-Prüfung, der Vektor-
Desynchronisationsangriff und das Margin-Gesetz (E7), BEIR-Margins, Vektor-Datenbank-Exposition, die FAISS-
Demonstration, Verifikation auf Code-Ebene und die Determinismus-Eigenschaften von Float-Pipelines.device/ Experimente, die auf der Raspberry Pi 5 CPU ausgeführt wurden: Context-Pruning (E2), die Kosten der Verifikation neben dem
Sprachmodell (E4), geräteseitiges Embedding und INT8-Treue (E5), der End-to-End-Angriff (E7) und Pack-Updates (E8).analysis/ Analysen, die Präzisions- und Einheitenprüfungen sowie make_figures.py, das die Abbildungen neu erzeugt.data/ der aus SQuAD abgeleitete Korpus, Fenster, Fragen und Vektoren; results/ Ausgaben pro Experiment;
tests/ Unit-Tests; remote/ Hilfsmittel zur Steuerung des Pi vom Desktop aus (Hostnamen anpassen).PROTOCOL.md vor der Datenerhebung festgelegte Hypothesen sowie das Protokoll der Abweichungen und explorativen Analysen.
Die Experimentnummern folgen dem Protokoll; E3 und E6 sind nicht Teil dieses Releases.pins.json gepinnte Revisionen von Modellen und Werkzeugen.python tests/test_codeverify.py.bash desktop/setup_desktop.sh; Abbildungen: python analysis/make_figures.py.device/requirements_device.txt und llama.cpp beim Commit in pins.json.Auf dem Raspberry Pi, nach cp device/config.env.example device/config.env (Pfade anpassen) und Installation von
device/requirements_device.txt in venv_device:
bash device/inner_generate.sh startet llama-server und führt k3_full (erste 60 Fragen,
Reproduzierbarkeitsprüfung), k5_ce3, k10_ce3, k10_ce5, k5_bi3, k5_ce3 mit dem Online-INT8-Selektor sowie die E7-
Konfigurationen aus; nur die CPU-INT8-End-to-End-Konfiguration: bash device/run_e7_cpu_int8.sh. Die Varianten
k5_ce3w, k3_ce3 und k3_ce3w laufen mit python device/e2_generate.py --config <name>, während llama-server
läuft (gestartet wie in device/inner_generate.sh). Eine Konfiguration wird übersprungen, wenn results/e2/status_<name>.json
existiert; verschieben Sie diese Dateien, um die veröffentlichten Ergebnisse neu zu erzeugen.python device/e4_contention.py; E5: python device/e5_reindex.py --backends ort-fp32,ort-int8 --batch 32 (die
Batch-Größe der veröffentlichten Ergebnisse: dynamisches INT8 hängt von der Batch ab, und Batches von 64 ergeben andere Vektoren);
E8: python device/e8_device_verify.py --vector-backend ort-fp32.remote/pi_sync.sh das Repository auf den Pi und remote/pi_fetch.sh ruft Ergebnisse ab.results/e7/margin_law_squad.json; weitere Korpora und Abb. 1: results/e7/beir_margins.json
und results/e7/margins/; Exposure am CPU-INT8-Referenzschwellenwert: results/e7/cpu_int8_exposure.json;
numerische Präzisions- und Einheitenprüfungen: results/e7/margin_precision_check.json; Kalibrierung des INT8-Referenz-
schwellenwerts (exaktes Quantil, ehrliche Fenster darunter, bitgenaue Re-Encodierung bei Batch 32):
results/e5/int8_calibration_check.json (analysis/e5_int8_calibration_check.py).results/e7/vecdb_quant.json; FAISS-Audit und ausgeführter Angriff: results/e7/faiss_integrity.json;
Residualbudget: results/e7/guard_budget.json.results/e7/analysis.json (richtige Antworten und Verweigerungen) und results/e7/e2e_checks.json
(dieselben Fragen, Winkelbudget, Payload im Top-3-Kontext).results/e2/decomposition.json; Kosten neben dem Sprachmodell (E4): results/e4/.results/figures/fig_margin_law.pdf (Abb. 1) und results/figures/fig_vdb.pdf (Abb. 2), neu erzeugt durch
analysis/make_figures.py.results/e7/squad_question_vectors.npz
(analysis/margin_law_squad.py) und results/e7/proxy_vectors.npz (analysis/margin_law.py).results/e7/vecs/ (geschrieben von
desktop/beir_margins.py), results/e7/scale_*.npy (geschrieben von den Code-Verifikationsskripten),
data/beir/ und artifacts/models/ (geschrieben von desktop/export_onnx.py).Einige Analyseskripte laden Caches, die sie selbst mit numpy.load(..., allow_pickle=True) erstellt haben;
laden Sie solche Dateien nur aus Ihren eigenen Läufen, niemals aus nicht vertrauenswürdigen Quellen.
Modelle, Datensätze und ihre Lizenzen sind in DATA_LICENSES.md aufgeführt. Bitte zitieren Sie außerdem SQuAD 2.0 (Rajpurkar et al., 2018),
BEIR (Thakur et al., 2021), MS MARCO (Bajaj et al., 2016), BGE-M3 (Chen et al., 2024) und Sentence-BERT (Reimers und
Gurevych, 2019), wenn Sie die entsprechenden Teile verwenden.
LICENSE).Copyright 2026 securagen.ai P.C. MIT für Code und unsere Ergebnisse; aus SQuAD abgeleitete Daten, Ergebnisdateien, die SQuAD-
Text enthalten, und die generierten Antworten behalten CC BY-SA 4.0; siehe LICENSE und DATA_LICENSES.md für die Details und für die Bedingungen
der anderen Datensätze und Modelle.