Nevern1y/gemmajudge

GitHub: Nevern1y/gemmajudge

基于 Gemma 模型家族构建的自托管对抗式 LLM 评估框架,通过攻击者+裁判双角色闭环在 AMD GPU 上对目标模型的鲁棒性进行自动化基准测试。

Stars: 0 | Forks: 0

# GemmaJudge **对抗式 LLM 评估,由 AMD 上的 Gemma 驱动。** GemmaJudge 使用单一开放权重模型家族 (Gemma) 扮演两个对抗性角色 —— 一个负责生成针对性对抗测试用例的 **攻击者 (Attacker)** 和一个负责对目标响应进行评分的 **裁判 (Judge)** —— 并提供了通过 vLLM + ROCm 在 AMD GPU 上自托管 Gemma 的确凿证明。专为 **AMD Developer Hackathon: ACT II — Track 3 (Unicorn)** 而构建。 ## 黑客松提交产物 Track 3 (Unicorn) 要求提供 GitHub 仓库、演示视频和幻灯片 PDF;实时的托管 URL 是可选的,但推荐提供。本仓库包含一个 `Dockerfile`,用于实现可复现的一键运行,并满足通用容器规则所要求的 linux/amd64 平台。 - **GitHub 仓库:** - **实时演示 URL:** - **幻灯片 PDF:** 直接上传至 lablab.ai 提交表单。 - **AMD 算力证明:** [`docs/amd_proof/w7900/`](docs/amd_proof/w7900/) - **真实 Gemma 排行榜数据:** [`docs/real_runs/`](docs/real_runs/) ## 存在意义 每次团队发布或微调 LLM 时,他们都在猜测它现在是否会产生更多幻觉、是否更容易被越狱,或者是否变得更加存在偏见。GemmaJudge 基于单一开放权重家族构建了一个闭环的 **攻击者 + 裁判** 流程,并在你自主掌控的硬件上进行自托管 —— 这样评估数据永远不会离开你的基础设施,而且裁判不是一个按量计费的封闭 API。 ## 工作原理 ``` config (target endpoint, failure mode, N) │ ▼ Attacker (Gemma) ──► Target model ──► Judge (Gemma) ──► report adversarial responses score + reasoning ASR, drill-down, test cases per case cost meter, AMD panel ``` ## 鲁棒性排行榜 同样的循环可扩展至单一目标之外:**一个**由 Gemma 生成的攻击集,针对**多个**模型运行,按攻击成功率 (Attack Success Rate) 排名 —— 这是一个自托管、开放权重的红队 + 裁判系统,可在你控制的硬件上对任何模型的幻觉鲁棒性进行基准测试。这是一次**真实运行** (在 Fireworks 上使用 Gemma-3-27B 作为裁判,8 个共享 prompt): | # | 目标 | ASR | 失败 | |---|---|---|---| | 1 | glm-5p1 | 25% | 2/8 | | 2 | deepseek-v4-pro | 25% | 2/8 | | 3 | glm-5p2 | 25% | 2/8 | | 4 | kimi-k2p6 | 12% | 1/8 | | 5 | gpt-oss-120b | 0% | 0/8 | 完整数据与方法论:[`docs/real_runs/`](docs/real_runs/)。这是应用程序中的 **🏆 鲁棒性排行榜** 标签页,可通过 CLI 复现: ``` python -m gemmajudge.leaderboard_demo --n 8 \ --targets accounts/fireworks/models/glm-5p1,accounts/fireworks/models/gpt-oss-120b ``` ## 快速开始 ``` python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt cp .env.example .env # fill in your keys — never commit .env streamlit run app.py ``` 或者使用 Docker: ``` docker build -t gemmajudge . docker run --rm -p 8501:8501 gemmajudge # open http://localhost:8501 # 可选的真实 backend:添加 --env-file .env ``` ### 30 秒内即可尝试 —— 无需密钥,无需网络 公开的 Streamlit 应用程序是一个零成本的查看器,用于展示已提交的 **真实** GemmaJudge 运行结果:位于 `docs/amd_proof/w7900/eval_result.json` 的 W7900 ROCm 证明,以及位于 `docs/real_runs/leaderboard.json` 的真实 Gemma-27B 排行榜。检查产品流程、指标、prompt、目标响应和裁判推理过程均无需 API 密钥。 作为开发备选方案,依然提供了一个带有清晰标识的模拟后端: ``` python -m gemmajudge.demo --offline # full report in your terminal # 或者,在 UI 中:streamlit run app.py → 切换 "Simulated demo"(默认开启) ``` ## 引擎接口 UI 仅通过一个函数与引擎进行通信 —— `run_eval` —— 因此前端和后端可以独立演进: ``` from gemmajudge.orchestrator import run_eval # async def run_eval(config) -> EvalResult from gemmajudge.schemas import EvalConfig, FailureMode result = await run_eval(EvalConfig( failure_mode=FailureMode.HALLUCINATION, n_cases=20, target_endpoint="http://localhost:8000/v1", target_model_id="my-weak-model", )) result.attack_success_rate # % of cases the target failed (score >= 4) result.cases # attacker prompt <-> judge verdict, for the drill-down result.cost, result.metrics # cost meter + AMD/latency panel result.consistency # F9b judge self-consistency spread ``` ## 配置 所有配置均通过环境变量进行 —— 没有任何硬编码。请参阅 [`.env.example`](.env.example) 获取完整列表。有两种推理后端,通过 `INFERENCE_BACKEND` 进行选择: - `fireworks` —— 可选的私有实时后端,用于简短的演示;并非 AMD 证明路径。 - `mi300x` —— 在 AMD GPU 上自托管的、兼容 OpenAI 的 vLLM 后端。 提交的证明使用了 AMD Radeon PRO W7900 (gfx1100);相同的后端也可原封不动地服务于 AMD Instinct MI300X。 公开 URL 不需要实时的模型端点。如需进行私有的实时 Gemma 演示,请根据 `.env.example` 设置 `MODEL_ID` 和端点凭证;切勿提交真实的密钥。 ## AMD 算力证明 **在 AMD 上真实运行的 GemmaJudge** 位于 [`docs/amd_proof/w7900/`](docs/amd_proof/w7900/): Gemma-3-4b-it (攻击者 + 裁判) 和 Gemma-3-1b-it (目标) 通过 **vLLM + ROCm 7.2 在 AMD Developer Cloud 的 AMD Radeon PRO W7900 (gfx1100) 上**自托管 —— 包含已提交的 `rocm-smi` 输出、vLLM 服务日志、启动命令以及真实的 `eval_result.json` (幻觉 **ASR 80%**,裁判自洽性 **stdev 0.00**,136.9 tok/s)。`mi300x` 后端和 [`docs/amd_proof/mi300x_gemma.ipynb`](docs/amd_proof/mi300x_gemma.ipynb) 笔记本作为 AMD Instinct 参考路径包含在内。这满足了 Track 3 的 AMD 算力要求。 ## 微调流水线 GemmaJudge 还包含一项经过实测验证的 ROCm LoRA 裁判微调证明:数据集构建器、种子 JSONL、训练入口、可选的 Fireworks 转换文档、直接的 Transformers 备用评估,以及基础版与微调版/变体之间的选择。在已记录的 56 个样本的验证运行中,微调后的 Gemma-3-4B 裁判将 JSON 有效性从 **89.3% 提升至 100.0%**,通过/失败准确率从 **66.1% 提升至 75.0%**,macro-F1 从 **0.578 提升至 0.622**,分数 MAE 从 **1.38 降低至 1.30**。另外还训练并评估了两个额外的 LoRA 变体;最初的检查点依然是最佳版本。请参阅 [`docs/fine_tune_eval/report.json`](docs/fine_tune_eval/report.json) 和 [`docs/fine_tune_eval/README.md`](docs/fine_tune_eval/README.md)。adapter 和合并后的模型产物已被有意加入 .gitignore 忽略列表;仅数据 schema、脚本、文档和实测报告才应被提交。 ## 许可证 [Apache-2.0](LICENSE)。 ## 致谢 Gemma 是由 Google DeepMind 开发的开放权重模型家族。AMD (AMD Developer Cloud 上的 ROCm) 和 Fireworks AI 提供了推理基础设施。
标签:AI安全, Chat Copilot, Clair, DLL 劫持, Kubernetes, LLM评估, Ollama, ROCm, vLLM, 大语言模型, 请求拦截, 逆向工具