Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
signed-but-steerable — Mesurer et combler l'écart d'intégrité texte–vecteur dans le RAG hors ligne : loi des marges, audits de bases de données vectorielles et vérification au niveau du code. | Kitploit
Outils/GitHubGitHub/securagenai/signed-but-steerable
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeArticles et RechercheSécurité de l'IA
GitHubsecuragenai/signed-but-steerable

signed-but-steerable

Mesurer et combler l'écart d'intégrité texte–vecteur dans le RAG hors ligne : loi des marges, audits de bases de données vectorielles et vérification au niveau du code.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
34il y a 1 jourPas encore vérifié
Partager

Signé mais orientable : le déficit d'intégrité texte-vecteur dans le RAG hors ligne

Code, données et résultats pour l'article Signed but Steerable: Measuring and Closing the Text-Vector Integrity Gap in Offline Retrieval-Augmented Generation (G. Feretzakis, A. Papaspyridis, securagen.ai).

DOI

Archivé sur Zenodo : 10.5281/zenodo.23945569 (toutes les versions ; version v1.0.2, citée dans l'article : 10.5281/zenodo.23948839). L'identifiant arXiv de l'article sera ajouté dès qu'il sera disponible.

Contenu du dépôt

  • ragtrust/ bibliothèque partagée, incluant codeverify.py, le vérificateur de référence au niveau du code utilisé pour chaque résultat de vérification de code (ambiguïté tranchée uniquement à partir du recalcul du vérificateur ; acceptation par voisinage uniquement ; canonicalisation).
  • desktop/ expériences exécutées sur le poste de travail : scoring d'abstention (E1) et sa vérification MS MARCO, l'attaque de désynchronisation de vecteurs et la loi de marge (E7), les marges BEIR, l'exposition des bases de données vectorielles, la démonstration FAISS, la vérification au niveau du code et le déterminisme des pipelines en virgule flottante.
  • device/ expériences exécutées sur le CPU du Raspberry Pi 5 : élagage du contexte (E2), coût de la vérification à côté du modèle de langage (E4), embedding côté appareil et fidélité INT8 (E5), l'attaque de bout en bout (E7) et les mises à jour de pack (E8).
  • analysis/ analyses, les contrôles de précision et d'unités, et make_figures.py, qui régénère les figures.
  • data/ le corpus dérivé de SQuAD, les fenêtres, les questions et les vecteurs ; results/ les sorties par expérience ; tests/ tests unitaires ; remote/ utilitaires pour piloter le Pi depuis le poste de travail (adapter les noms d'hôtes).
  • PROTOCOL.md hypothèses fixées avant la collecte des données et journal des écarts et analyses exploratoires. Les numéros d'expérience suivent le protocole ; E3 et E6 ne font pas partie de cette version.
  • pins.json révisions épinglées des modèles et des outils.

Démarrage rapide

  • Tests : python tests/test_codeverify.py.
  • Environnement de bureau : bash desktop/setup_desktop.sh ; figures : python analysis/make_figures.py.
  • Expériences sur appareil : un Raspberry Pi 5, Python avec device/requirements_device.txt, et llama.cpp au commit indiqué dans pins.json.

Exécution des expériences sur appareil

Sur le Raspberry Pi, après cp device/config.env.example device/config.env (adapter les chemins) et installation de device/requirements_device.txt dans venv_device :

  • Génération E2 et E7 : bash device/inner_generate.sh démarre llama-server et exécute k3_full (60 premières questions, contrôle de reproductibilité), k5_ce3, k10_ce3, k10_ce5, k5_bi3, k5_ce3 avec le sélecteur INT8 en ligne, et les configurations E7 ; la configuration de bout en bout CPU-INT8 seule : bash device/run_e7_cpu_int8.sh. Les variantes k5_ce3w, k3_ce3 et k3_ce3w s'exécutent avec python device/e2_generate.py --config <name> pendant que llama-server tourne (démarré comme dans device/inner_generate.sh). Une configuration est ignorée lorsque results/e2/status_<name>.json existe ; déplacer ces fichiers pour régénérer les résultats publiés.
  • E4 : python device/e4_contention.py ; E5 : python device/e5_reindex.py --backends ort-fp32,ort-int8 --batch 32 (la taille de lot des résultats publiés : l'INT8 dynamique dépend du lot, et des lots de 64 donnent des vecteurs différents) ; E8 : python device/e8_device_verify.py --vector-backend ort-fp32.
  • Depuis le poste de travail, remote/pi_sync.sh copie le dépôt vers le Pi et remote/pi_fetch.sh récupère les résultats.

Où se trouvent les chiffres de l'article

  • Loi de marge sur SQuAD (Tableau 2) : results/e7/margin_law_squad.json ; autres corpus et Fig. 1 : results/e7/beir_margins.json et results/e7/margins/ ; exposition au seuil de référence CPU-INT8 : results/e7/cpu_int8_exposure.json ; précision numérique et vérifications d'unités : results/e7/margin_precision_check.json ; calibration du seuil de référence INT8 (quantile exact, fenêtres honnêtes en dessous, ré-encodage bit à bit au batch 32) : results/e5/int8_calibration_check.json (analysis/e5_int8_calibration_check.py).
  • Stockages compressés : results/e7/vecdb_quant.json ; audit FAISS et attaque exécutée : results/e7/faiss_integrity.json ; budget résiduel : results/e7/guard_budget.json.
  • De bout en bout sur l'appareil : results/e7/analysis.json (réponses correctes et refus) et results/e7/e2e_checks.json (mêmes questions, budget angulaire, charge utile dans le contexte top-3).
  • Élagage du contexte (E2) : results/e2/decomposition.json ; coût à côté du modèle de langage (E4) : results/e4/.
  • Figures : results/figures/fig_margin_law.pdf (Fig. 1) et results/figures/fig_vdb.pdf (Fig. 2), régénérées par analysis/make_figures.py.

Non inclus

  • Poids des modèles et graphes ONNX exportés (licences) : téléchargés et reconstruits par les scripts aux révisions épinglées.
  • Données BEIR et MS MARCO et vecteurs dérivés (licences) : téléchargés par les scripts.
  • Fichiers de vecteurs volumineux et caches, régénérés par les scripts : results/e7/squad_question_vectors.npz (analysis/margin_law_squad.py) et results/e7/proxy_vectors.npz (analysis/margin_law.py).
  • Entrées intermédiaires régénérées ou téléchargées par les scripts : results/e7/vecs/ (écrit par desktop/beir_margins.py), results/e7/scale_*.npy (écrits par les scripts de vérification du code), data/beir/ et artifacts/models/ (écrits par desktop/export_onnx.py).
  • Journaux d'exécution.

Certains scripts d'analyse chargent des caches qu'ils ont eux-mêmes créés avec numpy.load(..., allow_pickle=True) ; ne chargez de tels fichiers qu'à partir de vos propres exécutions, jamais depuis des sources non fiables.

Ressources tierces

Les modèles, jeux de données et leurs licences sont listés dans DATA_LICENSES.md. Veuillez également citer SQuAD 2.0 (Rajpurkar et al., 2018), BEIR (Thakur et al., 2021), MS MARCO (Bajaj et al., 2016), BGE-M3 (Chen et al., 2024) et Sentence-BERT (Reimers et Gurevych, 2019) lorsque vous utilisez les parties correspondantes.

Remarques

  • FAISS se comporte comme prévu tout au long : il fournit des formats de stockage et la recherche, pas des audits d'intégrité. Le modèle de menace est un éditeur ou un rédacteur compromis des vecteurs stockés, et non un défaut d'une bibliothèque ou d'un produit quelconque.
  • Il s'agit de code de recherche, fourni tel quel et sans garantie (voir LICENSE).
  • Raspberry Pi est une marque de commerce de Raspberry Pi Ltd. Les autres noms de produits sont des marques de commerce de leurs propriétaires respectifs.

Licence

Copyright 2026 securagen.ai P.C. MIT pour le code et nos résultats ; les données dérivées de SQuAD, les fichiers de résultats contenant du texte SQuAD et les réponses générées restent sous CC BY-SA 4.0 ; voir LICENSE et DATA_LICENSES.md pour les détails et pour les conditions des autres jeux de données et modèles.

Télécharger l’outil