球王会·(中国)最新网址

球王会AI 设计变革——大模型的 AI 设计方法

时间:2023-07-09


  球王会大模型的出现给许多行业都带来了影响,那么对于设计行业而言,AI的加入会导致哪些方面的变化?本篇文章里,作者结合当下的AI研究做出了自己的思考,一起来看一下吧。

  src=本文定位是一篇AI从业者分享一些大模型对个人设计理念带来的冲击,对于大模型的技术发展更多给出一些二次思考内容,原始的技术文献不会直接搬运或者详细解释,不过谈及到的每个部分的技术都附带了文献来源,可供自行翻阅。

  写这篇文章的动机之一是关于大模型的社群讨论过于低质,而且从大模型出现到现在,有意义的文章大多都围绕模型本身的技术研究和工程复现进行,很少有人从非纯粹的技术层面探讨一些大模型对于设计理念和行业相关方巨变的思考,因此希望可以通过分享自己的思考吸引更多愿意深度思考这件长期机会的人。

  这些对于目前的从业人士门槛、行业发展、应用场景都具有很大的影响。作为一个一直在AI行业中的参与者,我把自己更多从非技术研究层面的思考和实践经验记录下来,汇总成关于大模型时代AI的设计和看待问题的新方式。

  本文视角其实更多的是站在AI设计的视角上探讨问题,关于商业模式、技术原理等等会简短带过,不会做过深的深入,本文更多的探讨基于当下的研究产生的一些思考,对于研究信息仅会提供一些引用链接,核心在于探讨下AI设计的方式以及未来展望的看法。本文计划集中分享以下几个问题的思考:

  如果你是资深的AI行业设计人员,对于这些问题已经有了答案,希望你可以直接拉到文章最后,联系到我和我探讨下大模型对于你的设计方式产生了什么样的冲击和变化。如果你是非从业人员,看完我的思考之后,不知道你是不是觉得自己也理解了AI产品该如何设计,也可以开始做AI的设计工作了。

  在大模型出现以前,结合过去的实践经验,我将AI产品的设计总结为四个阶段:目标定义阶段,收益估算阶段,设计阶段,迭代阶段,下面结合一些实践的案例分享一些个人思考。

  在讨论AI产品的目标定义时,实际上与其他类型产品的目标定义相差并不太大,因为AI产品本质上还是以一种更高效的方式在解决实际业务问题,因此这个方面就不重点谈到,会在下面环节的案例里穿插一些。

  例如,针对面向消费者(To C)的产品,关注增长曲线是否达到自然传播率、产品是否跨越了技术采用生命周期等等。

  而针对面向企业(To B)的产品,需要关注利益相关方的市场收益、客户认知,还有特殊的奢侈品和礼品类产品逻辑。

  唯一的差异在于,过去AI的产品设计需要额外关注【技术可达性】,另一方面因为客户基本上完全不懂AI,不能指望客户提供关于他所在行业的AI设计思路,而是需要想办法先把自己变成客户行业的专家,告诉客户需要什么,就像拿着锤子找钉子,这一点和一般的设计有很大不同。

  对于商业方面的目标设定问题,许多业界大咖已经在商业分析、OKR、增长等领域有深刻的时间和研讨,就不班门弄斧了,这里强烈推荐大家直接关注刘润老师,作为刘润老师的五年死忠粉,他对于商业思想和方法,尤其是早期的很多内容总能给我带来极大的启发和帮助。

  收益估算是在对于相关行业或者目标场景具有一定了解之后,决定是否要投入这块市场或需求场景,以及以什么样的投入力度进入,资深的设计者在估算收益之后,基本就已经确定好大致的设计方案了。一般来讲,收益估算会分为三个部分。

  比如目标大盘的覆盖率、用户量、活跃率、交互量等信息,一般来说需要来源于市场研究与洞察,如果是C端会来源于用研或者数据分析(一般是session分析)。

  比如我需要构建一个数据标注平台,我需要决策标注平台是要自建还是采购三方,那其实我就大概需要对这个市场的大盘做一个分析,评估其中的关键资源和关键利益相关方我是否能够撬动?多大成本能否撬动?以来决策这件事情是否值得做。例如我可以做如下分析:

  标注任务类似滴滴打车,是典型的供给者(标注员)、平台、消费者(需求企业)的三方市场。

  三方市场要做起来,评估需要先撬动哪一端,评估我的资源优势能够撬动标注员,还是撬动企业B端客户渠道,能否更加高效的获取客户,比如我具有很强的个人品牌、企业品牌、第三方背书等都可以显著降低获客或者渠道成本。

  若要建设标注自研,一定是标注员的人均标注成本能够显著低于采购(对内部工具而言),或者能够以极低成本获取外部客户(对于做外部市场而言),如果我两者优势均不具备,或者生产成本显著高于外采,那就应该放弃自建。

  当然如果是出于企业信息安全,或者绝密信息保护的需要,那就完全是另一种逻辑,完全不可以用投产比来衡量。

  影响面决定打算开始做这件事的上限,就算技术持续发展,理想情况可以100%的解决问题,影响面也就是可能得最大收益了,当然随着要求效果的持续提升,需要的数据量和成本都会指数上升,而每次优化带来的收益会递减,经常很多AI产品做到差不多就不会优化了。

  ① 一般如果有线上数据的话,影响面估算主要来源于数据观察和现象抽象的总结,就是采用归纳法来分析,例如线上搜索数据的多样性不足,对线上日志分析后发现问题的占比可能在5%,或者线上用户有一些潜在情感交流诉求的比例在15%,这些都可以通过session分析的方式得到。

  一般这种方式,TO B产品的数据分布相对比较固定,如果是TO C产品,会有两种典型问题:

  新用户都有【能力边界试探现象】,会出现大量无法理解闲聊类的数据,而一般7天后则会收敛到设备可满足的一些交互领域,之后交互比例也会相对固定。试探类交互有可能并不是用户的真实需求。

  因为TO C的AI类产品一般都很难像触控产品一样,把自己的能力边界直接在界面展示给用户看,因此产品能力会影响用户行为。因为新用户阶段用户除了试探外,更多会尝试自己未来希望产品帮自己解决的问题,而当产品无法解决问题的时候,慢慢用户就不再会发起这些需求,但是这些往往是设计者希望持续扩展的产品能力,所以很多新需求的挖掘往往要从新用户数据来。这个也是7天左右新用户需求收敛的原因。

  ② 如果是缺乏一些线上交互数据,则和一般产品设计相同,需要采用市场调研或者用户研究的方式开展调研,辅以逻辑推理和统计学的后向归纳,得到一些可靠结论,比如最近招募用研,我就很喜欢问如何验证数据可靠性以及推理相关性的问题。

  一般采用逻辑演绎方式估计收益,在过去,和算法合作经验丰富,经常阅读一些相关论文的资深AI产品,可以做到估算的相对较准(当然实际还取决于算法人员水准),这一点尤其在TO B业务的客户交流判断方案和可行性时尤其重要,也是区分资深和非资深的因素。诸如有监督的文本分类任务可以做到多少,无监督的文本聚类任务SOTA效果是多少,那些任务技术可达,哪些任务技术不可达。

  实际业务里,收益的估算一般会更复杂一些,因为实际系统一般不会是一个任务就可以完成,甚至在大模型以前,很多因为单任务技术不可达,需要把一个任务拆解为多个任务组合才能实现,这样的收益估算就更加困难一些,和实际的偏差也会更大一些。

  AI产品的设计一般也是分几个阶段进行,我把这个总结成六步设计,包括【问题定义】【拆解问题要素】【制定路径/蓝图】【定义子任务】【定义子任务流程】【可行性推演】。以下主要结合两年前的一个实践案例,大致介绍下设计阶段流程,因脱敏需要,案例的前置估算和部分设计细节会被我省略,省略部分会尽量插入一些其他案例。

  src=对于AI设计来说,逻辑基本素养尤其重要,在对于现实问题的抽象过程中,经常发现一些隐含的逻辑,而把这些逻辑全部抽象出来变成机器任务就是设计者的关键人物。经常碰到的问题有:

  存在隐含的前提:比如某两个维度之间存在因果关系或者相关关系,比如趋势永远整体向上等等。这些很多都会被当成人工先验知识,在模型里设置,而不是让模型自己去学。或者比如我说去把垃圾扔一下,隐含的前提假设是你知道家里垃圾桶在哪&你知道丢垃圾的垃圾车在哪

  假设需要明确定义:比如我们假设数据是离散的还是连续的,数据之间是否具有关联性。以丢垃圾的例子来说,可能是我假设垃圾中没有什么超出你知识或者力量范围的需要处理的物品

  这一部分用一个复杂度相对较低的例子分享下一些思考。在两年前,业务部的老业务遭遇天花板,需要挖掘一些潜在的新业务出来。结合当时业务的交互量越来越大,提了一个目标是从交互中发掘潜在需求,对这个目标进行一个逻辑三段论的分析,会发现其实它其实隐含了一些没有被明确定义的前提,以下问题:

  介绍下AI设计中的我理解的任务概念,机器学习和人工智能的专业书籍上有很多关于这块的介绍,我主要从非算法人员视角,结合过去经验说下我的理解:

  怎么理解任务:给AI明确边界和达成量化条件的课题工作,最需要关注的两个点也就是明确的边界和明确的可量化完成状态;

  怎么理解子问题:根据具体的任务目标,拆解出需要解决的子问题,并且制定出大问题的解决路径,子任务可以不完全贴合机器视角,从逻辑推衍上看如何实现目标;

  怎么理解子任务:子任务可以说是从AI的视角,由子问题对应到的具体算法任务,每一个任务需要用一套算法或者组合算法来解决,关于这一块,在后面的步骤中会详细谈一下;

  一般任务的目标如何定义,由于目标是结合具体场景定义而来的,对于每个场景的深刻洞察我觉得才是设计者的核心能力,是一种把实际问题抽象化的能力,定义系统要解决的场景核心是什么设计目标,一般来说会有一些常见参考,例如精准,召回,多样,排序,相关等等,目标并不等同于指标,诸如F1、AUC等单纯评估模型性能的指标就不能算做设计目标,同样的更多的场景其实需要根据场景,设计独立的评价业务指标,过去基本每项任务其实都有根据业务目的设计的复合指标来衡量目的是否达到,知名的BLEU、ROUGE等也属于具体业务指标。

  本质上是重新审视问题,定义要解决的问题本质是什么,因为AI行业的客户需求是模糊的,客户无法定义到问题,所以需要把一个抽象的想法转变为定性或者定量的具象问题。

  同时需要对需求场景进行分析,不同业务场景需要的目标差别很大,需要设计人员首先确定对于业务场景来说,最重要的是什么。这里面其实更多的考验的是设计人员对于文化、社会、行为、人类学、生物学、脑科学甚至心理学的理解(我不是很喜欢单纯靠心理学得出结论的方式)。

  比如三年前我们重新考虑语音搜索场景的搜索引擎问题的时候,就发现这个场景和全文检索(百度搜索)有很大不同,对于精准的要求尤其高,但是召回数量上反而要求要少,因为大家都希望一句话直达播放。

  另一个例子是因为扩散模型的火爆,有些人用来设计一些擦边福利图片,然后就对于这种应用场景进行了一些思考。

  对于这种场景来说,其实多样性就是一个最重要的指标,提供的一定不能是单一女人,风格一致的女人或者真实世界存在的女人,因为从生物进化视角来说,幻想性和真实性一定要有差异,幻想不可以是真实生活可接触的一些特性,这一点花花公司老板海夫纳尤其懂得,《花花公子》上的女人的着装、行为、性格在现实生活不可能找到,这也就是海夫纳的生意经。

  第三个想到的例子,是去年一直在做虚拟人的东西,本质上其实是在探索情感这种非刚需的价值。关于这一点,主要是参考了脑科学和心理学的交叉,包括心智系统、镜像神经元、边缘系统、海马体的构成,以及据此总结的共情与共感两类对外情感基础的形成。

  这里因为我们业务目标希望虚拟人和用户之间建立情感信任,因此选择共情路线,这就代表整个会话系统设计目标是引起情感共鸣,和正常人人机会话、人和人的交流都显著不同。例如用户表达偏向情感类事件的时候,一般情况下会话情感设定上,都需要对用户表达赞同和理解,不论谈论内容如何。

  关于这一部分,我的下一篇文章计划是就打算详细分享一下虚拟人设计的实践,调研和运用关于人的感性认知如何建立,文学小说撰写方法论及动画设计方法论等多学科领域知识,同时在交互上借鉴了【艾迪芬奇的记忆】,对于这款游戏的研究刷新了我对于人机交互设计的理解。

  关于问题如何定义强烈建议可以看一下《你的灯亮着吗》球王会,里面有大量启发性的案例,比如关于错误定义问题导致成本大量浪费,或者正确定义问题使得复杂问题一夜之间解决的例子。举个例子,书里有提到解决电梯拥堵问题的一种方案,在每个上下班路上装上镜子,让过路人都停下来整理妆容,就可以很好的解决电梯拥堵问题。

  第二个是需要分析对于目标场景来说,最关注的是哪个维度。下图是一个抽象的曲线来描述这个问题,由于准召属于一堆跷跷板指标,在模型性能等同时候,往往是在根据业务场景在选择曲线上滑动选择一端的点作为能力输出。

  这首先需要定义问题所处的用户场景中,是精准更关键还是召回更加关键。虽然对于模型来说,可以用AUC来衡量模型整体的性能情况的,但是在相同性能情况下,可以根据目标场景调整召回和精准的倾向性。在某些情况下,如果所在场景里,某个维度的重要性远超其他维度,即使模型整体性能下降了,最关键的维度显著提升,也可能是一次有意义的优化。

  主要是拆分问题得到解决需要的一些关键要素,哪些是解决问题必备的关键要素,哪些是对于问题有增益但是不关键的要素,这样可以对后续的子任务拆分以及每个子任务的资源投入力度有一定的预期。熟悉TO C产品设计的应该都熟悉TO C的业务蓝图绘制方式,目的都是一样的,找到需要重资源投入解决的关键问题。

  结合两年前从交互中发掘潜在需求的案例,首先对于潜在需求,我找了一些关键特性来描述这个概念,这些其实就可以算作这件事情拆分出来的要素。基于要素对应的问题,即可以找到系统设计的子任务,简单的子问题对应一般对应到一个子任务,这里需要保证的是拆分出的要素和对应的子任务是机器可以理解的。

  src=对于这个案例来说,核心就是如何看待潜在需求,我们可以想到一些要素来尝试描述下理想中的潜在需求:

  目前没有被满足:目的挖掘新的领域,而不是单纯的挖掘交互失败的case,毕竟挖掘已知需求或者已知需求的新表达范式并不是目标。

  用户的需求是普遍的:毕竟是商业公司,肯定是希望优先做投入产出比最高的事。

  未来有增长潜力:同样的,商业公司考虑持续收益,但是这件事可以推理出如果我要预测一两年后需求发展情况,做一个长周期时序预测,必然不确定性极高,完全不具备可商业性,这种问题就应当交给人解决。

  从上面的三个要素,可以发现首先机器独立一定无法完成任务,这个任务一定是人机耦合的。其次前两个要素都有共性问题,就是AI还是无法直接完成,因为找不到这些要素和问题的边界和明确的量化完成状态,我就以用户需求普遍性要素为例,做一下要素拆解。

  src=因为逻辑上来说我没法一步得到投产比这种复合结果,我可以先计算收益,收益这个概念其实分析下,也会发现其实是由【影响面】和【转化率】组成的复合指标,转化率这件事我认为机器是不可达的,也需要人工判断,那就只能进行【影响面】的挖掘和预测。因此到这里我们其实已经可以修正下我们的第一步的目标了。

  目前来看,我们的目标实际上是设计一个新需求领域的影响面挖掘系统+一套可视化后台用于人工结合市场知识判断新领域预期转化率。

  熟悉概率、统计或者信息论的都了解,实际上每一次拆分,或者用组合方式解决问题,都再次引入了误差,代表系统整体效率的下降,所以应当尽可能端到端的输入输出直接解决问题,避免过多的问题和任务分解设计;

  对于很多问题实际上机器完全不可达,不可达原因可能是完全无法收集到数据、任务完全无法定义或者当前技术效果无法商用,这个时候经典的做法就是把问题交还给用户,采用人机耦合方式解决问题,这个时候系统设计的目标也应该从【直接解决问题】改变为【辅助提高人类的问题解决效率】,其实很多产品都可以看到这类影子,比如经典的帮助中心或者客服中心。

  以从交互中发掘潜在需求这个例子分享下我的一些思考,在最开始的拆解中,我分解了三个初始问题:

  在前面我做了第一个问题的分析,下面两个问题因为涉密用户和业务信息了,我就简要阐述下:

  实际上这个是经典的信息论原理的利用,一般应用到的会包括以下两点,同样的我以非算法的视角阐述下我的理解:

  A. 信息的输入一定要大于输出,存在冗余才能通过算法压缩输出需要的信息,并且还原信息。

  通俗点,比如模型完全没有学习过小学数学,就不可能可以解决小学数学题。像GPT这种大模型可以让你输入很短的几句话,就帮你写出论文,原因在于GPT本质上是一个语言模型,是语言模型训练过程输入压缩了相关的知识信息,因此才可以在很少输入的情况下,让语言模型补足需要的输出。其实从GPT计算小学内容经常出错也可以看出这个原理,因为这类信息不在GPT的训练数据中。

  另一个直观的理解方式是,给定1的输入就最多只能有1的输出,不可能产生1.1,实际上AI需要冗余信息,才可以保证压缩传递后能够输出一样的结果,即10的输入产生1的输出,因为处理就一定会损失一些东西,有冗余才可以容忍更多处理空间。

  B. 引入解决问题需要的更多维度,尤其是正交维度的信息,就可以显著提升模型效果。

  其实这也是最常用的大幅优化效果的方式,例如在语音类的AI设计中,【用户输入的语音音频】和【用户的语言表达】就是两个不重叠的正交维度,即使一些纯粹的语音AI能力球王会,例如声纹识别、语音合成,引入语言的维度也可以大幅提升效果,因此寻找需要解决场景的更多相关正交维度,就是一种最常见的优化方式。

  当然信息论的原理有很多条,只是在这件事上,我主要应用了以上两条。因为AI的基础是信息论,即使是在大模型时代,信息论的基本原理就像物理学基本法则,属于目前基于统计的AI无法逾越的基本法则。

  对于语音交互来说,一般寻找到的正交可利用信息维度类别有用户音频、用户文本、用户操作、交互周围环境、操作发生时间等等方面进行寻找,这个其实很简单我就省略了。

  对于这件事,其实本质上是检验逻辑链合理性和前提假设成立可能性,做过基本的逻辑学训练的人都可以做到,实际这件事我也是指导一个校招生就让他完成了,大致可以这么思考这件事:

  A. 首先通过定义一些交互失败的特征,一般都是通过定义【显性正反馈】【显性负反馈】【隐性正反馈】【隐性负反馈】来实现交互失败的case判断,敏感原因我省略具体特征。但是其实这样无法区别几类问题:

  对于这种边界很模糊的分类问题,AI基本无能为力,因此思路上只能并行构造两套系统,一套挖掘效果问题的case,一套挖掘新需求/新范式的case,一套设计上侧重利用已有知识挖掘关联性,一套侧重新需求发现。两套系统一定会有重叠,但是配合也可以解决问题。

  a. 假设线上用户的交互说法,同类的需求具备一些明显的共性,不同类的具有显著差异。

  a.i. 那可以直接尝试先进行无监督聚类,将数据划分成一堆类别,即可拿到比如,线w数据,有几类需求(比如天气1w,股票2w),当然没有先验知识注入的情况下我只能得到【category1】【category2】【category3】

  a.ii. 接下来第二步处理如何知道【category1】【category2】【category3】,分别是什么,可以想到最简单的方式是,假设我可以先给系统注入知识,告诉它什么样的数据叫天气那不就可以完成任务

  b. 这种流程下,接下来的子任务定义就很简单,聚类+分类就可以实现,但是这中逻辑链存在明显的问题:

  问题1:这个流程里无监督聚类的准确度是最重要的,因为后续的分类环节是基于已有聚类流程开展的,逻辑上第一个环节的效果就尤其重要,因为如果第一个环节效果只有50%,那基本后面就和抛硬币瞎猜一样了。

  然而实际上,调研了下业界的无监督聚类SOTA,确实低的吓人,但是可以看到在加入一些知识做半监督之后,效果提升明显,但是与此同时却丧失了发现训练外的新需求的能力,这个对于我们业务场景来说是不可接受的。

  问题2:假设我真的有这样一份结构化的知识,那本质上我的任务还没开始其实已经完成了,因为我既然已经都可以知道什么数据是什么需求了,直接去匹配就可以了,没必要做一个挖掘系统了,这是一个典型的先有鸡还是先有蛋的问题。

  c. 所以在我们没有一个完善的结构化知识,并且无监督聚类效果肯定无法商用的前提下,要怎么来做这件事呢?这里细节就不阐述了,以下是当初思考的某几个想法:

  思路1:我拿不到精准的结构化知识,那么我是否可以拿到一些相对粗的知识呢?比如、SNS社区、各种门户网站都有很好的粗粒度非结构化或者半结构化知识;

  思路2:像Google、Baidu这类搜索引擎,他们构造原理上需要爬虫爬取全世界的网页,并且进行相关性检索,因此我们可以假设一个新query的相关实体或者query本身,搜索引擎可以提供高相关度的网页,那我们就可以用搜索接口的Top N结果去挖掘一些潜在粗粒度知识;

  思路3:直接拿到大量数据聚类处理不可行的话,我们是否借鉴新query发现的思路,从单条数据切入,先找到单条的新需求数据,然后再推广找到类似新需求范式的影响面,但是其实这样设计会有一个问题,就是以【新范式】代替了【新需求】,范式定义就很重要,比如引入语义、语法等等就比单纯的文本近似靠谱得多,但是这样实际上挖掘到的需求影响面会比实际小;

  思路4:技术不可达的话,通过人机耦合来完成任务,比如构造一个挖掘平台,每天把挖掘到的同一类的新大类需求抛到上面,由人工去标记这是什么需求。这种思路的话就需要内部拉通一个需求闭环团队,要求大家每天都上平台做需求分析。

  这里每种思路的后续设计思考我就省略了,简单说做一些可行性的推衍之后,各种思路结合做了第一版的简单路径设计,细节诸如粗粒度知识如何获取之类的就省略了:

  src=直接处理全部数据聚类效果不可达,逆向思维,从单条数据开始找单条数据的近似类

  如果目前想不到什么假设,或者对于场景没有什么了解,则需要先补充自己对于这块的了解,一般来说是从现网交互数据,或者线下用研中获取一些信息。

  核心是把之前拆解的子问题和路径,转化成算法上的AI子任务,子任务定义从技术上来说可以说是决定整个系统效果上限的动作,定义错了子任务后面的算法结构再怎么优化,再怎么加高质量数据,效果也很难上得去。建议和算法负责人讨论完成,需要资深算法人员的深度参与,因为从这里开始已经要开始规划技术路线了,甚至我其实觉得算法才是起到主导作用。这部分我只是从非算法的视角结合案例谈一点粗浅理解。

  从大类来说,AI可以分为两个大类任务【判别】和【生成】,其实这也分别标识了两条AI发展路线。除此以外AI我个人认为,主要需要了解的通用AI子任务有以下几类:

  时序分析(Time Series Analysis):预测基于时间序列数据的未来值或趋势。

  异常检测(Anomaly Detection):识别数据中的异常或离群值。

  其他的一些子任务很多是算法中间过程,例如超参优化、Embedding等等,这些我觉得非算法了解大致用途即可。或者是一些具体业务场景可能用到的,例如自然语言处理中的NER、句法分析、指代消解等等,这些根据业务场景需要补充对应知识。

  这个方便理解重要性可以举一个四年前的案例。当时的背景是我们发现全文检索方案在语音场景的搜索中效果很一般,需要重新设计一个语音场景的搜索引擎,其中有一个子问题,当初我想首先必须了解用户表达的资源的结构化知识是什么样子的,例如《战狼》的主演是谁、出品公司是啥、角色哪些讨喜、情节是啥、舆论评价如何等等。这样我可以有更多维度的输入,最终的输出设计空间就很大。

  针对这件事,我们觉得需要一个丰富的影视知识图谱,然后我们想到以下几个点:

  比如豆瓣、猫眼、时光网这种三方网站,其实有大量的线上线下影视结构数据、影评数据等等,甚至微博、小红书、Twitter等等有相关舆论讨论;

  比如腾讯、优酷、爱奇艺、Netflix、Hulu、HBO等等网站,每家有自己版权的影视,其中也含有不少独家影视知识信息;

  当时和算法负责人合计把多个来源整合到一起,就可以得到一份最全的影视知识图谱,比如我们有豆瓣的《小猪佩奇》和HBO的《小猪佩奇》,把两边字段合并就可以得到更全的《小猪佩奇》知识。

  然后合并这一步,我们想当然的认为,这是一个分类任务,因为我只要判断豆瓣的《小猪佩奇》和HBO的《小猪佩奇》是不是一个东西,是就合并到一起就可以了。 再把其他的子问题思考加入,到这里至少当初我们觉得逻辑上没有任何问题,结果做出来我们发现不管怎么优化模型结构和数据,效果都做不上去,甚至神经网络的效果和用来做demo对比的传统机器学习的效果基本一致。后来复盘我们才发现子任务定义错了,这个场景实际上是一个排序任务,因为《小猪佩奇》各个来源可能有上百部,以一个来源为基础逐一对比增加信息,实际上模型看不到其他来源的信息,如果是排序任务,模型就可以一次性输入全部信息比对。

  子任务是否具备可行性:对于计算机来说不可计算任务,比如无法通过图灵机测试的;或者时间或者成本过高的任务,例如参数训练需要30台超级计算机计算3年(当然看公司经济实力),这些都可以认为不具备可行性。

  子任务效果上是否ok:可以先调研下业界的子任务Sota,效果无法商用的也没有意义。

  这里还是用上面的影视知识图谱举个例子,当时我们引入了影视海报作为额外正交维度,提升合并效果,这件事也犯过一个小的定义错误,最开始想当然认为比对图像相似度即可,后来发现实际任务要复杂得多,只是这次问题在设计阶段就纠正了。

  当然除了调整子任务定义,上述问题还可以通过清洗数据解决,训练数据中的噪音对于AI来说会严重影响效果,即使是语音识别中的噪音环境中的识别,更多也是单独对固定频率的噪音建模,过滤这些噪音信号,训练数据的高质量是保证AI效果的关键。对于子任务定义,案例涉密的分析过程我就省略了,这件事确实很看水平。

  子任务定义完成之后,就需要设计一套流程将其组合成完整的解决方案,这里除了逻辑上怎么把子任务关联起来以外,经验上来说有两种常用到设计模式:

  经常在一些【分类子任务+其他子任务】的模式中使用,例如如果是一个购物网站,我们可以先把用户分类成购物狂人、刚需购买、优惠券狂人、奢侈品爱好者等等类型,然后对每个类型的用户分别构建模型,由分类模型判定后,每种模型分别打分,输出结果后吧结果抛给对应的推荐模型给出推荐结果。

  src=② 中立类:在分类任务中比较常用,比如分类任务中经常有一些不认识的数据,或者摇摆数据,就可以加入拒识模式或者定义一个摇摆类,就可以让分类效果大幅提升。

  例如自然语言理解的意图分类里,就可以定义影视、音乐、笑话、天气、拒识几个类别,再比如要分析运动对于治疗颈椎病是否有效,就可以定义有效、无效、中立几个类别,比单纯定义有效、无效会好很多球王会。

  其他的则需要根据业务场景需要看如何设计,比如上文提到的从交互中发掘潜在需求的流程中,实际上就是一个持续运行的分类任务,同时维护一个待聚类池,满足一定条件设定就触发聚类。

  src=当然实际算法要处理的设计问题要多的多,诸如检查点设置、数据Pipeline、重平衡等等,只是作为非算法人员,我认为主要以上是需要考虑的,其他的了解即可,相信你的算法负责人的专业性。

  实际上,一般AI产品或者能力都会有个验收阶段,例如观察混淆矩阵,AUC等离线验收模型效果,观察制定的业务指标在各种集合上的表现。这里主要是分享一些关于设计的思考,就不仔细谈这件事,但是根据应用场景特性制定业务的验收指标这件事很重要。这个指标和模型的性能评价指标无关,有些时候模型的性能指标不变甚至有所下降,但是业务关键指标提升了,对具体业务来说也是一次有益的优化。

  关于业务关键指标制定,一般来说都不是精准度、召回率、多样性等等这种单一维度指标,一般都是复合指标,而且为了排除绝对数量的影响,一般都是比例型指标。关于验收另外重要的一点是,指标一定是分两类的:

  在线评价指标:用于在系统做好之后进行验收的指标。可以理解为即使不懂内部逻辑的小白,也有一个直观方法评判结果如何。以人机会话举例的话,可以设计例如对话回复是否符合常识,人设是否凸显等等。

  离线评价指标:用于在系统研发阶段评估系统质量的指标。可以理解为内部产研人员评估每个维度的效果是否达到预期,指导迭代的指标。以人机会话举例的话,可以设计例如QA相关度、情绪识别准确度、情绪应对策略是否合理、回复文本风格是否幽默等等。

  假设为上述的交互需求挖掘制定业务指标,虽然中间有很多的子任务,但是我可以关注每条数据是否被正确分类了。因为这本质上是一个效率系统,而且我已知聚类的SOTA其实不高,但是这个误差我可以接受,我其实更关注尽量少的使用人工,例如我可以定义保证每类需求95%类纯度基础上,被正确召回到类别里的数据占80%以上,当然实际不是这个指标,只是随便举个例子。

  主要是回头评估整个解决方案的问题,在检验子任务定义和流程设计之后,主要是需要预估下整个系统的误差和冗余大概有多少,以及评估应用场景是否可以接受这种级别的误差。

  对于误差评估来说,我认为设计人员应该在设计完之后,大致就对自己的整个解决方案的误差大致量级,或者说实现了原始目标的百分之多少有一个预估。

  1. 首先还是先分析需求场景的特性,不同场景对于误差的容忍度是不同的,这个其实很好理解,比如军工、安全等引用场景,误差容忍度就很低,比如很多99.74%的【3-sigma法则】甚至很多企业实施的【6-sigma准则】。

  2. 不同场景对于不同指标的误差容忍度也是不同的,这个也是为什么一般需要先定义目标是什么(精准,召回,多样,排序,相关),比如军工安全上,模型性能不变的情况下,可以牺牲召回来换得高精准度。

  3. 任务定义和初始目标之间就有Gap,但是为了把抽象目标变成可实施的,就会产生。

  4. 子问题拆解或者子任务定义过程中,因为某些子问题走不通,或者子任务不可达,导致需要做一些逻辑降级,比如解决其中的一部分,让系统变得可以实现,这个天然也就引入误差。

  5. 定义设计流程中,如果不是以单一模型的方式设计的,而是采用的级联模式,那么级联本身就会带来误差,这个直观上其实也很好理解,第一级输出的误差会被带入到第二级。过往语音识别采用声学模型+语言模型两个正交维度分别建模的级联模式设计,现在更多都采用端到端识别模型统一建模了,也是优化掉这种误差。可以被当成特征或者维度设计到一个模型里的,就尽量不要用级联设计。

  6. 当然还有一种误差是模型本身可以做到多少效果,比如90%的效果,就这个模型这一环节有10%的误差需要考虑。然后每一级的误差和下一级的误差之间是叠加关系,而不是简单加法。

  7. 有些任务天然需要对误差保持高度敏感,例如生成式模型(例如大型语言模型GPT),相比于判别式模型,每一个环节的误差都会被传递到下一次预测中被放大,因为语言模型是逐字预测的,起初可能只是小数点后几位的微小误差,在最后会被放大到30%甚至50%的巨大误差,像这类任务需要对误差高度敏感。

  3年前当初做过一个【无注册声纹识别系统】,这个系统是在用户交互过程中,可以无感知的就实时判断出用户是谁、性别年龄情况如何两个重要画像信息,而不需要用户实现注册自己的声音,实现真正无感知。这个对于一些多人共用设备(例如电视、冰箱等家电)或者经常有外人往来的地方(例毕竟外人不可能提前注册)有很广的应用前景。

  用来实时做交互人的识别,识别到是谁之后,可以把这个设备调整到这人的个性化设定上去,例如内容推荐、闹钟习惯、闲聊风格等等;

  用来做推荐系统,识别出是谁之后,可以把个人的交互数据计算成画像,让公用设备也可以具备个性化推荐能力。

  对以上两个场景来说,实时交互人识别对于误差的容忍度就很低,具体来说其实是精准度要求极高,因为误差会连续传递到全部服务上。实际上基于单纯声学或者语言一维到两维信息的无注册声纹已经效果已经不可达了,需要引入视觉维度做多模交互人识别,或者干脆把系统做成注册式声纹。

  推荐系统对于误差的容忍度就相对高,具体来说召回要求不高,就算一个人被识别成了两个人,导致画像计算数据变少,其实影响也很小,另一方面精准度要求也不高,因为其实即使识别错了,用户也比较难感知到。

  如果以上面的视角方式再回头审视下交互中挖掘需求这件事,就会发现之前设计的流程存在很多问题。

  A. 首先其实是有个概念偷换,且不论只能评估【需求影响面】,【转化率】则需要人工评估这种问题,其实在定义文本聚类子任务的时候,已经是再用【表达范式影响面】在替换【需求影响面】了,可以大概理解成其实只能挖掘某个需求的某个意图,例如看XXX的(XX年上映的)电影,其实这只是影视需求的一种表达范式。

  即使加入了【知识】给模型提供了一定的泛化能力,也需要知道这种泛化相对有限,毕竟【知识】本身承载的范式就有限,而人的表达范式是无限的。

  src=B. 第二个当然就是分类+聚类这种级联结构,导致误差传递,每一级的误差都被放大了;

  C. 还有问题是如果带入业务场景分析子任务流程,就会发现如果聚类时候召回不足,会导致没被召回的结果变成新需求,结果就是有【CAT1(影视1)】【CAT2(影视2)】等等同一需求多个子类。同时业务上会发现如果我们每天的全量数据都拿去全量聚类,计算一次要48h,也就是说输入一批数据三天后才出结果,而系统还在不断入数据,越堆积越多,并且三天一看数据也不符合业务快速试错的要求。

  src=所以最后结合上述问题,初版的设计问题其中一种解法是改成以下的子任务和流程,最终的子任务并不是【聚类+分类】而是【分类+聚类+检索+类比对】的流式设计,而流程也变成轮次聚类的设计方式,具体分析过程就省略了,以下给出了大致的设计思路示意图。

  这个一般是评估系统的效果上限、可优化空间和优化成本,比如如果系统已经没有太多优化空间,也没有其他正交维度可以引入了,那这个系统其实就是一锤子买卖,后面的效果运营服务即使想做也没有任何收益,商业角度看就应该侧重思考怎么降本了。如果存在优化空间,也要衡量效果优化的投入,效果每提升1个点需要的成本都是指数上升的,效果越高再优化的成本也就越高,甚至可能就是重构一套新解决方案,所以其实有些不产生流量价值收入的TO B生意经常做成一锤子买卖。

  在谈AI如何迭代发展之前,想先探讨一下关于AI能力边界的问题。关于这个问题,我个人意见认为吴军老师提到过的他的导师总结的人工智能三大问题总结的最为精炼。

  1)设计者意志:可以说AI目前依旧是设计者意志的体现,是设计者用他的设计意志代替了全人类意志在设计。

  关于这一点,我一个关系要好的算法负责人讲过他的观点是AI是一种重构+共现,我觉得可以直观理解成一种高级复读机,不论是定义需要获取的数据,还是定义任务,基于统计的AI还是一种对于信息的归纳和总结,来复现输入的信息量。

  这其实代表使用的AI代表的就是设计者的意志。即使是大模型,我使用OpenAI的GPT4和Antropic的Cluade做东西,也发现两者在输出信息倾向和逻辑上有明显不同,有兴趣的可以到或者What is the Vercel AI Playground?试用下。

  2)隐私性:AI的隐私性问题和安全问题讨论已经很多了,就不赘述了,近年的联邦学习技术对这个问题提供了一些有益的解决方向思路。

  3)非连续性:这里涉及一个基本边界问题,AI的前提假设是涉及的事务都是连续的,但是实际上现实世界的很多事情都是离散的、稀疏的,这有可能是因为没有收集到足够的信息,有可能是更多信息本身无法被收集,这就造成:

  第二,实际上AI抽象现实问题的时候,离散问题会被当做连续性问题解决,导致误差。

  因为AI可以理解为一种基于统计学的高级复读机,所以其实本质上无法处理预料之外的情况,虽然可以对意外情况做一些兜底处理,但单靠模型的话,未定义的部分其实就相当于在抛硬币了。比如吴军老师经常举一个例子,对于自动驾驶来说,如果车不认识沙袋,那车路上碰到沙袋就只能停下,或者极端一点,一个人突然拦在车前面不走,车也只能停下,这就是非连续性。

  为什么讲这个呢,因为一般大的迭代方向和这些限制就有关系,一般来讲迭代的方向有几种:

  例如用于缩减成本的本地化方案:把计算转移到本地,就可以节省云端服务器费用;

  以前的AI有一个大问题是,如果不更新训练数据,效果就会持续下降,当然有些设计时候可以预留一些字典,可以后续靠填充字典数据,不更新模型提升对于新数据的适应,减少下降趋势。

  如果可以寻找到更好的流程,或者更精准的子任务定义,可以大幅提升整个系统的效果。

  a. 比如前面提过的声纹的例子,如果做家庭个人健康档案,依据无注册的声纹就无法做到,因为无注册声纹的上限相对较低,优势在于便利和实时性。但这种场景需要至少95%以上的高精准度才能使用,此时就要重新考虑方案。

  b. 声纹这个例子里,就可以使用注册式声纹(即现在大部分声纹方案),先让用户说几句话,然后生成一个人,因为这种情况下可以人机耦合来解决噪音干扰问题,可以保障。

  i. 聚合数据完全纯净,因为是人工专门录制的音频嘛,后面只需要和这个聚合类比对下是不是一个人就完了;

  ii. 同时可以设计各种发音场景或者发音质量校验标准(比如百度地图录制一个自己的发音人,就会校验音频信噪比、音频质量、文本匹配度等等,总会提示音频质量不过关重录),来让训练数据的质量变得无比高;

  预训练首先是对于传统的监督学习的改变,Transformer这种有史以来最高效的特征抽取器的广泛应用,让LM通过共享预训练模型的参数连接起各个任务,GPT/Bert的两种研究范式也就就此确立的。对于之前主要广泛受关注的是以Bert为代表的双向语言模型预训练+应用Fine-tuning模式,使得语言模型适应下游的任务,基于预训练的思路,模型更大了,效果更好了,各种人工智能的最终任务,诸如完形填空、目标检测、关键要素抽取、机器翻译、自动摘要、图像识别、物品推荐等等均取得了不同程度的提升。

  1)模型的通用性差:虽然预训练让模型适应下游任务,但是实际上应用方面比较窄,这个可能和这种范式与人类语言习惯的距离更远,不如生成范式接近人类的表达,和Bert的训练数据也有相当大的关系。

  2)预训练的信息输入量远高于以前的训练模式,通过大量提高输入的方式必然会使得输出有提升。因为我理解AI算法本质是压缩输入,已经从输入里总结归纳,并且在输出端复现输入,即使是生成式的算法也是这样,例如大型语言模型加入COT可以使得结果的逻辑性和合理性更强。

  3)数据和模型大小变化带来的收益较低,原本效果上无法商用的一些方案和技术,依旧无法商用。这个可能和模型本身的规模没有达到某个量级有关,因为同样是双向的T5和BART在生成类任务上也取得了不错的效果(BERT本身就不具备这种场景能力,不做谈论)。

  4)模型量级在指数上升,且模型的规模扩张速度已经超过了摩尔定律的硬件性能提升速度,也就是说就算抛开效果提升了多少来看,成本的上升速度超过了收益,成本的上升速度有些过快了。关于这一点虽然openai和deepmind都分别测试了模型量级和数据量的缩放法则来说明必要性,但是成本上升却也是事实。

  这篇综述文章很好的阐述了研究的范式发展思路,到GPT这一代的时候,Prompt方式已经将任务调整到语言模型中进行实现而不是让语言模型适应下游的任务,这种方式带来了相当多的变化。

  Prompt标识的第三波大模型的变化(我并不喜欢称这种方式是自回归的语言模型的时代,或者单向语言模型的时代,至于原因下面会提到),从结果上来看,我觉得最大的变化是理解成本和应用价值都向C端的一般用户逐渐靠拢。

  过去的AI其实从理解成本上来看,普通用户很难理解是怎么一回事,因为人与AI无法把完整的交流都通过人类可以理解的方式进行。就这好比文艺复兴的时代,宗教比科学一直以来都更加容易被人接受,就是因为宗教的语言交流方式距离一般人的直觉更近,大家可以无需学习很多科学知识就可以对这件事进行理解和探讨,而现在相同的事情正在大模型上发生。

  第二点就是应用价值的变化,过去的AI实际上在To C的普通消费者上一直比较难产生直接价值,这实际上是交互这种AI应用场景的困境,实质上交互本身一直都很难找到一个能直接产生价值的点,这也导致大量的To C的AI产品实际上的销售模式很多都是依托供应商分销完成,这种模式实质上很多厂商把货物压到分销商手里,销售环节就已经算结束了,这里的具体原因我们不做深入探讨。

  但是大模型实际上改变了这个情况,从Chatgpt开始,大量面向To C产生实际价值的产品需求被释放了,对于大模型所有人都可以轻而易举的想到几个和自己有关的价值场景,可以说To C的价值在大模型这里才真正被释放了出来。

  Prompt的方式,对于AI设计来说,其结果就是带来了各个维度的AI设计门槛的变化,以及理解成本的极大降低,大模型时代可能只要具备基本的逻辑学修养,就可以进行AI产品设计,让我不禁感觉人人都是AI设计者的时代可能近在眼前了。所有人都可以很直白的理解AI可以做什么的时候,各种有趣好玩的AI应用涌现就近在眼前了。

  为什么到了GPT的方式才让我产生这个感觉,主要源自它带来的一些人机交互方面的巨大变化。关于大模型技术国内外论文已经相当多了,诸如RLHF、COT、Zero shot prompting等等,因为文章整体整体更多分享个人见解,不是一篇技术分享文章,这些部分我只大概引用佐证说明观点,明细就压缩掉了,如果不了解相关的一些背景信息,可以直接看Openai、Antropic、Google、Deepmind、Meta、国内外知名大学和研究机构的论文,或者国内外大佬的解读博客。每个部分的佐证我都有引用标注,如果想要了解到技术细节还是建议自己勤动手吧。

  大模型带来的一个核心变化之一是,过去的人机交互,机器只能理解有限范式的指令,而大模型做到了统一范式:

  在信息输入时,统一了范式使得多种类型的输入都可以作为信息输入AI(T5论文论证了这一点),这其实意味着我们可能不需要逐个类型任务设计不同的AI,例如图像和文本都可以统一形式输入同一个AI,然而实际上语言模型确实可以把这些连续性信息都抽象成语言进行理解;

  因为压缩了世界知识,使得AI具备了通用的理解能力,而不是仅仅理解定义的有限范式,这其实另一方面也代表了语言模型具备输出多种范式的内容潜力,事实上本文谈打的另一种图像类大模型扩散模型,我觉得最终会被语言模型所替代掉。

  人机交互界面是一个泛指,以完成人机交互需要交互人具备的专业能力要求来看,可以划分为三个阶段,下图是我用Dell-E生成的表达人机交互界面发展阶段的示意图,虽然我尽力调整了,但是图片依旧有点文不切题,这个让我更加确信了现在的图像生成一定需要语言模型的必要性:

  这种模式可以看成是经过了两次编码,一次是人把需求转化成遥控器的按键指令的编码,一次是遥控器把接收到的指令编码成执行指令给到电视机执行,所以一般这种产品都是具有学习成本的,即使是移动时代的app也可以理解成这种模式,既然有学习成本,就不是所有人都天然会使用的,这也是为什么老年人很难学会的原因。

  ②普罗大众+有限集能力:这时已经可以把遥控器这一个环节的编码载体去除了,变成了自然人+电视机的交互模式。

  人已经可以通过自然语言和设备进行交互了,但是这并不是需求不需要进行编码了,只是因为自然语言这种需求编码方式,人人都掌握了所以学习成本消失了。关于人类使用自然语言对本身需求进行编码的效率问题,这是另一个话题了,留给以后有机会再谈吧。

  上面这种模式实际上就可以理解成过去的自然语言处理范式,虽然使用门槛被降的很低,但是是依靠预定义的有限范式支持的,这里面需要大量的设计和算法人工定义工作,可预期的也是支持的自然语言范围很窄,经常不理解,算法在有限预定义集合上做各种语义泛化工作,但是实际上还是在追求有限集合上的输入复现。

  这种方式预定义扩展的范式越多,用户用起来就觉得越自然,支持的说法越多,所以在之前的人机交互设计中,大家普遍围绕线上用户交互失败的query,不断挖掘、不断丰富和扩展自己的范式,让用户用的更爽。

  ③普通大众+通用能力:在这种模式下,大概可以理解成电视机本身也被一种万能工具替代了,大众通过自然语言直接和需要的影片交互球王会。

  可以大致认为这个时候用户可以用自然语言发起各类需求,而这些需求都可以被大模型编码成执行指令,直接给到资源方执行。这也是大模型的重要的通用性的特性,我的理解是这个可以说是数据带来的,而不是AI本身的特性。关于这个特性在下面会谈一下我对于这个通用性和全知全能之间的差距的理解。

  其实看扩散模型的Playground也可以看出这种演化趋势,Stable diffusion还需要具备一定的代码能力才可以使用,到Dell-e和Midjourney已经可以直接在网页或者Discord上使用自然语言交互。

  但是实际上,实现虽然Dell-e和Midjourney可以用自然语言交互,但是和普罗大众的需求语言还是存在巨大差距,本质上和Stable diffusion用机器代码指令交互区别并不大,只是使用门槛降低了一些,本质上还是需要以机器能够理解的会话范式来说话,例如下面是一个在Midjourney的Discord社区随便翻了一个案例,专业语言的Prompt我是用GPT帮我写的。

  交互界面的自然化,带来的必然结果就是对使用人的专业技能要求少了,比如我们不需要会使用设计工具和代码,就可以使用Midjourney,但是如果让我们输出专业的Prompt,就会需要一些专业知识。如果让GPT来做专业语言prompt生成,也需要做到从设计语言层面做需求拆解,这其实依旧和普通人模糊不清的需求描述有差别。

  这一部分的需求拆解工作是不能让AI来执行的,因为这件事没有现有知识可以总结,而是需要基于已有的少量输入,推理出远超输入的大量输出。大型语言模型可见的问题是不具备基于已有推理未知的能力,给的结果更多可以理解为是AI从数据总结归纳的结果,而不是推理的结果,这种结果可想而知是接近千篇一律的。

  所以其实自然度也是有限度的,至少各专业领域的需求拆解工作目前并不会被替代,其实抽象一下也就是说,各个领域里面真正产生新信息的工作不可能被替代掉。

  但是即使语言模型有能力边界,其实这种程度的交互自然度已经使得相当多的专业性知识在实际使用中变得缺乏意义,但是我依旧认为了解领域专业知识的人才可以具备创造新信息的能力,不了解的人甚至不具备评价某一成果好坏的能力。

  过去的AI往往一种AI只能解决一种任务,这就使得大千世界里形形的行业和领域都需要各种算法能力定制,但是GPT的预训练使得大模型表现出了对于人类语言的通用理解能力和推理能力,因此在各种领域都显示一定的基础理解力和应用潜力。

  加之低成本定制方案FLAN、P-tuning、Lora的应用,微调的技术证明了可以用少量数据强化大模型的指定方向的效果,这意味着通用人工智能+低成本的定制,取代了过去逐个场景定制的高成本方案,可能一般用户见的最多的就是基于Stable Diffusion微调的各种风格的图像生成模型:

  ① Lamda和Alpaca的相关研究证明了只需要几万指定方向的高质量数据微调就可把指定方向的效果拉升到可用水平,相比于天文数字的预训练来说,这个量级的数据可以很快收集到。

  这意味着具备了一个通用大模型+低成本定制领域方案的一套解决方案可以低成本,并且快速的实现基于通用大模型的各领域应用定制工作。斯坦福的论文阐述这一项工作开销低于500美元,斯坦福使用的LLaMa模型较小,但是依旧有很强的参考意义。举个例子,如果我需要把强化大模型的多样性,我只需要几万的Finetune或者P-tuning的多样性数据集来调整即可。

  ② Lora在NLP领域以及图像领域Stable Diffusion的广泛应用,使得可以在不对大模型进行有损调整的情况下,低成本的强化指定场景效果。从下图可以看出,相比于Finetune需要调整的参数,Lora调整的参数规模和达到效果实在可观,这意味着Lora的微调成本更低,成效更好。当然Lora可能更加适合单任务或者单特性的强化,对于多任务或者模型整体的调整可能并不适合通过Lora解决。

  另一方面,大模型的通用性代表,即使无法收集到一些某些领域的数据,依靠大模型的通用能力+Prompt提示的方式,也可以实现在指定领域不错的效果,即使没有在指定领域进行过精调。

  实际上,在实践中也发现如果是通过Tuning的方式实现,一般精调的数据集并不宜过多,过多的数据集会导致大模型原本特性和能力效果出现下降,可能对话的相关性和多轮连续性都会受到很大的影响。所以目前似乎精简的高质量集合是相对合理的,如何精简精调数据集本身又是一项充满门道的事情。

  大模型的通用性来源于对世界的压缩,可以认为大模型把整个人类世界压缩作为了输入,因此大模型才可以做到在用户仅仅给出很少量信息的问题时,可以输出远超过输入端信息量的输出。

  在移动互联时代,大家还在讲信息爆炸的影响,但是现在对于大模型来说,数据渴求已经是一个更普遍的现象。世界上的很多信息并不存在于互联网上,因此即使把整个互联网那个的信息输入大模型,通用性依旧是有限的,这个其实就会需要能够收集线下模态信息的模型出现。

  从另一个维度讲,即使现在模型的膨胀速度已经超越了摩尔定律的硬件扩张速度,大模型对于世界的压缩效率也是很恐怖的,我并不知道这个会不会影响到信息论信息量计算公式的基本定理,但是只要大模型依旧按照统计的路线,信息论的基本原理始终是生效的。对于算法人员来说,大模型的通用性意味着算法可能真的是在革自己的命,首先收到冲击影响的可能是算法从业者。

  但是其实上面说的大模型的通用性,并不是真正可以实现多种现实任务的多任务人工智能,关于真正的多任务人工智能,目前依旧停留在学界的理论上,但是真正的通用AI我觉得还需要等待多任务的人工智能的进步。

  Google的经典论文阐述在模型参量达到13B(10^22)以后,大模型涌现出没有定义过的新能力,这项新能力的效果,在参数量达到量级之后,很多原本效果接近于随机的任务,效果突然出现大幅度的提升。

  虽然一些论文阐述评估方法具有平滑性的问题,但是效果出现了跨越式提升却是事实。一个直观的感觉就是,如果对比过GPT4和Chatgpt,或者更小的语言模型比如Alpaca,其实就会发现,小语言模型对于语言本身的理解更像是一种范式模仿,不具备语言的逻辑连续性和推理能力,即小语言模型其实没有理解语言这件事本身,而GPT4已经在逐渐逼近理解这件事,虽然它依旧存在很多问题。

  对于大语言模型来说,因为对于语言的理解更加高维和深层,从而出现了一些Emergent Abilities,原本效果上不可行的任务都变得可商用了,因为我们可以寄希望于伴随着训练数据规模和模型参量的提升,大模型从训练数据中学习到一些更深层的语言知识,transformer的中层和高层得到更充分的利用。这意味着设计需要的经验和能力要求大幅降低了:

  ① 在上文提到之前AI设计方式的例子中,由于一些子任务不可行而需要进行复杂任务流程和子任务重新定义的设计不再需要了,设计可以被极大的简化。

  ② 原本需要资深人士经验推断才能判断一项任务是否可行,或者效果能达到什么程度的经验判断变得意义较小(或者可能变得无法评估,因为无法推断模型扩张到什么程度会引发能力涌现)。【技术可达性】这个问题原本是需要踩过很多坑,有大量子任务经验,这类资深的设计人员,可以让公司在设计和验证方案阶段的成本最小化,这一原本AI方案设计的巨大门槛,被基本消除了,各种方案都有可能在某个量级下能够成立,可能真正的条条大路通罗马了。

  这其实引发我思考一个恐慌的问题,就是AI是否摆脱了设计者意志,是否设计者都不再需要了。但是这件事即使我在Openai的Discord也较少看到讨论(我发出的提问也并没有人回应),就我的对于大语言模型的使用体会,结合个人理解以及和算法朋友的讨论,我个人直观上感觉Emergent abilities可能与两种情况有关联:

  ① 是和人工定义的原始子任务存在一些关联的,可能语言模型学到了一些更高层次的潜在语言关联,这个现象并没有办法在任意一个任务上就凭空出现。

  ② 因为模型数据量和规模的扩大,模型从语言本身学到了更深层的东西,把他们存储在了transformer中。

  下面有一个例子是我使用中发现的一种典型现象,如果GPT-4帮助你决策,在引导下GPT-4可以主动询问一些做决策缺失的信息,并做到稳定复现,但是Chatgpt即使给出Prompt也无法稳定实现。这个应该就是语言模型慢慢具备了常识,国内很多复刻的大模型其实主要不足也就在这里。

  但是常识其实我觉得是一个很抽象的词汇,它可能包括了历史的沿袭、主体和主体属性、主体间关系等很多方面,这些问题也放在下篇文章再讨论吧。

  src=③ 模型和数据量的扩大,导致模型对于语言的表达理解更深了,同样的一句线已经都可以理解,Chatgpt则会给出完全不同的回应,虽然每种回应包含的信息量都有巨大差异,但是即使选择信息量最小的一种提示方式,GPT4也可以立刻反应过来,而这种非显性的交流,更加接近真实场景中人的会话方式:

  至少从我几个月的使用体验中,我认为AI依旧存在设计者意志问题,甚至因为微调对于激发模型表现的巨大影响,以及预训练数据的范式对于模型语言理解倾向的巨大影响,设计者通过数据向语言模型施加的影响更大了。关于预训练范式如何影响语言模型的问题下面会再另外谈到。

  大模型导致很多的AI中间子任务不再具有意义,很多问题可以端到端的直接解决,这不仅是很多AI的子任务失去了研究意义,很多业务子流程设计的时候也不再需要转化成繁琐的AI子任务,可能仅仅依靠基本的逻辑素养,只要制定出合理的任务路径,就可以期待大模型可以端到端的直接解决此类问题。

  举个例子,假设我们想设计一个基于情感的聊天会话系统(先不考虑知识和常识怎么来的问题),在以前会可能需要做如下的任务分解:

  src=在上面的任务流程里,会话历史的理解与关键抽取、会话情景的综合分析、主动挑起话题的能力、话题主体的预测与选择、风格化等等都需要单独制定方案逐一解决。

  这种思路在过往的AI设计中很常见,因为无法端到端直接输出想要的结果,就把一个任务拆解细碎的小任务组合,最早的语音识别是将任务分解成识别音节、词性、语法等小任务(即使现在语音识别分成声学和语言两个维度,也是放在统一端到端模型了)。

  而之前对于情感这件事,具体的AI子任务会有更加细碎的分解,例如之前小米对于情感对话这块的实践就是这样的思路,把情感这件事拆分成Exploration、Comforting和Action三步来实现,并且借鉴了Maarten Sap 等人建构if-then图谱的思路。

  而对于大模型来说,我只需要定义好情感的精调数据应该长成什么样子,就可以借助精调数据激发大模型的能力,端到端的实现情感会话。这样的端到端设计方式直接导致了三个结果:

  ① 专业的子任务定义工作不需要了,设计者甚至不需要理解子任务是什么,人工智能存在哪些子任务这些基本知识,就可以上手做设计。

  ② 任务拆解和路径拆解的工作变得非常简单,因为不存在效果不可达,并且问题只需要端到端解决,看起来没必要分析任务的构成要素,拆解解决路径了。甚至目标本身可能就是任务,例如我需要一种面向老年用户情感陪伴的聊天系统,可能直接就是这个目标唯一也是不需要分解的任务。

  ③ 数据的重要性变得比预训练时代还要重要,以前我们可以认为要达到很好的效果,模型占20%,数据占80%,现在数据的比重再度提高了。

  这也导致了一个问题,就是数据集定义和设计的怎么样,就直接决定了最终效果。机器学习的名言trash in,trash out,可以说在大模型中会得到极致的体现,大模型对于数据的敏感性比过去的模型都更高,3%的训练集噪音就可以直接毁掉整个系统,使系统变得根本无法使用,而在以前,这个噪音容忍度可能是5%或者更高。

  看起来既不需要做路径拆解也不需要做子任务定义了,但是我觉得其实这更加考验对于情感这件事的本质理解了,毕竟定义出来数据集长什么样就直接影响了最终的输出效果,数据集应该是什么样的这个问题可能更考验对于社会学、脑科学、家国文化、心理等方面的理解,以及对于会话这件事的本质理解。

  打造一个大模型需要巨大的训练费用和调用费用,这一部分在很多大模型的工程复现文章中都有成本的详细论证,就不做赘述。想谈几个被较少提及的应用问题,但是包括训练和调用成本在内,这些问题并不是无解的,只是需要行业内共同大模型的健康发展去逐步解决。

  关于目前AI模型规模的增长速度超过了摩尔定律的硬件扩展速度各种论证和说明有很多,但是当下这个舆论风向的话,可能Sam Altman的说辞更有说服力一些吧。众所周知,AI的效果每提升一点,模型规模和需要的计算资源都是指数上升的,一定不止摩尔定律的两倍这么多。当然摩尔定律本质上也是商业行为逆推整个行业技术改进速度的案例,所以Sam Altman这个很有当年英特尔和微软那味。

  src=另一件事是,目前互联网上可得到和使用的数据,相比于目前模型消耗数据的速度已经显得有些不够用了,尤其是信噪比低的高质量数据可见的十分有限。这导致后面有可能需要从线下去收集数据进行线上化,线下数据的线上化本身对于资源的消耗就可见的十分巨大。比如看看Palm-E消耗的资源量和达成的效果,就可以理解线下维度的数据收集有多么困难。

  算法优化的本质,我的理解是不断的提高无损压缩信息的压缩比,因此可以以更小的资源消耗实现等同的效果本身就是算法的优化目标。

  在模型规模指数级的提升背景下,OpenAI自2019年开始,也提出了需要模型运行效率的问题。另一方面这个问往往不至于算法本身,很多工程化的手段都可以在效果不损失的前提下,在很短的时间内把计算消耗降低一到几个数量级。GALM和HunggingGPT让一部分专家系统起作用,而不是整个系统起作用也是一种思路。

  第二个有帮助的点是,可以通过增加训练数据量使同等规模大小下模型得到更充分的训练,这样虽然对于一次性的训练成本有上升,但是在调用模型时候这种流动成本可以降低。

  虽然openai(Scaling Laws for Neural Language Models)和deepmind(Training Compute-Optimal Large Language Models)有通过实验给出最佳的模型规模和训练数据量匹配比例,但是不论如何训练数据量单独扩增对于充分训练之前的效果提升也有很大的帮助。另一方面,精调数据集对于效果帮助则更大,InstructGPT已经证明经过精调的小模型性能表现上甚至可以超过大模型。

  目前的这种稀疏的大模型,在实际推理时,只有模型的一部分参数在起作用,通过进一步理解大模型的作用原则,我觉得后面通过控制部分参数参与推理来实现成本的下降可能也是可行的。另一方面一个分发大模型+一堆专家小模型的MOE思路也可以大幅降低成本,例如GLam虽然参量是GPT3的七倍多,但是实际上成本却比GPT3少得多。

  当然这一部分是纯粹的算法和工程问题,我觉得了解可行性与方向即可,专业的问题还是就留给专业的人解决。

  对于GPT来说,本质上生成内容是不可控的,其实从微软和Google在开始推广前,都开掉了自己的合规团队就可以看出一些端倪。在我理解里处理方式无非是几种:

  后处理:也就是加一些规则处理做敏感过滤,这个最容易想到,大模型厂商也都有做;

  清洗数据:这个是最彻底的,但是也是最难的,因为一方面清洗数据或者强制给模型预设某些条件,会导致模型的性能下降;另一方面精调数据的清洗还好,预训练数据的清洗是一个世界难题,虽然有研究证明似乎可以精准定位到发生问题的训练数据和模型局部,但是路还是很远。

  综合来看,对于GPT来说,人机合作的设计路线更加合理。过去的人机交互意志有一个比较尴尬的实际问题,就是to c其实很难产生直接价值,to b虽然产生了价值,但是往往敏感性很高,可控性这个可能是过去Bert路线这么受追捧的原因。

  但是对于可控性较差的GPT而言,可能AI作为辅助角色,引入人工干预可能是未来的长期路线。类似自动驾驶形态的人机合作,最有可能成为大模型的产品定位终局,比如大模型可能不能直接成为家教,但是可以成为家长教育孩子最好的辅助工具。

  这件事如果从系统论思考,结论也是类似的。从系统论来说,一个不受管理的封闭系统始终是熵增趋势,会逐步走向无序与混乱,而解决熵增的方式就是与外部系统建立关系,引入负熵,让系统无序性降低。

  对于人这个系统来说,与其他外部系统之间的负熵引入尤其重要,如果AI本身都是让人在自己的圈子里去活动,那只会让整个系统越来越无序和混乱,所以AI如何成为辅助链接外部负熵的辅助,从系统论视角来看这个可能是终局,其实这种熵增变化对于AI本身也是一样。

  受美国制裁影响对于大模型本身其实影响很大,且不说先进软件技术都在美国的问题,国产化的计算芯片和NVIDIA的差距就会对大模型输出效果造成巨大影响。就像上面提到的,GPT这种生成式模型对于每一个字预测的误差都很敏感,因为误差会被逐级放大,在过去几亿参数较小规模的生成模型上经验来看,国产化因为浮点计算的小数点位后2-3位开始和NVIDIA产生偏差,同样的模型在国产化芯片和NVIDIA上一致性只有差不多50%-60%,而这种问题在大模型上会被放大的更加剧烈。

  目前国内还有一些渠道获取A100或者A800,但后续感觉还是要看国产化芯片计算精度,毕竟对生成式模型来说,不光是计算资源是否足够问题,计算精度一位的差异都会在逐渐生成的过程中被无限的放大。

  对于大模型来说,模型规模越大,训练数据越多,模型效果就越好。那么对于大模型来说,目前的数据是否够用呢?会不会出现现实世界中的数据被消耗完,从而达到AI能力极限的问题呢?

  这个问题此前的估算模型是OpenAI输出的训练数据和模型规模的配比,但是按照Deepmind团队最新的Chinchilla的评估提出了修正,假设按照Chinchilla测算,模型规模和训练数据应该1:1同比扩大,可以说目前的大模型都属于训练数据量不足,训练不充分的阶段。比如以GPT3的1750亿参数规模,至少训练数据应该扩充11倍以上。下表是论文给出的三种不同评估方法的一些评估值球王会。

  按照充分训练发挥模型最大效能的方式来进行,现行的数据量足够支撑模型训练吗?会不会出现数据不足的情况?我觉得这个问题有这么几点已知信息:

  按照Chinchilla的评估,我大概认为要实现ChatGPT或者GPT4的效果,可能需要的模型参数量要小得多,但是训练数据量和训练充分度要大得多,可能从效率上来说合理的事更小的模型更多的数据。而目前的ChatGPT或者GPT4其实效果已经相当可观了。

  GPT4的训练集tokens数量比ChatGPT可能要大至少一个数量级,但是从之前的45T清洗到1T的训练集来看,依旧是英文互联网的一部分。目前的英文互联网上的高质量数据集依旧有相当多可以被用于拓展训练集。

  中文互联网上,我记得在哪里看到过有人清洗了几百T的数据集只得到了几T的训练集。从常识来看,中文互联网的高质量数据集也很少,因为互联网发展时间短,很遗憾像百科、各类图书的电子化、国际高质量学术论文平台和杂志,这种高质量信息建设的工作在中文互联网很少。各类线下高质量数据的线上化程度也不高,所以中文的高质量数据集是否足够这个问题我觉得是有很大疑问的。

  目前的大模型来看,虽然可以替代一些专业工作者的工作,甚至于算法研究本身的工作,但是依旧摆脱不了设计者意志问题。因为大模型在效果上和通用性上的巨大进步,突破了之前的AI能力边界,各行各业被能力边界压制的需求都涌现了出来。所以确实可以说,设计者大展拳脚的时代来了。

  LLM同时解决了多种任务,虽然达不到真正的多任务人工智能水准,但是可解决的问题范围已经相当大(关于这一点后面讲大模型应用会谈到);

  数据变得无比重要,无论是数据集的质量还是覆盖到世界知识的可收集维度都分别在【精调】和【预训练】两个阶段产生巨大的影响,其影响已经远远超过了模型本身。

  src=这三种变化组合起来,对于设计的冲击是巨大的。这意味着以下几点的巨大变化:

  A.设计需要的门槛大幅下降了,因为大模型的巨大通用性,子任务定义这个环节,在大部分的AI应用场景中都不需要了,设计者只需要定义最终任务,而最终任务即使对于入门者理解它也是很容易的。当然如果你是大模型的设计者本身,而不是行业应用,这件事可能依旧是需要的。

  B.设计再也不需要考虑效果可达性问题,因为对于大模型来说,可以抱有一个美好的预期,在达到某一个体量(参量+数据)之后,新定义的任务效果就可以涌现出来,大幅提升到可用水准,(当然这件事是否在任何任务上都可以成立,还是需要技术的验证)

  C.大模型本身甚至让目标和路径逻辑拆解变得及其简单了,很多复杂的拆解设计工作也都可以简化到端到端的方案实现。这不仅意味着需要拆解和定义的任务数量的减少,甚至大多数时候的任务都可以简化成一个最终任务,而调整它的方法就是调整和定义它的训练集。

  D.数据的重要性变得无比高,什么样的训练数据才是我们需要的数据,因为所有关于需求场景分析,各种维度需要达成的目标期待,全部都靠一份数据集实现,如何定义这份数据集应该长成什么样子,就显得十分的重要。如前文所述,这份数据集不能以数量来取代质量,因为过大的精调数据集会让大模型原本的一些能力消失,会话本身都会成为问题,这显然得不偿失。

  E.从什么地方拿到高质量的数据,如何清洗数据,如何构造一条持续的数据收集通道。这些在原本AI框架中相对不重要的事情,如今变得极其的重要。相应的,这方面的数据供应行业也会早就巨大的机会,谁能以更低廉成本提供高质量数据,谁能把线下各种非结构化的数据抽象到线上数据集中,这些数据市场的机会会变得无比大。

  举个例子,上文我提到了参考关于小米的情感会话的一些实现方案,如果这件事放在大模型来实现,其设计就可以简单的多,只需要定义精调数据集+prompt长成什么样子,就可以激发模型这块的能力。

  但是实际上对于设计者来说思考工作量可能变化不大,因为只靠一份精调数据集就决定最终效果,更加考验设计者对于【会话情感】这件事思考是否透彻,这些思考会反映在数据集范式的定义上,一旦数据集定义的不好,最终也就无法实现出好的效果。

  src=如果我们实际把两种设计流拉出来,比较一下两种设计流的门槛,可以发现:

  src=A.过去的专业设计流:从【需求分析阶段】到【开发实现】,还有一个专业的【系统设计】阶段,这个阶段需要大量的专业知识和阅读量,这就让设计本身变得门槛极高。

  蓝色部分需要对于技术的研读和经验才能进行。当然说实话,过去见过的AI设计按照这个流程能完成设计的很少,很多设计的工作被忽略了。可以看出过去的设计流程里面对于需求的分析把握以及对于技术的了解度都占了比较大的比重。

  过去的方式有一项的工作就是任务分解,在各种边界条件限制下无耐不断进行任务和子任务的分解和重新定义,而就像前面所说的,每一次分解都代表了更多误差的引入,和对设计者更高门槛的要求。

  src=B.大模型的端到端设计流:从【需求分析阶段】到【开发实现】也可以直接的解决了,因为没有必要在拆分复杂的子任务,甚至对于【需求分析】本身,要求的逻辑能力也变弱了,更多的是要求模仿目标场景的范式被定义出来。

  对于大模型设计来说,大概可以认为只要对于场景和问题的分析做的足够好,问题的拆解可能可以直接作为系统的任务定义,问题解决的逻辑路径可能可以直接作为任务系统的任务流程。而唯一有可能需要的只是需要大概了解下有哪些经典设计模式。

  这个工作流其实已经相当接近普通To C或者To B产品的设计流了,在这种设计模式下,任务基本是可以端到端的直接解决,无需进行分解,或者说分解和定义的工作实际是在定义训练数据,而不是定义系统组成。

  src=设计门槛的变化,最有可能的结果就是,人人都是AI设计者的时代可能要到了。

  但是其实要我说的话,虽然门槛变低了,但是这件事的分析难度可能没有太多变化,在过去实践中我们发现在定义数据集的时候,能否注意到目标场景的大量隐前提,例如会话中的主客体关系和主导角色,这些都构成了影响prompt和训练效果的关键。只会粗浅的收集数据和范式模仿,可能永远也达不到目标效果,至少在我们的大模型实践中是这样的。

  大模型极大的降低了设计门。

服务支持

我们珍惜您每一次在线询盘,有问必答,用专业的态度,贴心的服务。

让您真正感受到我们的与众不同 !

合作流程

网站制作流程从提出需求到网站制作报价,再到网页制作,每一步都是规范和专业的。

常见问题

提供什么是网站定制?你们的报价如何?等网站建设常见问题。

售后保障

网站制作不难,难的是一如既往的热情服务及技术支持。我们知道:做网站就是做服务,就是做售后。