IT研究中心
继往开来,创新无限

如何利用GPT开发智能应用?微软提出这九大原则


毫无疑问,GPT 的出现以日新月异的速度改写了软件开发的工作方式


兴奋,也许也有点焦虑。作为开发人员,如何在 GPT 时代与人工智能协作?在「万物皆有副驾驶」的年代,如何划定分工边界,让 GPT 成为开发人员的生产力魔盒?


作为微软 CVP、Deputy CTO 的 Sam Schillace 基于其在一系列大语言模型(LLM)人工智能系统中的开发经验提出了九项原则,即 Schillace Laws of Semantic AI(语义 AI 的 Schillace 法则)。这九大原则可视为 Sam Schillace 在利用 GPT 技术革新软件开发的前沿实操总结,也许对正在思考如何重构软件工程领域的你也会有所启迪——


#1  如果模型可以做到就不要写代码


模型会进化会变得更好,但编译之后代码不会。系统设计的总目标,应该是利用 LLM 的规划和理解意图的能力来构建具备杠杆效应的应用程序。开发者很容易陷入更加命令式的思维模式,并为程序的某些方面编写代码。要抵制这种诱惑——在您能够让模型可靠地执行某些操作的程度上,随着模型的发展,它将变得更好、更稳健。



#2  用精度换取代码杠杆用交互来优化


沿着上一原则的思索,编写 LLM 时的正确心态不是“让我们看看我们能让跳舞的熊做什么”,而是尽可能地放大 AI 系统的能力。例如,可以先构建非常通用的模式,如“从数据库生成报告”或“编写一年的备课目录”,再使用纯文本提示词进行参数化,轻松地产生极具价值和差异化的结果。


#3  代码用于语法和过程模型用于语义和意图


大模型有很多不同的表述方式,但从根本上说,当模型被要求推理意义和目标时,它们更强大。而当它们被要求执行特定的计算和过程时,则变现较弱。举例而言,高级模型很容易写出一般性的数独求解代码,但很难让它们自己解决数独。每种类型的代码都有不同的优势,因此使用正确类型的代码解决正确类型的问题非常重要。语法和语义之间的边界是这些程序的难点。


#4  系统的脆弱程度取决于其最脆弱的部分


这适用于任何一种代码。我们正在努力实现灵活性和高度杠杆效应,因此谨记别硬编码任何东西。尽可能地在提示词中加入推理和灵活性,并最小化使用命令式代码,以使 LLM 发挥作用。


#5  聪明的问题,才能获取聪明的答案


新兴的 LLM AI 模型都非常强大,并显得“受过良好教育”。但它们缺乏上下文和主动性。如果您向它们提出简单或开放式问题,您将得到简单或通用的答案。如果您想要更多细节和精细度,问题必须更加智能化——这是“垃圾进,垃圾出”在人工智能时代的回声。


#6  不确定性是异常处理


因为我们在用精确度换取代码杠杆,所以当模型对意图不确定时,我们需要依靠与用户的交互来校正。当我们在程序中有一组嵌套的提示词时,并且其中一个提示词在其结果上不确定时(“一个可能的方式是...”),正确的做法是等效于“异常处理”(Exception Throw)——将这种不确定性向上传播,直到能够澄清或与用户交互的级别。


#7  文本是通用的传输协议


由于 LLM 善于解析自然语言、意图以及语义,因此文本是在提示词、模块和基于 LLM 的服务之间传递指令的自然格式。自然语言对于某些用途来说不够精确,可以适当地使用结构化语言,如 XML,但总体来说,在提示词之间传递自然语言非常有效,并且对于大多数用途而言,自然语言比结构化语言更加反脆弱。随着这些基于模型的程序的不断增多,这是一种自然的“未来证明”,可以使不同的提示词能够像人类一样相互理解。


#8  对人类来说很难的话对模型一样难


在给模型一个具有挑战性的任务时,常见的模式是它需要“仔细思考”。这看起来很有趣,非常有趣,但是当将提示符作为程序的一部分使用时就会出现问题,因为在程序中所需要的只是推理的结果。但是,使用一个“元”提示,将问题和详细答案给出,并要求提取答案,这样做效果相当好


这是一项对人来说更容易的认知任务(可以想象只需要给某人一个通用任务:“阅读这个并找到答案”,并且在用户没有专业知识的情况下,这项任务可以在许多领域中完成,因为自然语言非常强大)。因此,在编写程序时,请记住,对人来说困难的事情很可能对模型也很困难,将模式分解成更容易的步骤通常会得到更稳定的结果。


#9  谨防“意识幻觉”模型可以用来对抗它自己


我们很容易会想象 LLM 里面有一个所谓“头脑”。但人类思考与模型之间的差异是意义重大的。其中一个可以被利用的重要区别是,目前的模型无法记住几分钟前的交互。


因此,虽然我们永远不会要求一个人在他们刚刚编写的东西中查找漏洞或恶意代码,但我们可以让模型这样做。它可能会在两个地方犯同样的错误,但它无法“欺骗”我们,因为它不知道代码最初来自何处。这意味着我们可以在某些地方“利用模型对抗自己”——它可以用作代码的安全监控器、测试策略的组成部分、生成内容的内容过滤器等。


看完这 9 大通用性原则,是否对你的应用开发工作有所启发?


现在,你还可以更进一步,与同侪专家切磋 GPT 大模型智能应用开发模式,并快速上手实现开发。联系您的微软客户经理,申请  GPT App Innovation Workshop,由专家为您提供进一步指导。





——转载自Azure云科技2023年4月24日发布文章