你是否遇到过这样的场景?
👉 用ChatGPT修bug,它却写起了散文;
👉 让Copilot生成测试用例,结果跑题到外太空;
👉 明明调整了提问方式,AI的输出质量却像过山车...
最新研究发现:问题可能出在你的“提问姿势”!巴西与加州大学团队用2000+测试案例,横跨10类编程任务,实测14种主流提示技术,最终揭示:“90%的低效输出,源于技术与任务的不匹配
论文从46种技术中筛选出14种主流方法,通过四大模型(含DeepSeek-Coder、Llama 3)实测。
技术描述: 使用k-近邻方法选择相似示例来丰富提示上下文。
工作原理: 将数据样本转换为向量嵌入,计算余弦相似度,检索最相似的k个样本作为上下文示例。
提示词示例:
请根据以下相似代码示例来检测缺陷:
示例1:[相似代码1] -> 缺陷类型:空指针异常
示例2:[相似代码2] -> 缺陷类型:数组越界
示例3:[相似代码3] -> 缺陷类型:无缺陷
现在请分析以下代码:
[待分析代码]
2. Few Shot Contrastive CoT (CCoT)
技术描述: 使用正确和错误的思维链示例来细化推理步骤。
提示词示例:
通过对比正确和错误的推理过程来解决问题:
正确推理:
步骤1:检查变量初始化
步骤2:验证边界条件
步骤3:确认返回值
结果:正确
错误推理:
步骤1:直接使用变量(未检查初始化)
步骤2:忽略边界条件
结果:出现空指针异常
现在请用正确的推理方式分析:[代码]
3.Tree Of Thought (TroT)
技术描述: 构建多个分支推理路径来探索复杂设计问题的多样化解决策略。
提示词示例:
请使用树状思维分析这个问题:
分支1:从性能角度考虑
- 时间复杂度优化
- 空间复杂度优化
分支2:从可维护性角度考虑
- 代码可读性
- 模块化设计
分支3:从安全性角度考虑
- 输入验证
- 错误处理
综合以上分支,给出最佳解决方案:[问题描述]
4. Self Ask (SA)
技术描述: 让模型在回答前生成自己的后续问题,帮助逐步分解和解决复杂问题。
提示词示例:
在解决这个编程问题前,请先问自己几个问题:
问题:这个函数的主要功能是什么?
问题:需要处理哪些边界情况?
问题:可能出现什么异常?
问题:如何优化性能?
现在基于这些问题来分析:[代码问题]
5.Universal Self Consistency (USC)
技术描述: 结合模型的多个答案,使用元提示选择最一致的答案,提高输出可靠性。
提示词示例:
请生成3个不同的解决方案:
方案1:[详细描述方法1]
方案2:[详细描述方法2]
方案3:[详细描述方法3]
现在分析这3个方案的一致性,选择最可靠的方案并说明理由。
6.Self Refine (SR)
技术描述: 通过自我评估和更新来迭代改进初始响应。
提示词示例:
第一步:给出初始解决方案
[初始方案]
第二步:自我评估
- 这个方案有什么问题?
- 可以如何改进?
第三步:提供改进后的方案
[改进方案]
第四步:再次评估是否还需要进一步优化
7.Self-Generated In-Context Learning (SG-ICL)
技术描述: 自动生成上下文示例来模拟少样本学习,简化编程任务的提示制定。
提示词示例:
首先生成3个相关示例:
自生成示例1:[问题] -> [解决方案]
自生成示例2:[问题] -> [解决方案]
自生成示例3:[问题] -> [解决方案]
基于这些示例,现在解决:[实际问题]
8.Thread Of Thought (ToT)
技术描述: 引导LLM逐步处理问题,将大型复杂任务分解为小的可管理部分。
提示词示例:
让我们一步步分析这个问题:
第1步:理解问题核心
[分析问题本质]
第2步:确定关键组件
[识别主要模块]
第3步:逐个分析组件
[详细分析每个部分]
第4步:综合解决方案
[整合所有部分]
请暂停并总结每一步,然后继续下一步。
9.Step Back Prompting (SBP)
技术描述: 首先让模型从整体审视问题,思考关键思想和主要事实,然后制定解决方案。
提示词示例:
在深入细节之前,让我们先退一步:
高层次问题:这个问题的本质是什么?
核心概念:涉及哪些关键技术概念?
相关原理:需要应用什么基本原理?
基于以上高层次分析,现在制定具体解决方案:[问题]
10.Emotional Prompting (EP)
技术描述: 融入情感语言来塑造更有吸引力和共鸣的响应。
提示词示例:
这个任务对项目成功非常重要!请仔细分析代码中的潜在缺陷。
你的专业技能对团队来说是宝贵的,请提供最佳的解决方案。
我相信你能找到最优雅和高效的代码实现方式!
任务:[具体编程任务]
11.Style Prompting (SP)
技术描述: 指导模型采用特定的语调或格式,确保生成的代码注释和文档符合期望的风格。
提示词示例:
请以资深软件架构师的风格回答:
- 使用专业术语
- 提供详细的技术解释
- 包含最佳实践建议
- 考虑长期维护性
问题:[技术问题]
12.Rephrase and Respond (RR)
技术描述: 要求LLM首先用自己的话重述问题并添加必要细节,然后给出答案。
提示词示例:
首先,请用你自己的话重新描述这个问题:
[原问题重述]
补充理解:
- 问题的关键要求是什么?
- 需要考虑哪些约束条件?
- 期望的输出格式是什么?
基于以上理解,现在提供解决方案:
13.Role Prompting (RP)
技术描述: 分配特定角色身份(如代码审查员或开发者)来定制对特定SE任务细节的响应。
提示词示例:
你现在是一位经验丰富的高级软件工程师,专门负责代码质量审查。
你的任务是:
- 仔细检查代码逻辑
- 识别潜在的性能问题
- 提供改进建议
- 确保代码符合最佳实践
请审查以下代码:[代码]
14.Analogical Prompting (AP)
技术描述: 提示LLM使用类比来使代码解释或设计思想更容易理解。
提示词示例:
请用生活中的类比来解释这个算法:
就像图书馆管理员整理书籍一样:
- 排序算法就像按字母顺序排列书籍
- 搜索算法就像在目录中查找特定书籍
- 数据结构就像不同的存储方式(书架、抽屉、文件柜)
现在用类似的方式解释:[技术概念]
基于在10个软件工程任务上的综合表现,提示技术的总体排名如下:
三个最佳表现技术:
三个最差表现技术
各任务最佳技术:
任务类别 | 具体任务 | 最佳技术 | 最差技术 |
---|---|---|---|
代码理解 | 缺陷检测 | ToT | EP |
代码理解 | 克隆检测 | ES-KNN | SR |
代码理解 | 异常类型预测 | ES-KNN | RR |
代码理解 | 代码问答 | USC | TroT |
代码生成 | 代码翻译 | ES-KNN | SG-ICL |
代码生成 | Bug修复 | Control | RR |
代码生成 | 变异生成 | ES-KNN | ToT |
代码生成 | 断言生成 | ES-KNN | SR |
代码生成 | 代码摘要 | Control | RR |
代码生成 | 代码生成 | USC | ES-KNN |
Token消耗分析
Token是衡量大型语言模型成本的基本单位,直接影响API调用费用。研究发现,不同提示技术的token消耗存在显著差异:
高消耗技术:
低消耗技术:
响应时间成本
响应时间直接影响用户体验和计算资源占用。研究测量了每种技术的平均响应延迟:
耗时技术:
高效技术:
Token节省分析
研究统计了每个任务相对于基线方法的平均token节省情况:
时间节省分析
响应时间节省情况显示了不同任务的计算效率:
性能与成本的矛盾
研究揭示了提示技术在性能提升和资源消耗之间的复杂权衡关系
高性能高成本技术:
性价比优选技术:
▶ 黄金组合:TroT + USC
# 终极模板(论文实测有效) "
Step1: 逐步分析此函数的错误原因
Step2: 生成3种修复方案并对比优劣
Step3: 输出最终代码
Step4: 自我检查是否违反[内存/性能]约束"
💡 数据支撑:在200+个算法题测试中,该组合正确率从58%飙升至79%
▶ 黄金组合:RP + EP
“扮演被PM催稿的工程师,用三句吐槽向新手解释:
1. 此API的核心坑点
2. 附一个真实事故案例(带代码片段)”
💡 数据支撑:用户评分显示文档可读性提升31%,且Token消耗降低40%
▶ 资源充足的研究环境:
▶ 商业生产环境:
▶ 资源受限场景:
论文参考文档 https://arxiv.org/pdf/2506.05614
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。