論文 Signed but Steerable: Measuring and Closing the Text-Vector Integrity Gap in Offline Retrieval-Augmented Generation(G. Feretzakis, A. Papaspyridis, securagen.ai)のコード、データ、結果です。
Zenodoでアーカイブ済み:10.5281/zenodo.23945569(全バージョン。リリースv1.0.2は論文で引用:10.5281/zenodo.23948839)。論文のarXiv識別子は利用可能になり次第追加されます。
ragtrust/ 共有ライブラリ。すべてのコード検証結果に使用される参照用コードレベル検証器 codeverify.py を含みます(曖昧性は検証器の再計算のみで判定、近傍のみによる受理、正規化)。desktop/ デスクトップ上で実行した実験:棄権スコアリング(E1)とそのMS MARCOチェック、ベクトル非同期化攻撃とマージン則(E7)、BEIRマージン、ベクトルデータベースの露出、FAISSデモンストレーション、コードレベル検証、浮動小数点パイプラインの決定性。device/ Raspberry Pi 5 CPU上で実行した実験:コンテキストプルーニング(E2)、言語モデルに隣接する検証のコスト(E4)、デバイス側埋め込みとINT8忠実度(E5)、エンドツーエンド攻撃(E7)、パック更新(E8)。analysis/ 各種分析、精度および単位チェック、図を再生成する make_figures.py。data/ SQuAD由来のコーパス、ウィンドウ、質問、ベクトル;results/ 実験ごとの出力;tests/ ユニットテスト;remote/ デスクトップからPiを操作するためのヘルパー(ホスト名は適宜変更してください)。PROTOCOL.md データ収集前に固定された仮説、および逸脱と探索的分析のログ。実験番号はプロトコルに従います。E3とE6は本リリースには含まれません。pins.json モデルとツールの固定リビジョン。python tests/test_codeverify.py。bash desktop/setup_desktop.sh;図:python analysis/make_figures.py。device/requirements_device.txt を導入したPython、および pins.json に記載のコミットのllama.cpp。Raspberry Pi上で、cp device/config.env.example device/config.env(パスは適宜変更)を実行し、device/requirements_device.txt を venv_device にインストールした後:
bash device/inner_generate.sh がllama-serverを起動し、k3_full(最初の60問、再現性チェック)、k5_ce3、k10_ce3、k10_ce5、k5_bi3、オンラインINT8セレクタ付きの k5_ce3、およびE7の構成を実行します。CPU-INT8エンドツーエンド構成のみ:bash device/run_e7_cpu_int8.sh。バリアント k5_ce3w、k3_ce3、k3_ce3w は、llama-serverの実行中に python device/e2_generate.py --config <name> で実行します(起動方法は device/inner_generate.sh と同様)。results/e2/status_<name>.json が存在する構成はスキップされます。リリース済みの結果を再生成するには、それらのファイルを別の場所に移動してください。python device/e4_contention.py;E5:python device/e5_reindex.py --backends ort-fp32,ort-int8 --batch 32(リリース済み結果のバッチサイズ:動的INT8はバッチに依存し、バッチ64では異なるベクトルが得られます);E8:python device/e8_device_verify.py --vector-backend ort-fp32。remote/pi_sync.sh がリポジトリをPiにコピーし、remote/pi_fetch.sh が結果を取得します。results/e7/margin_law_squad.json;その他のコーパスと図 1: results/e7/beir_margins.json
および results/e7/margins/;CPU-INT8 参照しきい値での露出: results/e7/cpu_int8_exposure.json;
数値精度と単位のチェック: results/e7/margin_precision_check.json;INT8 参照しきい値のキャリブレーション
(正確な分位点、その下での正直なウィンドウ、バッチ 32 でのビット単位の再エンコード):
results/e5/int8_calibration_check.json(analysis/e5_int8_calibration_check.py)。results/e7/vecdb_quant.json;FAISS 監査と実行された攻撃: results/e7/faiss_integrity.json;
残差バジェット: results/e7/guard_budget.json。results/e7/analysis.json(正解と拒否)および results/e7/e2e_checks.json
(同一の質問、角度バジェット、上位 3 コンテキスト内のペイロード)。results/e2/decomposition.json;言語モデルに隣接するコスト(E4): results/e4/。results/figures/fig_margin_law.pdf(図 1)および results/figures/fig_vdb.pdf(図 2)、
analysis/make_figures.py により再生成。results/e7/squad_question_vectors.npz
(analysis/margin_law_squad.py)および results/e7/proxy_vectors.npz(analysis/margin_law.py)。results/e7/vecs/(desktop/beir_margins.py により書き込み)、
results/e7/scale_*.npy(コード検証スクリプトにより書き込み)、
data/beir/ および artifacts/models/(desktop/export_onnx.py により書き込み)。一部の分析スクリプトは、自身が numpy.load(..., allow_pickle=True) で作成したキャッシュを読み込みます;
そのようなファイルは自身の実行からのみ読み込み、信頼できないソースからは決して読み込まないでください。
モデル、データセットおよびそれらのライセンスは DATA_LICENSES.md に記載されています。対応する部分を使用する際は、
SQuAD 2.0(Rajpurkar et al., 2018)、BEIR(Thakur et al., 2021)、MS MARCO(Bajaj et al., 2016)、BGE-M3(Chen et al., 2024)
および Sentence-BERT(Reimers and Gurevych, 2019)も併せて引用してください。
LICENSE を参照)。Copyright 2026 securagen.ai P.C. コードおよび当社の結果には MIT;SQuAD 由来のデータ、SQuAD のテキストを含む結果ファイル
および生成された回答は CC BY-SA 4.0 を維持します;詳細およびその他のデータセットとモデルの条件については
LICENSE および DATA_LICENSES.md を参照してください。