chatgpt技术总结(包括transformer,注意力机制,迁移学习,Ray,TensorFlow,Pytorch)

最近研读了一些技术大咖对chatgpt的技术研讨,结合自己的一些浅见,进行些许探讨。

我们惊讶的发现,chatgpt所使用的技术并没有惊天地泣鬼神的创新,它只是将过去的技术潜能结合现在的硬件最大化的发挥出来,也正因如此,旧有技术的可用性,让各大厂嗅到了快速发展的商机,纷纷跑步入场。

首先我们要了解chatgpt是一种自然语言处理模型 ,也可以理解为文本生成模型 。在框架上chatgpt采用了transformer框架 ,这种框架又被称作变形金刚,因为相对于CNN 只能处理空间信息,像图像处理,目标检测等。RNN 只能处理时序信息,像语音处理,文本生成等,transformer对空间信息和时序信息皆可处理,而且在时序信息的处理上,相比于RNN,它可以记录和处理几千字、上万字甚至更多的文本信息(长序列信息),以及音频和视频等信息的的前后依赖关系,这是传统RNN望尘莫及的,而且transformer所具有的自注意力机制和多头注意力机制,可以强化这种依赖关系(或者说让模型更好的捕捉这种依赖关系)。

此外在训练上,chatgpt采用了预训练技术 ,简单理解就是,先用一些数据对模型进行初步训练,具体而言,是指用大量的无标签数据对模型进行训练,帮助模型在正式训练时可以更好的理解和处理自然语言。另一个微调技术就是在特定任务上进行有监督的训练,可以进一步提高模型的性能。具体而言就是将预训练好的模型参数作为初始状态,然后在目标任务上重新训练模型,以进一步提高模型的性能。相比起从头开始训练一个新的模型,微调技术可以在更短的时间内获得更好的结果,并且可以减少训练时间和计算资源的需求。这两项技术提高了chatgpt的泛化能力和性能。

而且chatgpt也加入了跨语言迁移学习,就是在已有的语言模型基础上,针对另一个语言的任务进行预训练,然后再将其应用到原始语言的任务中。简单理解就是,现在英文语料库中训练英文模型,再在英文模型基础上,基于中文语料库,预训练中文模型,然后将该模型应用到中文语库中。这项技术的应用扩展的chatgpt的应用场景。

最后除了主流的TensorFlowPytorch 框架,我们还要注意一个分布式机器学习框架Ray,这让chagpt的实际训练成为了可能,chatgpt的训练包含以亿为单位的参数,其计算量过于巨大,如何提高其并行计算能力,成为学界研究的重点,chatgpt的训练需要大量的硬件,甚至不同的硬件之上协调训练,而Ray可以将不同硬件作为一个单元来管理,便于确定什么数据去哪里,处理故障等,而且解决了硬件冲突问题,可以跨越不同硬件种类包括,谷歌云、AWS 和其他处理相同问题的产品组合。并且,Ray 还将其他语言中的一个关键编程概念「actor」扩展到 Python。另外Google的JAX作为对标Ray的框架,近来也得到了大量关注。

延伸一下Ray,TensorFlow和Pytorch的联系和区别:

Ray与深度学习框架的关系:Ray 与 TensorFlow、PyTorch 和 MXNet 等深度学习框架互相兼容,在很多应用上,在 Ray 中使用一个或多个深度学习框架都是非常自然的(例如,UC Berkeley 的强化学习库就用到了很多 TensorFlow 与 PyTorch)。

一些分布式技术概念

数据并行:数据并行是指将输入数据分成多个小批次,将这些小批次分配到不同的GPU内存进行处理。这种方法可以大大提高模型的训练速度和处理效率,并且可以帮助模型处理更大规模的输入数据。

模型并行:模型并行是指将模型分解成多个子模型,并将这些子模型分配到不同的GPU芯片上进行处理。这种方法可以提高模型的处理能力,并使其能够处理更大的数据集。

模型平行:这种方法与模型并行很相似,但是不同的是,模型平行将模型分解成多个层,并将这些层分配到不同的GPU芯片上进行处理。这种方法可以帮助模型处理更大的数据集,并提高模型的处理能力。

集群并行:集群并行是指将模型分布式地部署在多个计算机上,并将不同的计算机与GPU连接起来。这种方法可以帮助模型处理更大规模的数据集,并且可以提高模型的处理效率和速度。

整合:这种方法使用以上多种技术的组合,以达到更高的训练速度和处理效率

最后,思考不同的算法和框架在强化学习中的应用。

往期文章

1.Transformer(一)简述(注意力机制,NLP,CV通用模型)-CSDN博客

2.Transformer(二)(VIT,TNT)(基于视觉CV)_笑傲江湖2023的博客-CSDN博客

3.迁移学习(新人必看)_笑傲江湖2023的博客-CSDN博客

4.机器学习方法(一)(决策树,随机森林,线性回归,神经网络,模型评估,集成学习)概述_决策森林 神经网络_笑傲江湖2023的博客-CSDN博客

参考文献

1. ChatGPT的底层架构简介_鹤鹤的森林的博客-CSDN博客

2.ChatGPT背后的开源AI框架Ray,现在值10亿美元_Python正在输入中......的博客-CSDN博客

3.Chatgpt-3数据集处理代码和训练代码使用的主要编程语言和框架_gpt3训练数据-CSDN博客

  1. Chatgpt-3 训练使用的分布式技术和框架_roxxo的博客-CSDN博客

  2. pytorch和tensorflow有什么区别?_程序媛珂珂的博客-CSDN博客

6.深入剖析PyTorch和TensorFlow:理解二者的区别与联系_tensorflow pytorch_Chaos_Wang_的博客-CSDN博客

  1. PyTorch & 分布式框架 Ray :保姆级入门教程_分布式自然进化策略使用pytorch和ray构建_HyperAI超神经的博客-CSDN博客

8.使用 Ray 将 PyTorch 模型加载速度提高 340 倍_单机ray比pytorch快_机器学习社区的博客-CSDN博客9.伯克利AI分布式框架Ray,兼容TensorFlow、PyTorch与MXNet-CSDN博客

10 .Ray和RLlib用于快速并行强化学习_ray.ppo-CSDN博客

11.低成本训练专属ChatGPT的开源框架LMFlow-CSDN博客

相关推荐
取个名字真难呐几秒前
矩阵乘法实现获取第i行,第j列值,矩阵大小不变
python·线性代数·矩阵·numpy
newxtc5 分钟前
【AiPPT-注册/登录安全分析报告-无验证方式导致安全隐患】
人工智能·安全·ai写作·极验·行为验证
技术仔QAQ20 分钟前
【tokenization分词】WordPiece, Byte-Pair Encoding(BPE), Byte-level BPE(BBPE)的原理和代码
人工智能·python·gpt·语言模型·自然语言处理·开源·nlp
WangYaolove131429 分钟前
请解释Python中的装饰器是什么?如何使用它们?
linux·数据库·python
陌上阳光43 分钟前
动手学深度学习70 BERT微调
人工智能·深度学习·bert
宋发元1 小时前
如何使用正则表达式验证域名
python·mysql·正则表达式
XMYX-01 小时前
Python 操作 Elasticsearch 全指南:从连接到数据查询与处理
python·elasticsearch·jenkins
正义的彬彬侠2 小时前
sklearn.datasets中make_classification函数
人工智能·python·机器学习·分类·sklearn
belldeep2 小时前
python:用 sklearn 转换器处理数据
python·机器学习·sklearn
ctrey_2 小时前
2024-11-13 学习人工智能的Day26 sklearn(2)
人工智能·学习·sklearn