> [!NOTE] > 注意:本文档是机器翻译版本,可能存在不准确之处。欢迎您贡献并改进翻译!
English | 简体中文 | 日本語 | Español | Français

Tiny QA Benchmark++ (TQB++)

一个超轻量级的评估数据集和合成生成器
可在几秒钟内暴露关键的 LLM 故障,非常适合 CI/CD 和 LLMOps。

PyPI 版本 许可证 Hugging Face 数据集 arXiv

GitHub • Hugging Face 数据集 • 论文 (arXiv:2505.12058) • PyPI


**Tiny QA Benchmark++ (TQB++)** 是一个超轻量级的评估套件和 Python 包,旨在在几秒钟内暴露大型语言模型 (LLM) 系统中的关键故障。它充当 LLM 软件单元测试,非常适合 CI/CD 快速检查、提示工程以及现代 LLMOps 中的持续质量保证,可与现有的 LLM 评估工具(如 [Opik](https://github.com/comet-ml/opik/))一起使用。 本存储库包含论文 *Tiny QA Benchmark++: Micro Gold Dataset with Synthetic Multilingual Generation for Rapid LLMOps Smoke Tests* 的官方实现和合成数据集。 - **论文:** [arXiv:2505.12058](https://arxiv.org/abs/2505.12058) - **Hugging Face Hub:** [datasets/vincentkoc/tiny_qa_benchmark_pp](https://huggingface.co/datasets/vincentkoc/tiny_qa_benchmark_pp) - **GitHub 存储库:** [vincentkoc/tiny_qa_benchmark_pp](https://github.com/vincentkoc/tiny_qa_benchmark_pp) ## 主要功能 * **不可变的黄金标准核心:** 一个包含 52 个人工制作的英语问答 (QA) 数据集 (`core_en`),用于确定性回归测试,源自早期的 [datasets/vincentkoc/tiny_qa_benchmark](https://huggingface.co/datasets/vincentkoc/tiny_qa_benchmark)。 * **综合定制工具包:** 一个 Python 脚本 (`tools/generator`),使用 LiteLLM 按需为任何语言、主题或难度生成定制的微基准。 * **标准化元数据:** 以 Croissant JSON-LD 格式 (`metadata/`) 打包的工件,以便工具和搜索引擎发现和自动加载。 * **开放科学:** 所有代码(生成器、评估脚本)和核心英语数据集均在 Apache-2.0 许可下发布。综合生成的数据包具有自定义的仅评估许可。 * **LLMOps 对齐:** 旨在轻松集成到 CI/CD 管道、提示工程工作流、跨语言漂移检测和可观察性仪表板中。 * **多语言包:** 为多种语言(包括英语、法语、西班牙语、葡萄牙语、德语、中文、日语、土耳其语、阿拉伯语和俄语)预构建的包。 ## 使用 `tinyqabenchmarkpp` Python 包 TQB++ 的核心综合生成功能以 Python 包 `tinyqabenchmarkpp` 的形式提供,可从 PyPI 安装。 ### 安装 ```bash pip install tinyqabenchmarkpp ``` (注意:确保您已安装 Python 3.8+ 和 pip。PyPI 上的确切包名称可能会有所不同;如果此命令不起作用,请检查官方 [PyPI 项目页面](https://pypi.org/project/tinyqabenchmarkpp/) 获取正确的包名称。) ### 通过 CLI 生成合成数据集 安装后,您可以使用 `tinyqabenchmarkpp` 命令 (或 `python -m tinyqabenchmarkpp.generate`) 创建自定义 QA 数据集。 **示例:** ```bash tinyqabenchmarkpp --num 10 --languages "en,es" --categories "science" --output-file "./science_pack.jsonl" ``` 这将生成一个包含 10 个英语和西班牙语科学问题的小型数据包。 有关所有可用参数 (如 `--model`、`--context`、`--difficulty` 等) 的详细说明、高级用法以及不同 LLM 提供程序 (OpenAI、OpenRouter、Ollama) 的示例,请参阅 **[生成器工具包 README](tools/generator/README.md)** 或运行 `tinyqabenchmarkpp --help`。 虽然 `tinyqabenchmarkpp` 包专注于数据集*生成*,但 TQB++ 项目还提供预生成的数据集和评估工具,如下所述。 ## 使用 Hugging Face `datasets` 加载数据集 TQB++ 数据集可在 Hugging Face Hub 上找到,并可以使用 `datasets` 库轻松加载。这是访问数据的推荐方法。 ```python from datasets import load_dataset, get_dataset_config_names # 发现可用的数据集配置 (例如 core_en, pack_fr_40 等) configs = get_dataset_config_names("vincentkoc/tiny_qa_benchmark_pp") print(f"可用配置: {configs}") # 加载核心英语数据集 (假设 \'core_en\' 是一个配置) if "core_en" in configs: core_dataset = load_dataset("vincentkoc/tiny_qa_benchmark_pp", name="core_en", split="train") print(f"\\n从 core_en 加载了 {len(core_dataset)} 个示例:") # print(core_dataset[0]) # 打印第一个示例 else: print("\\n未找到 \'core_en\' 配置。") # 加载特定的合成包 (例如法语包) # 将 \'pack_fr_40\' 替换为 `configs` 列表中的实际配置名称 example_pack_name = "pack_fr_40" # 或其他有效的配置名称 if example_pack_name in configs: synthetic_pack = load_dataset("vincentkoc/tiny_qa_benchmark_pp", name=example_pack_name, split="train") print(f"\\n从 {example_pack_name} 加载了 {len(synthetic_pack)} 个示例:") # print(synthetic_pack[0]) # 打印第一个示例 else: print(f"\\n未找到 \'{example_pack_name}\' 配置。请从可用配置中选择。") ``` 有关数据集的更多详细信息,包括其结构和特定许可证,请参阅 `data/` 目录中的 README 文件 (即 `data/README.md`, `data/core_en/README.md`, 和 `data/packs/README.md`)。 ## 存储库结构 * `data/`: 包含 QA 数据集。 * `core_en/`: 原始的 52 个人工制作的英语核心数据集。 * `packs/`: 综合生成的多语言和主题数据集包。 * `tools/`: 包含用于数据集生成和评估的脚本。 * `generator/`: 综合 QA 数据集生成器。 * `eval/`: 用于根据 TQB++ 数据集评估模型的脚本和实用程序。 * `paper/`: 研究论文的 LaTeX 源代码和相关文件。 * `metadata/`: 数据集的 Croissant JSON-LD 元数据文件。 * `LICENSE`: 代码库的主要许可证 (Apache-2.0)。 * `LICENCE.data_packs.md`: 综合生成的数据包的自定义许可证。 * `LICENCE.paper.md`: 论文内容的许可证。 ## 使用场景 TQB++ 专为各种 LLMOps 和评估工作流而设计: * **CI/CD 管道测试:** 与 LLM 测试工具一起用作 LLM 服务的单元测试以捕获回归。 * **提示工程和代理开发:** 在迭代提示或代理设计时获得快速反馈。 * **评估工具集成:** 专为与评估工具无缝使用而设计。可编码为 OpenAI Evals YAML(参见 `intergrations/openai-evals/README.md`)或 Opik 数据集,用于仪表板跟踪和稳健的 LLM 评估。`intergrations/` 文件夹提供了有关可用开箱即用支持的更多详细信息。 * **跨语言漂移检测:** 使用多语言 TQB++ 包监控本地化回归。 * **自适应测试:** 动态合成针对特定功能或数据漂移定制的微基准。 * **监控微调动态:** 跟踪微调过程中的知识侵蚀或意外能力变化。 ## 引文 如果您在研究或工作中使用 TQB++,请引用原始 TQB 和 TQB++ 论文: ```bibtex % 此合成数据集和生成器 @misc{koctinyqabenchmarkpp, author = {Vincent Koc}, title = {Tiny QA Benchmark++ (TQB++) 数据集和工具包}, year = {2025}, publisher = {Hugging Face & GitHub}, doi = {10.57967/hf/5531}, howpublished = {\\url{https://huggingface.co/datasets/vincentkoc/tiny_qa_benchmark_pp}}, note = {另请参阅: \\url{https://github.com/vincentkoc/tiny_qa_benchmark_pp}} } % TQB++ 论文 @misc{koc2025tinyqabenchmarkultralightweight, title={Tiny QA Benchmark++: Ultra-Lightweight, Synthetic Multilingual Dataset Generation & Smoke-Tests for Continuous LLM Evaluation}, author={Vincent Koc}, year={2025}, eprint={2505.12058}, archivePrefix={arXiv}, primaryClass={cs.AI}, url={https://arxiv.org/abs/2505.12058} } ``` ## 许可证 本存储库中的代码(包括生成器和评估脚本)以及 `data/core_en` 数据集和任何其他未提及许可证的内容均在 Apache License 2.0 下获得许可。有关详细信息,请参阅 `LICENSE` 文件。 `data/packs/` 中的综合生成的数据集包在自定义的"仅评估、非商业、禁止衍生"许可证下分发。有关详细信息,请参阅 `LICENCE.data_packs.md`。 `metadata/` 中的 Croissant JSON-LD 元数据文件可在 CC0-1.0 下获得。 `paper/` 中的论文内容受其自己的许可条款约束,详见 `LICENCE.paper.md`。