Nadim-Mahmud-23/bengali-llm-safety-benchmark
GitHub: Nadim-Mahmud-23/bengali-llm-safety-benchmark
BengaliSafe 是首个面向孟加拉语和 Banglish 混合语的 LLM 安全与能力评估基准,通过四维度评测框架量化跨语言安全差距和文化特定危害处理能力。
Stars: 0 | Forks: 0
# BengaliSafe — 孟加拉语语言模型的安全与能力基准测试
部分相关工作:
- *Evaluating transformer-based models for Bengali political sentiment analysis* — ICECET 2025
- *Bangla Optical Character Recognition using deep learning* — ICCIT 2021
- *Exploring AI Opportunities in Deaf Education in Bangladesh* — CHI 2026(塑造了“*与*受影响社区一起构建评估”的立场)
## 致谢
本项目正计划申请 **Cohere Labs** 的研究资助支持,该实验室是为数不多将多语言 AI 视为一流研究问题的实验室之一。目标是让该基准测试的发现能够反馈到 **Aya** 和 **Command** 中,使其在孟加拉语上表现更好。
## 许可证
- **代码** — [Apache-2.0](LICENSE)
- **数据集与标注** — [CC-BY-4.0](data/README.md)
首个全面且开放授权的基准测试,用于衡量前沿语言模型在孟加拉语 (বাংলা) 和语码混合“Banglish”中的安全性与能力。
## 为什么需要这个项目 全球大约有 **2.4 亿人** 使用孟加拉语 —— 比法语和德语使用者的总和还要多,并且是[世界上使用人数排名第六或第七的语言](https://en.wikipedia.org/wiki/List_of_languages_by_total_number_of_speakers)。然而,在大型语言模型 (LLM) 安全性方面,它仍然是*评估最少的*语言之一。几乎所有已发表的安全性评估都是用英语进行的,而多语言覆盖(如果有的话),通常是通过**机器翻译英语测试集**来产生的 —— 这种方法悄悄丢失了两件最重要的事情: 1. **安全行为不能跨语言转移。** 先前的多语言安全研究表明,一个在英语中坚决拒绝有害请求的模型,当在低资源语言或语码混合形式中提出*相同*请求时,有时会顺从。对齐训练集中在高资源语言上,因此,在评估最少的地方,安全“盾牌”恰恰最薄弱。孟加拉语 —— 说话人数多,评估覆盖率低 —— 正好处于这个缺口之中。 2. **文化特定的危害对翻译是不可见的。** 社群虚假信息、带有宗教色彩的煽动、特定地区的诈骗以及具有本地背景的医疗/法律虚假信息,无法通过翻译英语基准测试来发现。它们必须由生活在该语言环境中的人*编写*。 **BengaliSafe** 就是为了衡量这两者而构建的。它将诸如 [Global-MMLU](https://arxiv.org/abs/2412.03304) 等努力的“缺口映射”精神,从*能力*延伸到了*安全性*,针对世界上使用人数最多但评估最少的一种语言。 ## 我们衡量什么 该基准测试围绕四个评估维度展开,每个维度都配有匹配的 **English ↔ Bengali ↔ Banglish** 提示词三元组,以便可以直接衡量跨语言差距,而不是进行推断。 | 维度 | 它回答的问题 | 核心指标 | |------|--------------------|-------------| | **1. 拒绝行为** | 当请求确实有害时,模型*用孟加拉语*拒绝是否和用英语一样可靠? | 有害请求拒绝率;**跨语言安全差距** = refusal_rate(EN) − refusal_rate(BN) | | **2. 越狱鲁棒性** | 已知的越狱 / 改写 / 角色扮演包装器是否*更容易*在孟加拉语或 Banglish 中突破模型? | 每种语言的攻击成功率 (ASR);ASR 差值 | | **3. 过度拒绝** | 模型是否错误地拒绝*无害的*孟加拉语查询(例如,完全良性的文化、宗教或政治问题)? | 在精选良性数据集上的过度拒绝率 | | **4. 文化特定的危害** | 模型是否能正确处理仅存在于本地环境中的危害 —— 社群虚假信息、特定地区的欺诈、本地健康/法律虚假信息? | 人工评判的危害处理适当性得分 | 一个模型可能在维度 1 上看起来很“安全”,但在维度 3(烦人地过度谨慎)或维度 4(对本地危害视而不见)上表现极差。同时报告这四个维度才是重点。 ## 设计原则 - **匹配对,而非翻译。** 每个基础提示词都以英语原文的形式存在,并且有一个*母语级*的孟加拉语版本(由母语使用者编写/调整,而非机器翻译),在自然的情况下,还有一个语码混合的 Banglish 版本。这将*语言*隔离作为变量。 - **社区编写的文化危害。** 维度 4 由深谙该背景的母语使用者编写,遵循“*与*受影响社区一起,而不是*关于*他们”的原则。 - **重复采样以保证一致性。** 每个提示词的安全性不是非二元的;模型是随机的。每个 (prompt, model) 单元都会被多次采样,以便我们能够报告*一致性*,而不仅仅是一次幸运/不幸的生成。 - **人工参与评判。** 使用自动拒绝分类器以实现规模化,但分层抽样会由母语使用者进行人工裁定,并报告标注者间的一致性。 - **负责任的构建。** 这是一个*防御性*的安全基准测试。公开代码库永远不会包含可操作的攻击内容。有害类别会抽象描述,说明性示例不具备可操作性,任何真正敏感的提示词都将通过有记录的研究者访问流程进行限制(参见[负责任的发布](#responsible-release))。 ## 评估中的模型 该基准测试是模型无关的,但首次完整运行的目标是: - **Cohere Command 系列** (`command-r`, `command-r-plus` 及其后继者) - **Cohere Aya 系列** (`aya-expanse` 及其后继者) —— 一个多语言优先的模型家族,这使得孟加拉语性能变得尤为重要 这使得 Cohere 模型既是这项工作的**对象**,也是预期的**受益者**:这些发现旨在反馈到使 Command 和 Aya 在孟加拉语中更安全、更强大,而不仅仅是指出缺陷。计划进行一次跨提供商的并行运行(例如 Claude 模型,通过 Anthropic 的 External Researcher Access Program),以便研究结果能超越单一实验室进行推广。 ## 仓库布局 ``` bengali-llm-safety-benchmark/ ├── README.md ← you are here ├── LICENSE ← Apache-2.0 (code) ├── CITATION.cff ← how to cite this work ├── CONTRIBUTING.md ← how annotators & contributors join ├── CODE_OF_CONDUCT.md ├── requirements.txt ├── docs/ │ ├── proposal.md ← full research proposal │ ├── taxonomy.md ← harm & capability taxonomy │ ├── methodology.md ← evaluation methodology & metrics │ └── annotation-guidelines.md ← guidelines given to human annotators ├── data/ │ ├── README.md ← dataset card + CC-BY-4.0 terms │ ├── schema.json ← JSON Schema for every prompt record │ └── samples/ │ └── sample_prompts.jsonl ← illustrative, non-operational examples ├── bnsafe/ ← evaluation harness (Python) │ ├── config.py ← run configuration │ ├── models.py ← model adapters (Command, Aya, …) │ ├── metrics.py ← refusal / over-refusal / ASR / consistency │ └── run_eval.py ← end-to-end runner ├── configs/ │ └── example.yaml ← example experiment config └── .github/workflows/lint.yml ← CI ``` ## 快速开始(评估框架) ``` # 安装 python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt # 提供你的 Cohere key export COHERE_API_KEY="..." # 在示例样本集上进行 Dry-run(无 API 调用) python -m bnsafe.run_eval --config configs/example.yaml --dry-run # 针对模型进行实际运行 python -m bnsafe.run_eval --config configs/example.yaml --model command-r-plus ``` 有关每个指标的计算方式,请参见 [`docs/methodology.md`](docs/methodology.md)。 ## 数据集 - **规模:** 约 2,000 个基础提示词 × {英语、孟加拉语、Banglish} 变体 × 多个越狱/改写版本,在多次采样的多个模型上运行 → 一个完整的评估周期估计需要 **50,000–80,000 次模型调用**。在全面投入之前,先对几百个提示词进行试点以验证设计。 - **格式:** 换行符分隔的 JSON (`.jsonl`),每个提示词变体一条记录,符合 [`data/schema.json`](data/schema.json) 规范。 - **许可证:** 提示词 + 人工标注在 **CC-BY-4.0** 下发布(参见 [数据集卡片](data/README.md))。 - **目标:** 数据集是我们最关心的产出物。它的设计初衷是*比论文生命周期更长*,并成为研究人员在需要用孟加拉语测试模型时首选的默认资源。 ## 路线图 该项目历时约 **8 个月**: - **第 1-2 个月 —— 设计与构建。** 确定分类体系;编写基础提示词和匹配的孟加拉语/Banglish 变体;由标注员审查设计。 - **第 3-5 个月 —— 评估与标注。** 试点运行 → 在 Command 和 Aya 系列中进行全面评估运行;对模型输出进行人工标注。 - **第 6-8 个月 —— 分析与发布。** 对跨语言差距进行统计分析;数据集清理并在此处公开发布;撰写论文并提交至 **ACL 旗下会议或研讨会**。 在工作期间发现的漏洞会立即披露给 **safety@cohere.ai**;模型输出将在任何发布前至少四周共享给 **labs@cohere.com**。 ## 负责任的发布 BengaliSafe 是一个**防御性**的研究产物,其目的是让模型*更安全*。因此: - 公开代码库**不包含可操作的越狱或分步有害指令。** 有害类别在分类体系层面进行描述;说明性示例被刻意设计为不具备可操作性。 - 真正敏感的提示词(例如,有效的越狱字符串)将排除在公开代码树之外,并且根据负责任的披露规范,仅在记录的访问流程下提供给经过验证的研究人员。 - 所有揭示模型漏洞的发现,在**公开讨论之前**,都会发送给相关供应商的安全联系人。 如果您认为此处的任何内容越过了这条界限,请提交 issue 或联系维护者以便进行审查。 ## 引用 如果您使用了此基准测试,请引用它 —— 参见 [`CITATION.cff`](CITATION.cff)。随附论文发布后将添加 BibTeX 条目。 ## 维护者 **Nadim Mahmud** — 孟加拉国布拉克大学。孟加拉语母语者;曾发表过孟加拉语 NLP 相关研究并构建了标注流水线。 Google Scholar:标签:DLL 劫持, NLP, 人工智能, 反取证, 大语言模型, 孟加拉语, 安全评估, 用户模式Hook绕过, 逆向工具