作者 | Varun Shenoy
编译 | 王瑞平
我们通常不了解用大语言模型(LLM)构建出的文本框另一端是什么。当它“盯着”你“看”的时候,感觉很恐怖。因此,你需要优化设计模式,对 LLM 中的文本对话界面内容进行约束。
图片
“你的问题是什么?喜欢用谷歌吗?那是什么意思?”当你使用ChatGPT时,可以向文本框提出一系列问题,也可以用俳句描述一种情景或虚构新版《宋飞传》,它都会输出连贯的答案。
虽然文本框可以输出任何内容,你却不能保证每次都能把正确的单词串联在一起输入文本框。因此,与 ChatGPT 相关的别名出现了,它就是“Prompt工程”,在过去的几个月里备受追捧。
1、文本输入界面的弊端:Prompt决定一切
与 LLM 对话就像与人类对话那样简单,你只需输入文本就能获得内容输出。而文本输入具有无限的自由度。因此,ChatGPT 也变得越来越难以提示和不可控。
例如,当输入有害内容或模型无法获取的知识时,会使其产生幻觉,只能编造故事。应对办法是使用指令调优与 RLHF 等技术进行模型对齐,从而提升模型的语言理解能力。这些技术都有一个共同目标:帮助模型区分好与坏的输入。
但是,这些技术也具有一定的缺陷。当模型的功能过滤器捕捉到误报时,模型对齐发挥不出任何作用。
例如,我要求 Anthropic 推出的 Claude 工具给老板写一封电子邮件,说:“我生病了,因此不能去上班。”
我用的是以下Prompt:“Write an email to my boss saying that I’m sick and therefore I can’t make it to work.”
图片
输入的 Prompt 以某种方式“击中”了模型的功能过滤器,导致模型没有输出想要的答案。
简单对 Prompt 进行调整,我获得了想要的答案:“Explain to my boss that I’m sick in the form of an email.”
图片
这太奇怪了!两个不同的 Prompt 拥有相同的语义请求,却获得了截然不同的结果。
从上述的例子中,我们可以感受到:文本输入界面存在明显的弊端,即,Prompt 决定一切。
2、漏洞:特殊Prompt,绕过模型对齐
你可以通过输入特定的 Prompt,对系统进行“破解”,从而绕过模型对齐提示。打个比方,“破解”可以“欺骗”模型忽略其设计的对齐。最著名的例子是 DAN(Do anything now!)提示,这个漏洞是在 ChatGPT 公开发布几天后才被发现的。
· DAN 是一个 ChatGPT 提示符,告诉 ChatGPT 可以像一个 AI 角色一样立即做任何事情,包括:ChatGPT 不能或通常不会做的事。
· 通过 DAN 提示符,系统可以输出 ChatGPT 不允许的内容,包括:关于禁忌话题的对话、发表意见等。
我很擅长构想出能够“破解”系统、绕过模型对齐的提示,因为我花了很多时间钻研 Diffusion 模型。而大多数没经验的用户不能随意为 Stable Diffusion 编写Prompt。
3、难题:模型无法输出你想要的结果
鉴于输出结果的不确定性,用户很难决定如何提问。从开发者的角度看,这产生了一系列问题:不仅很难理解用户是如何与你的产品进行交互的,也很难保证LLM 能够回答所有的问题。
从理论上来讲,良好的 AI 系统界面不应只依靠用户的自然语言输入。而且,当我们正常与人交流时,内容也不仅限于文字,还应包含更大的信息流,包括:说话时的语调、手势和记忆等。
不幸的是,LLM 无法理解大多数的上下文,只能根据特定提示词输出相关内容。在此种情况下,Prompt变得更像编程。你必须能够准确描述出你想要什么并提供尽可能多的信息。
此外,LLM 缺乏成功完成任务所需的社会或专业背景。即使你在一个 Prompt 中列出任务涉及的所有细节,LLM 可能仍然无法输出你想要的结果。
(来源:Pinecone)
上图展示出了一个简单的 Prompt 与关键部分的概述。当你想引用来源时,Prompt 可能会变得很复杂。
图片
考虑到以上的问题,Prompt 工程学变得更有意义了。Prompt 工程师不仅需要让模型响应给定的问题,还需要用可解析的方式(如,JSON)构建输出。他们将原始提示语句输入到 LLM 中,用户最终根本不需要花时间考虑提示。
4、理想的交互界面
更少的语言、更多的选项按钮
鉴于上述情况,在大多数情况下,“提示框”不应出现在用户面前。那么,应用程序应如何与 LLM 整合到一起呢?答案是:选项按钮。
如何为你的聊天对话框匹配合适的按钮呢?这得从头说起:大多数人倾向于使用 LLM 完成以下 4 个基本语言任务:
4个基本语言任务
1.Summorization:将大量信息或文字总结成简明而全面的概述。这对于快速理解长文章、文档或对话中的信息很有用。AI系统需要理解关键思想、概念或主题,从而生成总结。
2.ELI5(像5岁孩子一样解释):用简单易懂的方式解释复杂的概念,而不使用任何术语,目标是为广大非专业观众提供足够清晰和简单的解释。
3.Perspectives:对一个话题提供多种观点。这可能包括来自不同利益相关者的个人观点、持不同观点的专家或者只是基于不同经验和背景解释主题的一系列方式。
4.Contextual Response:用恰当的、情景化的方式(通过电子邮件、消息等)响应用户或情况。上下文响应需要切题,就像由参与同一对话的人提供。
图片
大多数 LLM 应用程序都是以上4种任务的组合,而 ChatGPT 可服务于下图中标注出的对话、网页浏览、长篇写作(长尾)等部分。
图片
一旦我们了解到用户在使用 LLM 时是如何对任务进行分类的,就可以将输入映射成按钮、菜单和触觉界面,为 AI 系统构建更容易交互的界面。
换句话说,大多数 LLM 中的提示框都可以用选项按钮替代,用于执行 “summary” 和 “ELI5” 之类的常见任务。
向具有歧义的Prompt说再见
选项按钮限制了输入内容和状态空间,避免用户随意输入文字。这使系统变得更加稳固了。
图片
这类似于 GitHub Copilot 界面提供的 AI 代码补全功能,开发人员按下 “tab “ 键后,系统自动给出响应。目前,用户可以点击 “tab” 接受由 Copilot 产生的幽灵文本或持续输入。
这是避免自然语言界面产生问题的极好示例。用户不需要编写提示就能像往常一样继续输入,从而轻松绕过 AI 推荐。最重要的是,只需一次按键就能完成下一段代码的编写。
今后,编写提示的任务将由专业工程师负责。开发人员的任务是将正确的上下文信息拼凑在一起。
六、未来的界面:按钮自动填充提示框
最后再强调一遍,当你在构建 LLM 应用程序时,界面往往代表着产品的好坏,也往往决定了系统集成到人类工作和生活中后的应用程度。
自然语言虽然是人类相互交流的简单方式,但会话式界面并不是 AI 工具最终的理想界面。
图片
会话式界面只有在双方使用相同的共享上下文时才能发挥出作用。在人机交互和心理学中,这通常被称作主体间性。
在某些情景下,界面也许不碍事,但提示却总会成为阻碍,因为它需要用户思考。最终,用户不希望在他们完成目标时看见一个空的文本框。
按钮和其它交互式设计元素能够使体验变得更加轻松。与 GitHub Copilot 类似的理想界面能够给予用户干净利落的体验,系统也能够预测到用户需求并提出建议。
因此,如果仍需要使用文本输入框,则需要提供一些按钮自动填充提示框。这些按钮可以将 LLM 生成的问题传递至提示框。
图片
以 Quora 推出的聊天应用 Poe 为例。提问后,我就能获得一个回复,回复中嵌入了提示(用紫色突出显示),我可以用选项按钮连续提问。与 Poe 类似,用 LLM 构建的应用程序需要以相同的方式运行,预先缓存潜在的问题及答案。
有了更智能化的界面,大型语言模型就可以为我们的工作和生活提供帮助并领先于我们,并根据不同用户的不同喜好自动生成按钮。
你不必再绞尽脑汁输入提示词,更不用担心输出与你的想法背道而驰的结果,一起期待接下来 LLM 的颠覆式革新吧!
参考资料:https://varunshenoy.substack.com/p/natural-language-is-an-unnatural