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

    gpt模型开源吗知乎

    发布时间:2023-03-12 14:49:55     稿源: 创意岭    阅读: 58        问大家

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

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

    你只需要给出你的关键词,它就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端,官网:https://ai.de1919.com

    本文目录:

    gpt模型开源吗知乎

    一、chatgpt数据哪里来的

    ChatGPT使用了大量的自然语言文本数据来训练模型,这些文本数据包括各种来源,例如维基百科、新闻报道、社交媒体、电子书籍、论坛帖子等等。

    ChatGPT模型的训练数据来源于大量的公共语料库,如维基百科、新闻报道、社交媒体等,并通过多层的Transformer模型进行预训练。在预训练阶段,模型通过学习上下文之间的关系,学会了语言的基本语法、语义和知识,从而可以生成连贯、合理、自然的文本。

    ChatGPT模型是一种无监督学习的模型,不需要对输入数据进行人工标注和指导,也不需要针对特定任务进行有监督学习。这种无监督学习的特点,使得ChatGPT模型可以应用于各种自然语言处理任务,如对话系统、文本生成、语言翻译等,并且具有很高的灵活性和扩展性。

    总之,ChatGPT的GPT全文是一种基于自注意力机制的预训练语言模型,它通过学习大量的公共语料库,可以生成具有语言逻辑性和语义的自然文本。

    ChatGPT简介

    ChatGPT是美国人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,使用了Transformer神经网络架构,也是GPT-3.5架构,这是一种用于处理序列数据的模型,拥有语言理解和文本生成能力,尤其是它会通过连接大量的语料库来训练模型。

    这些语料库包含了真实世界中的对话,使得ChatGPT具备上知天文下知地理,还能根据聊天的上下文进行互动的能力,做到与真正人类几乎无异的聊天场景进行交流。ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    二、gpt2模型文本分类

    GPT-2 模型可以用于文本分类任务,但需要对模型进行微调,以适应不同的分类任务。以下是使用 GPT-2 模型进行文本分类的基本步骤:

    准备数据集:首先需要准备一个文本分类的数据集,其中包含带有标签的文本数据。可以使用公开的数据集,例如 IMDb 电影评论数据集、20 Newsgroups 新闻数据集等,也可以自己收集和标注数据。

    加载模型:使用 Python 编程语言和相应的深度学习框架(例如 PyTorch、TensorFlow 等)加载 GPT-2 模型。可以使用预训练的模型,也可以从头开始训练一个新的模型。

    准备数据:将数据集中的文本转换为模型可以处理的格式。可以使用一些预处理技术,例如分词、词向量化、序列填充等。

    定义模型结构:在加载预训练模型的基础上,需要添加一个分类层,以输出分类结果。可以选择不同的分类层结构,例如全连接层、卷积神经网络等。

    训练模型:使用准备好的数据集和定义好的模型结构,对模型进行微调,以适应特定的分类任务。可以使用一些优化算法和训练技巧,例如随机梯度下降、学习率调整、正则化等。

    测试模型:在训练完成后,使用测试集对模型进行评估,计算模型的准确率、召回率、F1 值等指标,以确定模型的性能。

    预测新数据:使用训练好的模型对新的文本数据进行分类,输出相应的标签。

    需要注意的是,GPT-2 模型通常用于生成文本任务,其主要优势在于生成高质量、连贯的语言模型。在文本分类任务中,如果数据集较小,可能无法发挥 GPT-2 模型的优势,因此可以考虑使用更简单、更轻量级的模型,例如卷积神经网络、循环神经网络等。

    三、只需要十分之一数据,就能通关四大视觉任务,居然还开源了

    Github链接:https://github.com/opengvlab

    家人们,你们有没有这种苦恼?

    搬一次家就换一次家具,那些又贵又重的家具既不好搬运,又不好全部带走。

    下一次又重新购置一遍家具,浪费钱不说,关键是来来回回都做一样的事情!家具还没用过几次,利用率不高呀!

    这种搬家的苦恼,就好比AI领域,做几个任务就需要开发几个高度定制的模型,不仅所需的数据采集量非常大,每次还都得从头标注。既提不起数据的学习效率,又耗费巨大的数据获取成本。

    光是AI前端研究就耗费如此巨大的精力,更别提应用场景中数以万计的长尾任务。

    那怎么办?

    做一款通用的深度学习模型,才是关键。

    1 通用,才是技术根本

    目前,通用语言模型(GLM)已经取得了令人瞩目的进展,比如BERT、T5和GPT-3,它们在应对广泛的语言下游任务时已经游刃有余。

    相形之下,通用视觉模型(GVM)的研究迟迟未交出一份令人满意的答卷。

    以往的大多数 GVM 研究主要利用一种监督信号来源,如 ViT-G/14 采用有标签监督,SEER 采用样本的不同增强之间的对比学习,CLIP采用图片文本对进行监督。如果是在单个监督信号下进行的预训练,这几种范式确实能够生成在固定场景下表现良好的模型。但如果用在场景多元、任务多样的下游场景,这些模型就难以胜任了。

    比如现在最火的自动驾驶, 汽车 处于移动状态,既要看到路况,又要看到红绿灯,还要注意行人,甚至在智能座舱兴起后,还要和语言技术、LBS场景服务协同,这么多的感知数据与协同任务,这么多随机的新任务,无论在体量还是维度方面,都对视觉模型的要求极大提高。

    这时,打造一款通用视觉模型,降低研发门槛,尤其是学术界的时间成本、资金成本,才能畅享下游的极致场景体验。

    去年11月,上海人工智能实验室联合商汤 科技 、香港中文大学、上海交通大学发布通用视觉技术体系“书生”(INTERN),一套持续学习框架,用于系统化解决当下人工智能视觉领域中存在的任务通用、场景泛化和数据效率等一系列瓶颈问题。

    前不久,上海人工智能实验室联合商汤 科技 发布通用视觉开源平台OpenGVLab,面向学术界和产业界开放其超高效预训练模型、超大规模公开数据集,以及业内首个针对通用视觉模型的评测基准。

    这些开源技术,究竟有何魔力?

    2 大力出奇迹,打造通用视觉模型

    “书生” (INTERN),就是练就通用视觉能力的底层技术。

    从技术实现上讲,“书生”技术体系由由七大模块组成,包括三个基础设施模块和四个训练阶段构成。

    书生(INTERN)结构图

    首先,通用视觉数据系统。

    这是一个超大规模的精标数据集,拥有100亿个样本和各种监督信号,并依照四大视觉任务分别设置了四个数据子集:多模态数据GV-D- 10B分类标注的GV-Dc-36M、检测标注的GV-Dd-3M、分割标注的GV-Ds-143K。

    另外,这一数据集还包含11.9万的标签系统,不仅涵盖了自然界的众多领域和目前计算机视觉研究中的几乎所有标签,还扩充了大量细粒度标签,涵盖各类图像中的属性、状态等。

    而这,就是书生“大力出奇迹”的一大注脚。

    其次,通用视觉模型结构。

    它是由一个具有CNN和Transformer的统一搜索空间构建而成。

    为何要建立这样的混合结构?要知道,多年来,卷积神经网络(CNN)一直主导着视觉表征学习,并在图像分类、目标检测和语义分割等下游任务中表现出稳定的可迁移性。但最近几年,Vision Transformer (ViT)仅使用普通的Transformer结构就能作为图像编码模型在ImageNet-1k上取得媲美 CNN 的性能,在大规模数据集上 ViT 更是展示出比 CNN 更大的潜力。

    尽管ViT在性能上有优点,但纯Transformer网络相比卷积神经网络缺乏某些归纳偏置(inductive biases),因此需要更多的数据和计算资源。此外,自注意的计算成本相对于输入的数量是平方的,限制了对高输入分辨率的应用。因此,将CNN和Transformer和MLP结合起来,平衡效率和有效性两个方面,才是模型通用的关键。

    这种兼具更好的泛化能力和更高的模型容量的模型结构名为MetaNet。在MetaNet网络结构族里面进行网络结构搜索,从而得到最优的一个模型训练结构。

    统一搜索的MetaNet架构:Conv和Trans分别表示卷积和Transformer。C和S为每一阶输出通道数和步幅。

    具体来看,MetaNet不仅基于强化学习 的PPO算法提出了统一搜索架构,并且,为了避免传统的下采样模块会成为模型性能的瓶颈,“书生“结合了包含 local-global-DSM (LG_DSM) 和 global-DSM (G-DSM)的context-aware down-sampling modules (DSM),用来代替原本的下采样模块。

    因此,在浅层,模型依然使用卷积来提取特征,但在深层,模型却能将Transformer模块和LG-DSM结合使用,以便于更好地提取全局信息。

    同时,书生还基于最大的MetaNet-B15蒸馏出了多达13种不同的模型结构,共24种不同的模型权重,现已全部开源。

    这些模型结构基本涵盖了现有市面上大部分的主流backbone,不仅能够很轻易地迁移到所需要的算法框架作为新网络预训练的初始化,而且只需要更短的训练时间就可以达到比原来更好的训练效果。

    MetaNet 模型与其他模型结构比较,结果如下:

    基于卷积、Transformer和两者混合的结构,分别用C,T和H表示,可以看出,在图像分类性能上,MetaNet系列的MN-B1,MN-B4和MN-B7,和其他的SOTA模型相比,不仅有更高的精度,还有更低的FLOPS和参数量。

    除了分类任务,把MetaNet做为检测和分割的backbone,在COCO数据集上使用Mask R-CNN结构训练,结果发现:在模型参数量更小的前提下,MN-B4比Swin-T精度高出2到4个点。另外还在ADE20K数据集上进行了语义分割任务,MN-B4的mIoU指标比Swin-T高出5个点之多。

    上述两个实验结果表明,MetaNet系列模型结构,在模型精度与计算量之间,都达到了新的SOTA!

    最后,通用视觉评测基准。

    视觉评测基准GV-B ,就像是一个「擂台」。

    如下表所示,测评基准收集了 26 个下游任务数据集,囊括了 4 种视觉任务类型:分类,检测,分割和深度估计。

    在设置上,该基准引入了百分比样本(percentage-shot),只需要选取整个数据集的一部分,例如 10%、20% ,对比缩小下游任务的训练数据量后的模型性能。

    与传统的少样本设置相比,这种百分比样本设置可以很好地保留原始数据集的长尾分布等属性,并减轻对样本选择的敏感性。因为有一些数据集样本类别分布不平衡,比如下表中的VOC07+12,百分比数据的划分方式却会继承这种分布情况。

    右侧三列avg,min和max,分别表示在10%的数据中,不同类别样本数量的平均值,最小值和最大值。

    结合上述数据集和任务类型,论文选取了一些具有代表性的模型来做评测对比。为了比较公平性,该对比使用了这些模型的官方预训练权重。这些模型包括:

    有了超大精标数据集、模型结构,以及评测基准后,已经是万事俱备,只欠训练。

    书生作为中国古代读书人的经典形象,代表着一个通过不断学习、不断成长进而拥有各方面才能的人格化角色:从基础的知识技能学习开始,到对多种专业知识触类旁通,进而成长为拥有通用知识的通才。借此意象,“书生”(INTERN)系统可通过持续学习,举一反三,逐步实现通用视觉领域的融会贯通,最终实现灵活高效的模型部署。

    下面就来看看,这套系统是如何通过训练,一步步从生手变成专家再到多面手,最终在各种任务中大显身手。

    第一阶段,训练的是基础能力,被称为“基础模型”(Amateur)。

    然而CLIP需要400M的图像-文本对进行前训练,囿于极大的数据量,CLIP很难进一步发展。但“书生”提出了一种新的训练范式,DeCLIP(Data efficient CLIP ),能够同时使用来自图像-文本、图像-图像和文本-文本对的监督信号进行模型预训练,从而更有效地实现通用性。

    此外,为了充分利用大规模多模态数据获取基础模型的优势,这一阶段提出了Upstream-Amateur (Up-A)视觉语言预训练框架,同时挖掘模态内和跨模态知识。

    这一训练框架分为两个预训练阶段:Upstream-Amateur for Global Representation (Up-A-G)和Upstream-Amateur for Local Representation (Up-A-L)。

    其中,Up-A-G(左)使用群体监督功能,从更丰富的监督中学习。Up-A-L(右)采用局部自我监督学习方法,对训练好的视觉-语言模型进行调整,从而提高自身在密集预测CV任务中的表现。

    Upstream-Amateur的框架

    得益于这些内在的监督,DeCLIP-ResNet50可以在ImageNet上实现60.4%的zero-shot 精度第一。这比CLIP-ResNet50高出0.8%,数据使用量少了81%。当迁移到下游任务时,DeCLIP-ResNet50在11个视觉数据集中有8个优于CLIP。

    更关键的是,训练完成的Upstream-Amateur为后续的训练阶段提供了一个很高的起点。

    第二阶段,训练的是专业能力,被称为“专家模型”(Expert)。

    Up-A阶段得到的基础模型,在一般的视觉识别问题上显示出优异的性能。但要完全掌握检测、分割等更具体的任务,还需要在每个任务中进行更专业的预训练,这就促成了第二个阶段的到来,专家模型。

    对于每个专家,“书生”采用了一种简单的多头设计,每个头是一个特定数据集的子网络,从一个公共的、共享的“主干”分支出来。比如Up-E (C)、Up-E (D)和Up-E (S),分别用于图像分类、对象检测和语义分割。

    第三阶段,训练的是组合能力,被称为“通才模型”(Generalist)。

    上述的多任务是指不同数据集(如ImageNet和CIFAR)的一个视觉问题(如分类),或一个数据集的多个视觉问题(如分类和检测)。但关键是,如何将专家整合到一个统一的模型中,获得一个更加通用的视觉模型。因此,在预训练“专家”阶段之后,又将“通才”作为第三个预训练阶段,以进一步统一特征表示。

    “书生”提出了一个新的范式,名为“混合参数共享”,从而开发一个名为“多面手”的通才模型。

    具体来说,由于专家捕获的知识是相互关联的,当专家的特征融合为一个共享的表示形式时,再利用基于软共享的跨任务知识转移和基于硬共享的通用表示学习的方法,在不引入任务冲突的情况下在专家之间传递信息(特征转移),从而进一步提高了多任务训练的模型(专家)性能,即“通才”能力。

    在结构上,通才模型是所有专家的一个相互关联的版本,因此可以把每个“专家主干”称为“通才分支”。此外,我们还可以根据训练相应专家的任务将通才中的每个分支分为图像、补丁和像素。但无论是软共享还是硬共享,都意味着从专家模型到通才模型的一次跃升。

    在经历了前三个训练阶段模块后,终于来到最后的任务迁移阶段 (Adaptation)。

    这个阶段属于技术链条的下游,用来解决各式各样不同类型的任务,而这也是最考验“书生”举一反三能力的时刻。它需要在这个阶段把之前学到的通用知识,融会贯通地应用到不同特定任务中。

    在此之前,很多迁移学习方法确实取得了很多进步,但问题是,这些方法既没有利用上游预训练中的隐含信息,也没有考虑到下游数据在少镜头场景中的不足。

    因此,“书生”提出了一种Multi-stage Fine-tuning (MF)方法,缓解在数据较少的情况下传输的困难,再通过将上游数据编码成生成模型,即VQ-GAN,可以将预训练的模型转移到多个任务和领域,而无需每次都使用上游数据,而这也使得“书生”更具通用性和可扩展性。

    多级微调(MF)概述:VQ-GAN模型首先在第一阶段使用上游数据进行训练,然后在第二阶段由它重构下游数据。在此之后,第三阶段只对新增任务的特定参数进行重新表示的图像训练,第四阶段则通过下游数据对整个模型进行微调。

    至此,一个具有持续学习能力的通用视觉模型终于出世。

    而具体有哪些提升,不如看一下更直观的实验数据对比!

    3 一网打尽视觉领域四大任务

    视觉领域,任务繁多,主流任务包含分类、目标检测、语义分割、深度估计四大类型。

    在这四大任务中,最强大的视觉模型还是去年OpenAI发布的CLIP模型。但相比较而言,“书生”则在准确率和数据使用效率上都有所提升。

    1、精度表现

    通过对“书生”训练出的模型在GV-B上的评测对比,发现经过多阶段预训练的MetaNet精度表现优异。

    在ImageNet等26个最具代表性的下游场景中, “书生”在分类、目标检测、语义分割及深度估计等四大任务上,平均错误率分别降低了40.2%、47.3%、34.8%和9.4%。

    书生(INTERN)与CLIP-R50x16在不同样本量上的性能对比,正确率展示

    2、数据使用效率

    “书生”在数据效率方面的提升尤为瞩目:只需要1/10的下游数据,就能超过CLIP基于完整下游数据训练的准确度。

    以CLIP-R50x16和Up-G MN-B15在GV-B的评测对比为例,分别在分类、目标检测、语义分割、深度估计四大类型的26个下游任务数据集上进行了评测,仅使用了10%数据进行训练的Up-G MN-B15模型,在绝大部分数据集上都能比使用了全部训练数据的CLIP-R50有更好的精度表现。这表明,经过多阶段预训练的MetaNet具有极强的泛化能力,能够在仅有少量的训练样本情况下,达到SOTA的精度表现。

    在下游视觉场景中,小样本训练带来的是极高的训练速度,以及极低的训练成本。

    例如在花卉种类识别任务上,“书生“只需要每一类型的花卉提供两个训练样本,就能实现99.7%的准确率。

    这个花卉数据集由102种英国常见的花组成,每个类别有40至258张图片。其中包含有很大的比例、姿势和光线变化。

    102个类别的花卉数据集:

    https://www.robots.ox.ac.uk/~vgg/data/flowers/102/index.html

    4 通用视觉平台,已正式开源

    如此强大的通用视觉训练模型已经正式开源!

    更关键的是,连同上述讲到的标签数据集、网络结构以及评测基准,均在OpenGVLab被统一打包开源。

    其中的网络结构除了MetaNet,还包含大家普遍使用的ResNet, MobileNet, ViT, EfficientNet等,以满足不同场景的应用,赋能计算机视觉。

    然而,「书生」的布局不止于此。

    OpenGVLab将与上海人工智能实验室此前发布的OpenMMLab、OpenDILab一道,共同构筑开源体系OpenXLab,持续推进通用人工智能的技术突破和生态构建。

    一位已经使用过此次开源平台的自动驾驶算法研究员表示:“书生系列模型充分覆盖了从移动可部署的小模型,到超大规模自研结构,为行业带来了希望,尤其是它的收敛速度,大幅节省了训练开销,是技术落地的一大助推器。“

    不仅是自动驾驶领域,智慧城市、智慧医疗、智慧交通,以及千千万万其他的智能化领域,都将获得通用视觉模型带来的技术红利。

    一位腾讯研究员大赞OpenGVLab:“能把这么大的工作开源出来真的是业界良心。简单用了一下,确实比CLIP要更fine-grained(细粒度更高)。”

    而来自学界的师生也对此感慨有加:“OpenGVLab集成了大量各种量级的state-of-the-art(先进)模型,使用起来更得心应手,省去了对不同codebase、不同模型繁琐调研的烦恼。”

    换句话说,当那些代码和公式脱去了枯燥乏味的外衣,人们才发现了真正的创造力。而这,也是技术创新与平台开源的魅力所在。

    往近了说,用这款通用视觉模型打比赛,怕不是奖金多到飞起!在技术生产力的道路上,又诞生了一个致富小妙招!

    目前,“书生”技术报告《INTERN: A New Learning Paradigm Towards General Vision》已在arXiv平台发布。

    论文地址:arxiv.org/abs/2111.08687

    四、BERT详解(附带ELMo、GPT 介绍)

    首先我会详细阐述 BERT 原理,然后简单介绍一下 ELMO 以及 GPT

    BERT 全称为 B idirectional E ncoder R epresentation from T ransformer,是 Google 以 无监督的方式利用大量无标注文本 「炼成」的语言模型,其架构为 Transformer 中的 Encoder(BERT=Encoder of Transformer)

    我在 Transformer 详解 中已经详细的解释了所有 Transformer 的相关概念,这里就不再赘述

    以往为了解决不同的 NLP 任务,我们会为该任务设计一个最合适的神经网络架构并做训练,以下是一些简单的例子

    不同的 NLP 任务通常需要不同的模型,而设计这些模型并测试其 performance 是非常耗成本的(人力,时间,计算资源)。如果有一个能 直接处理各式 NLP 任务的通用架构 该有多好?

    随着时代演进,不少人很自然地有了这样子的想法,而 BERT 就是其中一个将此概念付诸实践的例子

    Google 在预训练 BERT 时让它同时进行两个任务:

    1. 漏字填空

    2. 下个句子预测

    对正常人来说,要完成这两个任务非常简单。只要稍微看一下前后文就知道完形填空任务中 [MASK] 里应该填 退了 ;而 醒醒吧 后面接 你没有妹妹 也十分合理(?)

    接下来我会分别详细介绍论文中这两个任务的设计细节

    在 BERT 中,Masked LM(Masked Language Model)构建了语言模型,简单来说,就是 随机遮盖或替换 一句话里面的任意字或词,然后让模型通过上下文预测那一个被遮盖或替换的部分,之后 做 Loss 的时候也只计算被遮盖部分的 Loss ,这其实是一个很容易理解的任务,实际操作如下:

    这样做的好处是,BERT 并不知道 [MASK] 替换的是哪一个词,而且 任何一个词都有可能是被替换掉的,比如它看到的 apple 可能是被替换的词 。这样强迫模型在编码当前时刻词的时候 不能太依赖当前的词 ,而要考虑它的上下文,甚至根据上下文进行 "纠错"。比如上面的例子中,模型在编码 apple 时,根据上下文 my dog is,应该 把 apple 编码成 hairy 的语义而不是 apple 的语义

    我们首先拿到属于上下文的一对句子,也就是两个句子,之后我们要在这两个句子中加一些特殊的 token: [CLS]上一句话[SEP]下一句话[SEP] 。也就是在句子开头加一个 [CLS] ,在两句话之间和句末加 [SEP] ,具体地如下图所示

    可以看到,上图中的两句话明显是连续的。如果现在有这么一句话 [CLS] 我的狗很可爱 [SEP] 企鹅不擅长飞行 [SEP] ,可见这两句话就 不是连续的 。在实际训练中,我们会让这两种情况出现的数量为** 1:1**

    Token Embedding 就是正常的词向量,即 PyTorch 中的 nn.Embedding()

    Segment Embedding 的作用是用 embedding 的信息让模型 分开上下句 ,我们给上句的 token 全 0,下句的 token 全 1,让模型得以判断上下句的起止位置,例如

    Position Embedding 和 Transformer 中的不一样,不是三角函数,而是 学习出来的

    BERT 预训练阶段实际上是将上述两个任务结合起来,同时进行,然后将所有的 Loss 相加,例如

    BERT 的 Fine-Tuning 共分为 4 种类型,以下内容、图片均来自台大李宏毅老师 Machine Learning 课程 (以下内容 图在上,解释在下)

    为什么要用CLS?

    这里李宏毅老师有一点没讲到,就是为什么要用第一个位置,即 [CLS] 位置的 output。这里我看了网上的一些博客,结合自己的理解解释一下。因为 BERT 内部是 Transformer,而 Transformer 内部又是 Self-Attention, 所以 [CLS] 的 output 里面肯定含有整句话的完整信息 ,这是毋庸置疑的。但是 Self-Attention 向量中,自己和自己的值其实是占大头的,现在假设使用 的 output 做分类,那么这个 output 中实际上会更加看重 ,而 又是一个有实际意义的字或词,这样难免会影响到最终的结果。但是 [CLS] 是没有任何实际意义的,只是一个占位符而已,所以就算 [CLS] 的 output 中自己的值占大头也无所谓。当然你 也可以将所有词的 output 进行 concat,作为最终的 output

    首先将问题和文章通过 [SEP] 分隔,送入 BERT 之后,得到上图中黄色的输出。此时我们还要训练两个 vector,即上图中橙色和黄色的向量。首先将橙色和所有的黄色向量进行 dot product,然后通过 softmax,看哪一个输出的值最大,例如上图中 对应的输出概率最大,那我们就认为 s=2

    同样地,我们用蓝色的向量和所有黄色向量进行 dot product,最终预测得 的概率最大,因此 e=3。最终,答案就是 s=2,e=3

    你可能会觉得这里面有个问题,假设最终的输出 s>e 怎么办,那不就矛盾了吗?其实在某些训练集里,有的问题就是没有答案的,因此此时的预测搞不好是对的,就是没有答案

    以上就是 BERT 的详细介绍,参考以下文章

    ELMo是Embedding from language Model的缩写,它通过无监督的方式对语言模型进行预训练来学习单词表示

    这篇论文的想法其实非常简单,但是效果却很好。它的思路是用 深度的双向 Language Model 在大量未标注数据上训练语言模型 ,如下图所示

    在实际任务中,对于输入的句子,我们使用上面的语言模型来处理它,得到输出向量,因此这可以看作是一种 特征提取 。但是 ELMo 与普通的 Word2Vec 或 GloVe 不同,ELMo 得到的 Embedding 是 有上下文信息

    具体来说,给定一个长度为 N 的句子,假设为 ,语言模型会计算给定 的条件下出现 的概率:

    传统的 N-gram 模型 不能考虑很长的历史 ,因此现在的主流是使用 多层双向 LSTM 。在时刻 ,LSTM 的第 层会输出一个隐状态 ,其中 , 是 LSTM 的层数。最上层是 ,对它进行 softmax 之后得到输出词的概率

    类似的,我们可以用 一个反向 来计算概率:

    通过这个 LSTM,我们可以得到 。我们的损失函数是这两个 LSTM 的 加和 :

    这两个 LSTM 有各自的参数 和 ,而 Word Embedding 参数 和 Softmax 参数 是共享的

    为了用于下游(DownStream)的特定任务,我们会把不同层的隐状态组合起来,具体组合的参数是根据不同的特定任务学习出来的,公式如下:

    GPT 得到的语言模型参数不是固定的,它会根据特定的任务进行调整(通常是微调),这样的到的句子表示能更好的适配特定任务。它的思想也很简单,使用 单向 Transformer 学习一个语言模型 ,对句子进行无监督的 Embedding,然后 根据具体任务对 Transformer 的参数进行微调 。GPT 与 ELMo 有两个主要的区别:

    这里解释一下上面提到的 单向 Transformer 。在 Transformer 的文章中,提到了 Encoder 与 Decoder 使用的 Transformer Block 是不同的。在 Decoder Block 中,使用了 Masked Self-Attention ,即句子中的每个词都只能对 包括自己在内的前面所有词进行 Attention ,这就是单向 Transformer。GPT 使用的 Transformer 结构就是将 Encoder 中的 Self-Attention 替换成了 Masked Self-Attention ,具体结构如下图所示

    训练的过程也非常简单,就是将 n 个词的词嵌入 ( ) 加上位置嵌入 ( ),然后输入到 Transformer 中,n 个输出分别预测该位置的下一个词

    这里的位置编码没有使用传统 Transformer 固定编码的方式,而是动态学习的

    Pretraining 之后,我们还需要针对特定任务进行 Fine-Tuning。假设监督数据集合 的输入 是一个词序列 ,输出是一个分类的标签 ,比如情感分类任务

    我们把 输入 Transformer 模型,得到最上层最后一个时刻的输出 ,将其通过我们新增的一个 Softmax 层(参数为 )进行分类,最后用 CrossEntropyLoss 计算损失,从而根据标准数据调整 Transformer 的参数以及 Softmax 的参数 。这等价于最大似然估计:

    正常来说,我们应该调整参数使得 最大,但是 为了提高训练速度和模型的泛化能力 ,我们使用 Multi-Task Learning,同时让它最大似然 和

    这里使用的 还是之前语言模型的损失(似然),但是使用的数据不是前面无监督的数据 ,而是使用当前任务的数据 ,而且只使用其中的 ,而不需要标签

    针对不同任务,需要简单修改下输入数据的格式,例如对于相似度计算或问答,输入是两个序列,为了能够使用 GPT,我们需要一些特殊的技巧把两个输入序列变成一个输入序列

    ELMo 和 GPT 最大的问题就是 传统的语言模型是单向的 —— 我们根据之前的历史来预测当前词。但是我们不能利用后面的信息。比如句子 The animal didn’t cross the street because it was too tired 。我们在编码 it 的语义的时候需要同时利用前后的信息,因为在这个句子中, it 可能指代 animal 也可能指代 street 。根据 tired ,我们推断它指代的是 animal 。但是如果把 tired 改成 wide ,那么 it 就是指代 street 了。传统的语言模型,都 只能利用单方向的信息 。比如前向的 RNN,在编码 it 的时候它看到了 animal 和 street ,但是它还没有看到 tired ,因此它不能确定 it 到底指代什么。如果是后向的 RNN,在编码的时候它看到了 tired ,但是它还根本没看到 animal ,因此它也不能知道指代的是 animal 。 Transformer 的 Self-Attention 理论上是可以同时关注到这两个词的,但是根据前面的介绍,为了使用 Transformer 学习语言模型,必须 用 Mask 来让它看不到未来的信息 ,所以它也不能解决这个问题的

    根据上文内容预测下一个可能跟随的单词,就是常说的自左向右的语言模型任务,或者反过来也行,就是根据下文预测前面的单词,这种类型的LM被称为自回归语言模型。(GPT,ELMO)GPT 就是典型的自回归语言模型。ELMO尽管看上去利用了上文,也利用了下文,但是本质上仍然是自回归LM,这个跟模型具体怎么实现有关系。ELMO是做了两个方向(从左到右以及从右到左两个方向的语言模型),但是是分别有两个方向的自回归LM,然后把LSTM的两个方向的隐节点状态拼接到一起,来体现双向语言模型这个事情的。所以其实是两个自回归语言模型的拼接,本质上仍然是自回归语言模型。

    自回归语言模型有优点有缺点,缺点是只能利用上文或者下文的信息,不能同时利用上文和下文的信息,当然,貌似ELMO这种双向都做,然后拼接看上去能够解决这个问题,因为融合模式过于简单,所以效果其实并不是太好。它的优点,其实跟下游NLP任务有关,比如生成类NLP任务,比如文本摘要,机器翻译等,在实际生成内容的时候,就是从左向右的, 自回归语言模型天然匹配这个过程 。而Bert这种DAE模式,在生成类NLP任务中,就面临训练过程和应用过程不一致的问题,导致 生成类的NLP任务到目前为止都做不太好

    自回归语言模型只能根据上文预测下一个单词,或者反过来,只能根据下文预测前面一个单词。相比而言,Bert通过 在输入X中随机Mask掉一部分单词 ,然后预训练过程的主要任务之一是根据上下文单词来预测这些被Mask掉的单词,如果你对Denoising Autoencoder比较熟悉的话,会看出,这确实是典型的DAE的思路。那些被Mask掉的单词就是在输入侧加入的所谓噪音。类似Bert这种预训练模式,被称为DAE LM。

    这种DAE LM的优缺点正好和自回归LM反过来,它能比较自然地融入双向语言模型,同时看到被预测单词的上文和下文,这是好处。缺点是啥呢? 主要在输入侧引入[Mask]标记,导致预训练阶段和Fine-tuning阶段不一致的问题 ,因为Fine-tuning阶段是看不到[Mask]标记的。DAE吗,就要引入噪音,[Mask] 标记就是引入噪音的手段,这个正常。

    XLNet的出发点就是:能否 融合自回归LM和DAE LM两者的优点 。就是说如果站在自回归LM的角度,如何引入和双向语言模型等价的效果;如果站在DAE LM的角度看,它本身是融入双向语言模型的,如何抛掉表面的那个[Mask]标记,让预训练和Fine-tuning保持一致。当然,XLNet还讲到了一个Bert被Mask单词之间相互独立的问题。

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


    推荐阅读:

    chatGPT可以用来干嘛(chat功能)

    chatGPT的未来发展前景

    chatGPT用什么语言写的

    三开间中式别墅效果图(三开间中式别墅效果图片大全)

    江西景观设计公司(江西景观设计公司有哪些)