微信扫码
与创始人交个朋友
我要投稿
近日,著名人工智能学者、斯坦福大学教授吴恩达高度总结了提升生成式 AI 模型能力的提示工程方式,并着重推荐了微软2023年11月发表的论文Medprompt,他观察到以下四种方式能够有效提升模型的输出:
编写快速、简单的 prompt,看看效果如何。
根据输出不足的地方,迭代地充实 prompt。这通常会导致更长、更详细的 prompt,甚至可能是「mega-prompt」。
如果这仍然不够,请考虑少样本或多样本学习(如果适用),或者不太频繁地进行微调。
如果仍然不能产生您需要的结果,请将任务分解为子任务并应用智能体工作流。
他推荐如果想深入了解提示策略应该研究微软的Medprompt《Can Generalist Foundation Models Outcompete Special-Purpose Tuning? Case Study in Medicine》。Medprompt不仅用多策略Prompt解决实际问题,更是让专有模型微调和提示工程的性能进行了正面交锋。
图片由小鱼提供
MedPrompt的方法
微软的研究人员设计了一个实验来比较微调模型与配备了提示工程框架的基础模型的性能。基础模型GPT-4利用了微软的MedPrompt框架,而Google开发的微调模型Med-PaLM 2则是专门为医疗领域量身定制的。
这套名为MedPrompt的提示工程方法,巧妙地结合了动态小样本选择、自主生成的思维链以及选择洗牌集成等技术,使GPT-4在MultiMedQA等九大医学知识评测数据集上全面超越了最先进的专业模型如Med-PaLM 2。其中在MedQA这一美国医师资格考试的数据集上,MedPrompt将GPT-4的准确率提升到了90.2%,首次突破90%大关,比此前最好成绩高出27%!
Medprompt是怎么做到的
第一,研究者使用了动态小样本选择。与以往固定使用专家精心挑选的样本不同,MedPrompt利用训练集中与当前问题最相似的少量样本作为上下文示例。这种做法避免了固定样本无法适应所有测试问题的局限性。
第二,MedPrompt还利用GPT-4自主生成详尽的思维链作为解题过程示例。实验表明,模型生成的思维链比专家手工设计的更加细致入微,能更好发挥GPT-4自身的推理能力。
第三,使用选择洗牌集成技术来降低模型对选项位置的偏好,同时增加结果的鲁棒性。
文章中的这张图能够给我们说清楚MedPrompt的核心组成部分以及它们在MedQA基准测试中的性能贡献。从图中可以清晰地看出,通过将多种提示工程技术巧妙地组合起来,MedPrompt将GPT-4的医学问答能力逐步提升到了一个新的高度。
在最基础的零样本(Zero-shot)设置下,GPT-4在MedQA上的准确率为81.7%。接下来,通过引入随机选择的5个few-shot示例作为上下文,准确率提升到83.9%,展现出上下文学习的重要性。
进一步地,MedPrompt利用GPT-4自身生成详细的思维链(Chain-of-thought),代替了人工设计的解题步骤。这一关键创新使准确率大幅提升到87.3%,突显了思维链推理在发挥语言模型专业能力方面的巨大潜力。
在思维链的基础上,MedPrompt优化了上下文示例的选择策略。通过使用kNN算法动态检索与待答问题最相关的few-shot样本,准确率进一步提升到88.4%,表明高质量的示例对于促进模型理解和生成至关重要。
最后,MedPrompt在推理阶段引入了答案选择洗牌集成的策略。通过多次改变候选答案的顺序,让模型生成多个可能的解答,并选取出现频率最高的答案作为最终输出。这一简单而有效的技术将准确率推高到90.2%的新纪录,充分展现了集成学习在提高模型鲁棒性方面的优势。
这张图以一种直观易懂的方式阐明了MedPrompt的构造逻辑和各组件的作用机制。它启发我们,提示工程不仅要利用语言模型强大的知识和推理能力,还要注重如何引导模型更好地利用这些能力。选择高度相关的示例、鼓励模型自主思考、在决策阶段注入多样性,是MedPrompt的三大关键要素。研究者可以参考这一范式,探索更有效的提示工程流水线,进一步释放语言模型在垂直领域的应用潜力。同时,这些技术组合在医疗领域的成功也为其他专业领域带来了宝贵的借鉴和启示。
说点题外话,最近“三”这个数字似乎成了解决0和1领域问题的不二法宝,谷歌前两天出了一篇文章Prompt101也在大量用到“三”这个数字,谷歌最新《Prompt指南101》“三三制”战法惊现云端,代号101或许是三生万物,或许是“三”这个数字真的百试百灵。
消融研究后的领域应用
作者通过消融研究深入分析了MedPrompt中不同技术组件对最终性能的贡献。这项研究对于理解MedPrompt的工作原理和进一步优化提示工程策略具有重要意义。
作者逐步测试了MedPrompt的几个核心组成部分:
1. 使用GPT-4替代GPT-3.5后,在MedQA数据集上的准确率提升了2.2%,表明更强大的语言模型是提升表现的基础。
2. 在此基础上加入随机選择的5个few-shot示例,准确率进一步提升3.4%,说明上下文学习对于改善模型理解和回答能力至关重要。
3. 接着,作者引入了GPT-4自主生成的思维链(CoT),取得了最显著的3.4%的性能提升。这证实了通过自动构建解题推理步骤,能够更好地发挥语言模型的逻辑分析能力。
4. 进一步使用基于kNN动态选择的相关few-shot示例,准确率增加0.8%,优于随机选取,表明选择高度相关的示例对性能更有帮助。
5. 最后叠加选择洗牌集成策略,在多种答案排列中寻求一致性,准确率再提升2.1%,达到了90.2%的最终性能。这一步有助于降低偶然性和偏好,提高模型输出的可靠性。
我们可以看到,MedPrompt通过巧妙组合多种提示工程技术,将GPT-4在MedQA上的表现从81.7%大幅提升到90.2%,充分展现了提示工程的巨大潜力。其中,自主生成的思维链发挥了最关键的作用,而动态few-shot、答案洗牌集成等策略进一步放大了思维链推理的效果。
这项消融研究为我们理解MedPrompt的实现机制提供了重要启示。未来在设计提示工程流水线时,可以参考MedPrompt的思路,合理利用大语言模型的自我知识生成和推理能力,并通过动态示例选择、多样化集成等方法不断迭代优化,以期达到最佳的问答表现。同时,这些技术组合的效果在其他垂直领域也值得进一步探索和验证。
通过这三大核心技术的有机结合,MedPrompt将GPT-4打造成了一个出众的医学知识专家。而且更令人兴奋的是,尽管名为MedPrompt,但该方法本身并不局限于医学领域。研究者进一步在电气工程、机器学习、哲学、会计、法律、护理等多个领域的知识测试上进行了实验,发现MedPrompt的性能提升同样显著,充分展现了该方法的普适性。
我也根据论文的方法写了一个Medprompt的System prompt,输出效果确实不一样。以下是GPT 4o的不用这个方法的输出:
当我用Medprompt方法重新问了这个问题之后的结果是:
<本文完结>
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-04-12
2024-05-28
2024-04-25
2024-05-14
2024-07-18
2024-04-26
2024-08-13
2024-12-22
2024-12-21
2024-12-21
2024-12-21
2024-12-21
2024-12-20
2024-12-20
2024-12-19