深度学习大模型框架的简单介绍(ChatGPT背后原理的基本介绍)

一、引言

主流的深度学习基础框架有很多:tensorflow、pytorch、paddlepaddle、keras、caffee等等。

随着以Bert、GPT系列为代表的NLP预训练语言模型的诞生,对于NLP的语言模型研究走向了大规模预训练之路。

在CV领域,随着GAN、Diffusion Model、Transformers与传统CV技术的结合,也逐步走向了大模型之路,DALL·E2的爆炸效果也是基于“大力出奇迹”。

在多模态领域,CLIP等模型参数也很大。

这似乎预示着,只有“大力出奇迹”才是强人工智能的未来之路。像当下异常火爆的ChatGPT的背后原理则是超大规模模型GPT-3采用STF+RLHF(Supervised Fine-Tuning Reinforcement Learning Human Feedback)进行训练得来。

因此,基于基础深度学习框架,学习了解大模型深度学习框架是必不可少的。而这方面的研究,更多的是系统方向和深度学习的结合

二、深度学习系统方向发展简单介绍

深度学习在2014年之后,开始大火,缘由在于2012年,AlexNet模型引起的计算机视觉图像分类任务的变革方法。在此之后,DL领域很卷,模型相继很大,系统方向的研究也层出不穷。

2.1 参数服务器(Parameter Server)

论文地址:参数服务器:李沐
这个工作是李沐在2014年完成的工作,其核心在于提出一种数据并行(Data Parallel)的参数服务器,目的是使得大规模的机器学习模型能在工业界完成训练。

其意义在于:为之后大规模深度学习框架ZeRO提供了思路借鉴。

(后续会针对这篇论文进行精读,发一个博客,有兴趣的童鞋可以关注)

2.2 GPipe

论文地址:Gpipe:2019

这篇论文提出一个新的大规模深度学习框架。它采用一种流水线并行的方式,实现了更少显存的情况下训练了更大的模型。这些大模型包括语言模型和CV的一些模型。

其意义在于:提出一种流水线并行的方式,对大模型不同的层之间进行切片训练。

Gpipe模型流水线示例图
它有两个关键技术:
(1)micro-batch
把L层的神经网络按层切开(层外),一共为K快。然后把每一块放到一个GPU上进行计算。如上图(b)所示。但这种方式,在时间层面上,和单卡训练的时间没啥区别。为了解决这个问题,可以对每个小批量的数据样本再进行切分成微批量(micro-batch),然后每个时刻只让一个微批量送入GPU中进行训练,如上图©所示。这样即可实现简单流水线并行。其中的Bubble形状只与GPU数量相关。若增加微批量的数目,则会进一步增加GPU的存储利用率。
(2)re-materialization(active checkpoint)
每层中间计算的梯度数据会占用大量的GPU显存。
简单神经网络公式示例
实际上,梯队下降算法更新梯度时,是对参数W求偏导梯度。这里之所以要求y对x的偏导是因为,反向传播时,需要用到这个数值(通常称为:activation)。而这个数值在前向传播时若已求得,并保存到显存中,会加快反向传播的速率。但增大了内存使用量。

re-materialization技术是指在对L层大规模神经网络分为若干块后,对每个快连接的地方的网络层的相关前向传播梯度数据进行保存,而其他层则在反向传播时重新计算。(时间换空间

这样会节省大量GPU显存。

使得在少量GPU或使用较少的显存能训练起来更大的模型。

重新计算占用总计算时间的三分之一。(暂未有论文论述原因)

其他的工作:PipeDream(微软的工作)

2.3 Megatron-LM (张量并行 TP)

论文地址:Megatron-LM:2019
该模型提出一种特殊的模型并行(Model Parallel)方法,即层内模型并行也叫张量并行(Tensor Parallel)。

该框架最大的贡献在于:开源+简单。

这导致后续的深度学习大模型开源框架都或多或少是在该框架基础上进行的改进和修整。
Bert层归一化修改对比图
Megatron-LM框架只针对语言模型。主要是GPT、Bert、T5等模型。

对于Bert,该框架对其层归一化做了上图的修改,才能使得大规模Bert模型能得到收敛。

TP切分结构图
对于张量并行,其切分方法只有两种,一种是对MLP的切分,一种是对Self-Attention的切分。

2.4 Zero (Offload Infinity)

论文地址:ZeRO

该框架是在Megatron基础上构建,其开源框架为DeepSpeed

这是一个较为容易上手的大规模预训练语言模型框架。它不仅实现了ZeRO,还包括ZeRO Offload 及 ZeRO Infinity。

ZeRO三个状态切分效果图
实际上,ZeRO采用的思想和参数服务器的思想基本一致,都是对超大规模深度神经网络模型在训练过程中,产生的参数、优化器状态、梯度等使用数据并行的方式,进而减少冗余,以使得更少的显存占用训练更大的模型。

ZeRO需要对三块数据进行数据并行优化:
优化器状态(Optimizer states) os
梯度数据(gradients) g
超参数数据(parameters) p

其中:Pos=ZeRO1、Pos+g=ZeRO2、Pos+g+p=ZeRO3

讲这三个数据之前要讲一个重点内容:混合精度训练(mixed-precision)

2.4.1 mixed-precision

nvidia的卡在半精度训练会更快点儿,即fp16位浮点数。

原因:在硬件上来说,每个bit都要对应硬件的计算逻辑单元,即物理的门来帮助运算当把正常的浮点运算从32位降到一半时,能剩下大量的物理门电路逻辑运算单元。意味着在相同尺寸的芯片上,则能放到更多的,能并行计算机的物理单元。所以,从计算密度角度来说,fp16要比fp32要高。

使用半精度训练的意思是指:对模型每个层的w(parameters)和中间结果数据的输入输出(activations)都是使用fp16进行训练的

w*x=y 这个运算过程都是fp16,但由于fp16的精度不够,导致会出现爆炸。即很小的数会变成0.这种情况在累计权重的时候会出现。权重是指不断的把梯度的东西加进来。如果,权重也是fp16的话,加半天也加不动,因此,在权重更新时,采用fp32进行的。

权重还有一个额外的fp32的复制,在做梯度更新时,需要使用fp32的精度进行计算,算完后再转为fp16,再参与前向传播和反向传播算法。

2.4.2 训练过程中维护的数据量计算

假设一个模型的参数占用的存储量是Y

则在前向传播和后向传播计算过程中的fp16的参数量(parameter)需要维护2Y(bytes),fp16的梯度(gradients)需要维护2Y(bytes)。

优化器(ADAM)需要维护三个fp32的数据(做梯度更新采用fp32的精度进行计算)。复制的参数量(parameter):4Y (bytes)、momentum (bytes)、variance (bytes)

这些一共是16Y的数据保存量。若一个GPT2(1.5B)模型训练起来,需要保存的数据量会扩大到1.5*16B的情况。

(后续会补充 Offload 和 Infinity的相关内容)

2.5 Pathways 2022

论文地址:Pathways:2022

基于谷歌的Tensorflow系列的大模型
不同深度学习架构下的大模型训练方式
引出Jeff Dean对下一代深度学习框架的预测:

多模态、稀疏、动态路由

2.6 InstructGPT

论文地址:InstructGPT

这个模型是ChatGPT背后的模型之一。当前ChatGPT模型的论文还没有出来,预计还需要几个月的时间。但参考这篇文章的核心思想已经可以确定ChatGPT是向哪个方向去发展了。

ChatGPT训练方法

2.6.1 数据集采集

(1)雇佣一些工作人员去编写一些问题和对应答案的数据集。
(2)用第一批数据集训练第一个InstructGPT模型,然后再对相关问题再进行预测,基于此扩充更大的数据集。

2.6.1 Supervised Fine-Tuning (SFT) prompt

这个思想很简单,就是使用GPT-3去在人类标注的问答对上进行训练。当然也采用了prompt learning的思想。

2.6.1 RLHF (Reinforcement Learning Human Feedback)

简单来说,就是采用强化学习的方式,对某个问题的不同个答案进行排序。训练目标就是让模型预测出的排序和人类进行排序的答案一致。也被称为一种Reward Model。而这种反馈来自于人类。

三、总结

目前训练超大规模语言模型主要有两条技术路线:TPU + XLA + TensorFlow/JAX (Pathways)和 GPU + PyTorch + Megatron-LM + DeepSpeed。前者由Google主导,由于TPU和自家云平台GCP深度绑定,对于非Googler来说, 只可远观而不可把玩,后者背后则有NVIDIA、Meta、MS大厂加持,社区氛围活跃,也更受到群众欢迎。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15732.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

插件推荐:一键保存ChatGPT对话记录GPT-EZ

大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加:keeepdance,备注:chatgpt,拉你进群。 我们在与ChatGPT对话中,好的使用体验,也许需要漫长的调教。一…

聚观早报 | Meta 考虑推出 Twitter 竞品;硅谷银行,真的倒闭了

今日要闻:Meta 考虑推出 Twitter 竞品;硅谷银行,真的倒闭了;谷歌 Stadia 云服务被关闭;用和微软合作开发ChatGPT车载服务;长城汽车悬赏1000万抵制网络水军 Meta 考虑推出 Twitter 竞品 Meta 正在探索推出一…

本地部署 Chatbot UI,一个开源的 ChatGPT UI

openchat-ui 0. 什么是 Chatbot UI1. Github 地址2. 本地部署3. (参考)配置文件说明 0. 什么是 Chatbot UI Chatbot UI 是一个用于 AI 模型的开源聊天 UI。适用于 OpenChat 模型。 画面效果展示如下, 1. Github 地址 https://github.com/imoneoi/openchat-ui 2.…

基于Chatbot UI 实现ChatGPT对话-V1.2

基于Chatbot UI 实现ChatGPT对话-V1.0 前端基于开源项目:chatbot-ui进行二次开发,感兴趣的小伙伴可以自行研究。 本项目搭建初衷:在无法科学上网的情况下,实现ChatGPT对话。还有规避官方聊天时,长时间无链接导致的问题…

chatgpt赋能python:Python创建GUI界面——让你的程序更加直观易用

Python创建GUI界面——让你的程序更加直观易用 Python作为一门直译式的解释性高级编程语言,具有简洁、易读、易学的特点,一直被广泛应用于数据处理、自动化脚本、Web开发等方面。而随着Python在各个领域的应用不断扩大,Python GUI界面开发也…

边无际CEO陈永立:让ChatGPT通过物联网看到世界

如何利用ChatGPT及其插件,将AI与物联网设备相连? 通过Shifu Plugin获取摄像头的实时画面 我们都认识到,ChatGPT引发了一连串的技术变革。作为一个对AI和物联网技术充满热情的开发者,获得ChatGPT插件的早期访问权限,是…

35岁程序员:从焦虑到适应

文章目录 前言:chatgpt的回答35岁程序员有危机吗?35岁程序员面对裁员应该如何做? 焦虑:岁数不小、精力不够、能力一般岁数不小精力不够、能力一般 适应:失业难以避免,重构人生规划失业难以避免重构人生规划“35岁危机”是一个极…

全球AI最具创新力城市北京排名第二,杭州超过深圳

2023年全球人工智能最具创新力城市排名发布了! 7月6日,中国国际数字和软件服务交易会(简称“数交会”)在辽宁省大连市开幕。在会议期间举办的第二届中国计算机学会东北论坛中,AMiner联合智谱研究发布2023年全球人工智能…

李彦宏关于大模型最新演讲 | 大模型重塑数字世界

文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 2023 年 6 月 26 日,百度创始人、董事长兼首席执行官李彦宏出席 “世界互联网大会数字文明尼山对话”,发表了题为《大模型重塑…

训练人工智能的中国县城工人

Datawhale干货 最新:AI行业现状,来源:蓝字计划 作者 | 林石 来源 | 蓝字计划(NPO2020) 全文字数|约4300 全世界都在谈论ChatGPT将带来颠覆性的技术革命,但人工智能训练师李杰却一点…

自学编程,从月薪500到年薪150万,46岁程序员的IT成长之路

【CSDN 编者按】本文来自 CSDN“年度征文”活动中的一篇文章,作者分析了入行编程 20 年,从高中物理老师到自学编程,在 IT 编程领域摸爬滚打,经历多次起伏与柳暗花明。 原文链接:https://blog.csdn.net/mosquitoxh/arti…

文心一言算力从哪来?自家最大智算中心:算力规模4EFLOPS,base李彦宏老家

百度版ChatGPT底层算力支持,李彦宏老家阳泉助一臂之力! 量子位获悉,百度阳泉智算中心从2月底开始就布设了两个新机房,专门为自家大模型产品文心一言提供计算推理的算力需求。 同样功能的机房,在百度保定计算集群&…

阿里版ChatGPT已进入测试,中文聊天截图曝光,达摩院出品

谷歌硬刚ChatGPT消息一出,科技圈全坐不住了。 就在2月9号,阿里百度网易京东一众公司全宣布要推出类ChatGPT新产品,战况那叫一个激烈。 阿里内测中的达摩院版ChatGPT,也被提前曝光。 竟然连画画技能都具备了?&#xff0…

ChatGPT标注数据比人类便宜20倍,80%任务上占优势 | 苏黎世大学

Pine 发自 凹非寺量子位 | 公众号 QbitAI 又一“人类饭碗”被AI抢走,还是和训练AI息息相关的: 数据标注。 苏黎世大学研究发现,在ChatGPT面前,无论成本还是效率,人类可以说是毫无优势: 成本上,C…

ChatGPT引爆变革:第五个被颠覆的行业——市场营销与广告

随着人工智能技术的不断发展,ChatGPT已经开始在市场营销与广告领域产生深远影响。作为一款强大的文本生成工具,ChatGPT不仅能够撰写各类文章,还可以用于广告文案创作、营销策略设计以及消费者行为分析。 在广告文案创作方面,ChatG…

GPT-5根本不存在!ChatGPT之父Sam Altman首次公开表态,最新视频流出

新智元报道 编辑:编辑部 【新智元导读】4月13日,OpenAI CEO、GPT-4老板Sam Altman在接受视频采访时的一句话,让在场所有人惊呆了:「压根就没有GPT-5」! Sam Altman辟谣了!根本就没有GPT-5! 之…

LLM 系列 | 06:ChatGPT Prompt实践:文本摘要推断转换

简介 梅子留酸软齿牙,芭蕉分绿与窗纱。日长睡起无情思,闲看儿童捉柳花。小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖雪糕的小女孩。更多、更新文章欢迎关注 微信公众号:小窗幽记机器学习。后续会持续整理…

分布式session解决方案

一、Session工作原理: 三个问题: 1、Tomcat中的Session保存在哪? Tomcat本地的ConcurrentHashMap中(本地缓存),以sessionid为key。 2、Tomcat是怎么追踪到请求是属于哪个Session? 通过cook…

类ChatGPT编程秀-编写爬虫代码

随着ChatGPT的大火,越来越多的人习惯于用ChatGPT搞一些有趣的事。去年小编做了一个“有书乐享”的小程序,其中有部分的书籍信息是通过爬虫来抓取的数据,有书乐享”小程序可以看文章《一款简约的乐享书籍小程序》,现在主要是用Clau…

从运维的意义谈起

上周五在北京,原本约了优诺的傲寒想找他去聊聊,然后再回家,因为临时有事未能前往。每次和傲寒聊聊都会有很多收获,这回没能见面聊一聊,觉得有些遗憾。不过在机场的时候看到了天旦的CEO Vader的《运维的意义》&#xff…