gpt2

也来玩玩目前最大的中文GPT2模型(bert4keras)

断了今生、忘了曾经 提交于 2020-11-27 20:50:27
©PaperWeekly 原创 · 作者|苏剑林 单位|追一科技 研究方向|NLP、神经网络 相信不少读者这几天都看到了清华大学与智源人工智能研究院一起搞的“清源计划”(相关链接 《中文版GPT-3来了?智源研究院发布清源 CPM —— 以中文为核心的大规模预训练模型》 ),里边开源了目前最大的中文 GPT2 模型 CPM-LM(26 亿参数),据说未来还会开源 200 亿甚至 1000 亿参数的模型,要打造“中文界的 GPT3”。 ▲ 官方给出的CPM-LM的Few Shot效果演示图 我们知道,GPT3 不需要 finetune 就可以实现 Few Shot,而目前 CPM-LM 的演示例子中,Few Shot 的效果也是相当不错的,让人跃跃欲试,笔者也不例外。既然要尝试,肯定要将它适配到自己的 bert4keras 中才顺手,于是适配工作便开始了。本以为这是一件很轻松的事情,谁知道踩坑踩了快 3 天才把它搞好,在此把踩坑与测试的过程稍微记录一下。 模型介绍 该计划发布的第一个模型称为 CPM-LM,参数大约为 26 亿,预训练中文数据规模 100GB,是一个单向的语言模型,其他细节大家自行到下面的链接阅读就好。这么大的参数量,一般我们都是直接使用而不考虑去 finetune 它的了,它所具备的能力就是无条件地随机生成文本,当然我们也可以实现给它一些引导,然后用它来实现文本续写

Anaconda环境下GPT2-Chinese的基本使用记录

人走茶凉 提交于 2020-10-24 20:00:10
偶然在看到了这个项目,感觉很厉害,于是就折腾了下,跑了一跑 项目地址: https://github.com/Morizeyao/GPT2-Chinese 如果Github下载太慢的可以用这个代下载: https://toolwa.com/github/ 环境准备 1.pytorch 的安装 由情况选择版本安装,安装CPU版本梢简单 # 安装时官方源下载比较慢,要换源 conda install pytorch torchvision cpuonly -c pytorch # 如果cnda装不了 选择pip的方式进行安装 # pip也要指定源 pip install torch==1.5.1+cpu torchvision==0.6.1+cpu -f https://download.pytorch.org/whl/torch_stable.html Anacoda 换源 onda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ # 设置搜索时显示通道地址 conda config --set show

是不是有一天想象着让代码自动补全,今天他来了!!!

僤鯓⒐⒋嵵緔 提交于 2020-10-22 18:12:55
作者:熊唯,黄飞 ,腾讯 PCG/QQ研发中心/CV应用研究组 AI 如果真的可以写代码了,程序员将何去何从?近几年,NLP 领域的生成式任务有明显的提升,那通过 AI 我们可以让代码自动完成后续补全吗?本文主要介绍了如何使用 GPT2 框架实现代码自动补全的功能。 如果 AI 真的可以自己写代码了,程序员将何去何从? 我去年做过一个代码补全的小功能,打包为 androidStudio 插件,使用效果如下: 代码补全模型预测出的结果有时的确会惊吓到我,这也能学到~? 那如果给它见识了全世界的优秀代码,再给足够量级参数和优秀的模型框架,真的可以实现需求作为输入,直接输出代码吗? "我的需求讲完了,你的代码呢?" 希望可以看到这一天。 代码补齐功能有其他优秀插件也已实现,比如 tabnine,Kite 和国产的 aixcoder。本文主要介绍下代码补全功能需要实现的整套流程。主要包括数据,算法和工程。 数据 众所周知,算法工程师大部分时间都在处理数据。 深度学习是使用大数据训练模型的一个过程,数据是很重要的一个模块。人是会累的,休息不好还导致记忆不好。AI 是你给多少数据它就能存储接收多少数据,学不到信息那是人的错,给的数据不好或者算法设计不好。所以我们先尽可能多的准备好训练数据。 1、数据采集 本文的目的是代码补全,训练数据就是代码段。考虑到每种语言风格和语法都不一致

有人说 GPT3 是“暴力美学”的结晶,它的工作原理你知道吗?| 动图详解

霸气de小男生 提交于 2020-10-22 12:09:33
来源:CSDN 如今,在科技领域掀起了一股GPT3的热潮。大规模语言模型(比如GPT3)的潜力惊艳了我们。虽然这些模型还没有成熟到大多数企业将之直接面对消费者,但却展示出一些智慧的火花,并让人坚信其将会加速自动化的进程,让人看到智能计算系统的希望。让我们拂去GPT3的神秘光环,来看一看它训练与工作的原理吧! 一个经过训练的GPT3语言模型可以生成文本。 我们可以选择一些文本作为输入,从而影响它的输出。 输出是由模型在扫描大量文本的训练期间 "学到 "的东西生成的。 训练是将模型暴露在大量文本中的过程。它已经做了一次并完成了。你现在看到的所有实验都是来自那个训练过的模型。据估计,它耗费了355个GPU年,花费了460万美元。 一个有3000亿个字符的数据集被用来生成模型的训练样本。例如,这是由上面那句话生成的三个训练样本。 你可以看到你如何在所有文本上滑动一个窗口,并生成很多例子。 当我们只给模型一个样本时:我们只给看特征,并让它预测下一个单词。 该模型的预测将是错误的。我们计算其预测中的错误,并更新模型,以便下次它做出更好的预测。 重复这个过程数百万次 现在让我们更详细地看看这些相同的步骤。 GPT3实际上一次只生成一个token的输出(现在我们假设一个token是一个词)。 请注意:这是对GPT-3工作原理的描述,而不是对它的新颖之处的讨论(主要是规模大得可笑)。其架构是基于的

搜索,然后学习:两阶段的无监督文本生成

寵の児 提交于 2020-10-21 02:02:39
论文标题: Unsupervised Text Generation by Learning from Search 论文作者: Jingjing Li, Zichao Li, Lili Mou, Xin Jiang, Michael R. Lyu, Irwin King 论文链接: https://arxiv.org/abs/2007.08557 文本生成是自然语言处理的核心任务之一,很多应用如机器翻译、文本摘要都依赖于文本生成技术。一个高质量的文本生成模型往往需要大量的标注数据,这就从数据上限制了模型的发展。 本文提出TGLS——一种基于“先搜索后学习”的无监督文本生成方法,模型反复迭代,最终能生成较高质量的文本。 在复述生成和文本正规化两个任务上,TGLS能显著超越之前所有的无监督模型,甚至逼近有监督模型效果,体现出无监督学习的强大潜力! 无监督文本生成 机器翻译是最为常见的文本生成任务,但是要得到一个高质量的机器翻译系统,一定数量的平行语料是必不可少的。 尽管也有很多工作研究了不依赖平行语料的机器翻译模型,但目前为止,它们和有监督相比仍然不能望其项背。 但是一个事实是,无论是什么任务,平行语料总归是极少数,无标注语料却随处可见,如何充分利用这些语料训练文本生成模型,从而生成高质量的文本,是未来一个非常具有发展潜力的研究方向。

一文了解NLP中的数据增强方法

别等时光非礼了梦想. 提交于 2020-08-13 18:46:06
最近研究了一阵文本数据增强的方法,看到国外有一个小哥写了一篇很不错的博客来总结 NLP 领域数据增强的方法,读完感觉收益颇多,所以周末花了一上午时间翻译了一下全文。 原文地址: A Visual Survey of Data Augmentation in NLP 翻译:简枫(转载请私信或邮件) 数据增强技术在计算机视觉中应用的比较广泛,但是在 NLP 中却很少能得到有效的应用。本质原因在于图像中的一些数据增强方法,比如将图像旋转几度或将其色度转换为灰度,在增强数据的同时并不会改变图像本身的含义。这种特性使得数据增强成为计算机视觉研究中的一种重要工具。 不同于 CV,NLP 中想要做数据增强,明显困难很多 我对是否有人尝试去开发 NLP 相关的数据增强技术很感兴趣,所以找时间研究了一下现有的文献。在这篇文章中,我会努力去概述当前用于文本数据增强的方法,同时也提供对应的参考文献,供大家学习。 NLP 里面数据增强的常用方法 1. 词汇替换 这一类的工作,简单来说,就是去替换原始文本中的某一部分,而不改变句子本身的意思。 1.1 基于同义词典的替换 在这种方法中,我们从句子中随机取出一个单词,将其替换为对应的同义词。例如,我们可以使用英语的 WordNet 数据库来查找同义词,然后进行替换。 WordNet 是一个人工维护的数据库,其中包含单词之间的关系。 使用 WordNet

是不是有一天想象着让代码自动补全,今天他来了!!!

爷,独闯天下 提交于 2020-08-04 11:57:39
作者:熊唯,黄飞 ,腾讯 PCG/QQ研发中心/CV应用研究组 AI 如果真的可以写代码了,程序员将何去何从?近几年,NLP 领域的生成式任务有明显的提升,那通过 AI 我们可以让代码自动完成后续补全吗?本文主要介绍了如何使用 GPT2 框架实现代码自动补全的功能。 如果 AI 真的可以自己写代码了,程序员将何去何从? 我去年做过一个代码补全的小功能,打包为 androidStudio 插件,使用效果如下: 代码补全模型预测出的结果有时的确会惊吓到我,这也能学到~? 那如果给它见识了全世界的优秀代码,再给足够量级参数和优秀的模型框架,真的可以实现需求作为输入,直接输出代码吗? "我的需求讲完了,你的代码呢?" 希望可以看到这一天。 代码补齐功能有其他优秀插件也已实现,比如 tabnine,Kite 和国产的 aixcoder。本文主要介绍下代码补全功能需要实现的整套流程。主要包括数据,算法和工程。 数据 众所周知,算法工程师大部分时间都在处理数据。 深度学习是使用大数据训练模型的一个过程,数据是很重要的一个模块。人是会累的,休息不好还导致记忆不好。AI 是你给多少数据它就能存储接收多少数据,学不到信息那是人的错,给的数据不好或者算法设计不好。所以我们先尽可能多的准备好训练数据。 1、数据采集 本文的目的是代码补全,训练数据就是代码段。考虑到每种语言风格和语法都不一致