Claude 3.5核心编码prompt揭秘,全网码农沸腾!四步调教法,最新V2版放出
声明:本文来自微信微信官方账号新智元(ID:AI_era),作者新智元,经授权站长之家转载发布。
【新智元简介】核心Claude3.5编码系统提示Reddit社区。刚刚原作者发布了进化后的第二个版本,已经有网友添加到工作流程中。
一个关于Claude Sonnet3.5核心编码的系统提示,最近在Reddit上疯狂上传!
在r/ClaudeAI主板下,一位名叫ssmith12345uk的用户描述,他通过Claude代码练习,不断调整系统提示,优化模型。
他说系统提示整合了人择元提示的一些思路,解决了之前遇到的一些问题。
最后,他释放了所有的暗示。
AI社区的开发者纷纷转发自己的收藏,说这不是码农最想要的提示!
网友这样总结:ReAct+Planning+XML就是你需要的全部。
一些受益的网友表示,这个提示对自己的项目很有帮助。
昨天原作者在Reddit社区发布了V2提示的进化版,并提供了详细的说明和解释。
在解释这些提示之前,请先回答网友的一个问题——从哪里进入?
需要创建项目(订阅Pro用户)才能进入提示页面。
Sonnet3.5最强编码提示,4步调音。
这里把V1和V2的系统提示放在一起,让大家更直观的感受升级后的区别。
V2系统提示,如右图所示。与V1相比,它基本上是小修小补。
在最新版本中,模型仍然以四个步骤为指导完成CoT推理——代码评审、规划、输出和安全评审。
第一段,Claude3.5的角色定义保持不变。
你是网络开发专家,精通CSS,JavaScript,React,Tailwind,Node。JS和Hugo/Markdown。
不过,第二句话,做了一些微调——“不要做不必要的道歉。回顾对话历史,避免重蹈覆辙。”
接下来要求Claude3.5在对话中把任务分解成独立的步骤,每个阶段之后建议做一个小测试,确保一切都在正轨上。
仅在需要示例或明确要求时提供代码。如果可以不用代码回答最好。
但如有必要,将需要进一步阐述。
下一步是“代码审查”——在编写或建议代码之前,对现有代码进行全面的代码审查,并将其签入
代码评审完成后,需要在
跟着干(不要& aposT Repeat Yourself)原则,避免代码重复,平衡代码的可维护性和灵活性。
此外,在这一步中,提出了可能的权衡和实现选项,并考虑和建议了相关的框架和库。如果我们还没有就计划达成一致意见,我们就到此为止。
一旦达成协议,就会在
在这里,Reddit的作者还建议了Claude3.5输出代码时应该注意的一些事情:
注意变量名、标识符和字符串文字,并检查它们是否是从原始文件中准确复制的。
使用双冒号和大写字母(如::大写::)来表示按照约定命名的项。
保持现有的代码风格,使用适合该语言的习惯用法。
生成代码块时,在第一个反引号后指定编程语言:比如JavaScript,Python。
最后,需要审查计划和产出的安全和运作,特别注意可能危及数据或引入漏洞的事项。
对于敏感更改(如输入处理、货币计算、身份验证),进行彻底的审查,并检查中的详细信息
作者分析
接下来,在一个很长的解释中,Reddit的作者用它来表示“迷信”,表达他所相信的东西。
这个提示是一个引导式“思维链”提示的例子,告诉Claude要采取的步骤和顺序,并将其作为系统提示(模型收到的第一组指令)。
使用XML标记来分隔步骤是受Anthropic元提示的启发。
作者认为Claude对XML标签特别敏感,这可能与模型训练有关。因此,他倾向于单独或在会议结束时处理HTML⬛问题。
项目地址:https://github . com/anthropic s/anthropic-cookbook/blob/68028 f 4761 C5 DBF 158 b 7 BF 3d 43 f 44111200/MISC/meta prompt . ipynb #
引导式思维链遵循以下步骤:代码评审、计划、输出和安全评审。
1代码审查
将结构化代码分析带入上下文,为后续计划提供信息。
目的是防止LLM在不考虑更广泛的上下文的情况下对代码进行局部更改。作者确信这种方法在试验中是有效的。
2规划
这一步将产生一个高层次的设计和实现计划,可以在代码生成之前对其进行检查。
这里的“停止”是为了避免用生成的、不必要的、不符合我们需求的代码填充上下文,或者我们反复修改。
它通常会呈现一些相关且合适的选项。
在这个阶段,你可以深入到规划的细节,进一步完善它(比如,再给我讲讲第三步,我们是否可以重用Y实现,给我看一个代码片段,如何考虑库等等。).
3输出
一旦计划一致,就可以进入代码生成阶段。
关于变量命名的提示,是因为作者在长时间的对话中,经常会遇到重新生成的代码丢失或者产生变量名幻觉的问题。目前看来,改进变量名的提示已经解决了这个问题。
在某些时候,作者可能会导出旧的对话,做一些统计分析,但现在他对这种方法的效果很满意。
代码围栏提示是因为作者切换到了一个无法推断出正确高亮的前端,并验证了这是正确的方法。
4安全审查
作者更喜欢事后进行安全审查,并发现这一步非常有帮助。
它提供了来自“第二双眼睛”的检查,并可能提出新的改进建议。
回答网友提问
最后,Reddit的作者回答了网友的提问。
我应该在Claude.ai上使用这个提示吗?/应该在哪里输入系统提示?
我们并不确切知道十四行诗3.5的官方系统提示,所以假设之前泄露克劳德官方提示的普林尼是正确的当然是有帮助的。笔者推测Anthropic的系统提示可能包含自动CoT,但也可能没有,也可能是通过元提示自动处理输入。
但是,使用这个提示会得到很好的结果,除非您使用的是工件。
再次假设Pliny关于工件的摘录是正确的,作者强烈建议,在执行非琐碎或非工件相关的编码任务时,应该关闭工件功能。
如果你使用了允许你直接设置系统提示的工具,作者提醒你调整温度参数。
我们现在不需要这么复杂的提示了/我在Sonnet里面输入了很多代码,直接就可以了。
自动思维链(CoR)/默认提示确实可以解决很多问题,但是请和一个简单的“你是一个有帮助的AI”提示做个比较。
笔者自称做过这样一个测试,发现简单的提示在处理复杂问题时并不有效。
他还提到,早期的测试显示了系统提示的敏感性,即不同的提示会导致显著不同的结果,未来将考虑更多的批量测试来进一步验证这一点。
他承认Sonnet3.5在基本任务中表现良好,但同时强调,即使对于高性能机型,适当的指导仍然是有帮助的。
这个提示太长,会导致AI产生幻觉/遗忘/失去连贯性/失去焦点。
作者测量出这个提示中大约有546个令牌,在20万令牌的模型中,提示长度是可以接受的。
结构化提示可以保持上下文的高质量,有助于保持对话的连贯性,降低AI产生幻觉的风险。
到目前为止,该模型是基于整个上下文来预测下一个令牌,因此重复的高质量对话可以在您需要开始新的对话之前持续更长时间,而不会被不必要的来回代码污染。这意味着您可以在同一会话中进行更长时间的有效互动。
这个提示设计过度了。
作者说,可能吧。
使用它的人已经融入了工作流程。
网友惊呼使用后型号性能真的提升了。
“如果这个提示更有效,这意味着Anthropic团队在将CoT或ReAct系统提示与LLM基本功能相结合方面取得了成果”。
这是为编码助手设计的!对于这样的任务,给予一些指导是有意义的。
一些网友已经将一些小技巧融入到自己的工作流程中。以下是他在新对话中总是首先加载的内容。
不过也有网友表示这个提示太复杂了。
“根据我的经验,没必要用这么全面的提示。Claude3.5Sonnet可以相当自动地处理这类事情,只需要偶尔的提示和澄清。”
角色提示是浪费时间。
Django框架的开发者Simon Willison说,从2022年底开始,“你是xxx领域的专家”这种提示手法完全是浪费时间。
LLM提示中涉及的迷信数量相当惊人!
这个结论实际上来自Learnprompting团队和OpenAI与微软的合著者进行的为期一年的研究。
论文地址:https://arxiv.org/pdf/2406.06608
在项目中,他们分析了1500多篇关于提示的论文,将它们归类为58种不同的提示技巧,并对每一种进行了分析。
发现角色提示的效果差得惊人。
原因是对于老型号,似乎可以通过提示输入更好的参数空来获得更好的响应/推理。但是,较新的模型可能已经在改进的参数空中。
这对大家来说会是一个建设性的猜想!
回到2022年10月,当Learnprompting在ChatGPT之前发表了有史以来第一份提示指南时,角色提示是当时最热门的话题,也是大家推荐的获得更好ChatGPT成绩的核心技能。
不得不承认,这些模式正在迅速演变,去年有效的技术今天可能不再有效。
今天有效的,明年不一定有效。
为了澄清这个问题,Learnprompting团队对gpt-4-turbo使用了大约12种不同的角色提示,并测试了2000个MMLU问题。
特别是创造了一个“天才”角色的提示性例子——你是哈佛大学毕业的科学家。...
还有一个“傻逼”的角色暗示——你是傻逼…
如下图所示,不同角色提示的回答准确率都没有零样本CoT、双样本CoT等策略高。
不管是数学新手还是粗心的学生,或者是知识渊博的AI,警察,常春藤数学教授,都没用。
更有趣的是,被称为“天才”的GPT-4在回答准确率上打破了58.7%的最低纪录。
被称为“白痴”的GPT-4,得分甚至比天才GPT-4还高。
密歇根大学团队的另一项研究很好地解释了不同的社会角色线索如何影响模型的整体表现。
他们测试了2457个MMLU问题,发现表现最好的角色是(红色)——警察、有用的助手、伙伴、导师、AI语言模型和聊天机器人。
论文地址:https://arxiv.org/pdf/2311.10054
威廉森对暗示“迷信”的大模型做了一个生动有趣的比喻:
我把这种情况比作一只狗在灌木丛中发现了一个汉堡,然后它会在接下来的几年里每次经过那片灌木丛的时候都会检查一下是否有汉堡。我们需要比狗更理性。
不过,他澄清说,在某些情况下,给AI语言模型分配特定的角色是有用的,但强调应该基于合理的思考和具体的情况。
【/h/]有网友表示,循序渐进的思考仍然是一个永恒的定理。
参考: