2024-03-04 11:10:52 +08:00
|
|
|
|
# Needlebench:大海捞针测试评估基准
|
|
|
|
|
|
|
|
|
|
[English](readme.md) | 简体中文
|
|
|
|
|
|
|
|
|
|
## 概览
|
|
|
|
|
|
|
|
|
|
Needlebench是一个全面的基准测试,旨在严格评估大型语言模型(LLMs)的信息检索和推理能力。借鉴了NeedleInAHaystack实验的灵感,Needlebench扩展了范围,包括多种任务,每个任务都旨在测试LLMs处理长文本中关键信息的不同方面的能力。
|
|
|
|
|
|
|
|
|
|
### 目录结构
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
configs/datasets/needlebench/
|
|
|
|
|
├── atc
|
|
|
|
|
├── needlebench_4k
|
|
|
|
|
├── needlebench_8k
|
|
|
|
|
├── needlebench_32k
|
|
|
|
|
├── needlebench_128k
|
|
|
|
|
├── needlebench_200k
|
2024-03-25 18:05:01 +08:00
|
|
|
|
├── needlebench_1000k
|
2024-03-04 11:10:52 +08:00
|
|
|
|
├── needlebench.py
|
|
|
|
|
├── readme.md
|
|
|
|
|
└── readme_zh-CN.md
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
在每个长度配置目录下(如 `needlebench_4k`),包含了专门针对该长度设置的测试任务脚本:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
needlebench_4k/
|
|
|
|
|
├── needlebench_multi_reasoning.py
|
|
|
|
|
├── needlebench_multi_retrieval.py
|
|
|
|
|
├── needlebench.py
|
|
|
|
|
└── needlebench_single.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 任务描述与长度配置
|
|
|
|
|
|
|
|
|
|
Needlebench提供了不同长度配置的任务,如4k、8k等,以适应不同规模的语言模型评估需求。每种长度配置针对以下任务提供了专门的测试脚本:
|
|
|
|
|
|
|
|
|
|
### 单针信息检索 (`needlebench_single.py`)
|
|
|
|
|
|
|
|
|
|
单针信息检索任务评估LLMs从特定长度的无关信息文本中回忆单个重要信息的能力。这个任务反映了原始的NeedleInAHaystack测试的目标,评估模型长文本中识别和回忆特定信息的精确性。
|
|
|
|
|
|
|
|
|
|
### 多针信息检索 (`needlebench_multi_retrieval.py`)
|
|
|
|
|
|
|
|
|
|
多针信息检索任务挑战LLMs识别和提取广泛文本中的多个关键信息点的能力。它模拟了现实世界中的场景,其中需要从文档或报告中检索多个数据点、事实或数字,评估模型在浏览和从密集文本中提取相关信息的效率。
|
|
|
|
|
|
|
|
|
|
### 多针信息推理 (`needlebench_multi_reasoning.py`)
|
|
|
|
|
|
|
|
|
|
在检索任务的基础上,多针信息推理任务强调LLMs使用检索到的信息进行复杂推理的能力。模型不仅需要回忆多个信息点,还需要进行逻辑推理,综合回答反映对不同信息点之间复杂关系理解的答案。
|
|
|
|
|
|
|
|
|
|
### 祖源追溯挑战 (ATC)
|
|
|
|
|
|
|
|
|
|
祖源追溯挑战是Needlebench中最复杂的任务,要求模型回忆和分析长文本中的每个细节,以解决需要理解复杂关系的问题,如家谱查询或详细案例分析。这个任务突出了模型处理和推理详细信息的需要,反映了现实世界中对复杂实际任务的要求。
|