Powerful like GPT-3, 175 billion parameters can't handle Chinese

GPT-3 is not only huge, but also powerful?

As usual, put the address first: https://github.com/openai/gpt-3

Then we have to answer an important question: What is GPT-3?

According to the official introduction: GPT-3 is a natural language processing (NLP) model for text generation developed by the artificial intelligence research and development company OpenAI. Its predecessor, GPT-2, was once given the title of "the strongest NLP model". An important reason is that GPT-2 has a very large scale (see note below).

Note: OpenAI has released three GPT-2 models in 2019: the "small" 124 million parameter model (with 500MB on disk), the "medium" 355 million parameter model (with 1.5GB on disk), and 774 million parameter model (3GB on disk). As the last round of the GPT-2 segment release, in November 2019, OpenAI disclosed that the complete GPT-2 contains 1.5 billion parameters, including all the codes and model weights used to detect the output of the GPT-2 model.

In May 2020, the GPT-3 paper caused a sensation in the industry as soon as it was published, because this version of the model has a huge amount of 175 billion parameters.

Those familiar with artificial intelligence should know that the three elements of AI are: computing power, algorithms, and data. When the first two are basically fixed, the amount of data will play a very critical role in the effect of the AI ​​model. The impact of such a large scale of GPT-3 is self-evident.

In order to understand GPT-3 has a further, InfoQ caught up with from millet company technical experts Wei Chen is responsible for opening up the domain of dialogue and generate class tasks , as GPT had technical people practical application, she also studied GPT-3 with GPT -2 Some major changes compared to:

  • The model and structure of the two are the same, including modified initialization, pre-normalization and reversible tokenization. The difference is that alternating dense and locally banded sparse attention modes are used in each layer of the transformer, similar to Spare Transformer. The GPT-3 model is not only super-large, but also trained on a super-large data set (45TB, approximately 570GB after filtering). These enable GPT-3 to do things that other models cannot do well: perform specific tasks without any special adjustments, can do translation, write programs, write poems, write articles, and only need to provide very few/a few training samples  .


  • With the pre-train GPT-3 model, when applied to downstream NLP tasks, no fine-tuning steps are required, and custom natural language tasks can be performed basically without training samples. Other language models (BERT) require delicate fine-tuning steps and need to prepare thousands or tens of thousands of training data.


  • GPT-3 does not contain major new technologies. It is basically an enlarged version of last year's GPT-2 , and GPT-2 itself is a large version of other language models that use deep learning. All of these are huge artificial neural networks trained on text to predict what the next word in the sequence might be. GPT-3 is just bigger: 100 times bigger (96 layers and 175 billion parameters), and it has been trained with more data (CommonCrawl, a database containing a large amount of the Internet, and a huge library of books and all Wikipedia).

  • The paper compares 42 benchmarks for assessing accuracy, the comparison of model size and model performance:

    • Zero-shot learning (zero shot) model effect and model performance are improved stably; small-shot learning (few shot) model performance improves faster.


    • 横轴体现了模型效果与模型大小的幂律分布 :GPT2 大约是 1.5B, GPT-3 是 175B。前者在大多数任务上准确率只有 20% 左右,而后者接近 60%。

图片

  • 支持的任务广泛,且旨在测试快速适应不太可能直接包含在训练集中的任务的几个新任务。对于每项任务,论文在“ 零样本学习” (zero-shot learning),“ 单样本学习” (one-shot learning) 和“ 小样本学习” (few-shot learning) 的条件下进行评估, 效果有惊喜 。

魏晨本人对 GPT-3 的评价是, GPT-3 模型从看上去更加接近“通用人工智能”(AGI) ,可以动态学习,处理多种不同的任务,只需少量的标注数据。详细来说:

  1. GPT-3 支持多模态交互 (输入 / 输出可以是人类语言 / 图像 / 计算机语言 / 表格等);

  2. 能够处理多种不同的任务 (改语法错误 / 写文章 / 聊天 / 算数 / 答题 / 翻译等), 1.  支持的任务更加广泛;

  3. 可以“动态”的“学习”(零样本 / 单样本 / 小样本学习,给 0/1/ 几个样例就可以处理“新”任务);

  4. 显示语言模型的表现随模型大小,数据集大小和计算量而变化;

  5. 经过足够数据训练的语言模型可以解决从未遇到过的 NLP 任务,GPT-3 将作为许多下游任务的通用解决方案,而无需进行微调;

  6. 尽管通过增 加 模型容量可以明显提高性能,但是不清楚引擎里面发生了什么,即该模型是否已经学会推理,还是以更智能的方式记住训练示例。

另一位接受 InfoQ 采访的专家——来自 百分点的首席算法科学家苏海波 告诉记者, GPT-3 与 GPT-2 相比, 模型结构没什么变化 ,都是基于 Transformer 的 Decoder 模型以及使用单向语言模型训练方式, 但是训练数据量和模型规模差异很大 。并且 GPT-3 主要聚焦于更通用的 NLP 模型,它的文本生成能力会比 GPT-2 明显要强,可以应用的场景也挺多,包括写文章、翻译、问答、编程、数学推理、做财务报表等,而且这些场景都是一个由通用的模型来实现的。

此外,他这样评价 GPT-3:

从技术的角度来说,GPT-3 的技术思路是大力出奇迹, 本身算法上没有什么创新 ,但是在工程实现上,要实现这么大规模数据量的分布式训练,以及获得这么大尺寸的模型,还是很有技术含量的。

从商业价值的角度而言,GPT-3 目前更多处于宣传阶段,还没有通过实际商业化场景的考验,因此谈不上颠覆性的进步,需要进一步证明。

总而言之一句话:GPT-3 规模确实庞大,但是并不包含太多新技术,目前处在宣传期的 GPT-3 让人感觉其功能强大,但实际情况仍需要不断地实践以证真伪。

“完美”的 NLP 解决方案并不存在

魏晨在采访中表示,GPT-3 虽然是 OpenAI 有史以来最大的语言模型,有 96 层 Transformer Decoder 和 1750 亿个参数 (这里提供一组参数对比:ELMO 9400 万;BERT 3.4 亿;GPT-2 初版 1.1 亿;GPT-2 15.42 亿;GPT-3 1750 亿),但是规模大也就意味着训练时间和费用也会增长,GPT-3 就 需要 355 年的 GPU 时间和至少 460 万美元的训练费用

此外,GPT-3 短期内比较难支持在线使用 ,无论是从 效率 还是 可控性 的角度;如果只支持离线使用 (with API access),那么需要考虑下方式方法。GPT-3 的模型结构和算法以及如何提升预训练样本的效率,都仍有提升的空间;对于语境学习 / 常识知识以及指代关系丢失等问题,仍有待提高。

在实际效果层面,尽管 GPT-3 只需很少的信息即可执行新任务的能力令人印象深刻,但 在大多数任务上,它离人类水平还很远 。甚至在许多任务上,它的表现都无法超过最佳的微调模型。

苏海波也同样认为, GPT-3 的生成表现 只是海量文本大数据训练的结果,无法超越文本数据本身,本质上还是一个语言模型,没有通过图灵测试,它和人类的思维能力相比,还是有明显差距的,不具备人类推理的能力,例如处理一些基本的常识和简单的数学推理方面都存在着明显的失误。

不过,魏晨介绍说,GPT-3 的能力在某些任务上的扩展性比其他任务好。例如,在自然语言推理任务中,确定一条语句与一段文字的关系矛盾还是蕴含非常有挑战:这可能是因为很难使模型在较短的上下文窗口中理解该任务(模型需要完成某个任务,并且理解被询问的信息是什么),但是 GPT-3 得益于其自身庞大的数据优势,可以很好地处理这一问题。

与所有深度学习系统一样, GPT-3 也在寻找数据模式 。为简化起见,该程序已针对庞大的文本集进行了训练,并根据统计规律进行了挖掘。这些规则对于人类来说是未知的,但是它们被存储为 GPT-3 神经网络中数十亿个加权连接的不同节点之间。重要的是,此过程无需人工干预:该程序无需任何指导即可查找和查找模式,然后将其用于完成文本提示。比如,在 GPT-3 中输入“ fire”一词,程序会根据其网络中的权重知道,“ truck”和“ alarm”一词比“ lucid”或“ elvish”更有可能在“fire”之后出现。

最后,也是目前几乎绝大部分 NLP 模型都存在的问题,即在错误的提示下,可能会得到种族 / 性别歧视的输出结果。

两个月前,GPT-3 发布后不久,一位号称 GPT 系列的铁粉就在个人博客中列举了 GPT-3 令人失望的地方,他的核心观点跟魏晨类似,主要集中在“参数越来越大但一些实际问题仍然得不到解决”等方面,感兴趣的读者可以前往阅读:

《GPT-3,价值 460 万美元的语言模型

中文难题,即使强如 GPT-3 也无解?

有人提出问题:GPT-3 再强大,也是英文环境下的强大,面对复杂的中文,GPT-3 还能保持一贯的水准吗?

仅需几个示例,即可解决语言和语法难题, 这表明 GPT-3 已在无需任何特殊训练的情况下成功掌握了某些深层的语言规则。正如计算机科学教授 Yoav Goldberg 在 Twitter 上分享的那样,这种功能对于 AI 来说是“新奇的和令人兴奋的”,但这并不意味着 GPT-3 具有“精通”的语言。

魏晨说,在 NLP 任务中,中文语言是很有挑战的。与英文不同,中文需要进行分词,而英文就是天然单词;其次中文的歧义性很强,比如说“喜欢上 / 一个人”,”喜欢 / 上一个 / 人“,”喜欢上 / 一个 / 人“,这些都表达了不同的意思。

GPT 系列语言模型是单项语言模型,用户提供上文,模型可以递归自动生成下文,语言模型天生可以用于自然语言生成的任务。但是对于一系列的自然语言理解 (NLU) 的任务表现则有待确认,魏晨表示,目前一种猜想是将示例和说明作为附加的输入,并使用特定标记将示例和结果分隔开,然后输入模型进行生成。

另外,从 PLM 开始,不少研究就发现很多模型很擅长生成看起来“很符合语言结构特性”但实际并不存在的“词”或者“词组”,GPT-3 应该也难逃这个问题。所以哪怕是输入进了额外的说明信息,也依然可能生成出乍一眼看很像那么回事,但实际不知所云的东西(比如营销号生成器等)。魏晨觉得可能依然需要一些 multi-task 的任务来辅助约束 PLM 模型进行 NLU 理解人物,学习到它应该具备的推理等能力。

而从成本方面来说,苏海波告诉记者,GPT-3 的预训练使用数千亿词(45TB 数据)进行训练,拥有 1750 亿个参数,所需要的算力资源和付出的代价实在太大,为此,Microsoft 和 OpenAI 合力开发了一款超级计算机,专门用于 GPT-3 模型训练,这款计算机拥有超过 285000 个 CPU 内核、10000 个 GPU 和 400Gbps 的网络连接,光是训练费用就高达 460 万美元。

因此,苏海波认为:“ GPT-3 能产生的直接商业价值是否能弥补训练模型消耗的巨大投入,存在很大的未知和不确定性 ,还没有看到哪一家国内公司和研究机构明确要去实现中文版的 GPT-3。”

他进一步补充道,GPT-3 的目标是做一个通用的语言模型,用更少的领域数据、且不经过精调步骤去解决问题。如果存在中文的 GPT-3 模型,对于标注数据量不足的中文 NLP 场景,GPT-3 有一定的效果改善作用,但是投入产出性价比有待商榷,同时,苏海波还说:“GPT-3 能够带来一定的作用,对标注数据量的依赖会变得更少,但是从投入产出比上而言,我们有比 GPT-3 代价低得多的办法。”

用 AI 来编写代码... 真的能行吗?

分析过 GPT-3 的种种优势与短板后,现在该来聊一聊很多开发者都比较关心的问题了——GPT-3 会不会让一部分程序员“丢了饭碗”?

这个话题的起因是这样的,在陆续取得使用资格后,一些研发组织、公司或者个人开发者搞起来 GPT-3 的各种 demo:

公式生成器: 只需要输入文本就可以生成对应的数学公式。

图片

代码生成器: 输入文本,如:“生成一个像西瓜的按钮”,即可生成对应的代码及效果。

图片

虽然有些 demo 目前还有些粗糙,但也足以看出 GPT-3 的能力是不容小觑的。作为出品方的 OpenAI 也在官网上放出了一些体验项目,比如常见的聊天机器人、智能客服等等,还有 AI 自动生成的文字闯关游戏,感兴趣的读者也可以在这里体验:https://beta.openai.com/

在这些 demo 当中,各种代码生成工具引发了不小的讨论,除了上面说的简单生成一个按钮之外,GPT-3 还可以完整生成一整个页面及代码:

图片

通过文字描述生成一个谷歌搜索界面

于是就有了一些声音认为,随着 GPT-3 这样强大的模型出现,一部分程序员的工作是可以交给 AI 来处理的;当然反对的声音也很大,认为前一种想法不切实际,AI 目前仍然没有替代人类的能力。

有意思的是,随着全球对 GPT-3 话题讨论热度的攀升,就连 OpenAI 联合创始人 Sam Altman 都站出来表示:“ (网络上的)这类说法过分夸大了 GPT-3 的能力 。”

我们也就这一话题请两位专家谈了谈自己的看法,来自小米的魏晨说:

首先,技术的发展进步令人兴奋,但是看问题仍然要回归到理性。这些都是精心挑选的示例, 更多只显示有效的结果,而忽略无效的结果 。这意味着 GPT-3 的能力总体上比其细节更令人印象深刻。但是 GPT-3 也会出现简单的错误。也许我们可以检验比较一下 GPT、GPT-2 和 GPT-3 的低级错误率,看它们是否真正在避免低级错误(从一个角度讲,掌握基础知识)上有更多的进步。

她补充道,尽管 GPT-3 确实可以编写代码,但很难判断其总体用途 。比如,如何判断是整洁可执行的还是一般的代码?这样的代码上线后会不会给人类开发人员带来更多问题?没有详细的测试,这一切都很难说,即使是人类程序员也会犯错误。

其次,魏晨认为很难权衡这些错误的重要性和普遍性。如何判断几乎可以问任何问题的程序的准确性?如何创建 GPT-3 的“知识”的系统地图,然后如何对其进行标记?尽管 GPT-3 经常会出错,但有意思的是,通常可以通过微调所输入的文本(即提示)来解决这些问题。

在一个示例错误中,用户询问 GPT-3:“哪个更重,一个烤面包机或一支铅笔?”它回答说:“铅笔比烤面包机重。”学者 Branwen 指出,如果在问这个问题之前给机器喂食某些提示,告诉它水壶比猫重,海洋比尘土重,它会给出正确的响应。这可能是一个棘手的过程,但是它表明 GPT-3 有能力学习到正确的答案。

对于这类生成代码的 demo,苏海波则表示:“GPT-3 对某些编程开发工作能够有一定的辅助作用,但完全替代是很困难的 。”他认为,目前这些通过输入文字直接生成代码的演示,对于一些逻辑很简单的代码,例如前端开发中的标准化组件生成代码,容易通过文字来描述的,可以采用 GPT-3 来实现,但是逻辑稍微复杂一些的后端开发代码,不好用文字来描述的,就难以通过 GPT-3 来实现了,例如现有的 NLP 产品或者项目的代码开发工作,是很难通过 GPT-3 来替代的。

结  语

通过对 GPT-3 的介绍、优缺点分析以及生成代码实践的解析,相信读者对于 GPT-3 的情况已经有了一些了解,最后总结一下两位老师回答的重点:

  1. GPT-3 参数庞大(约 1750 亿参数),能力较之前确实有所提升,但是宣传效果有夸张成分;

  2. 受参数大小影响,GPT-3 并不是一款性价比很高的模型,训练成本较高;

  3. 中文 GPT-3 的实践尚未出现;

  4. GPT-3 确实可以通过文字输入生成代码,但是仅限于比较简单的情况;

  5. 离 AI 真正替代程序员工作, 还有较长的路要走 。

是的,GPT-3 很庞大,但是离“翻天覆地”似乎仍有一段距离,但不可否认的是,它仍然是自然语言处理甚至人工智能发展史上重要的里程碑。正如那句行业“金句”所说:“ 新技术总是在质疑中成长 ”,真正有价值的技术会最终会被认可,相信随着全行业愈发理性地看待 AI 技术的进步,如深度学习一样颠覆性的技术在不久的将来就会出现。


Guess you like

Origin blog.51cto.com/15060462/2674763