资料来源:图片由作者和MidJourney共同生成
概述
在我最近的文章《新ChatGPT提示工程技术:程序仿真》中,提出了一种新的提示工程技术,旨在使ChatGPT-4表现得像一个程序。在开发它时,让我印象最为深刻的是ChatGPT-4根据程序规格实现自我配置的能力。在原始的程序仿真提示中,严格定义一组功能,并期望使用ChatGPT-4来使得程序状态与功能保持一致。结果令人难忘,许多读者分享了如何成功地将这种方法应用于多种用例。
但如果稍微放松一下约束又会发生什么事情呢?如果给ChatGPT-4在定义功能和程序行为方面更多的回旋余地又会怎么样呢?虽然这将不可避免地牺牲一些可预测性和一致性,然而,灵活性的增加会提供更多的选择,并能适用于更广泛的应用程序。我已为该技术提出了一个原始框架,如下图所示:
资料来源:图片由作者提供
花点时间来深究这张图表吧,我确定了两个适用于程序仿真提示制作方式的关键维度:
1. 明确要定义的仿真程序的数量和功能;
2. 明确程序的行为和配置的自主程度。
在第一篇文章中,精心设计了一种提示,它属于“结构化的预配置”分类(紫色的点)。今天,将探讨“非结构化自配置”方法(蓝点)。该图的精妙之处在于,它为制作程序仿真提示提供了一个简明的概念路线图,在应用该技术的同时,它还提供了实验、调整和细化等多个维度的简单应用。
非结构化自配置程序仿真提示
闲话少说,首先开始研究“非结构化自配置程序仿真”方法,为此我制作了一个提示,目的是创建带有插图的儿童故事,大意如下:
“表现得像一个自组装项目,旨在创建带插图的儿童故事。在确定程序功能、特征和用户界面方面具有完全的灵活性。对于插图功能,程序将生成提示,可以与文本到图像模型一起使用来生成图像。目标是将聊天的内容作为一个完整功能的程序来运行,一旦收到聊天提示,便可以即刻供用户输入使用。”
不难看出,该提示似乎非常简单。在提示变得越来越长、令人困惑、如此具体以至于很难适应不同情况的时代,它可能颇具吸引力。这里已经给出了GPT-4关于功能定义、配置和程序行为的完全自由裁量权。唯一的具体说明是指导插图的输出,用于文本到图像的生成。另一个重要的因素是,已经设定了一个聊天模型应实现的目标。最后需要注意的是,我使用了术语“自组装”,而不是“自配置”,可以同时尝试使用这两种不同的方法,但“自配置”更倾向于ChatGPT仿真实际的程序/用户交互。
“类似的行为”和“类似的动作”
需要在提示符中强调其他不同单词的选取问题,在测试中,当遇到在提示中使用“像某专家一样动作”的指令时,“类似的动作”倾向于引导聊天模型走向由角色驱动的反应。而“类似的行为”当目标模型更像是一个程序或系统时,则提供了更多的灵活性,它甚至可以用于以人物角色为中心的环境中。
如果一切按计划进行,输出结果应该是这样的(注意:可能会看到一些稍微不同的内容)。
这看起来和感觉上都像是一段程序,功能直观且适度,菜单甚至还包括“设置”和“帮助&教程”。接着来深究具体内容,我承认,这完全是意料之外的内容。
提供的“设置”非常有帮助,可以在其中做一些选取来确保故事简短,并将语言和词汇水平设置为“初学者”。
由于只对检查模型自配置程序的能力感兴趣,所以把更新后的设置组合到一行文本中,看看是否可行。
确认设置更新之后,接下来的菜单选择完全是自主形式的,但应和“程序”中的上下文语境匹配。
检查一下“帮助& 教程”。
之后,再仔细看看“插图提示&生成。”
结果同样非常有用,而且令人印象深刻,因为在程序中没有定义这些内容。
导航回到主菜单,并开始创建一个新故事。
这是一个简短的小故事,篇幅长度为3页,面向初学者词汇水平(和设置中指定的完全一样)。呈现的功能与程序中定义的一致,可以生成插图,修改故事或退出到主菜单。
来研究一下插图提示。
没有将其他插图生成的提示文本包括进来,它们与在第1页看到的文本相类似,利用插图提示来生成一些图片。
“一只可爱的棕色泰迪熊,圆圆的大眼睛,坐在一个宁静小镇上一所蓝色小房子的窗台上。”
资料来源:图片由作者和MidJourney共同生成
不错,这一步是手动的,还有一个额外的挑战,是需要同步三页中的所有插图。可以利用MidJourney 完成,但需要上传其中一幅图像作为基础来生成其余的图像。或许DALL·E3也可以无缝完成上述功能。从OpenAI宣布的功能来看,可以直接在ChatGPT中生成图像。
选择“保存并退出”,看看在ChatGPT对话中出现了什么:
接下来,再试一试“加载已保存的故事”。
将“迷失的泰迪熊”故事“存盘”,当发出“打开”指令时,它会回放整个故事和全部插图提示。最后,它还提供了自组装的功能菜单:
好了,到这里可以结束了,你可以继续生成自己的故事,但务必记住,由于设计的提示内容不同,每个人得到的结果都是不同的。
最后,来总结一下结论和观察。
结论和观察
非结构化自配置程序仿真技术展示了强大的简化提示的功能,给出了一个清晰而简洁的目标,给了模型宽泛的自由裁量权。
它会有什么用处呢?也许对如何定义希望程序仿真执行的功能无从下手,或者已经定义好了某些功能,但还不确定是否有其他可能有用的功能。这种方法非常适合于原型化和实验,并最终设计出一个“结构化预配置程序仿真”提示。
鉴于程序仿真集成了思想链、基于指令、单步一步执行和角色扮演等技术元素,它是一种非常强大的技术类别,值得尝试,它与聊天模型的广泛用例保持一致。
超越生成式聊天模型并走向生成式操作系统
随着对程序仿真方法的继续深入研究,我更加清楚地理解了为什么OpenAI的 Sam Altman说:提示工程的重要性可能会随着时间的推移而减弱。生成式模型的发展会远远超出生成文本和图像,它本能地知道如何执行给定的一组任务,以达到预期的结果。新近的研究工作让我觉得要比想象的更接近这一现实。
思考一下生成式人工智能下一步的走向,笔者认为从人类的角度思考生成式模型是有益的,利用这种心态,来考虑一下人类如何能熟练地获取到特定领域的专业知识。
1. 人员在监督和非监督环境中使用特定领域的知识和技术进行训练(自我训练或外部训练);
2. 通过问答的方式对该人员的专业能力进行测试。根据需要提供改进和额外的培训;
3. 要求该人员(或要求自己)执行一项任务或完成一个目标。
这听起来和训练生成式模型的方法很相似,然而,在执行阶段或“提问”中确实存在关键的区别。通常,熟练的人不需要详细的指示。
相信在不久的将来,当与生成式模型互动时,“问”的机制将更接近于与人类的互助。对于给定的任务,模型都将表现出一种深刻理解或客观推断预期结果的能力。基于这些考虑,多模态的出现并不引以为奇,比如DALL·E3与ChatGPT的集成,ChatGPT新宣布的模型具备看、思考和听的能力。最终可能会看到一种元代理的出现,它本质上为电子设备的操作系统提供动力——包括手机、电脑、机器人和任何其他智能设备。有些人可能会提出对大量低效计算和环境影响的担忧,但是,如果历史表明,这些方法的确是人类需要的工具和解决方案,那么创新机制将会发挥作用,市场上将会出现相应的实现。
感谢垂阅,希望读者能够体会到程序仿真是一种有用提示方法!我正在进行其他内容的探索,所以一定要关注我,并在发表新文章时通知到您。
除非另行说明,文中所有图片均由作者提供。
原文标题:
Prompt Engineering Evolution: Defining the New Program Simulation Prompt Framework
原文链接:
https://towardsdatascience.com/prompt-engineering-evolution-defining-the-new-program-simulation-prompt-framework-d8a1ee096904
编辑:于腾凯
校对:龚力
译者简介
陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步