18-Prompt-AB测试实战-用数据选择更好的提示词
Prompt A/B 测试实战用数据选择更好的提示词系列Python FastAPI 大模型应用基础第 18 篇1. A/B 测试不是随机发两个版本就结束Prompt A/B 测试要回答因果问题在其他条件尽量一致时版本 B 是否改善了目标指标。必须先确定实验单位用户、会话还是请求主指标任务完成率、人工通过率等护栏指标延迟、成本、投诉和安全事件分流规则、实验周期与停止条件。同一会话忽左忽右会污染体验所以常用稳定哈希分桶。2. 稳定分桶实现fromhashlibimportsha256defassign_variant(experiment_id:str,subject_id:str,b_percentage:int,)-str:同一实验中的同一主体始终进入相同版本。ifnot0b_percentage100:raiseValueError(b_percentage 必须在 0 到 100 之间)ifnotexperiment_idornotsubject_id:raiseValueError(实验和主体标识不能为空)digestsha256(f{experiment_id}:{subject_id}.encode(utf-8)).digest()bucketint.from_bytes(digest[:8],big)%100returnBifbucketb_percentageelseA不要使用 Python 内置hash()做跨进程分桶因为其结果可能受哈希随机化影响。3. 将分桶与版本绑定fromdataclassesimportdataclassdataclass(frozenTrue)classExperiment:experiment_id:strprompt_a:strprompt_b:strb_percentage:intdefchoose(self,subject_id:str)-tuple[str,str]:variantassign_variant(self.experiment_id,subject_id,self.b_percentage,)versionself.prompt_bifvariantBelseself.prompt_areturnvariant,version experimentExperiment(experiment_idticket-summary-2026-07,prompt_a1.3.0,prompt_b1.4.0,b_percentage10,)实验记录至少包含experiment_id、variant、Prompt 版本、模型版本、请求 ID 和指标。用户 ID 应使用内部不可逆标识或符合制度的假名化值。4. 计算比例指标与不确定性frommathimportsqrtdefrate_and_standard_error(success:int,total:int)-tuple[float,float]:iftotal0ornot0successtotal:raiseValueError(样本数量不合法)ratesuccess/total standard_errorsqrt(rate*(1-rate)/total)returnrate,standard_errordefcompare_rates(a_success:int,a_total:int,b_success:int,b_total:int,)-dict[str,float]:a_rate,a_serate_and_standard_error(a_success,a_total)b_rate,b_serate_and_standard_error(b_success,b_total)return{a_rate:a_rate,b_rate:b_rate,absolute_lift:b_rate-a_rate,# 这里只报告差异的近似标准误不冒充完整显著性检验difference_se:sqrt(a_se**2b_se**2),}不能只看到 B 高 1% 就宣布胜利。样本量、置信区间、重复查看导致的提前停止偏差都需要数据分析人员根据实验设计处理。5. 可复验测试deftest_assignment_is_stable()-None:firstassign_variant(exp-1,user-42,20)secondassign_variant(exp-1,user-42,20)assertfirstseconddeftest_zero_and_full_traffic()-None:assertassign_variant(exp,user,0)Aassertassign_variant(exp,user,100)B6. 哪些情况不应该继续实验B 版本触发安全事件输出 Schema 失败率越过护栏P95 延迟或单次成本显著超限上下游系统版本不一致导致数据不可比分流实现错误或指标漏记实验主体会跨组相互影响。安全护栏触发后应自动停止 B 流量不必等待主指标统计显著。7. 对抗性审查实验前冻结主指标防止事后挑选“好看”的指标同一用户保持稳定分组机器人流量、内部测试和重试请求不能重复计入同期模型切换会破坏可比性不对高风险自动决策仅凭 A/B 指标放量保留旧版本和回滚开关。8. 总结A/B 测试的核心不是两个 Prompt而是稳定分流、可比数据、预先定义的指标和安全停止机制。

相关新闻

C程序能调用extern “C“声明的带默认参数的C++函数吗?

C程序能调用extern “C“声明的带默认参数的C++函数吗?

问题场景 C函数带默认参数,并用 extern "C"导出为动态库,C程序能否直接调用并享受默认参数? // mylib.cpp extern "C" void foo(int a, int b 0) { /* ... */ }C程序试图只传一个参数:foo(42);—— 这是错误…

2026/10/21 4:58:45 阅读更多 →
AI会员订阅系统落地全路径(从冷启动到LTV提升217%的闭环架构)

AI会员订阅系统落地全路径(从冷启动到LTV提升217%的闭环架构)

更多请点击: https://codechina.net 第一章:AI会员订阅系统落地全路径(从冷启动到LTV提升217%的闭环架构) 构建高转化、高留存的AI会员订阅系统,核心在于打通“冷启动→智能分层→动态定价→行为干预→LTV反哺”的正向…

2026/10/22 11:41:25 阅读更多 →
AI写付费专栏到底能不能赚钱?3个真实案例拆解,92%新手踩中的5个致命误区

AI写付费专栏到底能不能赚钱?3个真实案例拆解,92%新手踩中的5个致命误区

更多请点击: https://codechina.net 第一章:AI写付费专栏到底能不能赚钱?3个真实案例拆解,92%新手踩中的5个致命误区 真实收益并非幻觉,但高度依赖交付质量 三位不同背景的创作者验证了AI辅助写付费专栏的可行性&am…

2026/10/25 8:41:38 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/25 22:36:10 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/26 4:52:12 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/26 5:00:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/26 3:16:46 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 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/26 12:00:19 阅读更多 →
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/25 13:21:54 阅读更多 →
黑夜航拍船只数据集训练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/26 8:34:37 阅读更多 →