news 2026/5/12 4:21:28

回答准确率测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
回答准确率测试

day26 回答准确率测试

回答准确率测试

1️⃣ 定义(通俗版)

回答准确率测试,就是:

给模型一批「有标准答案的问题」,看它给出的回答有多少是“对的”

本质是一个 评测(Evaluation)问题。


2️⃣ 数学定义(简单版)

假设你有:

  • N 个问题

  • 模型答对了 K 个

那么:

Accuracy = K / N

例如:

  • 100 个问题

  • 答对 83 个

    • 👉 准确率 = 83%

3️⃣ 在 LLM 领域的特殊性

和传统分类不同,LLM 的回答是 自然语言:

❌ 不是 “A / B / C” ✅ 而是 “一段文本”

因此 “什么叫答对” 就成了核心难点。


二、回答准确率测试的关键概念(LLM 视角)

1️⃣ 三种常见“准确”的定义

✅ 1. Exact Match(严格匹配)

模型回答 == 标准答案

✔ 简单
❌ 对 LLM 非常不友好


✅ 2. 语义等价(Semantic Match)

含义一致即可

例如:

  • 标准答案:

    “巴黎是法国的首都”

  • 模型回答:

    “法国的首都是巴黎”

✔ 更符合人类判断
❌ 需要额外模型判断


✅ 3. LLM-as-a-Judge(主流方案)

用 另一个 LLM 来判断:

“模型回答是否正确?”

这是目前工业界、论文里最常见的方法。


2️⃣ 回答准确率 ≠ 检索准确率

如果你用了 RAG(检索增强生成),要分清:

指标衡量什么
检索准确率找到的文档对不对
回答准确率最终回答对不对

三、整体 Demo 架构

┌────────────┐ │ Questions │ └─────┬──────┘ │ ┌─────────▼─────────┐ │ Chroma 向量数据库 │ ← 知识库 └─────────┬─────────┘ │ ┌─────────▼─────────┐ │ Qwen-Plus │ ← 生成回答 └─────────┬─────────┘ │ ┌─────────▼─────────┐ │ Accuracy Judge │ ← 再用 Qwen-Plus └─────────┬─────────┘ │ Accuracy

四、 Demo(可运行)

Step 0:准备 requirements.txt

openai>=1.0.0 chromadb>=0.4.22 tqdm python-dotenv

安装:

pipinstall-r requirements.txt

Step 1:配置 Qwen-Plus

⚠️ Qwen 使用 阿里云 DashScope(OpenAI 兼容接口)

importosfromopenaiimportOpenAI client=OpenAI(api_key=os.getenv("DASHSCOPE_API_KEY"),base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")

Step 2:构建一个最小知识库(Chroma)

importchromadb chroma_client=chromadb.Client()collection=chroma_client.create_collection(name="demo_kb")docs=["巴黎是法国的首都。","东京是日本的首都。","北京是中国的首都。"]collection.add(documents=docs,ids=[f"doc{i}"foriinrange(len(docs))])

Step 3:定义测试问题(带标准答案)

eval_set=[{"question":"法国的首都是哪里?","answer":"巴黎"},{"question":"日本的首都是哪里?","answer":"东京"},]

Step 4:RAG + Qwen-Plus 生成回答

defanswer_question(question):# 1. 检索results=collection.query(query_texts=[question],n_results=1)context=results["documents"][0][0]# 2. 生成prompt=f""" 已知信息:{context}问题:{question}请给出简洁准确的回答。 """resp=client.chat.completions.create(model="qwen-plus",messages=[{"role":"user","content":prompt}])returnresp.choices[0].message.content.strip()

Step 5:用 LLM 判断“是否正确”(核心)

defjudge_answer(question,gt_answer,model_answer):judge_prompt=f""" 你是一个严格的评测员。 问题:{question}标准答案:{gt_answer}模型回答:{model_answer}请判断模型回答是否正确。 只回答 YES 或 NO。 """resp=client.chat.completions.create(model="qwen-plus",messages=[{"role":"user","content":judge_prompt}])returnresp.choices[0].message.content.strip().upper()=="YES"

Step 6:计算准确率

correct=0foritemineval_set:model_ans=answer_question(item["question"])is_correct=judge_answer(item["question"],item["answer"],model_ans)print(item["question"],model_ans,is_correct)ifis_correct:correct+=1accuracy=correct/len(eval_set)print(f"Accuracy:{accuracy:.2%}")
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 18:11:55

Docker入门:小白也能懂的容器化指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个交互式Docker新手教程应用,包含:1) 可视化概念解释动画 2) 分步安装向导 3) 第一个容器创建演练 4) 常见问题解答机器人 5) 学习进度跟踪。使用简单…

作者头像 李华
网站建设 2026/5/6 16:39:16

电力场景电力巡检目标缺陷检测数据集VOC+YOLO格式9400张32类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):9400标注数量(xml文件个数):9400标注数量(txt文件个数):9400标注类别…

作者头像 李华
网站建设 2026/5/10 17:31:05

结构体VS类:性能对比与开发效率全解析

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个性能对比测试程序,分别使用结构体和类实现相同的3D点坐标功能(x,y,z)。测试以下场景:1. 创建100万个实例的内存占用 2. 遍历…

作者头像 李华
网站建设 2026/4/30 23:29:21

传统vs现代:PDF驱动安装效率对比实验

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个PDF驱动安装效率对比工具,能够自动记录并比较不同安装方法(手动下载、Windows更新、第三方工具)所需时间。要求包含计时功能、安装步骤记录、系统资源占用监控&…

作者头像 李华
网站建设 2026/5/3 12:53:35

SquareLine Studio入门指南:小白也能轻松做UI

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个简单的天气预报应用UI教程,逐步指导如何使用SquareLine Studio的拖拽界面设计城市选择、天气数据显示(温度、湿度、风速)和未来预报模块…

作者头像 李华
网站建设 2026/5/9 17:44:52

1小时打造个性化EmuELEC游戏前端原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个EmuELEC主题编辑器原型,功能包括:1. 拖拽式界面设计器 2. 实时预览效果 3. 主题元素库(菜单、图标等) 4. 导出主题包功能 5. 分享到社区。要求使用H…

作者头像 李华