根治大模型幻觉!这套Harness工程框架,彻底解决输出随机性
文章目录前言1 先聊聊啥是Harness1.1 说白了就是给大模型套缰绳2 整个框架的底子一个通用调用函数2.1 所有请求都走这一扇门3 第一步一口气生成好几个候选答案3.1 别赌运气我全都要3.2 并发请求的正确打开方式4 第二步让大模型自己当评委打分4.1 自己生的自己评闭环了属于是4.2 为啥打分要串行不一起上5 第三步挑个最好的输出5.1 排序取第一简单粗暴6 把整个流程串起来6.1 一条流水线跑完全程7 最后聊聊这背后的工程思路7.1 拆解开每个环节都能换P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看 传送门https://blog.csdn.net/HHX_01前言不知道你们用大模型写代码有没有这种体验——同一个问题复制粘贴问三遍能给你整出三个完全不同的答案。第一次写的还能用第二次直接给你整个最优解第三次好家伙连不存在的API都敢编出来美其名曰“创造性输出”说白了就是幻觉又犯了。很多人说靠prompt工程能治我试过没用。你把prompt写得再细、规矩列得再多它该抽风还是抽风就像你跟外卖员反复说三遍“不要香菜”他该放还是放全看当天顺手不顺手。那咋整靠人一遍遍改效率太低。今天就给你们唠一套工程化的法子直接把大模型的随机性给管得明明白白。1 先聊聊啥是Harness1.1 说白了就是给大模型套缰绳Harness本来是马具的意思就是用来驾驭烈马的。现在的大模型就像没拴绳的野马跑起来能直接给你窜到姥姥家你永远猜不到它下一句能扯到哪去。这个框架的作用就是给它套上流程缰绳让它按规矩办事。核心逻辑特别简单就三步先生成好几个候选答案再挨个给这些答案打分最后挑分数最高的输出。说通俗点就跟公司招人类似——先海投收一堆简历HR挨个筛选打分最后选最匹配的发offer。一套流程走下来靠谱程度直接往上跳一个档次。2 整个框架的底子一个通用调用函数2.1 所有请求都走这一扇门整个框架最底层就一个核心函数专门负责跟大模型对话。别管你是让它写代码还是让它当评委打分所有请求都从这一个函数走。为啥要单独抽出来总不能生成的时候写一遍调用代码打分的时候再复制粘贴一遍吧以后要加个失败重试、加个请求日志、甚至换个模型用改这一处就全搞定了。这就像小区的快递柜所有快递都往这放取件寄件都找它不用挨个跟不同的快递员对接。而且它还兼容所有符合OpenAI接口协议的模型不管是千问、DeepSeek还是别的只要接口对上就能插进去用跟万能充电头似的走哪都能用。3 第一步一口气生成好几个候选答案3.1 别赌运气我全都要大模型每次生成本质上就是概率抽卡你永远不知道下一次出来的是神级答案还是人工智障。有人说我把temperature调成0总行了吧别天真了就算调成0它也不敢保证每次输出都一模一样。就像你每天走同一条路上班总能遇到不一样的红绿灯没地方说理去。那咋办简单粗暴别赌运气多抽几次。默认生成3个就刚好——太少了覆盖不到随机性太多了费token还费时间3个是成本和效果的经验平衡点。就跟你和同事拼单买奶茶似的怕踩雷就点三款不同的总能喝到一杯合口味的。3.2 并发请求的正确打开方式要生成3个答案总不能一个一个等着生成吧那效率也太低了。直接并行发起请求三个请求一起发出去省时间。这里就得提Array.from这个神器了。别瞎写Array(3).map()那玩意儿创建的是空位数组map会直接跳过空位等于白写。就像你点了三份外卖结果商家只给你装了三个空盒子纯纯无效操作。用Array.from就不一样了一步到位创建数组的同时就把请求发出去三个Promise齐刷刷开始跑能多快就多快。当然这里也有个小坑——要是其中一个请求挂了整批都会跟着失败。真上生产环境得做容错处理咱们先把核心逻辑跑通这些都是后话。4 第二步让大模型自己当评委打分4.1 自己生的自己评闭环了属于是生成完一堆候选答案总不能人挨个看吧那也太费劲了还叫啥自动化。直接让大模型自己当评委给每个答案打个0到10的分数要求就一个只给数字别扯别的。有人说这能靠谱吗哎你还别说只要把评分规则写清楚它评得比很多摸鱼的同事认真多了。你跟它说“当严格的评审”它就真敢给低分你跟它说“友好鼓励为主”它能给你全打9分以上。所以说这个评委的prompt本身也是个玄学参数得慢慢调。还有个小细节万一它没按要求输出数字咱也有兜底直接按0分算不能让它把整个流程搞崩。4.2 为啥打分要串行不一起上肯定有人纳闷生成的时候都并行跑了打分为啥要一个一个来一起上不是更快这就是实打实的工程经验了。生成的时候并发没问题但你一下子怼一堆打分请求过去很容易触发平台的限流直接给你返回429错误——啥意思请求太多给你拒了。就像你去食堂打饭三个人一起挤窗口阿姨直接给你白眼让你后面排队去。该快的地方咱们绝不磨蹭该稳的地方咱们绝不冒进。生成要效率所以并行打分求稳妥所以串行。干活就得这样不能瞎堆并发装样子。5 第三步挑个最好的输出5.1 排序取第一简单粗暴所有候选都打完分了咋选最好的按分数从高到低排个序取第一个就完事了。肯定有较真的朋友说找最大值遍历一遍是O(n)排序是O(n log n)效率低。嗨一共就三五个结果排序那点算力开销可以忽略不计。写个排序一眼就能看明白啥意思比写个循环找最大值直观多了。代码首先是写给人看的顺便能在机器上跑就行这点小事没必要抠算法复杂度。6 把整个流程串起来6.1 一条流水线跑完全程把上面三步拼起来就是完整的流水线了。进来一个需求先生成3个候选结果再挨个给它们打分最后挑分数最高的返回。中间每一步都可以加日志干了啥、结果是啥清清楚楚出了问题也好排查。就跟工厂的流水线似的原料从一头进去经过好几道工序最后从另一头出来成品。大模型不再是瞎输出的黑盒子每一步都在你的掌控之中。7 最后聊聊这背后的工程思路7.1 拆解开每个环节都能换整个框架最妙的地方就是每个部分各司其职互不干扰。想提升输出质量把生成数量从3改成5就行。想让评测更准确换个更强的模型当评委。想换择优规则改成多数投票制也没问题。想加监控加告警往每个阶段后面插代码就完了。这就是单一职责的好处改哪动哪不会牵一发而动全身。很多人觉得那些市面上的重型AI框架特别神秘其实核心逻辑都差不多都是生成、评测、择优这一套。无非是功能更多、封装更厚但骨架都是一模一样的。说白了对付大模型的幻觉和随机性别总想着一劳永逸把它根治。就像养哈士奇你别指望它自己变乖你给它拴好绳、关好笼它照样能当听话的乖狗狗。用工程手段把它管起来比啥都强。P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/HHX_01

相关新闻

计算机考试-C K列迁移—东方仙盟

计算机考试-C K列迁移—东方仙盟

#include <stdio.h> #define M 3 #define N 5void fun(int (*a)[N], int k) {int i, j, p, temp;/********found********/for(p 1; p < 【1】; p){for(i 0; i < M; i){temp a[i][0];/********found********/for(j 0; j < 【2】; j){a[i][j] a[i][j 1];}/*…

2026/10/2 6:18:39 阅读更多 →
QQ空间历史说说备份神器GetQzonehistory:扫码登录一键导出全部回忆

QQ空间历史说说备份神器GetQzonehistory:扫码登录一键导出全部回忆

QQ空间历史说说备份神器GetQzonehistory&#xff1a;扫码登录一键导出全部回忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你的QQ空间里&#xff0c;是不是躺着十年甚至更久以前的说…

2026/10/4 23:42:06 阅读更多 →
R3nzSkin国服换肤工具完整上手指南:免费体验全部皮肤、防御塔与野怪外观

R3nzSkin国服换肤工具完整上手指南:免费体验全部皮肤、防御塔与野怪外观

R3nzSkin国服换肤工具完整上手指南&#xff1a;免费体验全部皮肤、防御塔与野怪外观 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 没买过的皮肤凭什么…

2026/10/7 15:18:49 阅读更多 →

最新新闻

.NET Core Cookie身份验证完全指南:原理、配置与实战

.NET Core Cookie身份验证完全指南:原理、配置与实战

下面是一篇围绕“.Net Core — Cookie 身份验证”展开的实操型博文&#xff0c;以真实从业者的口吻写&#xff0c;不跑题、不说教、直接给方案。 做了几年 .Net 后端&#xff0c;Cookie 身份验证一直是被反复问到、也反复踩坑的一块。很多人一上来就选 JWT&#xff0c;觉得无状…

2026/10/11 14:17:24 阅读更多 →
iOS视频与图片混合轮播组件实现:基于UICollectionView与AVPlayer的架构拆解

iOS视频与图片混合轮播组件实现:基于UICollectionView与AVPlayer的架构拆解

简介&#xff1a;面向iOS开发者的视频与图片混合轮播实现资源&#xff0c;基于Objective-C编程语言和Xcode工具链&#xff0c;适配社交媒体、电商、媒体播放等常见App场景。资源重点梳理两条技术路线&#xff1a;第一条基于UICollectionView自定义图片与视频两种Cell&#xff0…

2026/10/11 14:17:24 阅读更多 →
Oracle HRMS经典架构解析:能力驱动与灵活组织的底层实现

Oracle HRMS经典架构解析:能力驱动与灵活组织的底层实现

简介&#xff1a;本资源是一份聚焦Oracle人力资源管理数字化转型的PPT课件&#xff0c;面向HR信息化建设负责人、ERP实施顾问及企业IT管理者&#xff0c;系统阐述如何借助Oracle方案将HR职能从行政事务型升级为战略驱动型。课件共1个PPT文件&#xff08;19.64MB&#xff09;&am…

2026/10/11 14:17:24 阅读更多 →
Oracle EBS GL总账模块核心逻辑与实战排错指南

Oracle EBS GL总账模块核心逻辑与实战排错指南

简介&#xff1a;本资源是一份面向企业财务人员与Oracle EBS实施顾问的GL总账模块实操指南&#xff0c;聚焦日常账务处理核心流程&#xff0c;解决手工记账、审批控制、过账执行等关键操作问题。文档结构清晰&#xff0c;覆盖系统登录与职责选择、手工日志账&#xff08;含账头…

2026/10/11 14:17:24 阅读更多 →
Java 项目接入 TaoToken 统一 Key:从 401 报错到本地代理失败的排查大纲

Java 项目接入 TaoToken 统一 Key:从 401 报错到本地代理失败的排查大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:17:24 阅读更多 →
从ZIP压缩包到家谱树:GEDCOM解析与可视化实践

从ZIP压缩包到家谱树:GEDCOM解析与可视化实践

简介&#xff1a;这是一份基于Java与JavaFX开发的家谱管理系统项目包&#xff0c;面向学习Java桌面应用开发的初学者、完成课程设计的在校学生&#xff0c;以及希望深入了解图形界面编程的相关开发者。系统以家族成员信息管理为核心&#xff0c;围绕亲属关系维护、家谱树展示与…

2026/10/11 14:16:23 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →