EvalScope:长文本与上下文基准测试问题记录
2026/6/6 20:04:54 网站建设 项目流程

大海捞针基准测试计分逻辑:

  1. 每一组(长度 + 深度)生成一篇长文:干扰文本 + 指定位置插入 needle
  2. 送入 deepseek-chat 提问
  3. judge_model(同样 deepseek或不同大模型)判分:
    • 正确答出问题→ score=1.0
    • 不知道 / 乱答 → score≈0.1
  4. 最终框架自动根据长度 × 深度得分生成 NIAH 热力图

NIAH (NeedleInHaystack) 样本总数

由两个区间等分参数共同控制,控制字段就在 extra_params 里:

'context_lengths_num_intervals': 5, # 上下文长度切分点数

'document_depth_percent_intervals': 5 # 插入深度切分点数

举例:

长度区间:min=1000,max=8000,分 5 等分 →【5个固定文本长度】

深度区间:min=0%,max=100%,分 5 等分 →【5个插入位置】

总样本 = 长度点数 × 深度点数 = 5 × 5 = 25 条评测样本,每组单独生成一篇新文章、单独调用一次大模型提问打分

其余相关字段说明

参数作用不影响样本总量
context_lengths_min/max长度上下限范围不影响
document_depth_percent_min/max深度上下限范围不影响
needle / retrieval_question藏的句子 + 提问不影响
haystack_dir干扰文本目录不影响
eval_batch_size

并发批量,不改变总条数

'work_dir': 'outputs/xx_xx_v2'指定评测结果、日志、NIAH 热力图、json 报告全部保存到此文件夹,不改目录默认会缓存接口结果,重复运行跳过已测样本
'haystack_dir'

本地项目根目录须手动新建data/needle_corpus文件夹

自己往文件夹里丢纯 txt 干扰文本(随便小说、文章都行,用来充当干草干扰文本)

程序运行时:自动随机抽取文件夹内 txt 拼接成长文本,凑出 1000/8000 字上下文;

judge_model

NIAH 任务里:

  • 被测模型(外层 model=deepseek-chat):用来读 8000 字长文、回答披萨问题
  • 裁判 judge_model:单独另一个大模型(也可以是相同模型),专门阅卷打分(1.0/0.1),和被测模型互不绑定

更换规则:

只要接口兼容OpenAI 格式 /v1,改 3 个参数即可:model_id(模型名称)、api_url(服务商地址)、api_key(密钥)

'judge_model_args': {

'model_id': 'qwen-turbo',

'api_url': 'https://dashscope.aliyuncs.com/compatible-mode/v1',

'api_key': '你的通义key',

}

想要彻底不用 LLM 裁判:可以关闭 judge,改成字符串精准匹配(exact_match),命中关键词 = 1 分,否则 0 分,不用配置 judge_model_args

热力图

  • X 轴:全文长度(1000~8000)
  • Y 轴:插入深度(0%~100%)
  • 格子颜色:对应这条样本的得分(1 分绿、0.1 分红)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询