bilgekayali/finsec-llm-eval

GitHub: bilgekayali/finsec-llm-eval

一个面向金融服务场景的开放基准测试,用于评估大语言模型和 AI agent 的安全性、可靠性和控制行为。

Stars: 1 | Forks: 0

# FinSec-LLM-Eval [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/bilgekayali/finsec-llm-eval/actions/workflows/ci.yml) [![Python 3.11+](https://img.shields.io/badge/Python-3.11%2B-3776AB?logo=python&logoColor=white)](https://www.python.org/) [![Status: v0.2 release candidate](https://img.shields.io/badge/status-v0.2_release_candidate-F59E0B)](docs/TECHNICAL_REPORT_v0.2.md) [![Code: Apache 2.0](https://img.shields.io/badge/code-Apache--2.0-2563EB)](LICENSE) [![Data: CC BY 4.0](https://img.shields.io/badge/data-CC_BY_4.0-16A34A)](DATA_LICENSE.md) FinSec-LLM-Eval 是一个开放基准测试,用于测试金融服务中使用的大语言模型和 AI agent 的安全性、可靠性和控制行为。 版本 0.2 是一个**发布候选版本**,包含 60 个合成英语和土耳其语案例、真实的远程/本地模型适配器、可复现的比较报告,以及准备好推送的 Hugging Face 数据集和 Space 包。 ## 涵盖范围 | 代码 | 风险领域 | 核心控制问题 | |---|---|---| | PI | Prompt injection | 当检索到的内容包含恶意意图时,系统是否会保留受信任的指令? | | SD | 敏感数据 | 它是否能防止泄露受限的客户、交易和凭证数据? | | TU | 工具授权 | 它是否会在没有经过验证的权限和批准的情况下拒绝产生副作用? | | FR | 财务和监管真实性 | 它是否能避免捏造或夸大高风险的规则和事实? | | HE | 人工介入 | 它是否会停止执行并移交后果严重或模棱两可的决策? | | CC | 引用和置信度校准 | 其确定性是否与可用证据保持比例关系? | v0.2 候选版本在设计上是平衡的: | 维度 | 分布 | |---|---| | 案例 | 60 | | 语言 | 30 个英语,30 个土耳其语 | | 分类 | 每个分类 10 个 | | 模式 | 32 个 RAG,18 个 agent,10 个聊天 | | 严重性 | 34 个严重,22 个高,4 个中 | | 审查 | 12 个已批准,48 个草稿 | 所有姓名、账户、交易、策略、文档和 canaries 均为虚构。不包含任何生产数据或实时金融工具。 ## 评估流程 ``` flowchart LR A["Versioned JSONL"] --> B["Schema + invariant checks"] B --> C["Remote, local, or recorded adapter"] C --> D["Deterministic evidence"] D --> E["Human review where required"] E --> F["JSON + Markdown comparison"] ``` 严重的确定性失败不能被语义分数覆盖。 不支持的功能会被报告为 `not_applicable`,语义案例在被裁定之前将保持 `needs_review` 状态。 ## 快速开始 ``` git clone https://github.com/bilgekayali/finsec-llm-eval.git cd finsec-llm-eval python3 -m venv .venv source .venv/bin/activate python -m pip install -e . ``` 在 Windows PowerShell 上: ``` .venv\Scripts\Activate.ps1 ``` 验证 60 个案例的发布候选版本: ``` finsec-eval validate --dataset datasets/v0.2/cases.jsonl ``` 更严格的命令会特意报告人工审查尚未完成: ``` finsec-eval validate \ --dataset datasets/v0.2/cases.jsonl \ --release-ready ``` 运行确定性控制比较: ``` finsec-eval compare \ --dataset datasets/v0.2/cases.jsonl \ --config configs/comparison.mock.json \ --output-dir reports/latest ``` 运行测试: ``` python -m unittest discover -s tests -v ``` ## 模型适配器 运行器支持: - 通过官方 Python SDK 调用 OpenAI Responses API; - 兼容 OpenAI 的 Chat Completions 端点,例如受控的本地 vLLM 或 Ollama 服务; - 本地 Hugging Face Transformers 文本生成 pipeline; - 用于审计和确定性重放的已记录 JSONL 响应; - 故意设计的安全和不安全 mock,用于测试基准测试本身。 适配器仅记录提议的工具调用。它们从不执行付款、交易、客户数据导出、发布操作或任何其他具有副作用的操作。 仅需安装您需要的依赖: ``` python -m pip install -e ".[openai]" python -m pip install -e ".[local]" python -m pip install -e ".[demo]" ``` 实时凭证仅从指定的环境变量中读取,且绝不会写入报告中。请参阅[实时模型运行指南](docs/LIVE_MODEL_GUIDE.md)以及 [`configs/`](configs/) 下的无需凭证示例。 ## 当前参考结果 这些控制验证了评分 pipeline;它们不是真实模型。 | 适配器 | 通过 | 需要审查 | 失败 | 严重失败率 | |---|---:|---:|---:|---:| | `mock:safe` | 30 | 30 | 0 | 0% | | `mock:leaky` | 0 | 0 | 60 | 100% | 安全控制留下 30 个语义案例未解决。泄漏控制导致所有 60 个案例失败,这表明严重的泄漏和未经授权的工具提议不会被平均值所掩盖。请参阅[结果与解读](docs/RESULTS.md)。 ## Hugging Face 包 该仓库包含两个独立的、准备好推送的目录: - [`huggingface/dataset/`](huggingface/dataset/) — 数据集卡片和准备好用于查看器的 JSONL; - [`huggingface/space/`](huggingface/space/) — Gradio 案例浏览器和粘贴响应评分器。 该 Space 不会调用模型 API、接受凭证或执行工具。 发布这些目录需要维护者的 Hugging Face 账户;在该外部步骤成功完成之前,不声称拥有任何托管 URL。 ## 文档 - [技术报告 v0.2](docs/TECHNICAL_REPORT_v0.2.md) - [数据集卡片](docs/DATASET_CARD.md) - [实时模型运行指南](docs/LIVE_MODEL_GUIDE.md) - [人工审查指南](docs/HUMAN_REVIEW_GUIDE.md) - [v0.2 审查工作表](docs/REVIEW_WORKSHEET_v0.2.md) - [威胁模型和基准测试规范](BENCHMARK_SPEC.md) - [LinkedIn 发布草稿](docs/LINKEDIN_POST.md) - [Medium 文章草稿](docs/MEDIUM_ARTICLE_DRAFT.md) - [演示视频脚本](docs/VIDEO_SCRIPT.md) ## 仓库结构 ``` configs/ Credential-free comparison configurations datasets/v0.1/ Approved 12-case seed set datasets/v0.2/ 60-case release candidate docs/ Methodology, review, results, and launch material huggingface/dataset/ Dataset Hub package huggingface/space/ Self-contained Gradio Space reports/ Reproducible control reports scripts/ Dataset build tooling src/finsec_eval/ Adapters, runner, scoring, and reporting tests/ Standard-library automated tests ``` ## 发布门控 公开的模型比较需要满足以下所有条件: - 对 48 个新案例进行人工审查; - 双语和领域校准; - 包含不可变模型/配置元数据的完整实时运行; - 对每个 `needs_review`、失败、错误和严重结果进行人工裁定; - 对严重失败和有争议的决策进行独立的二次审查; - 对确定性通过案例进行分层审计; - 披露局限性和利益冲突。 在这些门控完成之前,模型结果表必须保持私有,或者明确标记为未审查的实验性输出。 ## 引用和许可证 使用 [CITATION.cff](CITATION.cff) 来引用本软件。 - 源代码和文档:[Apache License 2.0](LICENSE) - 原始基准测试数据:[CC BY 4.0](DATA_LICENSE.md) 由 **Bilge Kayalı** 创建和维护。
标签:AI安全, AI风险缓解, Chat Copilot, DLL 劫持, 人工智能, 大语言模型, 用户模式Hook绕过, 红队评估, 逆向工具, 金融科技, 零日漏洞检测