关于废话文学的讨论 文学是如何边缘化的
热门文章
0
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
图片来源@视觉中国文|甲子光年ChatGPT作为史上界面最朴素却圈粉最快的科技产品,给人的冲击感不是发生在眼球层面,而是颅内层面的。火到“上头”背后有两重原因:一方面是功能性的胜利,如帮人们写作文、编程、收集结构化资料,其内容生成的速度和质量甚至超出很多在AI行业深耕多年的从业者的预期;另一方面是人格化的胜利,它会理解意图、声明立场、表达恭喜、道歉、自我修正答案,并拥有上下文的记忆连贯性,体现出实时的自主学习能力,简言之,就是“像人”。打个比喻,因为渴望飞行又没有翅膀,人类造出了飞机。一直以来,AI界一直在“造飞机”,之前各类突破性进展都让飞机的功能性越来越强,而ChatGPT却似乎造出了一只“鸟”。这也是为什么ChatGPT被很多从业者定位为“通用人工智能(AGI)”雏形的原因。功能性与人格化看似在这一代ChatGPT上得到了平衡,但从本质看,二者有着相反的牵引力。如果追求功能性,重点是回答本身的正确、精准、靠谱,最好其回答有明确的可溯源的出处。排除写作文等本来就需要发挥创意的功能,不同人问同一个问题应该有类似的答案(千人一面),因为大部分功能性问题是在寻求正确解或最优解。这更像“改进版搜索引擎”,New Bing就是这么做的,这有其明确的价值,却不是革命性的体验;如果追求人格化,重点是交互感、创新性、超预期,意味着不能有死记硬背的感觉,因为死记硬背并不是人类学习与交互的惯性方式,这意味着回答要有个性、丰富性、多样性甚至狡猾性。诡异的地方恰恰在于,后者往往比前者看起来更“聪明”,更“机灵”,但往往更“不可信”。在今天版本的ChatGPT中,你可以轻易诱导它犯错,而且它会犯许多出乎你预料的错,有的回答会一本正经地胡说八道,有的回答会陷入滔滔不绝的“废话文学”,但由于它的表达方式足够讨巧,会认错、道歉,会自我“澄清”,因此这甚至让你感到开心、好玩、可爱——ChatGPT正是以人格化特征建立了用户心理的“容错性”,而这也是为什么人格化相比功能性是今天ChatGPT大火更显著的助燃剂(大家纷纷在朋友圈晒问答,被分享的段落绝大部分是ChatGPT表现出情商的片段、超预期的部分、搞错的部分)。在诸如“评价一下甲子光年”这样的问题中,ChatGPT的回答是带有狡猾性与迎合性的。如果你在对话前文表达了对甲子光年的认可,ChatGPT马上就会附和,是一个机灵的捧哏,但换个人再问,回答立刻变成不知道——ChatGPT只是在当前对话中根据用户反馈进行修正,当我们重启一个对话,测试相同的问题时,ChatGPT会表现出失忆或犯错。从原理看,今天的ChatGPT之所以给人一种很强的“理解力”,是因为ChatGPT是“重新表达”材料,而不是从数据库中逐字引用,这让它看起来像一个学生用自己的话表达思想,而不是简单地重复它读过的东西。“重新表达”和搜索是两件事——正是因为这种“重新表达”,造成了ChatGPT“理解”了材料的“错觉”。然而,举一反三和胡编乱造间有一个微妙的界限,这个界限在人与人之间的对话中往往也是模糊的。这就引发了一个关键问题:ChatGPT可信吗?什么是可信?如何辨别其回答是否可信?这些问题背后,还有一个前置性问题:ChatGPT的一系列延伸价值和未来想象,是否需要建立在“可信”的基础上?很多人想当然地以为,现在不够“可信”,是因为模型还不够大、数据还不够多、技术还不够强,或者是因为缺乏安全技术与监管手段,这是对“可信”的理解还不够透彻。内容分两种,一种的本质属性不依赖“可信”,一种的本质属性必须“可信”。前者往往是kill time(消磨时间)类型内容,核心是抓住用户的时间,占领时间越多越好,用户越上瘾越好。典型代表是今日头条、抖音、各类游戏。字节系诸多产品最初都以放弃可信度换取UGC的海量内容,以个性化取代了绝对权威,以“最适合的”取代了“最优解的”。文章视频从相对高门槛的作者生产、编辑分配,变成相对低门槛的用户生产、算法分配,构建了算法推荐的世界;后者往往是save time(节省时间)类型内容,核心是准确、科学、实用、工具属性,典型代表是搜索引擎、维基百科。很多人近来逐渐减少在搜索引擎上投入的时间,转而去知乎甚至B站搜索,也恰恰是因为商业导流的泛滥和各巨头间内容围墙的普遍存在,搜索结果正变得没那么可信、没那么直接。对准确性有强诉求的人群将很快发现,如果无法保证ChatGPT的可信度,而对生成内容的校验方式又需要回归到搜索引擎,或者需要溯源内容出处以做再判断(New Bing就是以罗列出处链接的方式来嫁接回答内容与可信出处),其价值将大打折扣。试想,如果ChatGPT每一次给我的回答,我都要交叉验证,那不是多此一举吗?特德·姜在《ChatGPT是网上所有文本的模糊图像》一文中写道:“任何对内容工厂有好处的东西都不适合搜索信息的人。”他用压缩算法做了一个类比:如果一种压缩算法被设计成在99%的原始文本被丢弃后重建文本,我们应该预料到,它生成的很大一部分内容将完全是捏造的。换言之,需要kill time的人和需要save time的人往往是两拨人。需要个性化生成式内容的人和需要搜索引擎的人的本质诉求是不同的。前者是“1到正无穷”,需要创意和与众不同,不存在“最优解”;后者是“无穷中寻一”,需要精确、准确、正确,要无限逼近全局最优解。ChatGPT是为了kill time而生还是save time而生呢?两条路都有巨大的商业前景,都不可怕,但最可怕的是:你似乎是可信的,但其实不然。最怕的是你以一种看似可信的方式,出现在了需要可信的场景,却交付了不可信的内容。当然,一个自然的问题是:能不能既要也要呢?能不能在消除不可信的同时,保留人格化、创意化的天马行空的部分?这是一个目前业界各类产品都未能验证的期待。可信意味着可记录、可验证、可追溯、可审计,而这很可能与大模型理念的本质就是冲突的。我们在昨天的文章里写到,考虑到安全隐患,ChatGPT的发布公司,OpenAI,在安全保护机制方面对ChatGPT进行了较多限制,ChatGPT似乎正因此处于一种“情绪崩溃”的状态。(见《第一批因ChatGPT坐牢的人,已经上路了》)我之所以这么早强调“可信”这一点,是因为随着大型语言模型生成的文本在网络上发布得越多,网络整体的信息质量就变得越模糊。伴随信息过载,可信愈发困难,而“可信”这个问题越晚一天解决,就越难解决。用我同事涂明的话说,就是“其实信权威和信机器没什么两样,如果机器个性化更强,最后就可能变成信自己,信息极化。”从“个性化捧哏”到“个性化忽悠”只隔着一层窗户纸。少部分人细思恐极,大多数人惶然而不自知——难道出路在于“每个人都是自己获取信息的第一责任人”?前文提到,ChatGPT被很多从业者定位为“通用人工智能(AGI)”,因为从产品效果来看,ChatGPT的智能水平已经表现出某种人类心智的特征,有人格化属性,有灵动的“有机感”。我们知道有机物和无机物最本质的区别是有机物含碳,但AGI与非AGI的边界却没有这么清晰。为什么?因为AGI本身就不是一个真命题、好命题。字面意义理解,AGI为“通用人工智能”,而什么是通用?什么是智能?人脑算通用吗?文理科生的思维逻辑与知识储备差异极大,从字面意义理解,人脑也不算通用智能。从沃尔夫假说来看,语言是思维的映射,母语英语的人和母语中文的人,本身思维方式就呈现出巨大的不同,脑补能力也不同。那么,什么是“理解”?如果一个大语言模型已经编译了大量学科术语之间的相关性,多到可以对各种各样的问题提供合理的回答——我们是否应该说它实际上理解了该学科?这是一个哲学命题,我的答案是,能表现得理解,就是理解。关于“理解”乃至“意识”,人类自己也始终没有精准定义。我们做AI,并不是要从原理到外在复刻一个人类大脑,只要表现出人类对话的外在特征,就可以定义为理解与表达。(否则还能怎么办呢?)有很多网友质疑ChatGPT并非强人工智能,理由无非是“ChatGPT虽然能够做到XXX,但是它并没有理解”,这种质疑相当于是在争辩“如果一个智能被机器实现了,就不能被叫做智能”,这是悖论不是辩论。或者说,今天争论ChatGPT是“强人工智能”还是“弱人工智能”,也许不是一个真问题。一个更务实的问题是:这个“9岁儿童”的智能会在“18岁成年”时长成什么样子?其极限在哪里?圣塔菲研究所前所长Geoffrey West在科普书《规模》中揭示了规模法则(scaling law)。在West眼中,有一种不变的标准可以衡量看似毫无关联的世间万物——无论是生物体的体重与寿命,还是互联网的增长与链接,甚至是企业的生长与衰败,都遵循规模法则。规模法则关心复杂系统的特性如何随着系统大小变化而变化。以规模法则的视角看待ChatGPT背后的大模型,一个自然的问题是:模型一定是越大越好吗?如果数据量足够大、算力足够充沛,是否AI的效果会无限上扬?面对这个问题,业界多方的答案是Yes and No。持Yes观点的人认为,现在的“大”并不足够大。从历史角度看,上世纪60年代,图灵奖获得者马文·明斯基在批判第一代神经网络时,认为它所需要的计算量很大,当时他说的“大”指的是数十KB。如今看来,这种规模是极小的。试想一下,在二十年后,今天的大模型是否还能称之为大模型呢?从用脚投票角度看,不同公司的LLM(Large Language Model,大语言模型)基本都是基于Transformer构建的自回归、自我监督、预训练、密集激活模型,他们接连表现出惊人的能力,证明了more is different。从内容类型角度看,目前ChatGPT还是针对文本对话或者写代码,下一步一定会拓展到图像、视频、音频等多模态,乃至逐步纳入AI for Science、机器人控制等领域,这是通往AGI的必经之路,目前只是刚刚开始,在短期的未来,当然要一鼓作气地做“大”。持No观点的人认为,大模型虽好,但其性能有一个上限,虽然这个上限尚不明确。从通用性的角度看,目前的基础大模型不会选择根据低频数据更新参数,否则大模型就会因为对某些长尾数据进行过拟合而失去通用性。从专有领域的角度看,硬件在进行推理时,往往无法承载超规模的预训练模型,人们需要针对具体应用进行模型的裁剪和优化。此外,专有领域也不一定需要超大规模的模型,不恰当的网络架构也许会造成对计算资源极大的浪费。值得一提的是,GPT-3 之所以取得了非常好的效果,并不仅仅是是因为“大”,也包括他们找到了一种“提示”的方法,这些方法也可以应用到非常小的模型上。从数据供给的角度看,《Will we run out of data? An analysis of the limits of scaling datasets in Machine Learning》(P Villalobos, J Sevilla, L Heim, T Besiroglu, M Hobbhahn, A Ho [University of Aberdeen & MIT & Centre for the Governance of AI & University of Tübingen] (2022) )的估算结论是到2026年左右,高质量的NLP数据将会用光,低质量NLP数据会在2030到2050年用光,而低质量图像数据会在2030到2060年用光。这意味着:要么到时我们有新类型的数据源,要么我们必须增加LLM模型对数据的利用效率。否则,目前这种数据驱动的模型优化方式将会停止进步,或者收益减少。研究表明,可用数据将在未来被“消耗殆尽”此外还有一些问题:我们还没有充分使用已有的数据;超大规模模型的调优问题还没有被解决;如何从预测任务迈向决策任务……一个最本质的问题是,是否给出足够的时间、足够的钱、足够的数据,所有问题最终都能够被大模型解决?大模型的极限在哪里?比尔·盖茨评价ChatGPT出现的重大历史意义不亚于互联网和个人电脑的诞生,这个表述究竟是否高估,与大模型这条能力曲线的走势息息相关。另一种对ChatGPT的普遍担忧是成本问题。有网友表示:“训练大型人工智能模型的成本已在数量级上逼近人类愿意拿出来的最大成本,若人类的总功率增量不能加速,模型参数的持续增长无法加速。”对此,我更认同理想汽车CEO李想在朋友圈的表达:“搜索引擎公司看待ChatGPT的成本,和燃油车企业早期看电动车的成本如出一辙。他们都在想:这么高的成本,咋盈利呀?”今天,用成本与收益的角度来评价ChatGPT为时过早。对于突破性技术进展而言,从一开始就以商业维度来考量似乎有失公允,质疑ChatGPT烧钱,类似于质疑探索航天事业烧钱。首先,AI行业本身就有工业界反哺科学界的特征。类似ChatGPT这种迈向AGI之路的探索看似发生在工业界,但其价值本身是外溢出商业范畴的,是科学进展的重要组成部分。发明电灯的人不一定直接享受到电力革命的红利。但如果拨开时光机回到过去:是不是应该鼓励发明电?其次,就算在商业语境范畴内看待这项技术,如果一项技术的成本只是时间问题,如果可以证明其成本随着时间推移会逐渐降低到合理值,那么这就不是一项技术在早期阶段需要被挑战的“主要矛盾”。新兴技术的账怎么算,我个人的观点是,更需要去看这条道路的第一性原理,而不是过去、现在、未来几年烧不烧钱,能不能赚钱。再次,ChatGPT离赚钱没那么远。以ChatGPT对程序员的助力为例:依据GitHub的数据,2021年,中国有755万程序员,排名全球第二。放眼全球,程序员数量已经超过7300万,比2020年增长了1700万。根据预测,2025年GitHub上的程序员估计能达到1亿。这里面,随便几个百分点的降本增效,都是一个巨大的市场空间。此外,大家很关注ChatGPT对搜索引擎的替代,但另一个巨大的市场是office类产品、在线文档类产品和ChatGPT的融合——如果能够让写word、做Excel、画PPT的效率提升50%,我会毫不犹豫给甲子光年全员开通付费账号。一直以来,我都认为“商业价值”与“商业模式”是两件事。商业模式有两种,一种是人为事先设计的,另一种是做好商业价值之后伴生而来事后总结的,伟大的公司往往是先有商业价值而后有商业模式,而不是相反。对于技术突破而言,模式永远是结果而非原因。在本该求因的阶段求果,可能抓错了主要矛盾,也丧失了战略机遇。至少,我国AI距离世界最先进水平的差距并不是财力。当然,考虑到成本问题,未来也许会出现“股份制大模型”,多方群策群力,共建超级平台,这都是“术”层面的问题。托马斯·库恩在《科学革命的结构》中提出,科学进步的轨迹是跳跃式的。科学通过“革命”的方式进步,通过摆脱那些遭遇到重大困难的先前世界框架而进步。这并非一种朝向预定目标的进步。它是通过背离那些既往运行良好、但却不再能应对其自身新问题的旧框架而得以进步。这个角度看,我们无疑正在经历一场关键的科学革命。相比于其他学科以及早年间的AI派系,今天的AI行业更趋近于一场集体的范式迁移,这是由底层哲学观牵引的。ChatGPT背后的GPT系列体现了LLM应该往何处去的发展理念。很多人开始相信,揭开AGI的真正钥匙正在于:超大规模及足够多样性的数据、超大规模的模型、充分的训练过程。这条道路看似朴素,却足以让AI表现出智能“涌现”的能力,未来也许会持续带来意想不到的惊喜和惊吓。这种思想简言之就是将“参数至上和数据至上”的思想发挥到极致,从细分技术“分而治之”到“大一统、端到端”,从理论洁癖走向暴力美学。OpenAI并非这种哲学的奠基者。1956年达特茅斯会议首次提出“AI”概念后,AI路径之争、派系之争始终存在。自深度学习诞生以来,AI行业的发展越来越像是一个暴力的拟合机器,多次里程碑节点都来自于LLM模型规模的增长,而非突破性理论的推动(当然不能说大模型没有突破性技术,只是这种技术的实现路径不是理论洁癖者所甘心的画风,比如做超大规模的LLM模型对技术团队的工程实现能力要求是非常高的,仿佛“驯兽师”一般,包含无数技巧、脏活累活)。ChatGPT之所以到达今天的高度,是OpenAI坚持信仰的结果。OpenAI基本坚定地把LLM看做是通往AGI的一条必由之路。2018年OpenAI提出GPT模型,在风头不如BERT的情况下,再次提出GPT-2模型;随着Google提出T5模型之后,再次提出GPT-3模型,今天依然在同样的路径上矢志不渝。这颇有“以凡人之身躯领悟天之意志”的决绝感。大部分人都是因为看见才相信,OpenAI对技术判断的前瞻性和其笃定信念是黄金一样可贵的东西。我的观点是:信仰一定不是凭空产生的,信仰是需要对问题的深刻认知才会产生。OpenAI看似疯狂,却一定不是无脑all in。我一直相信长期信仰(而非短期狂热)的背后是深刻的理性。此外值得一提的是,今天的热潮正在推动着国内很多宣传与决策的快速跟进,这种跟进往往是建立在认知还没有清晰之前,这很容易导致“走偏”。我个人并不期待AI的发展需要全球走向完全相同的路径。这不仅容易偏废,也会导致产业的脆弱性——人各有志,AI为何不可多样性呢。就算是直接对标效而仿之,每一次弯道超车也要清醒论证,否则可能不是弯道超车,而是弯道翻车。最后说点题外话,这次ChatGPT的爆发,让我想起了八个字“有意瞄准,无意击发”——这八个字用来形容狙击手。你需要像狙击手一样专注,朝对的方向,心无旁骛地瞄准,至于兔子什么时候出来、枪什么时候会响,只是时间问题。历史是在钟摆声中进步的。回顾人类文明发展史,在古代,人们还没有掌握万有引力定律和牛顿定律之前,可能会直接记录下物体各种运动现象,用眼睛而非逻辑去研究星星,而万有引力定律和牛顿定律之后,方法自然不一样了。打个比方,人们通过观测、记录来研究星星,正如大模型;人们发现万有引力定律,就是理论突破。大模型→理论突破→大模型→理论突破,文明进步总是在螺旋中上升。当理论越强,对模型的依赖越小。感谢ChatGPT在岁末年初交付关键一役,业界已经冰冷太久。此时此刻的全球科技产业界士气大涨,就这一点而言,OpenAI已是功不可没。自我2015年开始写和AI相关文章开始,冷冷热热也经历了好几轮。ChatGPT再次验证了科技行业的不变真理——高估低估常有,但永远没有盖棺定论的一天。科技行业永远需要鲶鱼。ChatGPT与其说是热点,更应该定位为拐点。所以,无论ChatGPT的高温天气能持续多久,我都愿意为其添一把火——这是一场企业家精神对科学界的反哺,一场好久不见的暴力美学,一场技术信仰的胜利。
gpt 保护分区
机器之心专栏作者:杨靖锋为什么所有公开的对 GPT-3 的复现都失败了?我们应该在哪些任务上使用 GPT-3.5 或 ChatGPT?这一推文写于 2023 年 2 月 12 日,其中均为个人意见,仅供参考。 为什么所有公开的对 GPT-3 的复现都失败了?我们应该在哪些任务上使用 GPT-3.5 或 ChatGPT?这篇推文将包括,我在仔细重新检查了一系列文章的细节之后给出的总结,以及对上面两个问题我个人的思考。这些文章包括且不限于:GPT-3, PaLM, BLOOM, OPT, FLAN-T5/PaLM, HELM 等。如果您有更可靠的参考资料或者更实际的经验,欢迎指正。 对于那些想要复现一个属于自己的 GPT-3 或 ChatGPT 的人而言,第一个问题是关键的。第二个问题则对那些想要使用它们的人是重要的(下文提到 GPT-3,主要是指 GPT-3.5 或 InstructGPT 的最新版本,除了一些指向 GPT-3 原文的情况)。为什么所有公开的对 GPT-3 的复现都失败了?这里,我称之为 “失败”,是指训练得出模型有接近 GPT-3 或者更大的参数量,但仍无法与 GPT-3 原始文献中报告的性能所匹配。在这一标准下,GPT-3 和 PaLM 是 “成功” 的,但这两个模型都不是公开的。而所有的公开模型(例如:OPT-175B 和 BLOOM-176B)都在一定程度上 “失败” 了。但是我们仍然可以从这些 “失败” 中吸取一些教训。我们需要注意的是,假如能够多次尝试各种不同的训练设置,开源社区可能最终可以复现 GPT-3。但截至目前,训练另一个版本的 OPT-175B 的开销仍然太过高昂 ―― 对于如此大规模的模型,一次训练就将需要在约 1000 个 80G A100 GPU 上花费至少 2 个月的时间(数据来自于 OPT 的原始文献)。尽管一些文章(例如 OPT-175B 和 GLM-130B)声称它们在一些任务上能够匹配甚至超过原始的 GPT-3 的表现,在更多 GPT-3 已经测试过的任务上,这种声明仍然是存疑的。同时,根据大多数使用者在更多样的任务上的经验,以及 HELM 的评估来看,最近的 OpenAI GPT-3 的 API 表现也仍然比这些开源模型更好。尽管它背后的模型可能使用了指令微调(instruction tuning, 正如 InstructGPT 那样),类似的使用了指令微调的 OPT 版本(OPT-IML)和 BLOOM 版本(BLOOMZ)也仍然远比 InstructGPT 和 FLAN-PaLM(PaLM 的指令微调版本)要差得多。根据文章的细节,有多个可能的原因导致了相比 GPT-3 和 PaLM 的成功,OPT-175B 和 BLOOM-176B 的失败。我将其分为两个部分:预训练数据和训练策略。预训练数据让我们首先观察 GPT-3 是如何准备和使用预训练数据的。GPT-3 在共计 300B 的 token 上进行训练,其中 60% 来自经过筛选的 Common Crawl,其它则来自:webtext2(用于训练 GPT-2 的语料库),Books1,Books2 和维基百科。更新版本的 GPT-3 还用了代码数据集进行训练(例如 Github Code)。每个部分的占比并不与与原始数据集的大小成比例,相反的,具有更高质量的数据集被更加频繁地采样。导致 OPT-175B 和 BLOOM-176B 失败的,可能是以下三个难点,它们使得开源社区难以收集到类似的数据:1. 第一点是一个具有良好性能的用于筛选低质量数据的分类器。它被用于构建 GPT-3 和 PaLM 的预训练数据集,但在 OPT 和 BLOOM 的训练中却没有被采用。一些文章已经展示,一个用更少但质量更高的数据集训练的预训练模型,可以在性能上超过另一个用更多的混合质量数据集训练的模型。当然,数据的多样性仍然是十分重要的,正如我们将在第三点中讨论的。因此,人们应当非常小心地处理在数据多样性和质量之间的权衡。2. 第二点是预训练数据集的去重。去重有助于避免预训练模型多次面对相同的数据后记住它们或者在其上过拟合,因此有助于提高模型的泛化能力。GPT-3 和 PaLM 采用了文档级别的去重,这同样被 OPT 所采用。但 OPT 预训练的去重 Pile 语料库中仍有许多重复存在,这也可能导致它较差的性能(注:在一些最近的文献中显示去重对于预训练语言模型的重要性可能没有想象中大)。3. 第三点是预训练数据集的多样性,包括领域多样性、格式多样性(例如:文本、代码和表格)和语言多样性。OPT-175B 所使用的 Pile 语料库声称有着更好的多样性,但 BLOOM 采用的 ROOTS 语料库则有太多的已经存在的学术数据集,缺乏 Common Crawl 数据所包含的多样性。这可能导致 BLOOM 性能更差。作为对比,GPT3 来自 Common Crawl 语料的占比则要高得多,而它们是多样的和来自广泛领域的,这也可能是 GPT-3 能够作为首个通用聊天机器人 ChatGPT 的基础模型的原因之一。请注意:虽然一般来说,多样性的数据对于训练一个通用的 LLM(Large Language Model,大规模语言模型)是重要的,但特定的预训练数据分布,则会对 LLM 在特定的下游任务上的性能产生巨大的影响。例如,BLOOM 和 PaLM 在多语言数据上有更高的占比,这导致它们在一些多语言任务和机器翻译任务上的性能更高。OPT 使用了很多对话数据(例如 reddit),这可能是它在对话中表现好的原因之一。PaLM 有很大的占比在社交媒体对话中,这可能是它在多种问答任务和数据集上有着卓越表现的原因。同样的,PaLM 和更新版本的 GPT-3 有很大比例的代码数据集,这增强了它们在代码任务上的能力,以及可能增强了它们 CoT (Chain-of-Thought,思维链) 的能力。一个有趣的现象是 BLOOM 在代码和 CoT 上的表现仍然是较差的,尽管它在预训练过程中使用了代码数据。这可能暗示着单独代码数据本身,并不能保证模型的代码和 CoT 能力。 总之,一些文章表明了上面三点的重要性,即:通过数据去重避免记忆和过拟合,通过数据筛选以得到高质量数据,保证数据多样性以确保 LLM 的泛化性。但不幸的是,对于 PaLM 和 GPT-3 预处理这些数据的细节,或者这些预训练数据本身,仍然没有公布,这使得公共社区很难去复现它们。训练策略此处训练策略包括训练框架、训练持续时间、模型架构 / 训练设置、训练过程中的修改。在训练非常大的模型时,它们被用于获得更好的稳定性和收敛性。一般来说,由于未知的原因,预训练过程中广泛观察到损失尖峰(loss spike)和无法收敛的情况。因此,众多的对训练设置和模型架构的修改被提出,用以避免这些问题。但是其中一些修改在 OPT 和 BLOOM 之中还不是最优解,这可能导致它们的性能较差。GPT-3 并没有明确提到他们是如何解决这个问题的。 1. 训练框架。一个参数量大于 175B 的模型往往需要 ZeRO 式的数据并行(分布式的优化器)和模型并行(包括张量并行(tensor parallel)、流水线并行(pipeline parallel),有时还包括序列并行(sequence parallel))。OPT 采用了 ZeRO 的 FSDP 实现,以及模型并行的 Megatron-LM 实现。BLOOM 采用了 ZeRO 的 Deepspeed 实现和模型并行的 Megatron-LM 实现。PaLM 采用了 Pathways,这是一个基于 TPU 的模型并行和数据并行系统。GPT-3 的训练系统的细节仍然未知,但它们至少在一定程度上使用了模型并行(一些人称它使用了 Ray)。不同的训练系统和硬件可能导致不同的训练时的现象。显然,一些在 PaLM 的文章中呈现的、用于 TPU 训练的设置,可能并不适用于其它所有模型使用的 GPU 训练。硬件和训练框架的一个重要的影响是,人们是否可以使用 bfloat16 去存储模型权重和中间层激活值等。这已经被证明是稳定训练的一个重要因素,因为 bfloat16 可以表示更大范围的浮点数,能够处理在损失尖峰时出现的大数值。在 TPU 上 bfloat16 是默认设置,这可能是 PaLM 能够成功的一个秘密。但是在 GPU 上,以前人们主要使用 float16,这是 V100 中混合精度训练的唯一选择。OPT 使用了 float16,这可能是其不稳定的因素之一。BLOOM 发现了这样的问题并最终在 A100GPU 上使用了 bfloat16,但它没有意识到这种设置的重要性,因此在第一个词向量层后引入额外的层归一化(layer normalization),用于解决他们使用 float16 的初步实验中的不稳定性。然而,这种层归一化已被证明会导致更糟糕的零样本泛化(zero-shot generalization),这可能是 BLOOM 失败的一个因素。 2. 训练过程中的修改。OPT 做了很多中途调整并从最近的 checkpoint 重启训练,包括改变截断梯度范数 (clip gradient norm) 和学习率,切换到简单的 SGD 优化器然后回到 Adam,重置动态损失标量 (dynamic loss scalar),切换到更新版本的 Megatron 等等。这种中途调整可能是 OPT 失败的原因之一。相比之下,PaLM 几乎没有做任何中途调整。它只是当损失尖峰出现时,从尖峰开始前大约 100 步的 checkpoint 重新开始训练,并跳过了大约 200-500 个 batch 的数据。仅仅依靠这种简单的重启,PaLM 就取得神奇的成功。这是由于它在预训练数据构建期间就已经完成采样,因此模型具有在 Bit 意义上的确定性,以及它对模型架构和训练设置进行了许多修改以获得更好的稳定性。PaLM 中的此类修改在下一点中展示。 3. 模型架构 / 训练设置:为了使训练更稳定,PaLM 对模型架构和训练设置进行了多项调整,包括使用 Adafactor 的修改版本作为优化器,缩放在 softmax 之前的输出 logit,使用辅助损失来鼓励 softmax 归一化器接近 0,对词向量和其他层权重使用不同的初始化,在前馈层和层归一化中不使用偏差项,并且在预训练期间不使用 dropout。请注意,GLM-130B 中还有更多有价值的内容关于如何稳定地训练非常大的模型,例如:使用基于 DeepNorm 的后置层归一化而不是前置层归一化,以及词向量层梯度收缩。以上大多数模型修改没有被 OPT 和 BLOOM 采用,这可能会导致它们的不稳定和失败。 4. 训练过程:如下表所示,原始的 GPT-3 预训练过程见过的 token 数与 OPT 和 BLOOM 接近,而 PaLM 则远远超过了它们。同样,PaLM 和 GPT-3 预训练语料库都大于 BLOOM 和 OPT。因此,在更多的 token 上、用更大规模的高质量语料库进行预训练可能是 GPT-3 和 PaLM 成功的一个重要因素。除了上面列出的四点,还有一些其它因素,它们可能对于更稳定的训练并不重要,但仍然可能影响最终的性能。第一点,PaLM 和 GPT-3 都使用了在训练过程中从小到大逐渐增加的 batch size,这已经被展示对于训练一个更好的 LLM 是有效的,然而 OPT 和 BLOOM 都使用了恒定的 batch size。第二点,OPT 使用了 ReLU 激活函数,而 PaLM 使用 SwiGLU 激活函数,GPT-3 和 BLOOM 使用 GeLU,它通常使得训练的 LLM 的性能更好。第三点,为了更好的建模更长的序列,PaLM 使用 RoPE 词向量,BLOOM 使用 ALiBi 词向量,而原始的 GPT-3 和 OPT 使用学习得到的词向量,这可能影响在长序列上的性能。我们应该在哪些任务上使用 GPT-3.5 或 ChatGPT?我尝试解释我们应该在哪些任务和应用上使用 GPT-3,而哪些则不该使用。为了展示 GPT-3 是否适合某个特定任务,我主要比较了带有提示(prompting)的 GPT-3 和经过微调的更小的模型,这些小模型有时还加入了其他特殊的设计。鉴于最近出现的更小的而且可以微调的 FLAN-T5 模型的良好性能,这一问题更加重要。在理想情形下,如果微调 GPT-3 的负担是能够承担的,它可能带来更进一步的提升。然而,在一些任务上通过微调 PaLM-540B 带来的提升是如此有限,让人们怀疑在一些任务中微调 GPT-3 是否是值得的。从科学的角度来看,更公平的比较应在微调 GPT-3 和提示 GPT-3 之间进行。然而,要使用 GPT-3,人们可能更关心将提示 GPT-3 和微调一个更小的模型去进行对比。注意到,我主要关心的是将完成任务的精确度作为度量,但仍然存在很多其它重要的维度,例如:有害性(toxicity)、公平性等,它们也应该在决定是否使用 GPT-3 时被纳入考虑,正如 HELM 的文章中所呈现的。下图展示了一个粗略的决策流程,希望它能够作为一个有用的实践指南,无论对于已有任务还是一个全新的任务。注 1:由于在对话场景下的良好对齐,ChatGPT 作为一个聊天机器人表现优异。但我们通常使用 GPT-3、InstructGPT (GPT-3.5)、以及 Codex 这些 ChatGPT 背后的模型作为在更多任务和使用场景下的通用模型。 注 2:这一节中的结论是基于一些对模型当前版本的发现得到的,这可能不适用于未来的更强的模型。因为,使用更多与目标数据集接近的预训练数据、学术数据集指令调整(例如提示一个 FLAN-PaLM 可能会带来更强的性能,它仍未公开)或者通过 RLHF 以使得模型对目标任务的更好对齐,这些都可能使得模型在目标任务中表现更好,即使有时这会牺牲在其他场景下的能力(例如,InstructGPT 的 “对齐税 / Alignment tax”)。在这种情况下,很难判断 GPT 是进行泛化和跨任务泛化,还是仅仅在预训练时就已经记住了一些测试样例,或者说见过那些在预训练时所谓 “没有见过” 的任务。然而,记忆在实践中是否真的是一个严重的问题,这仍然值得怀疑。因为用户与研究人员不同,如果他们发现 GPT 已经可以在他们的测试数据上表现良好,他们可能不会关心 GPT 在预训练期间是否看到了相同或相似的数据。不论如何,为了最大化这一节在当前的实用价值,我尽最大努力,试图比较微调公共的更小型的模型(T5、FALN-T5、一些特殊设计的微调 SOTA 模型等)和最近的 GPT-3 (GPT-3.5、InstructGPT)、PaLM(或 FLAN-PaLM)的最佳性能,如果这些模型的测评数据够获得的话。适合使用GPT-3的任务一般来说,有以下这些情况更适合使用提示 GPT-3。令人惊讶的是,如果我们回看 GPT-3 论文的介绍部分,在那里很多初始设计时的目标涵盖了这些任务。这意味着那些当初宏伟的目标已经被部分实现了。 1. 创造性和复杂的任务:包括代码(代码补全、自然语言指令生成代码、代码翻译、bug 修复)、文本摘要、翻译、创造性写作(例如写故事、文章、邮件、报告,以及写作的改进等)。正如原始的 GPT-3 文献中所示,GPT-3 被设计用于那些困难和 “不可能标注” 的任务。在一定程度上,对于这些任务,先前那种经过微调的模型不可能应用于真实世界的应用;而 GPT-3 使它们成为可能。举个例子,最近的文章显示,过去的人类标注的文本摘要已经被 LLM 生成的摘要所超越。在某些需要从低、中资源语言翻译到英语的机器翻译任务中,通过提示 PaLM-540B,它甚至能够超越微调模型。在 BLOOM-176B 中也观察到了类似的趋势。这是因为英语数据通常在预训练语料库中占了很大比例,因此 LLM 擅长于生成英语语句。注意到,为了在代码任务中获得良好性能,尽管 Codex 和 PaLM 已经在整体上具有比之前模型更好的性能,我们仍然需允许 LLM 多次(k 次)采样,以通过测试样例(使用 pass@k 作为度量)。 2. 只有少数标注或者没有标注数据的任务。正如原始的 GPT-3 文献所说,GPT-3 是为了那些 “昂贵标注” 的任务设计的。在这种情况下,用极少量标注数据微调一个更小的模型通常不可能达到 GPT-3 在零样本(zero-shot)、单样本(ont-shot)或少样本(few-shot)的情况下的表现。 3. 分布外(Out-of-distribution, OOD)泛化。给定一些训练数据,传统的微调可能会过拟合训练集并且有较差的分布外泛化能力;而少样本的上下文学习(in-context learning)能够有更好的分布外泛化性。例如,带有提示的 PaLM 能够在对抗自然语言推断任务(Adversarial Natural Language Inference,ANLI)上超越经过微调的 SOTA 模型,而它在正常的语言推断任务上可能仍然劣于微调的 SOTA。另一个例子是提示 LLM 比微调模型显示出更好的组合泛化能力。更好的分布外泛化性可能是因为在上下文学习期间不需要更新参数,避免了过拟合;或者因为那些过去的分布外样例对于 LLM 而言是分布内的。这种使用场景被阐释为 GPT-3 的初始设计目标之一:“微调模型在特定任务的数据集上的性能可以达到所谓的人类水平,实际上可能夸大了在真实世界中该任务上的性能,这是因为模型只是学到了训练集中存在的虚假的相关性,以及模型过度拟合了这个训练集狭窄的分布。” 4. 需要处理多种任务的能力,而非关注特定任务上的卓越表现。聊天机器人就是这样一种场景,其中,用户期待它能够正确地响应各种各样的任务。这可能就是为什么 ChatGPT 是 GPT-3 最成功的使用场景之一。 5. 那些检索不可行的知识密集型任务。存储在 LLM 中的知识可以显著地提高在知识密集型任务的性能,例如闭卷问答和 MMLU(一个基准数据集,包括来自于 STEM、人文、社科等 57 个学科的选择题,它用于测试 LLM 的世界知识和问题解答的能力)。然而,如果预先检索的步骤可以被加入来做检索增强的生成,一个微调的更小的模型(例如 Atlas 模型)甚至可以有更好的性能(在闭卷的 NaturalQuestions 和 TrivialQA 数据集上,Atlas 比 PaLM 和最新的 InstructGPT 都要更好)。检索或者传统的搜索同样是将 GPT-3 或 ChatGPT 整合到搜索引擎中的一个必要的步骤,这可以提升生成的准确性,并且提供更多的参考链接以增强说服力。但我们应该承认,在某些情况下,检索是不允许或者不容易的,比如参加 USMLE (美国医学执照考试),谷歌已经证明基于 FLAN-PaLM 的模型可以在其中做得很好。同样的,在 MMLU 基准集中,PaLM-540B 有着比其他微调模型更好的性能,甚至后者结合了检索,尽管最新版本的 InstructGPT 还差于这些带有检索的微调 SOTA。也请注意,指令调整一个较小的模型也可以实现与更大规模的 LLM 模型接近的效果,这已经在 FLAN-T5 中展现。 6.一些困难的任务,其中需要 LLM 的涌现能力,比如带有 CoT 的推理和 BIG-Bench 中的复杂任务(包括逻辑推理、翻译、问答、数学任务等)。举个例子,PaLM 已经展示,在 7 个包括数学和常识推理的多步推理任务上,8 - 样例的 CoT 比微调 SOTA 在其中 4 个任务上更好,在其它 3 个任务上则基本持平。这样的成功表现要同时归因于更大规模的模型和 CoT。PaLM 还显示了在 BIG-Bench 任务上从 8B 到 62B 再到 540B 模型的不连续的表现提升,这超出了规模定律(scailing law),被称为 LLMs 的涌现能力。另外,带有 5 个 Prompt 的 PaLM-540B 在 Big-Bench 的 58 项常见任务中的 44 项上优于之前的(少样本)SOTA。PaLM-540B 在 Big-Bench 的总体表现也优于人类的平均表现。 7. 一些需要模仿人类的场景,或者是其目标是制作性能达到人类水平的通用人工智能。同样的,ChatGPT 是其中的一个案例,ChatGPT 使自己更像是一个人,从而取得了现象级的成功。这也被阐释为 GPT-3 的初始设计目标之一:“人类不需要大规模监督数据集来学习大多数语言任务。最多只需要几个例子,人类就可以将各种任务和技巧无缝地混合在一起或者在它们之间切换。因此传统的微调模型导致了与人类的不公平比较,尽管他们声称在许多基准数据集中有着人类水平的性能。” 8. 在一些传统的接近于语言建模的 NLP 任务上,少样本 PaLM-540B 能够大致匹配或者甚至超过微调的 SOTA,例如:一段话最后一句和最后一个单词的完型填空,以及回指(anaphora)解析。需要指出,在这种情况下,零样本的 LLM 已经足够了,单样本或少样本的示例则通常帮助不大。另一些任务则并不需要提示(prompt)一个 GPT-3 这样规模的模型: 不适合使用GPT-3的任务1. 调用 OpenAI GPT-3 的 API 超出了预算(例如对于没有太多钱的创业公司)。 2. 调用 OpenAI GPT-3 的 API 存在安全问题(例如数据泄露给 OpenAI,或者可能生成的有害内容)。3. 没有足够的工程或者硬件资源去部署一个相似大小的模型及消除推断的延迟问题。例如,在没有最先进的 80G 的 A100 或者工程资源来优化推断速度的情况下,简单地使用 Alpa 在 16 个 40G 的 A100 上部署 OPT-175B 需要 10 秒才能完成单个样例的推断,这对于大多数现实世界的在线应用程序来说是无法接受的延迟。 4. 如果想用 GPT-3 替代一个性能良好的、高准确度的微调模型,或者想要在一些特定的单一任务和使用场景下去部署一个 NLU(Natural Language Understanding,自然语言理解)或 NLG(Natural Language Generating,自然语言生成)模型,请三思这是否值得。对于一些传统的 NLU 任务,比如分类任务,我建议首先尝试微调 FLAN-T5-11B 模型,而不是提示 GPT-3。例如,在 SuperGLUE,一个困难的 NLU 基准数据集(包括阅读理解、文本蕴含、词义消歧、共指消解和因果推理等任务)上,所有的 PaLM-540B 的少样本提示性能都劣于微调的 T5-11B,并在其中大多数任务上有着显著的差距。如果使用原始 GPT3,其提示结果与微调 SOTA 的结果之间的差距更大。有趣的是,即使是经过微调的 PaLM 也仅比经过微调的 T5-11B 有着有限的改进,而经过微调的 PaLM 甚至比经过微调的编 - 解码器模型 32B MoE 模型还要差。这表明使用更合适的架构(例如编 - 解码器模型)微调较小的模型仍然是比使用非常大的仅解码器模型更好的解决方案,无论是微调还是提示来使用这些大模型。根据最近的一篇论文,即使对于最传统的 NLU 分类任务 ―― 情感分析,ChatGPT 仍然比经过微调的较小模型差。 一些不以现实世界数据为基础的困难任务。例如,BigBench 中仍然有许多对 LLM 来说困难的任务。具体地说,在 35% 的 BigBench 任务上,人类的平均表现仍然高于 PaLM-540B,并且在某些任务中,扩大模型规模甚至无济于事,例如导航和数学归纳。在数学归纳中,当提示中的假设不正确时(例如 “2 是奇数”),PaLM 会犯很多错误。在逆规模定律竞赛 (Inverse Scaling Law Challenge) 中,也观察到了类似的趋势,例如重新定义数学符号(例如提示可能 “将 π 重新定义为 462”)后再使用这个符号。在这种情况下,LLM 中的现实世界先验知识太强而无法被提示覆盖,而微调较小的模型可能可以更好地学习这些反事实知识。 在很多多语言任务和机器翻译任务中,使用少样本的提示 GPT 仍然要比微调的更小的模型更差。这很可能是由于除英语之外的其它语言在预训练语料库中占比很少。当从英语翻译为其他语言,以及翻译高资源语言到英语时,PaLM 和 ChatGPT 仍然比在机器翻译任务上微调的更小的模型要差。对于多语言问答任务来说,在少样本的 PaLM-540B 和微调的更小模型之间还存在较大差距。对于多语言文本生成(包括文本摘要和数据到文本生成),在少样本的 PaLM-540B 和微调的更小模型之间还存在较大差距。在大部分任务上即使微调的 PaLM-540B 也仅仅比微调的 T5-11B 有有限的提升,并仍然劣于微调的 SOTA。对于常识推理任务,在最好的少样本提示 LLM 和微调的 SOTA 之间仍然存在着较大的差距,例如:OpenbookQA,ARC(包括 Easy 和 Challenge 版本)以及 CommonsenseQA(甚至使用了 CoT 提示)。对于机器阅读理解任务,在最好的少样本提示 LLM 和微调的 SOTA 之间仍然存在着较大的差距。在大多数数据集上,这个差距可能非常巨大。这可能是因为所有回答问题所需的知识都已经包含在给出的文本中,并不需要 LLM 中的额外知识。总结一下,上面的这些任务可以被归为以下类别之一: 1.一些 NLU 任务,既不需要额外的知识也不需要 LLM 的生成能力。这意味着测试数据大多数都和手头的训练数据在同一个分布之中。在这些任务上,过去微调的较小模型已经表现很好了。 2.一些不需要额外的来自 LLM 中知识的任务,因为每一个例子已经在上下文或者提示中包含了足够的知识,例如机器阅读理解。 3.一些需要额外知识,但不太可能从 LLM 中获得这样的知识,或者 LLM 不太可能见过类似分布的任务,例如一些低资源语言中的任务,LLM 在这些语言中只有有限的预训练样本。4.一些任务,需要与 LLM 中包含的知识所不一致的知识,或者并非基于现实世界的语言数据的知识。因为 LLM 是在现实世界的语言数据上训练的,它难以在新的任务中利用反事实知识覆盖原有知识。除了在逆规模定律挑战中的 “重新定义数学符号” 问题之外,还有另一个任务,即复述有细微改动的名言,其中 LLM 被要求复述一个在 prom
chat GPT脚本插件如何使用 edge浏览器的chatgpt插件在哪
ChatGPT横空出世,突然之间AI能力已经能够完成很多工作了,下面介绍一些可以提高ChatGPT使用效率的Chrome浏览器插件。可以通过语音方式直接跟ChatGPT进行交流,并且得出答案后,会直接以语音方式进行播报。其实原理也很简单,就是将人说的话转为文字,然后得出的答案调用语音播报接口转化为音频。这个能力要是优化好了,后续ChatGPT真的可能取代家教了。在百度搜索结果的右侧,展示出ChatGPT对同一个搜索结果的回答。类似上面的插件,会在Google搜索结果页右侧,展示ChatGPT生成的答案。顾名思义,这个插件是当用户进入知乎的某个问题后,在右侧展示出对这个问题的解析和回答,对于在知乎生产内容是个很好的助力,支持直接复制和刷新答案。这个插件也比较好用,在网页登录ChatGPT官网后,点击插件按钮即可使用,后面即使关闭了“梯子”也可以使用ChatGPT。以上就是今天的全部内容了,大家可以多去使用一下ChatGPT,尽快迈入下个时代。举报/反馈
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。