首页 > 其他分享 >大模型核心技术原理: Transformer架构详解

大模型核心技术原理: Transformer架构详解

时间:2023-06-05 12:00:20浏览次数:45  
标签:Transformer 架构 模型 编程 详解 GPT CodeGeeX

在大模型发展历程中,有两个比较重要点:第一,Transformer 架构。它是模型的底座,但 Transformer 不等于大模型,但大模型的架构可以基于 Transformer;第二,GPT。严格意义上讲,GPT 可能不算是一个模型,更像是一种预训练范式,它本身模型架构是基于 Transformer,但 GPT 引入了“预测下一个词”的任务,即不断通过前文内容预测下一个词。之后,在大量的数据上进行学习才达到大模型的效果。

之所以说 Transformer 架构好,是因为 Transformer 能够解决之前自然语言处理中最常用的 RNN 的一些核心缺陷,具体来看:一是,难以并行化,反向传播过程中需要计算整个序列;二是,长时依赖关系建模能力不够强;三是,模型规模难以扩大。

那么,Transformer 具体是如何工作的?

首先,是对输入进行标识符化,基于单词形式,或字母,或字符子串,将输入文本切分成几个 token,对应到字典中的 ID 上,并对每个 ID 分配一个可学习的权重作为向量表示,之后就可以针对做训练,这是一个可学习的权重。

在输入 Transformer 结构之后,其核心的有自注意力模块和前向传播层。而在自注意力模块中,Transformer 自注意力机制建模能力优于 RNN 序列建模能力。因此,有了 Transformer 架构后,基本上就解决了运行效率和训练很大模型的问题。

基于 Transformer 架构的主流语言大模型主要有几种:
file

一是,自编码模型,如 BERT,简单讲就是给到一句话,然后把这句话的内容挖空,当问及挖空的内容时,就把内容填回去,这其实是典型地用来做一个自然语言理解的任务,但做生成任务是非常弱的;

二是,自回归模型,如 GPT,它是通过不断地预测下一个词,特点是只能从左到右生成,而看不到后面的内容。GPT-1 最后接了一个 Linear 层做分类或选题题等任务,到了 GPT-2 ,已经将一些选择任务或者分类任务全部都变成文本任务,统一了生成的范式;

三是,编码器-解码器模型,如 T5,它的输入和输出是分为比较明显的两块内容,或者是问答式,或者序列到序列的转换型的任务;

四是,通用语言模型,如 GLM,该模型结合了自回归和自编码两种形式的模型,举个例子,“123456”是一串输入的序列,现在把 “3”、“5”、“6” 挖空,让模型去学习,那么,挖空以后换成一个 “ mask token” 告诉模型这个地方遮掉了一些内容,现在需要去预测出来遮掉的内容。

与 BERT 不同的是,GLM 把自回归和自编码方式进行结合后,挖出来的内容直接拼到了文本的后面,然后加上一个 “ start token”,告诉模型现在是开始生成了,开始做填空任务了,然后把标准答案 “5”、“6” 放在 “ star token”后面让它去预测,直到预测到 “end token”,它就知道这个填空已经结束了。这个过程称为自回归填空式的任务,整个计算流程还是自回归式,但它不断预测下一个词,既实现了填空的功能,又能看到上下文内容。此外,相比于 GPT 模型,GLM 采用了一个双向注意力的机制。

国产AI辅助编程工具CodeGeeX。
CodeGeeX也是一个使用AI大模型为基座的辅助编程工具,帮助开发人员更快的编写代码。可以自动完成整个函数的编写,只需要根据注释或Tab按键即可。它已经在Java、JavaScript和Python等二十多种语言上进行了训练,并基于大量公开的开源代码、官方文档和公共论坛上的代码来优化自己的算法。CodeGeeX作为一款中国原创的AI辅助编程工具,现在免费提供给所有开发者使用,同时完全开源,程序员使用普遍认为编写代码的效率提升2倍以上。

最近功能上新非常快,比如刚刚更新的“Ask CodeGeeX”功能,是将智能问答模式,融合到实际开发场景中,让开发者更专注和沉浸于编程,不用离开当前 IDE 的编程环境,就可以边写代码边和 AI 对话,实现针对编程问题的智能问答。无需waitlist,立刻就能尝鲜这个新功能!

那么就先给大家快速看看,在CodeGeeX上的体验是怎样的:
file

file

在大模型时代,编程推荐各位下载使用AI辅助编程工具CodeGeeX

本文由博客一文多发平台 OpenWrite 发布!

标签:Transformer,架构,模型,编程,详解,GPT,CodeGeeX
From: https://www.cnblogs.com/chattech/p/17457451.html

相关文章

  • 【HarmonyOS】详解低代码端云一体化开发之连接器
    ​【关键字】元服务、低代码平台、端云一体化开发、连接器、拖拽式UI 【1、写在前面】前面我们写了两篇文章分别介绍了低代码平台的基本使用和端云一体化开发中数据模型的使用,有需要的可以了解一下,文章地址贴在下面了:低代码平台的基本使用:https://developer.huawei.com/co......
  • 帮你梳理了一份前端知识架构图
    列一份前端知识架构图在上一篇文章中,我们简要地总结了前端的学习路径与方法,我们提到的第一个学习方法就是:建立知识框架。那么,今天我们就一起来列一份前端的知识框架图。在开始列框架之前,我想先来谈谈我们的目标。实际上,我们在网上可以找到很多参考资料,比如MDN这样的参考手册,又比......
  • 帮你梳理了一份前端知识架构图
    列一份前端知识架构图在上一篇文章中,我们简要地总结了前端的学习路径与方法,我们提到的第一个学习方法就是:建立知识框架。那么,今天我们就一起来列一份前端的知识框架图。在开始列框架之前,我想先来谈谈我们的目标。实际上,我们在网上可以找到很多参考资料,比如MDN这样的参考手册,又......
  • 排序算法中的冒泡和选择排序详解(持续更新系列)
    本系列文章为Java基础入门内容,致力于为大家详细讲解学习Java中的一些难点、常见点等,内容由浅入深。文末有全文重点总结及配套视频资料,更多相关技术问题欢迎和我们一起交流讨论!更多学习资料可点这里获取前言我们要想成为一个优秀的程序员,其实非常关键的一点就是要锻炼培养自己的......
  • 云原生第六周--k8s组件详解(下)
    一Velero结合minio实现kubernetesetcd数据备份与恢复Velero简介:Velero是vmware开源的一个云原生的灾难恢复和迁移工具,它本身也是开源的,采用Go语言编写,可以安全的备份、恢复和迁移Kubernetes集群资源数据Velero支持标准的K8S集群,既可以是私有云平台也可以是公有云,除了灾备......
  • 拼图游戏三层架构设计
     ......
  • linux sed命令详解
    评:Java代码收藏代码1.Sed简介sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并......
  • 三层架构程序设计用户故事用例图,设计的类图活动图及用户故事
    用例图: 类图: 活动图:  用户故事:餐厅经理作为餐厅经理:我应该能够更新有关我餐厅的信息作为餐厅经理:我应该能够查看我的商店的每周销售情况作为餐厅经理:我应该可以查看餐厅当前的库存情况顾客作为客户:我应该能够浏览菜单并查看餐厅提供的各种食物选择以及每件商品的......
  • 让你的代码动起来:Python进度条神器tqdm详解及应用实例
    各位Python高手,今天我要给大家介绍一个好用的库,它就是:tqdmtqdm在阿拉伯语中的意思是"进展",所以这个库也被称为"快速进展条"。不得不说,这个名字真的很有创意!让我们想象一下,你正在运行一个耗时的数据处理任务或者训练一个复杂的深度学习模型。你坐在那里,盯着屏幕,焦急地等待程序......
  • .Net Core后端架构实战【3-介入IOC控制反转】
    摘要:基于.NETCore7.0WebApi后端架构实战【2-介入IOC控制反转】  2023/04/09,ASP.NETCore7.0,VS2022引言InversionofControl,简称IOC,即控制反转。记得当初刚实习的时候公司的带我的人和我提到过IOC这个概念,当初完全不知道是啥东西。后来有幸写了半年Java,Spring......