Harness(AI 评测框架)

返回工程实践

用于系统化评估 LLM 能力的测试框架。通过标准化数据集和指标,量化模型在推理、代码、知识、安全等维度的表现。


主流评测框架

框架维护方特点
LM Evaluation HarnessEleutherAI开源标准,支持 60+ 基准
OpenCompass上海AI实验室中文友好,支持国产模型
HELMStanford多维度综合评测
BIG-benchGoogle困难任务集合
MT-BenchLMSYS多轮对话质量评测

LM Evaluation Harness 使用

pip install lm-eval
 
# 评测 GPT-2 在 HellaSwag 上的表现
lm_eval --model hf \
    --model_args pretrained=gpt2 \
    --tasks hellaswag \
    --device cuda:0 \
    --batch_size 8
 
# 评测 OpenAI 模型
lm_eval --model openai-chat-completions \
    --model_args model=gpt-4o \
    --tasks mmlu,gsm8k \
    --output_path ./results

常用评测基准

基准类型说明
MMLU知识57个学科选择题,测通用知识
GSM8K数学小学数学应用题,测推理
HumanEval代码Python 函数补全,测编码能力
HellaSwag常识句子补全,测常识推理
TruthfulQA真实性检测模型是否产生幻觉
C-Eval中文中文知识与推理综合评测

自定义评测任务

# 定义自定义任务
from lm_eval.api.task import Task
from lm_eval.api.instance import Instance
 
class MyTask(Task):
    VERSION = 1
    DATASET_PATH = "my_dataset"
 
    def has_training_docs(self): return False
    def has_validation_docs(self): return True
 
    def validation_docs(self):
        return self.dataset["validation"]
 
    def doc_to_text(self, doc):
        return f"问题:{doc['question']}\n答案:"
 
    def doc_to_target(self, doc):
        return doc['answer']
 
    def process_results(self, doc, results):
        pred = results[0].strip()
        return {"exact_match": int(pred == doc['answer'])}
 
    def aggregation(self):
        return {"exact_match": mean}

RAG 评测(RAGAS)

专门用于评测 RAG 流水线质量:

from ragas import evaluate
from ragas.metrics import (
    faithfulness,       # 回答是否忠实于检索内容
    answer_relevancy,   # 回答与问题的相关性
    context_precision,  # 检索内容的精确率
    context_recall,     # 检索内容的召回率
)
from datasets import Dataset
 
data = {
    "question": ["Redis 是什么?"],
    "answer": ["Redis 是基于内存的键值数据库"],
    "contexts": [["Redis 是一个高性能的键值存储系统..."]],
    "ground_truth": ["Redis 是内存数据库,支持多种数据结构"]
}
 
result = evaluate(Dataset.from_dict(data), metrics=[
    faithfulness, answer_relevancy,
    context_precision, context_recall
])
print(result)

Agent 评测

评测 Agent 完成多步任务的能力:

框架场景
AgentBench多环境 Agent 综合评测
WebArena浏览器操作任务
SWE-benchGitHub Issue 修复(代码 Agent)
τ-bench工具调用准确率

相关文档

  • RAG — RAG 流水线(RAGAS 评测对象)
  • Embedding — 向量化(影响检索质量)
  • A2A — Agent 协议
  • LLM 基础 — 被评测的模型