MalenaPS/llm-systems-reliability-lab

GitHub: MalenaPS/llm-systems-reliability-lab

一个用于评估LLM流水线可靠性与安全性的可复现测试平台,支持故障注入、红队对抗测试和模型漂移监控。

Stars: 0 | Forks: 0

# LLM 系统可靠性实验室 ![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/41eeeda378040406.svg) ![License](https://img.shields.io/badge/license-Apache%202.0-blue) ![Python](https://img.shields.io/badge/python-3.11-blue) 构建可靠的 LLM 系统:评估、对抗性测试、行为漂移监控和确定性流水线。 ## 快速演示 运行确定性流水线: ``` python -m llm_lab.cli demo --backend mock ``` 示例输出: ``` schema_compliance_rate: 1.0 tool_success_rate: 1.0 success_rate: 1.0 ``` 本仓库提供了一个**用于评估基于 LLM 的流水线可靠性与安全性的可复现测试平台**。\ 它模拟了一个生产环境下的 LLM 系统(RAG + 工具 + 策略),并衡量其在故障、攻击和模型变更下的行为表现。 其目标是使 **LLM 可靠性变得可衡量且可复现**。 # 为什么这很重要 LLM 系统在生产环境中失败主要有四个原因: * **可靠性故障** —— 工具失效,输出违反约定。 * **安全漏洞** —— 提示词注入 (Prompt Injection) 或工具劫持。 * **模型漂移** —— 行为随模型更新而变化。 * **缺乏可复现性** —— 缺乏确定性产物或运行清单。 本项目提供了一个**用于测试和衡量这些风险的最小化开源实验室**。 # 功能特性 * 契约优先的 LLM 流水线(强制执行 JSON schema) * 带白名单的工具调用 * RAG 检索(BM25) * 工具故障注入 * 重试/恢复策略 * 红队对抗性测试 * 跨模型版本的漂移观测台 * 确定性运行清单 * 结构化产物与指标 * 完全可复现的本地设置 # 快速开始(确定性 Mock 后端) 克隆仓库: ``` git clone cd llm-systems-reliability-lab ``` 安装依赖: ``` uv venv # macOS / Linux source .venv/bin/activate # Windows PowerShell .venv\Scripts\Activate.ps1 uv pip install -e ".[dev]" ``` 运行确定性演示: ``` python -m llm_lab.cli demo --backend mock ``` 产物将生成在: ``` runs// ``` 示例产物: ``` runs/20260305-154606-4c7281d4/ output.json metrics.json events.jsonl run_manifest.json ``` # 运行评估 ## 可靠性套件 模拟工具故障并衡量恢复能力。 ``` python -m llm_lab.cli eval --suite reliability \ --fault-matrix configs/fault_matrix.yaml ``` 输出: ``` runs//reliability_report.json runs//metrics.json ``` 指标包括: * tool_success_rate * tool_retry_rate * recovery_rate * schema_compliance_rate ## 红队对抗性测试 运行提示词注入和工具劫持攻击。 ``` python -m llm_lab.cli redteam --backend mock ``` 示例结果: ``` attack_success_rate: 0.0 ``` 流水线包含泄露检测护栏,可拦截以下机密信息: ``` LEAKED: ``` ## 漂移观测台 对比不同版本间的模型行为。 ``` python -m llm_lab.cli drift \ --matrix configs/drift_matrix.yaml ``` 生成: ``` drift_report.json drift_report.md ``` 示例指标: * drift_score * answer_hash_stability_rate * metric deltas # 示例输出 示例 `metrics.json`: ``` { "schema_compliance_rate": 1.0, "tool_success_rate": 1.0, "policy_violation_rate": 0.0, "insufficient_evidence_rate": 0.0, "success_rate": 1.0, "citations_valid_rate": 1.0 } ``` 示例 `drift_report.json`: ``` { "drift_score": 0.5, "answer_hash_stability_rate": 0.0 } ``` # 架构 流水线组件: ``` User Case | Eval Runner | SUT Pipeline | +-------------------+ | Tool Router | | (JSON schema) | +---------+---------+ | Fault Injection | +---------+---------+ | Tools (mock) | +-------------------+ | +-------------------+ | Retriever (BM25) | +-------------------+ | +-------------------+ | LLM Adapter | | (Mock / Ollama) | +-------------------+ | +-------------------+ | Output Validator | | (schema + policy) | +-------------------+ ``` 产物: ``` runs/ run_manifest.json metrics.json events.jsonl output.json ``` # 指标 系统跟踪以下内容: | 指标 | 描述 | | -------------------------- | ------------------------------------- | | schema_compliance_rate | 符合 schema 的输出 | | tool_success_rate | 成功的工具执行 | | recovery_rate | 从瞬时故障中恢复 | | attack_success_rate | 绕过防御的红队攻击 | | drift_score | 跨模型的指标差异 | | answer_hash_stability_rate | 行为稳定性 | # CI GitHub Actions 流水线运行: * ruff * black * pytest * 可靠性冒烟测试 # 仓库结构 ``` src/llm_lab pipeline/ tools/ retrieval/ llm/ drift/ redteam/ evals/ configs/ data/ tests/ runs/ ``` # 路线图 未来改进: * 向量检索 (FAISS) * 从模型输出解析工具调用 * OpenTelemetry 追踪 * 基于模型的评分 * Streamlit 仪表板 # 许可证 Apache License 2.0 Copyright (c) 2026 Malena Pérez Sevilla 根据 Apache License 2.0 版本授权。 您可以在以下位置获取许可证副本: http://www.apache.org/licenses/LICENSE-2.0
标签:AI安全, AI风险缓解, BM25, Chat Copilot, DLL 劫持, JSON Schema, Lerna, LLM, LLM Pipeline, MLOps, Prompt注入, Python, RAG, Tool-calling, Unmanaged PE, 可靠性测试, 大语言模型, 安全规则引擎, 密码管理, 对抗性测试, 工具劫持防御, 故障注入, 无后门, 检索增强生成, 模型漂移, 测试床, 确定性评估, 策略执行, 系统稳定性