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博客 

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

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

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

7. 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博客 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Android学习之路(20) 进程间通信

IPC IPC为 (Inter-Process Communication) 缩写,称为进程间通信或跨进程通信,指两个进程间进行数据交换的过程。安卓中主要采用 Binder 进行进程间通信,当然也支持其他 IPC 方式,如:管道,Socket&#xff0…

后端面经学习自测(二)

文章目录 1、Http1.1和2.0的区别大概是什么?HTTP & HTTPS 2、HTTP,用户后续的操作,服务端如何知道属于同一个用户cookie & session & token手机验证码登录流程SSO单点登录 3、如果服务端是一个集群机器?4、hashmap是线…

华为云云耀云服务器L实例评测|基于canal缓存自动更新流程 SpringBoot项目应用案例和源码

前言 最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。 在之前的博客中,介绍过canal的安装和配置,参考博客 拉取创建canal镜像配置相关参数 & …

《Jetpack Compose从入门到实战》第一章 全新的 Android UI 框架

书籍源码 Compose官方文档 《Jetpack Compose从入门到实战》第一章 全新的 Android UI 框架 《Jetpack Compose从入门到实战》 第二章 了解常用UI组件 《Jetpack Compose从入门到实战》第三章 定制 UI 视图 《Jetpack Compose从入门到实战》第八章 Compose页面 导航 《Jet…

【Overload游戏引擎分析】画场景网格的Shader

Overload引擎地址: GitHub - adriengivry/Overload: 3D Game engine with editor 一、栅格绘制基本原理 Overload Editor启动之后,场景视图中有栅格线,这个在很多软件中都有。刚开始我猜测它应该是通过绘制线实现的。阅读代码发现&#xff0…

JAVA面经整理(8)

一)为什么要有区,段,页? 1)页是内存和磁盘之间交互的基本单位内存中的值修改之后刷到磁盘的时候还是以页为单位的索引结构给程序员提供了高效的索引实现方式,不过索引信息以及数据记录都是记录在文件上面的,确切来说是…

矩阵的c++实现(2)

上一次我们了解了矩阵的运算和如何使用矩阵解决斐波那契数列&#xff0c;这一次我们多看看例题&#xff0c;了解什么情况下用矩阵比较合适。 先看例题 1.洛谷P1939 【模板】矩阵加速&#xff08;数列&#xff09; 模板题应该很简单。 补&#xff1a;1<n<10^9 10^9肯定…

给列起别名(关键字:as)

MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 语法格式: select 列名1 as 别名1, 列名2 as 别名2, 列名n as 别名n from 表名; 说明&#xff1a;可以省略as&#xff0c;列名和别名之间使用空格…

MySQL——使用mysqldump备份与恢复数据

目录 1.mysqldump简介 2.mysqldump备份数据 2.1 备份所有数据库 2.2 备份一个/多个数据库 2.3 备份指定库中的指定表 3.mysqldump恢复数据 3.1 恢复数据库 3.2 恢复数据表 1.mysqldump简介 mysqldump命令可以将数据库中指定或所有的库、表导出为SQL脚本。表的结构和表中…

并网逆变器+VSG控制+预同步控制+电流电流双环控制(Simulink仿真实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

火山引擎 ByteHouse:TB 级数据下,如何实现高效、稳定的数据导入

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 近期&#xff0c;火山引擎开发者社区、火山引擎数智平台&#xff08;VeDI&#xff09;联合举办以《数智化转型背景下的火山引擎大数据技术揭秘》为主题的线下 Meeup…

做好微信CRM,这些功能你不可不知!

在当前的数字化时代&#xff0c;微信已成为我们日常生活中的重要元素&#xff0c;无论是社交交流、信息传递还是商务合作&#xff0c;微信都扮演着不可或缺的角色。为了更有效地管理微信资源并提高工作效率&#xff0c;很多组织和公司都选择引入微信CRM系统。那么&#xff0c;怎…

【算法学习】-【双指针】-【盛水最多的容器】

LeetCode原题链接&#xff1a;盛水最多的容器 下面是题目描述&#xff1a; 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。…

sheng的学习笔记-【中文】【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第三周测验

课程1_第3周_测验题 目录&#xff1a;目录 第一题 1.以下哪一项是正确的&#xff1f; A. 【  】 a [ 2 ] ( 12 ) a^{[2](12)} a[2](12)是第12层&#xff0c;第2个训练数据的激活向量。 B. 【  】X是一个矩阵&#xff0c;其中每个列都是一个训练示例。 C. 【  】 a 4 […

如果在 Mac 上的 Safari 浏览器中无法打开网站

使用网络管理员提供的信息更改代理设置。个人建议DNS解析&#xff0c;设置多个例如114.114.114.114 8.8.8.8 8.8.4.4 如果打不开网站&#xff0c;请尝试这些建议。 在 Mac 上的 Safari 浏览器 App 中&#xff0c;检查页面无法打开时出现的信息。 这可能会建议解决问题的…

pandas read_json时ValueError: Expected object or value的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

坦克世界WOT知识图谱三部曲之爬虫篇

文章目录 关于坦克世界1. 爬虫任务2. 获取坦克列表3. 获取坦克具体信息结束语 关于坦克世界 《坦克世界》(World of Tanks, WOT)是我在本科期间玩过的一款战争网游&#xff0c;由Wargaming公司研发。2010年10月30日在俄罗斯首发&#xff0c;2011年4月12日在北美和欧洲推出&…

IDT 一款自动化挖掘未授权访问漏洞的信息收集工具

IDT v1.0 IDT 意为 Interface detection&#xff08;接口探测) 项目地址: https://github.com/cikeroot/IDT/该工具主要的功能是对批量url或者接口进行存活探测&#xff0c;支持浏览器自动打开指定的url&#xff0c;避免手动重复打开网址。只需输入存在批量的url文件即可。 …

Linux删除空目录/非空目录和文件

一、删除目录 删除名为mydir的空目录: rmdir mydir 删除名为mydir的非空目录(非空目录是指该目录包含了其他文件或子目录&#xff0c;而不是空的或没有任何内容的目录) rm -r mydir 删除mydir1下的空目录mydir2 rmdir mydir1/mydir2 删除当前目录下所有以dir一个数字结尾的目录…

Nginx限流熔断

一、Nginx限流熔断 Nginx 是一款流行的反向代理和负载均衡服务器&#xff0c;也可以用于实现服务熔断和限流。通过使用 Nginx 的限流和熔断模块&#xff0c;比如&#xff1a;ngx_http_limit_req_module 和 ngx_http_limit_conn_module&#xff0c;可以在代理层面对服务进行限流…