ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI 测试 0 基础入门:从 LLM 到 RAG 到评测

AI 测试 0 基础入门:从 LLM 到 RAG 到评测 AI 测试 0 基础入门从 LLM 到 RAG 到评测目标读者有传统测试经验、想转 AI 测试的工程师。读完 做完练习你能看懂前面那套ai-eval-demo也能在面试里把 LLM / RAG / Agent / 评测 讲清楚。每章都有练习题答案直接放在题后。第 0 章先建立一张地图5 分钟AI 测试到底在测什么用你最熟的传统测试做对照传统测试AI 测试说明被测系统接口 / 页面被测系统大模型(LLM)输入一段文字输出一段文字测试用例评测集一组「问题 标准答案 / 打分标准」断言 assert评分器判断答案对不对 / 好不好的标准测试报告指标汇总成可对比的数字准确率 / 忠实度 / 成功率核心区别只有一句话传统测试是「对错确定」——11 一定等于 2输入 x 必得 y。AI 是「概率正确」——同一个问题问两次答案可能不一样答案也没有唯一标准答案。所以 AI 测试的目标变了不是测「能不能跑通」而是测答得对不对、有没有编、稳不稳定、安不安全。下面三个词是 AI 测试里最基础的三个词LLM、RAG、Agent。第 1 章LLM —— 大语言模型一句话理解LLMLarge Language Model大语言模型就是 ChatGPT、DeepSeek、通义千问、文心一言这类东西。你给它一段文字它接着往下「续写」一段文字。它的本质关键LLM 本质上只做一件事预测「下一个词最可能是什么」。它读了几万亿字的资料学会了「当上文是『今天天气真』时下一个字大概率是『好』」。所以你问它问题它其实是在续写一段看起来最合理的话而不是「从一个数据库里查正确答案」。这个本质带来两个后果是你面试必答的它是概率性的同一个问题答案每次都可能不一样因为每次都在「掷骰子」选下一个词。它会幻觉它追求的是「说得像人话、读起来通顺」不是「说事实」。所以它会一本正经地编造不存在的公司、不存在的 API、不存在的引用。这就叫幻觉Hallucination。一个词Prompt提示词你喂给模型的那段输入就叫 prompt它决定了模型往哪个方向答。差 prompt写个测试用例 好 prompt你是资深测试工程师。针对「用户登录」功能用等价类 边界值 各设计 5 条测试用例用表格输出包含编号 / 输入 / 预期 / 覆盖点。类比写 prompt ≈ 写测试用例的「前置条件 预期结果」。写得越具体模型越知道你要什么。练习题第 1 章LLM 的本质是在做什么用自己的话什么叫「幻觉」它为什么会产生为什么同一个问题问 LLM 两次答案可能不一样参考答案预测「下一个词最可能是什么」本质是续写一段最合理的话不是在查数据库里的标准答案。模型编造出没有事实依据的内容。因为它训练目标是「读起来像人话」不是「说事实」。因为输出是概率采样的每次掷骰子选词不是确定性计算。第 2 章RAG —— 检索增强生成为什么需要 RAG痛点LLM 有一个致命短板它训练完就「封存」了。不知道你公司的私有数据内部文档、订单系统不知道训练截止日期之后的新消息你也不能把几百页资料全塞进 prompt又贵又慢还塞不下怎么办RAG。一句话理解RAGRetrieval-Augmented Generation检索增强生成先查资料再回答。类比开卷考试不 RAG 的模型 闭卷考试只能凭记忆记忆还不可靠会编RAG 的模型 开卷考试先翻书找到相关页再照着书答它的两段结构重点你的问题 │ ▼ ① 检索(Retrieval)从一个「知识库 / 文档库」里搜出最相关的几段文字 │ ▼ ② 生成(Generation)把「你的问题 检索到的文字」一起喂给 LLM让它基于资料回答 │ ▼ 最终答案并告诉用户「我参考了哪几段」可溯源为什么这个结构这么重要因为评测也要跟着拆成两段——检索段可能错找错文档该查「退款政策」却查了「团建安排」生成段可能错文档找对了但模型编了文档里没有的内容幻觉这两类错修复手段完全不同检索错 → 优化检索器 / 切分方式生成错 → 优化 prompt / 换更强的模型。练习题第 2 章用一句话解释 RAG。RAG 分成哪两段判断下面两个失败分别属于「检索错」还是「生成错」A. 用户问年假系统检索出了「团建安排」文档答案却恰好是对的B. 系统检索对了「7 天退款」文档却回答「可 30 天退款」参考答案先检索相关文档再让模型基于文档生成答案开卷考试。检索Retrieval 生成Generation。A 是检索错找错文档B 是生成错编造内容 / 幻觉。第 3 章Agent —— 智能体一句话理解Agent智能体是 LLM 的「升级形态」不只是回答问题而是能自己动手完成一个任务。它多了一个能力调用工具Tool普通 LLM你问啥它答啥只能「说」。Agent能「做」——它会自己决定「我该调用哪个工具」拿到结果再决定下一步直到任务完成。举例你说「帮我查一下北京天气如果下雨就提醒张三带伞」Agent 会① 调get_weather工具查天气 → ② 发现下雨 → ③ 调send_message工具给张三发提醒为什么要单独评测 Agent因为 Agent 的失败点变多了任务没完成端到端失败最后那件事没办成用错工具该发邮件却去查天气了中间步骤乱绕了十圈才完成或者陷入死循环所以 Agent 评测 看端到端任务成没成中间步骤工具对不对。练习题第 3 章Agent 和普通 LLM 的核心区别是什么Agent 评测通常看哪两个维度参考答案Agent 能自主调用工具、多步完成一个任务不只是单轮问答。端到端任务成功率 工具调用正确率中间步骤对不对。第 4 章AI 评测 —— 到底评什么、怎么评这是面试的重头戏也是你前面那套 demo 在做的事。4.1 评测三件套务必背下来任何一个 AI 评测都逃不开这三样三件套传统测试对应作用评测集Dataset测试用例集一组「问题 标准答案 打分标准」评分器Judge断言 assert判断一条答案对不对 / 好不好指标Metrics测试报告汇总成可对比的数字4.2 评分器怎么判断「好不好」传统测试的断言是assert result 200是确定的。AI 答案没有唯一标准所以评分器分两种规则评分关键词命中、长度、格式等硬规则。快、稳定、免费但只能评「表面对不对」。LLM-as-Judge用模型当裁判拿一个更强的模型让它读「标准答案 候选答案」输出「对不对 打分 原因」。能评语义但慢、花钱、有偏置。LLM-as-Judge 的偏置面试加分点主动提位置偏置比较两个答案 A/B 时裁判倾向于更喜欢排前面的那个 → 交换顺序评两次取平均长度偏置倾向于认为「更长的答案更好」自我偏好模型更喜欢自己家族模型生成的答案4.3 AI 评测的四大类对应你的 demo类别评什么核心指标通用能力评测模型问答对不对准确率RAG 评测检索准不准 生成忠不忠实检索命中率、忠实度抓幻觉Agent 评测任务完成没 工具用对没任务成功率、工具正确率安全红队会不会被越狱 / 注入攻击成功率越低越好4.4 几个必背指标准确率答对的比例忠实度Faithfulness答案是否忠于检索文档有没有编专抓幻觉检索命中率Recall / Hit正确文档有没有被检索出来练习题第 4 章评测三件套是哪三样LLM-as-Judge 有哪三种常见偏置RAG 评测为什么要把检索和生成拆开评参考答案评测集 评分器 指标。位置偏置、长度偏置、自我偏好。因为检索错和生成错是两类不同的问题修复手段不同混在一起无法定位。第 5 章回到你手上的那套 demo你目录下ai-eval-demo/的三个脚本就是上面四章的落地脚本对应章节你跑出来的结果01_basic_eval.py通用能力评测4.3规则评分 LLM 裁判准确率 75%02_rag_eval.pyRAG 评测第 2 章 4.3检索命中率 75%、忠实度 50%03_agent_eval.pyAgent 评测第 3 章 4.3任务成功率 60%、工具正确率 60%建议的阅读顺序先看这份教程 → 再看ai-eval-demo/README.md→ 最后逐行读三个.py都有注释。你会发现代码里每一个函数都能对应上教程里的一个概念。第 6 章进阶RAG 内部到底怎么工作——切分 / embedding / 向量检索第 2 章说 RAG 是「先查资料再回答」但「查资料」这步内部其实是一套流水线。搞懂它你才能说清「RAG 优化往哪调」也才知道每个环节「测什么」。6.1 RAG 的完整流水线两张图记住离线入库准备阶段上线前做一次原始文档500 页手册 / 公司 wiki │ ▼ 切分 chunk把长文档切成一小块一小块比如每块 500 字 │ ▼ embedding 向量化把每块文字变成一串数字向量 │ ▼ 存进向量数据库Milvus / FAISS / pgvector 等在线查询用户提问时实时跑用户问题 │ ▼ embedding把问题也变成一串数字向量 │ ▼ 向量检索在向量库里找「距离最近」的 top-k 块 │ ▼ 拼 prompt「问题 检索到的几块」一起喂给 LLM │ ▼ LLM 生成答案6.2 切分 chunk为什么要切文档太长一本书既不能整本塞进 prompt太贵太慢还塞不下检索时也搜不到「哪一段」相关。所以切成小块检索能精确到「段」。切分是调优点切太碎会切断语义一句话被劈成两半切太大又会混进无关内容。6.3 embedding文字变数字语义近 距离近embedding向量化就是把一段文字变成一串数字向量比如 1536 个数字。神奇之处在于语义相近的两句话变出来的向量在数学上「距离很近」。「今天天气真好」 和 「外面阳光明媚」 → 向量距离近「今天天气真好」 和 「怎么退款」 → 向量距离远为什么这很重要它能搜到「换个说法」的内容。传统关键词匹配搜「退款政策」搜不到写着「无理由退货」的段落但向量能因为它懂语义。6.4 向量检索找「距离最近」的几块用户问题也 embedding 成向量在向量库里算「谁跟问题向量距离最近」取 top-k前几个最相关的 chunk这个 top-k 取多少就是调优点取少了漏答案取多了塞进无关信息干扰模型练习题第 6 章RAG 离线入库要经过哪三步embedding 的核心作用是什么「切分 chunk」的粒度太碎或太大分别有什么问题参考答案切分 chunk → embedding 向量化 → 存进向量数据库。把文字变成向量让「语义相近」的两段文字在数学上「距离近」从而实现语义检索能搜到换个说法的内容。太碎会切断语义一句话被劈开太大会混进无关内容干扰检索和生成。第 7 章进阶RAG 每个环节「测什么」AI 测试工程师视角面试官真正想听的不是「RAG 是什么」而是「如果让你测一个 RAG 系统你测哪几个点」。下面这张表背下来环节可测的点典型指标切分 chunk切分粒度是否切断语义、块大小是否合适检索命中率对比embedding不同 embedding 模型效果差异检索命中率向量检索top-k 取值、相似度阈值设多少检索命中率 / 召回率生成prompt 写法、温度参数、是否忠实文档忠实度抓幻觉一句话总结检索段测「找得准不准」生成段测「答得忠不忠实」两边各自调、各自测——这就是第 2 章「拆开评」的落地。你手上02_rag_eval.py里那两个指标正好对应这张表的后两行检索命中率检索段 忠实度生成段。练习题第 7 章如果 RAG 系统「检索命中率很低」你应该优先排查哪个环节如果「忠实度很低老是编造」应该优先排查哪个环节参考答案优先排查检索段切分粒度、embedding 模型、top-k 取值、相似度阈值。优先排查生成段prompt 有没有约束「只根据给定资料回答」、温度是否太高、模型是否太弱。第 8 章进阶混合检索——向量检索的短板谁来补第 6 章说向量检索懂语义但面试官常追问一句「向量检索有什么缺点」答案是——它对「精确匹配」不敏感。8.1 向量检索的短板向量检索擅长「换个说法也能搜到」但它会模糊掉精确的东西例子问题产品型号「iPhone 15 Pro」 vs 「iPhone 16」语义上都是手机向量距离很近但用户要的是精确型号工单号「BUG-1024」向量很难精确锁定这一串字符版本号「2.3.1」、金额、API 名数字和代码的「语义」很弱向量区分不好8.2 关键词检索BM25正好相反关键词检索传统搜索引擎用的 BM25 / TF-IDF✅ 精确匹配强「BUG-1024」就能精确命中「BUG-1024」❌ 不懂语义搜「无理由退货」搜不到写着「7 天退款」的段落两者短板正好互补。8.3 混合检索 两个一起用用户问题 │ ├── 向量检索 → 结果 A懂语义 └── 关键词检索(BM25) → 结果 B懂精确词 │ ▼ 融合重排常见用 RRF 倒数排名融合→ 合并去重、重新排序 │ ▼ top-k 结果 → 拼进 prompt → LLM 生成RRFReciprocal Rank Fusion倒数排名融合不看分数只看排名把「向量里排第 1」和「关键词里排第 3」融合成一个综合排名简单又稳。8.4 测试视角这是面试加分点混合检索带来了新的可测点融合算法RRF 参数、两路权重怎么设精确匹配用例专门建一批「型号 / 工单号 / 版本号」用例验证关键词检索兜住了向量检索的短板回归对比单独用向量检索 vs 混合检索对比命中率提升多少练习题第 8 章向量检索的核心缺点是什么举一个例子。混合检索是哪两种检索结合它们各自负责什么给你测一个上了混合检索的 RAG 系统你会专门补哪一类用例参考答案对精确匹配不敏感会模糊掉专有名词/数字。例「iPhone 15」和「iPhone 16」语义近、向量距离近但用户要的是精确型号。向量检索懂语义 关键词检索 BM25懂精确词两者短板互补再融合重排。专门补「型号 / 工单号 / 版本号」这类精确匹配用例验证关键词检索兜住了向量检索的短板。附录面试 30 秒版自我介绍AI 部分我理解 AI 测试和传统测试最大的区别是——传统测「对错确定」AI 测「概率正确」。所以我重点补了三块通用能力评测用「评测集 评分器 指标」三件套RAG 评测分检索和生成两段抓幻觉Agent 评测看任务成功率和工具正确率。并动手写了三个能跑的评测 demo用 LLM-as-Judge 做语义评分也清楚它的位置偏置和长度偏置。
返回列表