../gpt3fen-xiang

GPT3 分享

Table of contents

Category

前情提要 / GPT-3 介绍 / ChatGPT体验 / GPT-3 的应用 / 一些其他思考


前情提要

这里「GPT-3」仅模糊地指代 GPT-3 模型与 GPT-3.5 模型,不做严格区分,因为两种模型的训练方式是基本一致的,主要区别在于参数规模,这也是 InstructGPT 与 ChatGPT 的主要区别之一。

你跟ChatGPT聊过天了吗?

你跟ChatGPT聊过天了吗?

我们除了跟ChatGPT聊天还能做什么?你愿意为了ChatGPT改变你的提问方式吗?ChatGPT可以怎样提高我们的效率?你认可ChatGPT作为一个工具的存在吗?GPT-4来了,它与ChatGPT会有什么区别呢?

从介绍 ChatGPT 的家族模型 GPT-3 开始,希望让 ChatGPT 更加立体,对这个黑盒有新的观察角度。

GPT-3 介绍

ChatGPT 与 它的原型 InstructGPT 都是基于 GPT-3 模型 fine-tuned 的结果。了解 GPT-3 模型是如何进行训练的,我们也就更能理解 ChatGPT 擅长以及不擅长什么。

Paper address: Language Models are Few-shot Learners

论文笔记:GPT3 - Note

GPT 即 Generative Pre-trained Transformer,从它的名字可以看出这个模型使用了 transformer 语言模型的方式进行了泛化的预训练。预训练完成的 GPT-3 经过 fine-tuning 之后便得到了 ChatGPT。我们会说 GPT 是一个自回归的 transformer,这是指它的预训练方式是无监督的,并且能够动态地将前序的上下文信息加入到输入中来决定输出。这也是 GPT 与 RNN (Recurrent Neural Network,前一代语言处理的主流模型之一)的区别所在,即在利用前序输入的时候,相对 RNN 的 short-term denpendency,GPT 具有 long-term 的特点 —— 这里(长期)依赖是指模型能否根据(迄今为止的所有)输入来决定输出,RNN 同样具有这个能力,只是它的依赖更短期,即上下文窗口更小。

为啥要无监督训练呢?对于语言处理来说,学习语言结构的方法相比词句概率统计来说可以获得更好的结果,通用的无监督方法相比早期的有监督方法更擅长学得语言结构。此外,无监督方式具有更好的泛化能力。

GPT-3 如何进行 Fine-tuning

Fine-tuning of ChatGPT

Reference: Introducing ChatGPT. Fine-tuning 的过程都是有监督的。第一步是 few-shot learning,模型在一个prompts构成的小数据集上进行学习,标注员对输出做 ranking。这一步之后模型将更加 task-specific(tasks指 生成代码/生成文章/完形填空)。第二步是通过人工构建少量样本来训练一个小的反馈模型,小模型用于对下一步大模型的输出结果进行评判。这一步中的少量样本将约束模型的输出应该应该具有什么样的格式/风格。第三步将小反馈模型与大模型串联起来,辅助大模型再优化输出的表达方式。

了解一个模型时,可以把它看成一个串联了很多函数的超级函数,它需要一个输入,最后有一个输出,人设定的任务目标将约束它的输出。GPT-3 作为一个语言模型,它的原始输入是文本,最终输出也是文本,它的任务是学习文本生成,因此它的输出文本不是简单的复制粘贴,而是类似统计概率,将预测具有最大出现概率的词作为输出。

GPT-3 的训练数据是海量的文本数据集,这些文本数据来源占比从大到小有 公共网页数据(Common Crawl),有Reddit的博文数据(WebText2),书籍(Books1+Books2),与一些英文维基百科。

GPT dataset

Reference: 2023 LifeArchitect.ai data - Contents of GPT-3/Pile/Megatron/CC

而模型训练的过程是反复学习输入,达到设定输出的过程。GPT 的输入在这个过程中得到了负责纠偏的 prompt 的增强。这里 prompt ****是指人定义了一个标准答案,告诉模型期望的输出应该是这样的格式。我们说 GPT-3 的训练方式是 Few-shot learning,这里 Few-shot 就是指这样的 prompts(有时也用 demonstration 来描述)。

Prompt 的加入是为了纠偏,为什么需要纠偏呢?因为模型的输出与标准答案之间的差距太大了。我们有 函数 cost reduction 来衡量这个差距:cost reduction 越快越多,就说明模型的输出离标准答案越来越近。

当设定了不同的目标任务时,纠偏的方向就会不一样了。Fine-tuning 就是纠偏的过程。纠偏之后的模型将不可避免地是 task-specific 的,这意味着换了一个task,模型就可能表现很差。

为了解决这个问题,模型泛化成为了重要的一个课题。平衡好模型 generative 的能力,可以低成本地将模型迁移到其他数据集/任务上进行 fine-tuning,一个 GPT-3 模型也就能异化成为专注对话的InstructGPT及ChatGPT,和专注代码生成的Codex。

GPT family

Reference: How does GPT Obtain its Ability? Tracing Emergent Abilities of Language Models to their Sources. 可以看到GPT家族的扩展主要在 pre-training 之后的 fine-tuning 阶段完成。这里有 few-shot learning / Instruction tuning / RLHF 等方法来完成 fine-tuning。

论文中对模型的表现基于这些具体任务进行了分析:

其中GPT-3做的比较好的是:

翻译,百科问答,传统任务:完形填空,即兴问题,领域适应。

GPT-3 的边界

除了论文中提到的边界,GPT-3 还存在一些其他表现上的问题,本质上仍是受制于输入数据。当将网上收集的大量文本作为训练数据时,首先需要考虑如果这些文本没有经过事实核查,则模型的结果可能真假参半。这是模型缺乏解释性的表现之一。其次,虽然该模型能够使用多种语言,但并不意味着它在每种语言上的专业水平都是一致的。由于输入的文本以英文为主,英语有可能是GPT-3在表达方面最擅长的语言。第三,训练数据集的时效性也会影响GPT-3在问答任务上的表现,时事类的问题基本上得不到很好的答案。最后,plagiarism的问题无法得到保证,因为GPT-3无法为生成的回复给出对应的参考文献。

针对这些边界,GPT-3可能会有什么方向的发展呢?

首先还会扩大模型与训练的规模吗?答案是肯定的,模型预备支持多模态的输入,即除了文本以外,还将加入图片/图表的形态。第二Alignment工作也将是校正模型输出的一个重要方向,即让模型输出更靠近人类的礼仪伦理。

ChatGPT体验

百科式问答降低了一些搜索场景的成本。原来的搜索路径(搜索关键词 → 浏览几个高排名网页 → 自己总结 → 为了验证总结继续搜索)变得更简单了:向bot提问 → 得到总结性回答。值得注意的是,bot的回答并没有 fact-check,我们仍需要自己进行 fact-check,也可以要求bot再给出 references(虽然这个reference也不一定可信)。总的来说,百科式问答可以替代掉一些搜索,但回答置信度的判断需要自己把握,同时需要进行 verify。

Plagiarism问题。Plagiarism 是对人的约束,而bot做的是生成文本,不会直接复制粘贴,因此严格来说不会有抄袭问题。但bot可能会转述引用而无法明确出处。

英文看起来还是bot最擅长的语言。bot对中文理解得不如英文好,虽然做翻译工作没有问题,但不意味着能够处理好中文提问。

OpenAI后期给bot加上的伦理约束让它没意思了很多。。但转换一下提问方式,还是能够让它继续回答的。提任何问题的时候同理而言,可以转换一下提问方式,或许能够得到更好的回答。

会讲废话(verbose,TL;DR),喜欢三/五段式陈词(除了道歉就是小作文格式)。

读论文/总结要点/rephrasing 还是蛮好用的。

查时事新闻就别想了。

还有哪些聊天Bots?

2023 LifeArchitect.ai data - Summary: Current models

Reference:GPT3.5 + ChatGPT: An illustrative overview

GPT-3 的应用

除了ChatGPT,或许下面这些应用也能引起你的兴趣。

我想开发一个菜谱bot,怎么做呢

→ 选择一个合适的模型:OpenAI 的 fine-tune API / fine-tune frameworks(比如Hugging Face 上的 Transformers

→ 准备一个小数据集,有一些prompts,用来告诉bot一个菜谱应该怎么描述

prompts选择:instruction prompts / completion prompts / demonstration prompts (few-shots) / fine-tuned prompts (for models has been custom trained on similar prompt-completion pairs).

Reference:OpenAI Cookbook - How to work with large language models

→ 进行训练:API方式不需要自己的机器,但速度会受制于自己的带宽;frameworks方式:@todo

选择模型时,我们可以使用现成的:GPT-3.5。也可以基于GPT-3来 fine-tune 自己的。

Model FamiliesGood At
TurboConversation & text generation
DavinciComplex intent, Cause & effect, Summarization for audience
CurieLanguage translation, Complex classification, Text sentiment, Summarization
BabbageModeration classification, Semantic search classification
AdaParsing text, Simple classification, Address correction, Keywords

效率工具

Notion-ai

Ask Notion AI to continue write something right here.

copilot1copilot2copilot3

OpenAI的其他模型API

除了专做文本/代码生成的自然语言模型 GPT-3.5 与 GPT-3,还有——

更多请见:How many models choice do i have?

一些其他思考

围绕 ChatGPT 已经出现了很多争论,比如不正当使用、冒犯性内容生成的问题,OpenAI正在力图通过 Alignment 的工作解决这样的伦理问题,这个过程中将不可避免地约束模型的生成能力,回答的有用性也将因此打折。当然还有法律法规的问题,科技发展超前于法规的制定是常有的事情,而这些技术在国内外触达上还多了电子围墙的限制。除了这些争论以外,还有这样一些值得注意的现象与问题:

补充说明

/GPT/