
오프라인 RAG에서 텍스트-벡터 무결성 격차 측정 및 해소: 마진 법칙, 벡터 데이터베이스 감사 및 코드 수준 검증.
논문 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를 참조하십시오.