今天,我将针对“个人与企业的智能化转型”这个话题探讨一些应用、一些方法,试图以一种实证的方式让大家领会这项新技术。希望通过我的梳理,帮助大家厘清思路,加速成长为新时代的机器使用者。
开始前,我想要提醒大家,思考不能沦为空想,就算我们已经看到了山的顶峰,不意味着我们已经踏入其中。如果只靠想象存活在这个范式巨变的时代里,我们将寸步难行,哪里也抵达不了。所以,想象只是初始阶段,亲身尝试才是我们更应该留心的。
我相信有很多同学已经开始在生活中应用新型的大语言模型了,这是一个很好的习惯。但是,如果我们日常的生活方式没有因此而改变的话,说明我们没有令其发挥无尽潜力。我们常常在新鲜劲儿过去后,就对新的科学技术失去兴趣,这或许是因为很多人还没彻底学会它的方法和窍门。
机器有自己的语言
虽然人类交流的语言与程序员的计算机语言不尽相同,但本质上是相似的。从语法、语义、语用的角度来讲,同样有能指,也有所指,有不同的语法保证语义。
当我们尝试去描述世界的时候,人与人之间的交流往往会有潜台词,比如我以为你知道,所以我不用说出来。但是机器跟我们没有这样情感上的默契,这说明如果我们能够对机器如何理解世界、如何处理数据、如何表征世界有一定了解,能够极大地提高我们操作、控制、使用机器的能力。
使用机器最好的方法,是把自己放在程序员的位置,了解他们是怎么在计算机面前描述世界的。
举例说明:大家都知道,世上的所有事情都是靠人或者人指派的对象一步一步实现的,也就是说,我们在描述事情时,不需要达到计算机语言的水准。而且真正的程序员有时候也不一定要写计算机语言。
计算机行业里,有一种方式叫“伪代码”,程序员写了一个大致的逻辑,但并不是严谨到能够让计算机识别的一种约定俗成的、逻辑性比较强的描述方式。
某种意义来讲,如果我们以伪代码的方式,不是特别严谨和古板地描述一件事情的流程,基本上会有三个类型:顺序结构 、 选择结构、循环结构。
我们设想一下行动的步骤,往往是做了第一步之后做第二步、第三步、第四步。要么做到第四步之后出现多条路径,我们要对此做一些判断和比对。
第三种类型——“不断地重复的”即“循环”,是指达到目标后继续往下走,或是未达成目标,不断回到起点,再重新操作一遍。
虽然这些方式看起来很简单,但我们一旦学会用一种相对抽象的方式去描述世界的话,我们的日常生活的事情也会慢慢地井井有条,更加符合逻辑。
而要想让机器人更准确地明白我们的意思,首先要重点掌握的技能是“描述”。大语言模型帮我们描述事情、讲道理、写报告、部署任务时,不仅是我们的助手,在这一过程中,我们对世界的理解和语言能力也会提高。
所有的动作和行动要靠一个对象实施,它可以是人,也可以是机器,甚至可以是各种动物,我们将这种具备能力的对象称之为“类”。它指事物的分类,分类后的每个类别下面会有各种实体的对象。
基础班:如何像程序员一样使用提示词?
如果我们真的理解了怎么为这个世界建模的话,我们其实用语言表征的全是对这个世界的行动和执行行动的对象,或者受到行动影响的结果的对象的一种精准的描述。
值得注意的是,提示词也是一种语言,它既是人类的语言,也是一种计算机语言。一旦我们高效地、准确地使用了这种语言后,会激发出人工智能最大的潜能。尽管有时候我们随意地用一些词汇发布指令,大语言模型依然可以理解,但要实现最终目的,可能就会比预期要低一些。
举个例子:我自己也经常用一些比较简单的提示词,而且据我了解,很多公司的工程师、研发团队也在用。大家会发现,其实这并不复杂,它的结构已经比较完备,比如BROKE框架:什么事情都要描述它的背景,然后让大语言模型知道自己充当的角色是什么,同时告诉它要实现的目标,定义关键结果。非常简单的框架,就能够更好地让机器马上理解我们的意图。
如果我们真的学会并且习惯用这种方式去跟机器打交道的话,你会发现我们跟人打交道一样会变得更加高效、更加严谨,更加有成效。
再举一个更加复杂的例子:一般来说,如果我们没有经过训练,在“描述”的时候,我们会非常直截了当地告诉机器我们要做什么。但实际上没那么简单,它是一个权衡利弊的选择。我们对机器说得很简单,希望机器能够透彻地理解我们的潜台词,但潜台词是人类所特有的,它属于语言符号中“语法、语义、语用”中的语用部分。如果我们能够更好地在语法和语义的层面把它描述清楚,那么机器处理起来就更方便了。
所以,“描述”里有更深入的描述,对输出的“描述”也有更深入的“描述”。为什么还需要“训练”?因为有时候语言模型并不确切地知道怎么回答,我们可以用一种问答的方式让它更加明白我们要的是什么。经过“调节”,最后优化,也就是不断地迭代。
关于提示词,大家可以从中挑出适合自己的。这世上没有什么最好的或最坏的,只有适合你的和不适合你的:
......篇幅所限,本文仅作部分展示 点击下方海报,观看完整课程!
提高班:“智能体”是未来的趋势
在提高班里我们就希望呢有很多的机器人的集群,叫智能体的集群,来帮助我们解决问题。而且呢大概率事件啊,从此之后的话,要么就是智能体,要么就智能体的集群将又会成为热词,如果我们现在理解了它们之间的关系,哎和怎么去更好地使用它,哎我们可能就能够不必再被这种新的热词所误导。
接下来我用微软的Semantic Kernel作为示例。上图的“自主代理(agent)”任务执行是微软的工程师针对大语言模型构建出来的。这些类别暗含很多信息,它表示,要想搭建一个能够驱动机器理解我们的自然语言并且执行,会有这些功能,比如提问、内核等。
当然,当这个智能体本身靠大语言模型不能解决问题时,可以设计很多连接器去调用外部的能力、外部的资源。
很多人以为,大语言模型出现之后就不需要其他的计算机能力了,其实这是一个伪命题。因为如果你有编程能力,本就可以继续使用。同样,很多人担心人被机器取代,但是我们要等着机器超越我们,还是主动跳到机器的肩膀之上,这取决于我们对于未来的选择。
最后是“应答”。指令是人类发布给机器的,因此需要让机器具备收到指令后完成任务的能力。这表示什么?表示我们要知道如何教导机器、指挥机器、利用机器实现我们的目标。
机器的思维肯定与人类不同,尽管它表现的方式有可能相似,但它的计算方式天差地别。因此,提示词有助于机器更好地理解我们的意图,帮助我们完成任务。
上图是一段非常强大的叫做计划员的提示词,大家可以一条一条地捋。当我作为一个用户,通过Semantic Kernel发出一个命令或写出一段提示词的时候,它会把我的说法按照1-10的标准和要求解读,最后基于解读的成果进行实施。
另外这里面还提到,从一个目标创建一个计划,然后变成函数之后,开始有输入、有能力、有输出。一旦机器能够基于语言理解,把这种输入、处理、输出的一个一个的函数建立起来的话,机器就会开始利用人类的自然语言写出计算机能理解的代码来了。
关于优秀提示词,我找到了一则关于发布翻译指令的优秀示范,详情如图下:
我用上述的提示词做了一次试验。我从网上收集的一篇由帕克实验室的Mark Weiser写的一段非常有名的论文,叫《21世纪的计算机》。这是原文的一部分,用到刚才的那些指令、提示词直译和意译的翻译对比如下:
如图所示:左边的“直译”指令虽然很准确,但没有右边的“意译”难度高。可以看到,通过更高效的、更符合我们愿景的方式描述,就可以让计算机表达出超出我们想象的对语言能力的理解、加工,及输出结果。
提高班:应用开发实战案例
接下来,介绍一下应用开发。在此,我想特别强调,尽管现在的大语言模型还只是一个工具,尚处在一个痛点驱动、需求驱动的开发过程。比如智能应用开发案例,GitHub在开发Copilot的时候正是这样的一个过程。
如果亲身做过产品开发,会发现它没有任何独特之处,其实这很正常,因为新的大语言能力就是一种工具,它只不过可能比原来更高效、更有独特的特征。但是它的需求,同样还是一个发现-实现-扩展的过程。
GitHub Copilot的经验告诉我们,首先你要知道你要什么,然后用我们称之“最小作用法”去做出一个雏形,通过不断地发现,实现雏形的迭代,最后找到“暂时的全局最优解”。也就是说,先有一个方案做起来,然后把它扩展,用到更多的地方,实现更大的规模。
对此,我想提醒一句,尽管我们今天谈的是AI、大语言模型,但它作为一个工具,作为一个企业的或者个人的工具,在使用、开发等方面没有什么本质的不同,都是问题驱动的。
另一个案例,大家可能在网上也经常看到,它就是Richard Sutton的“苦涩的教训”。其中,Richard Sutton提到,我们不应该用人的思维和方式去要求机器,机器就是机器,人就是人。人的心智和气其所涉及的世界的复杂性是巨大且根深蒂固的,试图用简单的方式理解心智——比如对空间、物体、多个代理或对称性的基本概念,实际上是一条死路。这些概念属于复杂多变的外部世界,不应该作为基础内置于我们的系统中。
因为机器有它通过概率搜索与学习的扩散性,它的能力是可以发散的。如果完全按照人的方式去约束它的话,它很难做好。我们真正需要做的,是开发出能够探索和理解这种复杂性的元方法。这些方法的核心在于它们能够找到合理的近似解决方案。其中最为关键的是,这个寻找过程应该由机器根据我们给出的方法来实现,而不是由我们自己来实现。
再一个智能应用开发经验分享,是微软的一个CTO叫Schillace。他在开发了很久的大语言模型为基础的人工智能应用后总结出了9条法则:(如图)他在其中强调了模型跟代码不矛盾,不是说有了大语言模型就不用做程序员了,也不是说有了大模型之后还要守着程序员不放,而是要灵活应变。
......篇幅所限,本文仅作部分展示 点击下方海报,观看完整课程!
总结:人-机时代的5个特点
所以,如果我们真的理解了智能机器的特质,就能更好地进入下一个时代。那么,人-机时代有什么特点呢?我总结为五点:
第一,学会提问很重要。提出一个正确的问题,就已经解决了问题的一半。提出问题要求我们对我们到底想要什么,有非常清晰的认知。人类这种物种,很难真正知道自己想要什么。所以,首先我们要知道怎么提出正确的、合适的问题。
第二,机器是人教出来的。我们给机器什么数据,它就会表现出什么能力。当我们还在惊叹于机器怎么有这样的能力时,其实我们要非常清晰地认识到,人作为有极大主观能动性的动物,我们怎么教育机器,机器就会具备什么样的能力。
第三,机器习得的知识领域是有限的。包括机器的智能,实际上都是从数据中学到的。它再怎么强,也不会强过我们给它的知识范畴。有人可能会说,机器也可以有想象力、发挥力,经常说出我们不知道的内容,让我们感到非常惊艳,但是你不要忘记,机器学的是全人类的知识,从全人类的角度来讲,它比每个单个个体懂得都多,但它不会超出全人类的知识范畴。
人类的经验可达域或已达域,和知识的已达域是不一样的。知识可以被机器知道,但是并没有实证,并没有理解。那么机器是否超越了整个人类的知识边界呢?这里有一个极大的问号,我个人认为是没有超越的。
第四,人-机结合的力量最强大。机器不是万能的,人也不是万能的,但两相结合会产生非常强大的能力。人具备主观能动性,机器能够把文字、图像、视频等各种各样的信号提供给人,来塑造一个更伟大的、更高级的具备主观能动性的人。这在物理学、数学上早已经被证明。机器最擅长的是理解,然后坚定地执行,在执行的基础上,它也可以纠偏,但都是在人给授权的规则之下。
第五,人和机器各司其职。从底层来讲,一旦我们理解了人跟机器的不同,我们就不会轻易地拿人的想法套用在机器上:比如认为机器会思想,机器有感情,机器理解人类……这些都是把人的思维范式映射到了机器上。机器不会像人这样思考问题,对它来讲根本没有人这一概念,也没有思考这一概念。它是根据数据计算出模式,识别出模式,要么是分类,要么是拟合。这些是最基本的人机关系。
......篇幅所限,本文仅作部分展示 点击下方海报,观看完整课程!