草庐IT

谁能做出中国版ChatGPT?怎么做?

机器之心 2023-03-28 原文
2022 年 12 月,ChatGPT 横空出世。OpenAI 用一个核弹级的成果改变了科学研究和工程应用的范式。在中国,ChatGPT 受到了广泛的关注与深刻的讨论。在过去的一个月里,我走访各大高校,研究院,大厂,创业公司,风投;从北京到上海到杭州到深圳,跟所有头部的玩家们全部聊了一遍。The Game of Scale 在中国已然拉开,风暴中心的玩家们,在已知国内技术和生态与世界前沿的巨大鸿沟下,如何做成这件事?谁能做成这件事?

秦失其鹿,天下共逐之。    ———    《史记・淮阴侯列传》

目录

一、三种不同的答案

我每接触到一个创业公司,都会问同一个问题:“ChatGPT 在那里,你们想做什么?” 我大概能收到三种不同的答案。第一个答案很明确,要做中国的 ChatGPT。

1.1 做中国的 ChatGPT

因为它就在那里,所以想要复现,想要国产化。这是很经典的产品导向中文互联网思维。这种思路也是过去二十年,中文互联网常见的商业模式:首先硅谷做出来一个东西,然后我们把它抄过来。

但这里的问题是,首先,ChatGPT 可不像打车软件,复现难度完全不可同日而语。光从人的角度看,GPT 的产生,是这个世界上最顶尖的科学家和工程师们从 2015 年开始就不断研究的结果。OpenAI 的首席科学家, Ilya Sutskever[1]深刻地相信 AGI 一定能实现。作为图灵奖得主 Geoffery Hinton 的大弟子,从 2007 年就开始研究深度学习。他的 citation 有 37 万,发过的文章精准踩中了过去十年 Deep Learning 的所有关键节点。即使是如此强大的团队,从 GPT 2 到 GPT 3.5 也花了四年的时间,它的科学与工程的难度可想而知。

同时,初代 ChatGPT,是 OpenAI 在 GPT 3.5 的基础模型上,花了两星期时间对着 dialog 做 finetuning 之后随手扔出来的 demo。这里真正强的并不是 ChatGPT 这一个产品,而是底下的 GPT 3.5 基础模型。这个模型还在不断地演化,GPT 3.5 系列在 2022 年更新了三个大版本[2],每个大版本都显著强于前一个版本;同样地,ChatGPT 发布两个月一共更新了四个小版本[3],每个小版本都在单个的维度上比前一个版本有着明显的改进。OpenAI 的所有模型都在持续不断的演化,随时间推移越来越强。

这也就意味着,如果只盯着当前 ChatGPT 这一个产品看,无异于刻舟求剑。当 ChatGPT 出现的时候,它对已有的语音助手们形成了降维打击;如果看不到基础模型的演化,即使花个一两年辛辛苦苦做出一个类似的东西,那时候 OpenAI 的基础模型也在继续变强,如果他们接着产品化,以新的更强的基础模型 finetune 到一个更强的产品,难道要再被降维打击一次吗?

刻舟求剑的做法是行不通的。

1.2 做中国的 OpenAI

第二种答案是,要做中国的 OpenAI。给出这个答案的玩家,跳出了经典中文互联网产品思维。他们不止看到单个产品,而且还看到了这个产品背后,基础模型不断演化的强大驱动力,来源于尖端人才的密度先进的组织架构。

  • 尖端人才的密度:不是一个人集资源带队然后把任务按层级打包分配给底下的人,而是一群顶级的集 science 和 engineering 于一身的人们共同协作。
  • 先进的组织架构:Language 团队与 Alignment 的团队相互合作迭代,然后底下 scaling 团队和 data 团队帮忙提供基础设施,每个 team 都非常小,但目标明确路径清晰,高度集中资源,朝着 AGI 进发
所以,如果要做这件事情,不只要看到产品,还要看到它背后的人才团队和组织架构;按稀缺程度排名的话,人 >> 卡 >> 钱

但这里的问题是,不同的土壤对创新的鼓励程度是不一样的。在 OpenAI 刚创立的 2015 年,它的投资者们都相信 AGI ,即使当时看不到什么盈利的点。现在 GPT 做出来了,国内的投资者们也都信了 AGI,但相信的点或许也不一样:到底是信 AGI 能挣钱,还是信 AGI 能推动人类发展

更进一步地,即使 OpenAI 就产生在这里,明天就出现,但他们跟微软达成的 deal,能否跟国内的云计算厂商达成呢?大模型的训练和推理都需要极大的成本,需要一个云计算引擎作为支撑。微软可以倾尽所有,让整个 Azure 给 OpenAI 打下手[4],这个换到国内,阿里云有可能给一个创业公司打下手吗

组织架构很重要,只有尖端的人才和先进的组织架构才能推动智能的不断迭代与进化;但它同样需要跟所在的土壤做适配,寻找可以 flourish 的方法。

1.3 探索智能的极限

第三种答案是,要探索智能的极限。这是我听到的最好的答案。它远超刻舟求剑式的经典互联网产品思维,也看到了组织架构和尖端人才密度的重要性,并且更重要地是它看到了未来,看到了模型演化与产品迭代,思考着如何把最深刻,最困难的问题用最创新的方法来解决。

这就涉及到了思考大模型的极限思维。

二、极限思维

观察现在的 ChatGPT / GPT-3.5 ,它明显是一个中间状态,它还有很多显著可以加强,并且马上就能加强的点,包括:

  • 更长的输入框:开始的时候,GPT 3.5 的上下文最长到八千个 token;现在的 ChatGPT 上下文建模的长度似乎已经过万。并且这个长度明显可以接着增长,在融入 efficient attention[5] 和 recursive encoding[6] 的方法之后,context length 应该可以接着 scale 到十万,甚至百万的长度
  • 更大的模型,更大的数据:模型的大小还没有到极限,MoE 可以接着把模型 scale 到 T 的量级[7];数据的大小还没有到极限,人类反馈的数据每天都在增长
  • 多模态:在增加了多模态数据(音频,图片),特别是视频数据之后,总体与训练数据的大小可以再增大两个量级,这个可以让已知的能力接着按 scaling law 线性增加,同时还有可能继续出现新的涌现能力。比如可能模型在看过各种几何形状的图片,以及看过代数题之后,或许会自动学会做解析几何。
  • 专业化:现有的模型在文科上大概相当于研究生水平,但在理科上相当于高中或大一大二的学生水平;已有的工作已经证明我们可以把模型的技能点从一个方向挪到另一个方向,这就意味着即使不做任何 scaling,我们依然可以在通过牺牲其他方面能力的情况下,把模型朝着目标方向推进。比如牺牲掉模型的理科能力,把它的文科能力从研究生推到专家教授的水准。
以上四点只是现阶段可以看到的,马上就可以加强但暂时还没有加强的点,随着时间的推移和模型的演化,会有更多可以被 scale 的维度进一步体现出来。这意味着我们需要有极限的思维,思考当我们把能够拉满的维度全部拉满的时候,模型会是什么样子。

2.1 能够拉满全部拉满

模型的输入框可以接着加长,模型的大小可以继续增大,模型的数据可以继续增多,多模态的数据可以融合,模型的专业化程度可以继续增高,所有这些维度可以继续往上拉,模型还没有到极限。极限是一个过程,在这个过程中模型的能力会怎样发展呢?

  • Log-linear 曲线:一部分能力的增长会遵循 log-linear 的曲线[8],比如说某项任务的 finetuning。随着 finetune 数据的指数增长,模型所对应的 finetune 的任务的能力会线性增长。这部分能力会可预测地变得更强
  • Phase change 曲线:一部分能力会随着 scaling 继续涌现[9],比如说上文中的模型做解析几何的例子。随着可以被拉满的维度被不断拉满,新的,难以预测的涌现能力会接着出现。
  • 多项式曲线?当模型强到一定程度,与人类 align 到一定程度之后,或许一些能力的线性增长,所需要的数据,会突破指数增长的封锁,而降低到多项式的量级。也就是说,当模型强到一定程度之后,它或许不需要指数级的数据,而是只需要多项式级的数据,就可以完成泛化。这可以从人类的专业学习中观察到:当一个人还不是领域专家的时候,ta 需要指数级的数据来学习领域的知识;当一个人已经是领域专家的时候了,ta 只需要很少量级的数据就自己迸发出新的灵感和知识。
所以,在极限思维下,把所有能拉满的维度全部拉满,模型注定会越来越强,出现越来越多的涌现能力。

2.2 反推中间过程

在思考清楚极限的过程之后,就可以从极限状态往后反推中间过程。比如说,如果我们希望增长输入框的大小:

  • 如果希望把模型的输入框从的量级增长到的量级,可能只需要增加显卡数量,进行显存优化就能实现。
  • 如果希望接着把输入框从的量级增长到十万的量级,可能需要linear attention[10]
    的方法,因为此时加显存应该也架不住 attention 运算量随输入框长度的二次增长。
  • 如果希望接着把输入框从十万的量级增长到百万的量级,可能需要recursive encoding [11]的方法和增加long-term memory [12]的方法,因为此时 linear attention 可能也架不住显存的增长。
以这种方式,我们可以反推不同阶段的 scaling 需要怎样的技术。以上分析不止适用于输入框的长度,也适用于其他因素的 scaling 的过程。

这样的话,我们可以得到清晰的从现阶段的技术到 scaling 的极限的每个中间阶段的技术路线图

2.3 按模型演化进程产品化

模型在不断演化,但产品化不需要等到最终那个模型完成 — 每当模型迭代出来一个大的版本,都可以产品化。以 OpenAI 的产品化过程为例:

  • 2020 年,初代 GPT 3 训练完成,开放 OpenAI API[13]
  • 2021 年,初代 Codex 训练完成,开放 Github Copilot[14]
  • 2022 年,GPT-3.5 训练完成,以 dialog 数据 finetune 成 ChatGPT 然后发布
可以看到,在中间阶段的每一个重要版本,模型的能力都会增强,都存在产品化的机会。

更加重要的是,按照模型演化进程产品化,可以在产品化的阶段适配市场。学习 OpenAI 的组织架构来推进模型演化本身,但产品化可以按照本土市场的特征来。这种方式或许可以既学到 OpenAI 的先进经验,又避免水土不服的问题。

三、人工智能显著超过人类的点

到目前为止,我们讨论了要用模型演化的视角来分析模型,要用极限的思维讨论模型的演化历程。现阶段马上可以加强的点包括了输入框的长度,更大的模型和数据,多模态数据,和模型的专业化程度。现在让我们再把视野放得更长期些,思考在更大的时间和空间中,模型如何进一步地往极限推。我们讨论:

  • 并行感知:一个人类研究员一次顺序地读四五篇论文已经是极限,但模型输入框变长之后,可以在极短的时间内并行阅读一百篇论文。这意味着,模型对外部信息的感知能力远超人类一个数量级。
  • 记忆遗传:人类的演化过程中,子代只继承父代的基因,但不继承父代的记忆,这意味着每一次生殖都需要重启一次;在模型的演化过程中,子代可以继承父代的记忆,并且这个继承的程度可控:我们可以设置子代继承 100%,50%,20% 的记忆,或清空记忆,这意味着父代的经验和技能可以不断累积
  • 加速时间:人类相互交流的速率是受到人类说话的物理速度限制的,而模型相互交流的速率可以远快于人类,这意味着模型可以通过相互交流来解决人类数据随时间线性增长的问题;人类演化的过程受到物理时间的限制,模型的演化可以比人类的物理时间快上几个数量级,这意味着模型的进步速度可以远快于人类
  • 无限生命:一个人的生命有限,百年之后终归尘土,但模型的权重只要不丢失,就可以不断地演化
从这些角度来说,人工智能超过人类并不是一件难以想象的事情。这就引发了下一个问题:如何驾驭远超人类的强人工智能?

这个问题,是 Alignment 这项技术真正想要解决的问题。

四、Alignment 对齐

当前阶段,模型的能力,除了 AlphaGo 在围棋上超过了最强人类之外,其他方面的 AI 并没有超过最强的人类(但 ChatGPT 在文科上或许已经超过了 95% 的人类,且它还在继续增长)。在模型还没超过人类的时候,Alignment 的任务是让模型符合人类的价值观和期望;但当模型继续演化到超过人类之后,Alignment 的任务就变成了寻找驾驭远超人类的智能体的方法。

4.1 Alignment 作为驾驭远超人类的智能体的方法

一个显然的问题是,当 AI 超过人类之后,还可以通过人类反馈让 ta 更强 / 更受约束吗?是不是这个时候就已经管不了了?

不一定,即使模型远超人类,我们依然又可能驾驭 ta,这里的一个例子是运动员和教练之间的关系:金牌运动员在 ta 的方向上已经是最强的人类了,但这并不意味着教练就不能训练 ta。相反,即使教练不如运动员,ta 依然可以通过各种反馈机制让运动员变得更强且更有纪律。

类似地,人类和强人工智能的关系,在 AI 发展的中后期,可能会变成运动员和教练之间的关系。这个时候,人类需要的能力并不是完成一个目标,而是设定一个好的目标,然后衡量机器是否足够好地完成了这个目标,并给出改进意见。

这个方向的研究还非常初步,这个新学科的名字,叫 Scalable Oversight[15]

4.2 Alignment 与组织架构

在通往强人工智能的路上,不只是需要人类与 AI 对齐,人类与人类,也需要高度的对齐。从组织架构的角度,alignment 涉及到:

  • Pretraining 团队与 instruction tuning - alignment 团队之间的对齐:这两者应该是一个相互迭代的过程,pretraining 团队不断地 scale 基础模型,alignment 团队为基础模型做 instruction tuning,同时用得到的结果反向指导 pretraning 团队的方向。
  • Pretraining / Alignment 团队与 Scaling / Data 团队的对齐:scaling 负责为 pretraining /alignment 做好基础设施,data 做好高质量数据与人类反馈数据。
  • 创业公司与 VC 的对齐:AGI 是一个困难的事情,需要长期的投入,这需要各个方面的人都有足够的耐心和足够高的视野。烧一趟热钱后催产品化然后占满市场的逻辑在大模型时代应该已经不复存在了。大模型的游戏要求 ta 的玩家们有足够高的视野与格局,模型的演化会让有足够耐心的,踏实做事人们在长期得到丰厚的回报,也会让只看短期刻舟求剑的人们一次又一次被降维打击。

五、结语

在 2017 年,我刚刚入行 NLP 的时候,花了很大的力气做可控生成这件事情。那个时候所谓的 text style transfer 最多就是把句子情感分类改一改,把 good 改成 bad 就算是完成了 transfer。2018 年我花了大量的时间研究如何让模型从句子结构的角度修改句子的风格,一度误认为风格转换是几乎不可能完成的事情。而今 ChatGPT 做风格转换简直信手拈来。那些曾经看似不可能完成的任务,曾经极其困难的事情,今天大语言模型非常轻松地就能完成。在 2022 年一整年,我追踪了从 GPT-3 到 GPT-3.5 的全部版本迭代[11],亲眼看到它一步步地从弱到强不断演化。这个演化速度并没有变慢,反而正在加快。那些原先看来科幻的事情,现在已经成为现实。谁会知道未来会怎样呢?

彼黍离离,彼稷之苗。行迈靡靡,中心摇摇。

彼黍离离,彼稷之穗。行迈靡靡,中心如醉。

——— 《诗经・黍离》

有关谁能做出中国版ChatGPT?怎么做?的更多相关文章

  1. ruby - Ruby 中的隐式返回值是怎么回事? - 2

    所以我开始关注ruby​​,很多东西看起来不错,但我对隐式return语句很反感。我理解默认情况下让所有内容返回self或nil但不是语句的最后一个值。对我来说,它看起来非常脆弱(尤其是)如果你正在使用一个不打算返回某些东西的方法(尤其是一个改变状态/破坏性方法的函数!),其他人可能最终依赖于一个返回对方法的目的并不重要,并且有很大的改变机会。隐式返回有什么意义?有没有办法让事情变得更简单?总是有返回以防止隐含返回被认为是好的做法吗?我是不是太担心这个了?附言当人们想要从方法中返回特定的东西时,他们是否经常使用隐式返回,这不是让你组中的其他人更容易破坏彼此的代码吗?当然,记录一切并给出

  2. ruby - 怎么来的(a_method || :other) returns :other only when assigning to a var called a_method? - 2

    给定以下方法:defsome_method:valueend以下语句按我的预期工作:some_method||:other#=>:valuex=some_method||:other#=>:value但是下面语句的行为让我感到困惑:some_method=some_method||:other#=>:other它按预期创建了一个名为some_method的局部变量,随后对some_method的调用返回该局部变量的值。但为什么它分配:other而不是:value呢?我知道这可能不是一件明智的事情,并且可以看出它可能有多么模棱两可,但我认为应该在考虑作业之前评估作业的右侧...我已经在R

  3. ruby-on-rails - 我该怎么办 :remote location validation with CarrierWave? - 2

    我在我的Rails3示例应用程序上使用CarrierWave。我想验证远程位置上传,因此当用户提交无效URL(空白或非图像)时,我不会收到标准错误异常:CarrierWave::DownloadErrorinImageController#createtryingtodownloadafilewhichisnotservedoverHTTP这是我的模型:classPaintingtrue,:length=>{:minimum=>5,:maximum=>100}validates:image,:presence=>trueend这是我的Controller:classPaintingsC

  4. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  5. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  6. ruby - EventMachine - 你怎么知道你是否落后了? - 2

    我正在研究使用EventMachine支持的twitter-streamruby​​gem来跟踪和捕获推文。我对整个事件编程有点陌生。我如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法? 最佳答案 您可以通过使用周期性计时器并打印出耗时来确定延迟。如果您使用的是1秒的计时器,您应该已经过了大约1秒,如果它更长,您就知道您正在减慢react器的速度。@last=Time.now.to_fEM.add_periodic_timer(1)doputs"LATENCY:#{Time.now.to_f-@last}"@

  7. ruby - 如果它是标点符号,我怎么能从字符串中删除最后一个字符,在 ruby​​ 中? - 2

    啊,正则表达式有点困惑。我正在尝试删除字符串末尾所有可能的标点符号:ifstr[str.length-1]=='?'||str[str.length-1]=='.'||str[str.length-1]=='!'orstr[str.length-1]==','||str[str.length-1]==';'str.chomp!end我相信有更好的方法来做到这一点。有什么指点吗? 最佳答案 str.sub!(/[?.!,;]?$/,'')[?.!,;]-字符类。匹配这5个字符中的任何一个(注意,。在字符类中并不特殊)?-前一个字符或组

  8. ruby - Ruby 中 <=> 运算符的名称是什么?他们怎么调用它? - 2

    在Ruby中有运算符(operator)。在API中,他们没有命名它的名字,只是:Theclassmustdefinetheoperator...Comparableusestoimplementtheconventionalcomparison......theobjectsinthecollectionmustalsoimplementameaningfuloperator...它叫什么名字? 最佳答案 参见上面的@Tony。然而,它也被称为(俚语)“宇宙飞船运算符(operator)”。

  9. 电脑启动后显示器黑屏怎么办?排查下面4个问题,快速解决 - 2

    电脑启动出现显示器黑屏是一个相当常见的问题。如果您遇到了这个问题,不要惊慌,因为它有很多可能的原因,可以采取一些简单的措施来解决它。在本文中,小编将介绍下面4种常见的电脑启动后显示器黑屏的原因,排查这些原因,快速解决! 演示机型:联想Ideapad700-15ISK-ISE系统版本:Windows10一、显示器问题如果出现电脑启动后显示器黑屏的情况。那么首先您需要检查一下显示器是否正常工作。您可以通过更换另一个显示器或将当前显示器连接到另一台计算机来检查显示器是否存在问题。如果问题仍然存在,那么您可以排除显示器故障的可能性。 二、显卡问题如果您的电脑配备了独立显卡,那么显卡故障也可能是导致电脑

  10. 电脑怎么截图?进来看(8种常用截图方法) - 2

    电脑上可以截取图片吗?如果可以,该如何操作呢?相信很多小伙伴都只知道一两种截图的方式,知道的并不全面。其实,电脑上有多种方式截图的,而且非常方便。电脑怎么截图?今天我们就来教大家如何使用电脑截取图片的8种常用方式!操作环境:演示机型:Delloptiplex7050系统版本:Windows10方法一:系统自带截图具体操作:同时按下电脑的自带截图键【Windows+shift+S】,可以选择其中一种方式来截取图片:截屏有矩形截屏、任意形状截屏、窗口截屏和全屏截图。 方法二:QQ截图具体操作:在电脑登录QQ,然后同时按下【Ctrl+Alt+A】,可以任意截图你需要的界面,可以把截图的页面直接下载,

随机推荐