KINA
收藏资源简介:
KINA(Knowledge Index of Noahs Ark)是一个包含899个项目的知识基准,涵盖261个细粒度学科,用于评估前沿大语言模型,每个问题提供从A到J的字母选项,其中只有一个正确答案。
KINA (Knowledge Index of Noah's Ark) is a knowledge benchmark containing 899 items spanning 261 fine-grained disciplines, developed to evaluate state-of-the-art large language models (LLMs). Each question provides letter options ranging from A to J, with exactly one correct answer.
数据集概述:KINA (Knowledge Index of Noahs Ark Benchmark)
KINA 是一个用于评估前沿大型语言模型(LLMs)的多学科知识基准,包含 899 个测试项,覆盖 261 个细粒度学科。所有问题均为单选题,正确答案为字母 A 至 J 中的唯一选项。
数据集详情
- 名称: KINA (Knowledge Index of Noahs Ark Benchmark)
- 规模: 899 个问题
- 学科覆盖: 261 个细粒度学科
- 问题格式: 多项选择题,选项为 A-J,有且仅有一个正确答案。
- 数据文件: 可从 Hugging Face 下载:
https://huggingface.co/datasets/2077AIDataFoundation/KINA - 数据格式: JSON 数组,每个对象包含以下字段:
index(int): 全局索引 (0-898)discipline(string): 学科/领域question(string): 完整的题目文本options(array): 选项列表,包含key、answer及可选的explanation、sourcecorrect_answer(string): 正确答案的字母 (A-J)question_source(string, 可选): 题目来源question_material(string, 可选): 题目素材(如图片或上下文)
评估工具与使用方法
该项目提供了一套完整的评估工具链,支持通过 API 运行模型推理并进行 Pass@1 评分。
1. 环境准备
-
创建 Conda 环境并安装依赖: bash conda create -n kina_bench python=3.10 -y && conda activate kina_bench pip install -e .
-
如需使用本地服务器(如 SGLang),需另行安装: bash pip install sglang[all]
2. 数据准备
- 从 Hugging Face 下载数据集 JSON 文件。
- 将文件放置或链接至项目
KINA/data/目录下,并确保文件名与--data_name参数一致(默认为KINA,对应data/KINA.json)。 - 示例: bash mkdir -p data ln -sf ../../data/KINA.json data/KINA.json
3. 运行评估
支持使用商业 API(如 OpenAI、OpenRouter)或本地 OpenAI 兼容服务器(如 SGLang、vLLM)。
-
使用商业 API: bash export OPENAI_BASE="https://api.openai.com/v1" export OPENAI_KEY="your-api-key" python src/kina_bench/run_openai_chat.py --model_id "gpt-4o" --data_name "KINA" --n_thread 32
-
使用本地服务器 (以 SGLang 为例):
-
启动服务器: bash python -m sglang.launch_server --model-path Qwen/Qwen3-8B --port 8000
-
运行评估: bash export OPENAI_BASE="http://localhost:8000/v1" export OPENAI_KEY="EMPTY" python src/kina_bench/run_openai_chat.py --model_id "Qwen/Qwen3-8B" --data_name "KINA" --n_thread 64
-
4. 关键命令行参数
| 参数 | 默认值 | 描述 |
|---|---|---|
--model_id |
(必需) | 传递给 API 的模型 ID |
--data_name |
KINA |
data/{data_name}.json 的基础文件名 |
--n_sampling |
1 |
每道题的并行补全次数 (可选 1, 4, 8) |
--max_tokens |
16384 |
最大输出 token 数 |
--think_mode |
none |
思考模式:none, think 或 nothink |
--reasoning_effort |
None |
推理努力程度:low, medium, high (用于 o1/GPT-5 系列) |
--n_thread |
1 |
并发请求数量 |
--overwrite |
False |
是否覆盖已有的 jsonl 文件 |
--timeout |
300 |
单次请求超时 (秒) |
--limit |
None |
限制运行的剩余项目数量 (调试用) |
--skip_inference |
False |
跳过 API 调用,仅对已有的 jsonl 文件进行评分 |
5. 查看聚合分数
bash python src/kina_bench/pretty_print.py --data_name KINA
输出结果
- 中间结果:
results/{model_id}/n{n}_tokens{max}/{data_name}.jsonl- 每行一个 JSON 对象,包含
id、request、responses、metadata和 token 使用量。
- 每行一个 JSON 对象,包含
- 最终结果:
results/{model_id}/n{n}_tokens{max}/{data_name}.json- 一个列表,其中每个元素包含:
id: 问题索引score: Pass@1 分数 (0-1)extracted_predictions: 每个并行样本提取的字母列表gt: 数据集中的正确答案 (correct_answer)
- 一个列表,其中每个元素包含:
项目仓库结构
KINA-Benchmark/ ├── data/ │ └── KINA.json # 数据文件 (需添加或链接) ├── results/ │ └── {model_id}/ │ └── n{n}_tokens{max}/ │ ├── {data_name}.jsonl │ └── {data_name}.json ├── src/ │ └── kina_bench/ │ ├── run_openai_chat.py │ ├── utils.py │ ├── pretty_print.py │ └── config.py └── pyproject.toml




