HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    gpt2模型的下载

    发布时间:2023-03-13 00:08:25     稿源: 创意岭    阅读: 81        问大家

    大家好!今天让创意岭的小编来大家介绍下关于gpt2模型的下载的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    ChatGPT国内免费在线使用,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    本文目录:

    gpt2模型的下载

    一、bigquant怎么调用gpt

    BigQuant 是一个基于 Python 的量化交易平台,可以通过编写 Python 代码来进行量化交易策略的研究和实现。如果想在 BigQuant 中调用 GPT 模型,您可以按照以下步骤操作:

    1. 在 BigQuant 平台上新建一个项目,并将 GPT 模型的代码和训练好的模型文件上传到项目的目录中。

    2. 在代码中导入 GPT 模型,并调用模型进行预测。例如:

    ```python

    import torch

    from transformers import GPT2Tokenizer, GPT2LMHeadModel

    tokenizer = GPT2Tokenizer.from_pretrained('gpt2')

    model = GPT2LMHeadModel.from_pretrained('./model/') # './model/' 是你上传到 BigQuant 项目中的 GPT 模型文件所在的路径

    # 要生成的文本前缀

    text = '今天天气怎么样'

    # 预测生成概率最高的词,并将结果输出到控制台

    input_ids = torch.tensor(tokenizer.encode(text)).unsqueeze(0)

    with torch.no_grad():

    outputs = model(input_ids, labels=input_ids)

    loss, logits = outputs[:2]

    pred = tokenizer.decode(logits[0].argmax(dim=-1).numpy())

    print(pred)

    ```

    在代码中,我们首先导入了 GPT 模型所需的库 torch 和 transformers(GPT2Tokenizer 和 GPT2LMHeadModel)。然后,我们使用 GPT2Tokenizer.from_pretrained 函数和 GPT2LMHeadModel.from_pretrained 函数分别加载了 GPT 模型的预训练权重和训练好的模型。接下来,我们定义了要生成文本的前缀,并使用模型进行预测。预测过程中,我们使用 torch.no_grad() 上下文管理器来避免计算梯度,以提高计算效率。最后,我们将预测的文本输出到控制台中。

    请注意,由于 GPT 模型的计算要求较高,可能需要在 BigQuant 平台上分布式计算才能获得更好的效果。

    二、GPT的auto-regressive语言模型架构在信息表示方面有什么架构上的缺陷?具体如何改进?

    1) GPT

    在Bert 之后,OpenAI 的 GPT-2 就是其中之一。它在文本生成上有着惊艳的表现,其生成的文本在上下文连贯性和情感表达上都超过了人们对目前阶段语言模型的预期。仅从模型架构而言,GPT-2 并没有特别新颖的架构,它和 transformer 的 Decoder 类似。相比较于GPT-1,GPT -2 使用了更大的预料,更大和更深的模型。

    从transformer的decoder里移除了decoder对encoder的attention部分。也就是消除掉了seq2seq的过程。

    GPT是一个语言模型,每一个时刻只能看见当前时刻前面时刻的信息,是一个auto regressive的过程。

    GPT2,hidden state的大小有变化,根据层数的多少有small,medum,large,extra large的划分。

    GPT的训练过程是交叉式的预测下一个单词,测试的时候是输入一个句子生成另外一个句子。

    GPT的预训练就是训练一个语言模型。而bert的预训练是masked language model和nsp的任务。

    GPT由多个decocer block组成,每一个decoder block由masked self-attention和feed forward neural network组成。

    一个timestamp的hidden state经过线性层转换为vocab size大小的embedding, 然后经过softmax,算出每个词汇的概率,找出其中概率最大的词作为预测输出,然后下一个时刻的词作为真实输出,计算两者的cross entropy来训练模型。

    每一个timestamp后面的位置都mask掉,设置一个负无群大的值,做softmax的时候,该位置的值就为0。

    2)总结

    • transformer decoder的构造

    • 预训练的时候做语言模型的训练

    • GPT2用更多更深的block

    • BERT是做NLU,generation做不了

    • GPT天生就是语言模型,非常适合做generation的任务,在bert里能做的在gpt里也可以做

    • 除了GPT-2 ,GPT-3依旧延续自己的单向语言模型训练方式,只不过把模型尺寸增大到了1750亿,并且使用45TB数据进行训练

    三、BERT预训练模型

    n-gram语言模型:根据前面n个词预测当前词,它的缺点是,一般只能取1-2,n越大计算成本越高,这就使得它关注的信息是非常局限的。

    预训练语言模型:wordvec\glove\fasttext。wordvec是根据周围词预测当前词或当前词预测周围词,相比于n-gram,它关注了下文,但它仍然是关注局部信息。glove通过构建词频共现矩阵来训练词向量,将全局信息融入到词向量中。fasttext仍然是局部的,只是他分词是基于subword,对于oov词相对友好。三者共同的缺点是,无法解决一词多义问题。

    高级语言模型:elmo\GPT,elmo采用1层静态向量+2层单向LSTM提取特征,并且能够解决一词多义,elmo是一个双向语言模型,但实际上是两个单向语言模型(方向相反)的拼接,这种融合特征的能力比 BERT 一体化融合特征方式弱。GPT采用Transformer的decoder单元提取特征,同样也可以解决一词多义问题,但GPT是单向的。所以,对上下文信息的融合,二者能力还不够。

    bert是双向语言模型,句子没有shift_mask操作,所以是完整的上下文环境,证实了双向语言模型对文本特征表示的重要性。bert同时证实了预训练模型能够简化很多繁重任务的网络结构,在11个nlp任务上都有显著提升。

    bert采用Transformer的encoder单元提取特征,encoder中包含几个重要的机制:self-attention、muti-head attention、position encoding。

    bert分为bert_base和bert_large大小两个模型,bert_base采用了12个encoder单元,768维隐藏层,12个attention。bert_base采用了24个encoder单元,1024维隐藏层,16个attention。

    input:单句或句对组合,有[cls]作为句子开头的标记,[sep]作为句子分隔和结束的标记。

    token embedding:对于英文采用WordPiece embeddings,也就是一个单词会被拆成词根词缀的,比如图中的playing被拆成了play和ing两个token;对于中文,就是单子拆分。

    segment embedding:相邻句子采用不同的标志分隔,形如111111111100000011111100000。

    position embedding:在transformer中,单词之间是没有先后顺序的,而语言本身是有序的,所以采用采用正余弦函数来计算每个单词的先后顺序,这种方式有点勉强,算是折中方式。

    前面讲到elmo也是双向语言模型,它是采用bi-LSTM来提取特征,如下:

    比如一句话:‘北京是中国的首都’,在LSTM中从左往右,预测‘中国’的时候只能看到‘北京’,从右往左,预测‘中国’的时候只能看到‘首都’,然后将两个lstm的输出做拼接来达到上下文信息融合的目的。其实是没有完全做到双向,只是以结构的改变来接近双向语言模型。真正的双向是预测‘中国’的时候,需要同时看到‘北京’和‘首都’。由此,mask LM产生了。

    mask LM的原理是将‘中国’遮盖住,同时用‘北京’和‘首都’来预测‘中国’。‘北京’和‘首都’联系起来语言模型很容易联想到就是‘中国’啦。这个思想和wordvec的CBOW模型如出一辙,就是用周围词预测当前词,只是这个思想放在厉害的transformer中,便能大显其能。

    BERT的mask方式:在选择mask的15%的词当中,80%情况下使用mask掉这个词,10%情况下采用一个任意词替换,剩余10%情况下保持原词汇不变。这样mask的优点是什么?

    1)被随机选择15%的词当中以10%的概率用任意词替换去预测正确的词,相当于文本纠错任务,为BERT模型赋予了一定的文本纠错能力;

    2)被随机选择15%的词当中以10%的概率保持不变,缓解了finetune时候与预训练时候输入不匹配的问题(预训练时候输入句子当中有mask,而finetune时候输入是完整无缺的句子,即为输入不匹配问题)。

    在Mask LM任务中,模型学到了词与词之间的关系,而NSP任务是要模型学到句子与句子之间的关系,比如问答、推理等。它将训练语料分为两类,一是将50%语料构建成正常语序的句子对,比如A-B句子对,B就是A的实际下一个句子,并做标记为isnext;二是将50%语料构建成非正常语序句子对,B是来自语料库的随机句子,并做标记为notnext。然后通过对句子对的关系做分类,预测B到底是不是A句子的下一个句子,使模型具有句子级别的识别能力。

    微调的目的在于我们的任务与bert预训练任务是不一致的,但是bert是非常好的语言模型,他具备提取词法和句法的强大能力。将bert嵌入到我们的网络结构中,能够简化在语言模型方面的复杂结构。只需要将输入做成和bert适配的格式就行,而在bert后面接上全连接、CNN等简单模型进行训练,就能够使训练得到一个比较好的效果。

    GPT 和 BERT 都采用Transformer,Transformer 是encoder-decoder 结构,GPT 的单向语言模型采用 decoder 部分,decoder 的部分见到的都是不完整的句子;BERT 的双向语言模型则采用 encoder 部分,采用了完整句子。他俩最主要的区别在于BERT是双向语言模型,更适合文本分类等任务,GPT是单向语言模型,更适合生成式任务。

    1)低层网络捕捉了短语级别的结构信息

    2)表层信息特征在底层网络(3,4),句法信息特征在中间层网络(6~9),语义信息特征在高层网络。(9~12)

    3)主谓一致表现在中间层网络(8,9)

    1)ROBERTA

    •静态mask->动态mask:在bert中每一个epoch被mask的是相同的词,而ROBERTA在每一个epoch结束,重新随机15%的词,使不同的词被mask。

    •去除句对NSP任务,输入连续多个句子:在bert中最长是512个token,输入单句或者句对不容易把512个token占满,ROBERTA输入更多句子占满512个坑位。

    •训练使用更多数据 更大batch size 更长时间

    2)ALBERT

    •减少参数:词表 V 到隐层 H 的中间,插入一个小维度 E,即一个VxH的embedding变成两个VxE, ExH的两个fc。

    •共享所有层的参数:Attention 和 FFN,在bert中每一层的Attention 和 FFN的参数是不一样的。

    •SOP 替换 NSP:负样本换成了同一篇文章中的两个逆序的句子,bert中是A-->B和A-->随机,ALBERT中是A-->B,B-->A。

    •BERT对MASK 15% 的词来预测。ALBERT 预测的是 n-gram 片段,包含更完整的语义信息。

    •训练数据长度:90%取512,BERT90% 128

    •对应BERT large:H:1024 ->4096  L:24->12  窄而深->宽而浅

    四、chatgpt训练了多少次

    以内

    GPT-2被训练了数千次,每次训练都会改善模型的性能。GPT-2最初是由OpenAI开发的,他们使用了超过40亿个英语语料库来训练它,这使得GPT-2的准确性比其他机器学习模型更高。随着更多的训练,GPT-2变得更加准确和强大,并且可以用于多种应用,包括聊天机器人、自动问答系统、文本生成和自然语言理解等。

    以上就是关于gpt2模型的下载相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    openai和chatGPT什么关系(openai和chatGPT什么关系)

    如何接入chatGPT(如何接入chatGPT)_1

    手机怎么安装chatGPT(chatgpt)

    蓬莱区海边景观设计(蓬莱区海边景观设计图)

    市场营销和业务员的区别(市场营销和业务员的区别和联系)