自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Training a GPT-2 language model
目录
GPT模型简介
- 生成式预训练转换器(GPT)是由OpenAI团队构建的一系列基于深度学习的语言模型。GPT-3是一个预先训练过的NLP系统,提供了5000亿标记训练数据集,包括*(wikipedia)和通用爬网(Common Crawl),它可以抓取大多数互联网页面。据称,由于其xunl数据集的全面性,它不需要特定领域的培训。
5000亿标记论文:https://arxiv.org/pdf/2005.14165.pdf
-
零次学习(Zero-shot Learning)
训练集中没有某个类别的样本, 对于 训练集 中没有出现过的类别,模型自动创造出相应的映射 -
一次学习(One-shot Learning)
训练集中,每个类别都有样本,但都只是少量样本(只有一个或几个)。此时,我们可以在一个更大的数据集上或者利用knowledge graph、domain-knowledge 等方法,学到一个一般化的映射,然后再到小数据集上进行更新升级映射。 -
少量学习(Few-shot Learning)
训练集中包括少量样本,学习一般化映射,能应用到新问题。
通用爬网(Common Crawl):https://commoncrawl.org/
-
GPT-3实现可能需要语言理解和技术成熟度的任务。示例表明,它可以解释复杂文档、启动操作、生成代码。应用领域包括客户服务(如协助客户查询)、营销(如撰写吸引人的副本)或销售(如与潜在客户沟通)。
https://research.aimultiple.com/gpt/ -
GPT-3在生产中不常用,可能的应用:
编码:在众多的在线演示中,用户展示了GPT-3将人类语言指令转化为代码的能力。但是,请注意,这些都不是健壮的、可生产的系统。它们基于GPT-3潜力的在线演示:python:GPT-3已经能够用Python编写基本任务。
SQL:GPT-3可以从简单的文本描述中自动生成SQL语句,而无需人工操作员的帮助。
深度学习: GPT-3已被用于构建机器学习和深入学习框架(如Keras)的代码。
DevOps服务:它已被用于创建、删除或列出云上的DevOps服务。如果它能够以一种健壮、可预测的方式工作,它将能够自动化这些服务的管理。
前端设计 :它可以使用CSS或JSX根据用户规范生成网站布局。
聊天机器人: GPT-3能够继续进行类似人类的对话,使其成为理想的聊天机器人,并且已经编写了许多GPT-3聊天机器人,仍有潜力改进当今的聊天机器人。无需针对具体案例进行预训练;它能够翻译,回答抽象的问题,并作为一个搜索引擎与确切的答案,包括源链接。
https://research.aimultiple.com/chatbot/
自动完成:GPT-3是为自动完成而构建的,是最人性化的系统,正如IDEO团队所解释的那样,他们将GPT-3用作头脑风暴的合作伙伴。
GPT-3源代码仍然是私有的,用户只能使用黑盒API进行实验,GPT-3与人工通用智能(AGI)相去甚远。它能够理解语言的结构,将单词按正确、自然的发音顺序排列,这是一项伟大的成就。然而,它缺乏对词义的理解,因此可能产生无意义或错误的陈述。
GPT-4的下一步是什么?
就训练数据规模和处理能力而言,GPT-3是最先进的NLP系统。埃隆·马斯克说:“从最初的GPT到GPT-3的改善速度令人印象深刻。如果这种改善速度继续下去,GPT-5或6可能无法与最聪明的人类区分开来。”。我们对此感到乐观。
-
GPT-3花了数千万/数亿美元建造。一次训练费用估计为460万美元,需要多次训练才能调整训练过程。这只是计算成本,往往是总成本的一小部分。一个大型研究团队(31名研究人员合著了这篇文章)和支持工程团队的工资将是另一个巨大的成本项目。
-
GPT-3比迄今为止建造的最大NLP模型大±10倍。
-
为了实现类似的改进,研究人员需要投入数亿甚至数十亿美元。这对于商业应用有限的研究项目来说是不现实的。
尽管OpenAI在创建类人语言方面取得了重大进展,但在创建具有逻辑推理能力的模型方面几乎没有取得任何进展。商业应用很难依赖没有逻辑推理的模型。
- 2021北京智源大会的资料
https://www.bilibili.com/video/BV1To4y1y74B?p=2
Training a GPT-2 language model
我们将在自定义数据集上训练GPT-2模型, 然后将与定制的模型交互。使用training_OpenAI_GPT_2.ipynb
Step 1: Prerequisites
先决条件 :
-
使用GPU环境
-
使用内置的文件:train.py、load_dataset.py、encode.py、accumulate.py、memory_saving_gradients.py。
-
使用文件管理器将dset.txt上传相关目录,使用的kant.txt数据集
星空智能对话机器人系列博客
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 多头注意力架构-通过Python实例计算Q, K, V
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 多头注意力架构 Concatenation of the output of the heads
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 位置编码(positional_encoding)
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 KantaiBERT ByteLevelBPETokenizer
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 KantaiBERT Initializing model
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 KantaiBERT Exploring the parameters
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 KantaiBERT Initializing the trainer
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 KantaiBERT Language modeling with FillMaskPipeline
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 GLUE Winograd schemas and NER
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Workshop on Machine Translation (WMT)
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Pattern-Exploiting Training (PET)
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 The philosophy of Pattern-Exploiting Training (PET)
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 It‘s time to make a decision
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Text completion with GPT-2
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Text completion with GPT-2 step3-5
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Text completion with GPT-2 step 6-8
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Text completion with GPT-2 step 9