首页 文章 精选 留言 我的

精选列表

搜索[token],共10000篇文章
优秀的个人博客,低调大师

从Token统计、数据去重到LLM评测

随着ChatGPT、Claude、通义千问、豆包等大模型应用快速落地,软件测试领域正在出现一个新的方向: **大模型测试(LLM Testing)** 过去测试工程师关注: * 页面是否正常 * 接口是否返回正确 * 功能流程是否符合需求 而现在,需要验证: * AI回答是否准确? * 是否产生幻觉? * 多次回答是否稳定? * 是否泄露敏感信息? * 模型升级后效果有没有下降? 测试对象从传统软件: 变成了一个拥有“不确定输出”的智能系统。 --- 但是很多测试工程师忽略了一个问题: 当测试规模扩大以后,大模型测试首先面对的不是模型问题。 而是: > 海量测试数据如何管理? 这时候,一个基础数据结构: 哈希表(Hash Table) 开始发挥重要作用。 --- # 一、什么是哈希表? 简单理解: 哈希表是一种通过“映射关系”快速存储和查询数据的数据结构。 普通列表查询: 例如: 有100万个测试问题: ```text 问题1 问题2 问题3 ...... 问题1000000 ``` 现在需要判断: “这个问题之前有没有测试过?” 如果逐个比较: 需要遍历大量数据。 数据越多: 效率越低。 --- 哈希表的思路: 给每个数据生成一个唯一标识。 例如: 用户输入: ```text 如何申请退款? ``` 经过Hash计算: 得到: ```text a83fd92x ``` 存储: ```text a83fd92x ↓ 如何申请退款? ``` 下一次测试: 同样的问题再次出现。 系统直接计算Hash值。 如果存在: 说明已经测试过。 查询效率大幅提升。 --- # 二、大模型测试场景1:测试数据去重 这是LLM测试中非常常见的问题。 假设企业测试自己的智能客服模型。 准备了: 100万个测试问题。 来源包括: * 用户历史聊天记录 * 工单数据 * FAQ知识库 * 人工设计测试案例 但是这些数据里面: 可能存在大量重复。 例如: 用户: “怎么退款?” “我要退款怎么办?” “退款流程是什么?” 语义接近。 如果全部测试: 不仅浪费模型调用成本。 还会影响测试效率。 --- 测试平台可以利用Hash思想: 第一步: 对输入数据生成唯一标识。 第二步: 检查是否已经存在。 第三步: 过滤重复测试。 例如: ```python question_hash = hash(question) if question_hash not in test_pool: add(question) ``` 这样可以减少: * GPU调用成本 * API调用费用 * 测试执行时间 --- # 三、大模型评测为什么需要Hash? 很多团队做LLM评测时,会保存大量数据: 一次模型测试可能产生: 输入: Prompt ↓ 模型: Response ↓ 评测: Score ↓ 人工反馈 例如: ```json { "prompt":"解释什么是TCP", "answer":"......", "score":9 } ``` 随着模型不断迭代: 每天可能产生几十万条评测记录。 问题来了: 如何判断: 模型升级后: 哪些问题重新测试? 哪些结果发生变化? --- 可以通过Hash建立版本关联。 例如: Prompt: ```text 什么是HTTP协议? ``` 生成: ```text prompt_hash=xxxxx ``` 模型V1: 输出结果A 模型V2: 输出结果B 系统发现: 同一个Hash对应不同结果。 说明: 模型行为发生变化。 测试人员重点分析。 --- # 四、大模型幻觉测试中的Hash应用 大模型最大的风险之一: 幻觉(Hallucination) 例如: 用户问: “某公司2028年的财务数据是多少?” 模型可能: 生成一个不存在的数据。 测试系统需要大量验证: 哪些问题: * 稳定回答 * 错误回答 * 随机回答 --- 可以建立: 问题库Hash索引。 例如: 高风险问题: ```text 金融 医疗 法律 安全 ``` 每个问题建立: 唯一ID。 模型每次测试: 快速定位: 历史表现。 发现: 以前正确。 现在错误。 触发质量告警。 --- # 五、AI Agent测试中的Hash应用 未来AI测试不仅测试模型回答。 还要测试Agent行为。 例如: 一个智能助手: 任务: “帮我查询订单并退款” 执行: 调用订单接口 ↓ 验证用户身份 ↓ 调用退款接口 测试过程中: 可能产生大量执行轨迹。 例如: ```text Agent Path: A-B-C-D A-B-E-D A-C-D ``` 如何判断: 是否出现重复路径? 是否覆盖新的行为? 可以利用Hash: 给每条执行路径生成唯一标识。 例如: ```text Path Hash: 8af32xx ``` 如果出现: 相同路径。 说明: Agent重复执行。 如果出现: 新Hash。 说明: 发现新行为。 --- # 六、为什么测试工程师需要理解哈希? 很多测试工程师认为: “哈希是开发的事情。” 实际上: 高级测试开发岗位越来越需要理解底层技术。 因为未来测试系统面对的问题: 不是: 10个接口。 100条用例。 而是: 百万级测试数据。 千万级模型调用。 复杂AI行为。 没有数据处理能力: 很难建设智能测试平台。 --- # 七、从自动化测试到AI质量工程,能力发生变化 传统测试开发: 重点: * 自动化框架 * 接口测试 * CI/CD AI质量工程: 增加: * 数据处理 * 模型评测 * Prompt测试 * Agent测试 * AI安全测试 其中: 数据结构和算法思想, 成为连接两者的重要能力。 --- # 八、测试工程师应该如何学习哈希? 不需要像算法工程师一样研究复杂实现。 重点理解: 三个能力: ## 1. 去重 解决: 重复测试数据。 ## 2. 快速查询 解决: 海量测试记录定位。 ## 3. 唯一标识 解决: 模型版本变化分析。 掌握这些思想, 已经足够应用到AI测试场景。 --- # 结语 AI时代,测试工程师面对的最大变化: 不是工具变化。 而是测试对象变化。 以前: 测试代码。 现在: 测试模型。 未来: 测试智能系统。 而智能系统背后: 离不开大量数据管理和分析。 哈希表只是一个基础数据结构。 但它体现了一种重要能力: > 用工程方法管理复杂数据。 这也是测试工程师走向: AI质量工程师 必须补齐的一项基础能力。 --- # AI质量工程持续分享: 关注: * 大模型测试 * LLM评测体系 * AI Agent质量保障 * 测试开发技术 * 软件质量工程实践 一起探索AI时代测试技术的新方向。 --- >**霍格沃兹测试开发学社,隶属于测吧(北京)科技有限公司,是一个专注软件测试、自动化测试、人工智能测试与测试开发的技术交流社区,并参与高校测试实训、火焰杯赛事及工程化人才培养。**

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册