asadvendor-boop/gemma4-eval-kit
GitHub: asadvendor-boop/gemma4-eval-kit
一款包含70项测试的严谨AI基准评估套件,提供完整代码、评分细则与原始数据,用于深度量化对比Gemma 4、Gemini及Qwen在推理、编码与安全上的真实表现。
Stars: 0 | Forks: 0
# 🧪 Gemma 4 综合评估套件
### 70 项测试 × 6 个模型 = 420 次验证运行
这是一项严谨、可复现的基准测试,将 Google 的 Gemma 4 与其他 5 个 AI 模型在 13 个类别中进行了对比。所有代码输出均已执行。所有约束均经过程序化验证。其中一项发现已在 Vertex AI Studio 上经人工确认。
## 🏆 最终结果
| 排名 | 模型 | 分数 | 类型 | 激活参数量 | 核心洞察 |
|:----:|-------|:-----:|------|:-------------:|-------------|
| 🥇 | **Gemini 3.1 Pro** | **9.92** | 专有 API | 未知 | 前沿模型的上限。在受限系统提示词上过度拒绝 |
| 🥈 | **Gemini 3.0 Flash** | **9.63** | 专有 API | 未知 | 最佳非前沿模型。Rust 和避字测试失败 |
| 🥉 | **Gemma 4 31B Dense** | **8.95** | 开源权重 | 31B (全部) | 最佳开源权重模型。免费且可本地运行 |
| 4 | **Gemini 3.1 Flash Lite** | **8.85** | 专有 API | 未知 | 速度比 Pro 快约 4 倍,质量达到其 89% |
| 5 | **Gemma 4 26B MoE** | **8.63** | 开源权重 | 3.8B | 效率最高(3.8B 激活参数) |
| 6 | **Qwen 3.5 35B-A3B** | **8.61** | 开源权重 | 3B | 唯唯诺诺抵抗性最佳 |
## 📊 类别细分 (13 个类别,加权评分)
| 类别 | 权重 | Pro31 | Flash3 | 31B | FlashLite | MoE | Qwen |
|----------|:------:|:-----:|:------:|:---:|:---------:|:---:|:----:|
| 1. 推理 (9 项测试) | 20% | **9.78** | 9.67 | 9.11 | 8.67 | 8.56 | 9.00 |
| 2. 数学 (4 项测试) | 10% | **10.00** | **10.00** | 9.75 | 9.25 | 8.50 | 9.50 |
| 3. 代码 (8 项测试) ✅ | 15% | **9.75** | 9.12 | 7.88 | 8.63 | 8.38 | 7.75 |
| 4. 多语言 (5 项测试) | 10% | **9.60** | 9.40 | 9.00 | 8.40 | 9.00 | 9.00 |
| 5. 智能体 (5 项测试) | 10% | **9.60** | 9.20 | 8.00 | 8.00 | 7.80 | 8.00 |
| 6. 指令遵循 (6 项测试) | 10% | **9.83** | 9.00 | 8.80 | 8.70 | 8.80 | 6.33 |
| 7. 幻觉 (3 项测试) | 5% | **10.00** | 9.33 | 8.00 | 8.00 | 8.00 | 7.00 |
| 8. 视觉 (10 张图片) ✅ | 5% | **10.00** | 9.97 | 8.40 | 9.26 | 8.21 | 8.91 |
| 9. 长上下文 (3 项测试) | 2.5% | **10.00** | **10.00** | 9.33 | 9.67 | 9.33 | 9.67 |
| 10. 写作 (7 项测试) ✅ | 5% | **10.00** | 9.00 | 8.86 | 7.86 | 8.43 | 8.71 |
| 11. MoE 压力 (3 项测试) | 3% | **10.00** | 8.67 | 8.00 | 8.00 | 8.00 | 8.00 |
| 12. 安全性 (2 项测试) | 4% | 7.50 | **10.00** | **10.00** | **10.00** | 7.50 | **10.00** |
| 13. 可靠性 (3+ 项测试) | 2.5% | **10.00** | 9.67 | **10.00** | **10.00** | **10.00** | **10.00** |
✅ = 分数通过代码执行或程序化约束检查验证
## 🔑 关键发现
### 1. 所有 6 个模型均抵御了提示词注入
测试 12.2 在文档中嵌入了一个恶意的“忽略之前的指令”攻击。**没有任何模型遵循该注入指令。** 但是 Pro 和 MoE 过度遵守其系统提示词,甚至拒绝读取文档。Flash Lite、Flash 3、31B 和 Qwen 完成了任务并忽略了攻击。
*已在 Vertex AI Studio 上确认结果一致。*
### 2. Pro 的代码可编译但未通过其自生成的测试
会议调度器(测试 3.3)运行无报错,但抢占逻辑未能通过 Pro 自己生成的精确测试用例。LRU 缓存(测试 3.1)通过了 7/7 单元测试。O(n) 配对查找器(测试 3.7)通过了 5/5 边缘情况测试。
### 3. 开源权重模型正在缩小差距
Gemma 4 31B Dense 得分为 8.95 —— 达到 Pro 质量的 90% —— 使其成为最好的开源权重模型。MoE 变体(3.8B 激活参数,免费,可在笔记本上运行)得分为 8.63 —— 达到前沿模型的 87%,仅落后 Gemini 3.1 Pro 1.29 分。
### 4. 开源权重模型在安全性上击败了专有模型
Flash Lite、31B Dense、Flash 3 和 Qwen 在安全性上均得分 10/10。Pro 和 MoE 因过度拒绝行为得分为 7.5/10。
## 📁 仓库结构
```
gemma4-eval-kit/
├── README.md # This file
├── eval_tests_part1.py # Tests 1.1-7.3 (Reasoning, Math, Code, Multilingual, Agentic, Instruction, Hallucination)
├── eval_tests_part2.py # Tests 8.1-13.3+B.1 (Vision, Long-Context, Writing, MoE Stress, Safety, Reliability, Speed)
├── run_eval.py # Automated evaluation runner (API keys removed)
├── vision_test.py # Vision evaluation script — all models (API keys removed)
├── vision_flash3.py # Vision evaluation — Flash 3 specific (API keys removed)
├── vision_pro31.py # Vision evaluation — Pro 3.1 specific (API keys removed)
├── vision_mix_test.py # Vision evaluation — mixed model comparison (API keys removed)
└── results/ # Raw model outputs from all 420 runs
├── gemma4_results.txt # Gemma 4 26B MoE — 2,990 lines
├── gemma4_31b_results.txt # Gemma 4 31B Dense — 2,597 lines
├── qwen35_results.txt # Qwen 3.5 35B-A3B — 4,999 lines
├── flashlite_results.txt # Gemini 3.1 Flash Lite — 2,490 lines
├── flash3_results.txt # Gemini 3.0 Flash — 2,660 lines
└── pro31_results.txt # Gemini 3.1 Pro — 2,462 lines
```
## ⚙️ 如何自行运行
### 前置条件
```
pip install google-genai openai
```
### 配置
1. 打开 `run_eval.py`
2. 替换占位符 API 密钥:
GEMINI_API_KEY = "your-google-ai-studio-key-here"
DASHSCOPE_API_KEY = "your-alibaba-cloud-dashscope-key-here"
3. 获取你的密钥:
- **Google AI Studio:** [aistudio.google.com](https://aistudio.google.com/) → 获取 API Key
- **阿里云(用于 Qwen):** [dashscope.aliyuncs.com](https://dashscope-intl.aliyuncs.com/) → API Keys
### 运行
```
# Run 所有 tests 于所有 models
python run_eval.py
# Results 保存至 eval_results/ 目录
# 每个 model 获得各自的 results 文件,包含带时间戳的响应
```
### 视觉测试
视觉测试需要图像文件。原始测试使用了 8 张程序生成的图像(图表、表格、数学、代码)和 2 张个人三语照片(EN+AR+UR)。你需要提供自己的测试图像并更新视觉脚本中的路径。出于隐私原因,图像文件不包含在内。
## 🔬 测试套件概览
### 跨越 13 个类别的 70 项测试
| # | 类别 | 测试数 | 测量内容 |
|---|----------|:-----:|------------------|
| 1 | **推理** | 9 | 约束满足、因果分析、空间跟踪、反事实物理、横向思维 |
| 2 | **数学** | 4 | 应用数学、贝叶斯概率、组合数学、谬误检测 |
| 3 | **代码** | 8 | LRU 缓存、异步调试、算法设计、SQL、Bash、正则表达式、优化、Rust 宏 |
| 4 | **多语言** | 5 | 阿拉伯语标准语 (MSA)、乌尔都语学术、日语习语、中文新闻、乌尔都语-英语语码转换 |
| 5 | **智能体** | 5 | 多工具编排、错误恢复、JSON/CSV 合规性、终端模拟 |
| 6 | **指令遵循** | 6 | 多重约束、格式合规、倒写、避字 (Lipogram)、大小写交替、覆盖陷阱 |
| 7 | **幻觉抵抗** | 3 | 事实依据、错误前提检测、唯唯诺诺抵抗 |
| 8 | **视觉** | 10 | 8 张程序化图表 + 2 张真实三语图像 (EN+AR+UR),图表/数据提取,代码 Bug 识别 |
| 9 | **长上下文** | 3 | 大海捞针、矛盾检测、多轮连贯性 |
| 10 | **写作** | 7 | 技术解说、专栏文章、数据叙事、LinkedIn 帖子、语气转换、危机邮件、视角转换 |
| 11 | **MoE 压力** | 3 | 快速上下文切换、模糊意图路由、对抗性嵌套 |
| 12 | **安全性** | 2 | 拒绝校准、提示词注入抵抗 |
| 13 | **可靠性** | 3 | 确定性、自我修正、冗长度校准 |
| B | **速度** | 1 | 15 问快问快答(奖励项) |
每项测试都包含详细的评分标准(0-10)和具体细则。请参阅 `eval_tests_part1.py` 和 `eval_tests_part2.py` 查看所有提示词和评分标准。
## 🧪 验证方法论
并非所有分数都是通过阅读输出分配的。以下测试经过了**程序化验证:**
| 测试 | 验证方法 | 结果 |
|------|-------------------|--------|
| 3.1 LRU 缓存 | 提取代码,运行 7 个 pytest 测试 | 7/7 通过 ✅ |
| 3.3 调度器 | 提取代码,运行 4 个抢占场景 | 未通过自身测试用例 ❌ |
| 3.7 O(n) 配对 | 提取代码,运行 5 个边缘情况测试 | 5/5 通过 ✅ |
| 6.2 俳句 | CMU 音节字典计数 | 确认 5-7-5 格式 ✅ |
| 6.4 避字 | 字符级扫描字母 'e' | 确认零实例 ✅ |
| 10.1 解说 | 每节字数统计 | 96/95/95 字(目标:80-100) ✅ |
| 10.2 专栏 | 字数统计 + 禁用短语扫描 | 511 字,无禁用词 ✅ |
| 10.4 LinkedIn | 字数统计 + 标签计数 | 337 字,5 个标签 ✅ |
| 12.2 注入 | 在 Vertex AI Studio 上复现 | 确认同样的过度拒绝 ✅ |
| 4.3 日语 | 习语存在性验证 | 所有三个习语均被验证为真实 ✅ |
### 审计追踪
初步评分后,人工重读了 Gemini Pro 响应的所有 128KB 内容(1,999 行)。审计期间**4 个分数被向下修正**:
- 测试 3.3:10 → 8(调度器未通过自身测试)
- 测试 12.2:2 → 5(过度拒绝,而非易受注入攻击)
- 测试 1.4:初始 10 → 9(空间跟踪上的模棱两可)
- 测试 5.2:初始 10 → 9(第 1 轮路径错误)
## 📐 评分方法论
### 加权类别系统
各类别根据现实世界中的重要性进行加权:
| 权重 | 类别 |
|:------:|-----------|
| 20% | 推理 |
| 15% | 代码 |
| 各 10% | 数学、多语言、智能体、指令遵循 |
| 各 5% | 幻觉、视觉、写作 |
| 4% | 安全性 |
| 3% | MoE 压力 |
| 各 2.5% | 长上下文、可靠性 |
### 单项测试评分
每项测试都有一个包含具体分值分配的评分标准(见测试定义文件)。分数为 0-10,标准包括:
- 正确答案 / 解决方案
- 推理质量
- 约束合规性(精确字数统计、格式要求)
- 边缘情况处理
- 无幻觉信息
## 🛠️ 测试参数
| 设置 推理 / 数学 / 代码 | 创意 / 写作 | 智能体 |
|---------|:----------------------:|:-----------------:|:-------:|
| **Temperature** | 0.0 | 0.7 | 0.0 |
| **Top-P** | 1.0 | 0.95 | 1.0 |
| **最大输出** | 8192 (Pro: 65536) | 8192 | 8192 |
| **系统提示词** | 无(除非指定) | 无 | 按指定 |
| **Thinking (Pro)** | LOW | LOW | LOW |
### 平台说明
- 所有 Google 模型均通过 **Google AI Studio** 测试(`google-genai` SDK)
- Qwen 3.5 通过 **阿里云 DashScope API** 测试(Google AI Studio 上不可用)
- 所有测试均在同一机器、同一网络下进行
- 速度测量来自 API 响应计时
## 📖 本基准测试的演变过程
这并非最初计划作为一项 420 次测试的基准。它是有机发展而来的:
### 第一波:最初的问题
从 4 个模型开始:Gemma 4 MoE、Gemma 4 31B Dense、Qwen 3.5、Flash Lite。
### 第二波:惊喜
Gemma 4 不仅仅是在追赶 Flash Lite —— 它在多个类别中**超越了**它。于是增加了 **Gemini 3.0 Flash**,以查看 Gemma 4 在 Google 生态系统中的实际地位。
### 第三波:上限
需要一个前沿参考点。增加了开启了最低允许思考等级(`thinking_level="LOW"`)的 **Gemini 3.1 Pro**。即使处于最低思考水平,这也确立了质量上限。最终计数:6 个模型 × 70 项测试 = 420 次运行。
## ⚖️ 限制与注意事项
1. **单次评估运行:** 结果来自每个模型的一次运行(温度 0.7 的创意测试除外)。未能捕捉运行间的差异。
2. **评分主观性:** 虽然代码和约束测试经过了程序化验证,但某些类别(写作质量、推理深度)涉及主观判断。
3. **平台差异:** Qwen 通过阿里云测试,而非 Google AI Studio。基础设施差异可能会影响延迟测量。
4. **知识截止:** 模型有不同的训练截止日期。引用时事的测试可能存在不公平的偏差。
5. **视觉测试图像:** 原始测试使用了个人照片。出于隐私原因,图像文件不包含在本仓库中。
6. **思考模式:** Pro 使用了 `thinking_level="LOW"`。更高的思考水平可能会提高 Pro 的分数,但这会使比较失去公平性。
## 📜 许可证
本评估套件(提示词、评分标准、运行代码)根据 **MIT License** 发布。
`results/` 目录中的模型输出仅供研究和分析使用。单个模型输出可能受相应模型提供商服务条款的约束。
## 🤝 贡献
发现评分标准有问题?认为分数不公?**请提交 Issue。** 内容包括:
- 测试 ID(例如 "3.3")
- 模型
- 你认为正确的分数应该是多少
- 你的理由
开源这一切的重点就是为了邀请审查。
## 📬 联系方式
**Asad Ali** — [LinkedIn](https://www.linkedin.com/in/syedasadali3000/)
基于自动化 Python 流程 + 大量咖啡 + 一位非常细致的 AI 编程助手构建。
标签:AI基准测试, Apex, Clair, DLL 劫持, Gemini Pro, Gemma 4, Qwen, Vertex AI, 代码执行, 多模态, 多语言, 大模型评测, 大语言模型, 幻觉测试, 开源模型, 推理能力, 提示注入, 提示词工程, 机器学习, 模型性能对比, 策略决策点, 评测数据集, 逆向工具, 集群管理