ChatGPT 从应用层,PyTorch/TensorFlow, 到CUDA框架,GPU, HBM, NVMe SSD,本文将简单讲一下从提交一个问题到ChatGPT,到它“吐出来”所有的答案,上面的每个层次都怎么交互的?包括和CPU的交互。
接昨天的《通俗易懂地讲解ChatGPT的训练和推理过程的分层软/硬件架构(1)》ChatGPT的分层架构,从用户提交问题到ChatGPT生成回答的整个过程,涉及从应用层到硬件层的各个环节。
1.应用层
当用户提交一个问题时,首先由应用层的接口(如网页或API)接收。这一层负责:
2.服务器后端
后端接收到请求后,会进行以下处理:
请求验证和解析
准备模型输入(包括添加系统提示、格式化用户输入等)
调用深度学习框架(如PyTorch或TensorFlow)
3.PyTorch/TensorFlow层
这一层是高级深度学习框架,负责:
加载预训练的ChatGPT模型
将输入数据转换为模型可理解的格式
调用底层CUDA操作
4.CUDA框架
CUDA是NVIDIA开发的并行计算平台和编程模型,它:
将PyTorch/TensorFlow的高级操作转换为GPU可执行的底层指令
优化数据在CPU和GPU之间的传输
管理GPU内存分配
5.GPU (图形处理器)
GPU是执行实际计算的硬件:
并行处理大量数据
执行矩阵乘法等核心操作
与HBM高带宽内存交互
6.HBM (高带宽内存)
HBM是与GPU紧密集成的高速内存:
存储模型参数和中间计算结果
提供高带宽、低延迟的数据访问
减少GPU与主内存之间的数据传输
7.CPU (中央处理器)
CPU在整个过程中起到协调作用:
管理整体计算流程
处理不适合GPU的串行任务
协调数据在各个组件间的传输
8.NVMe SSD (固态硬盘)
NVMe SSD主要用于:
存储模型权重和配置文件
在需要时快速加载模型到内存
缓存中间结果(如果内存不足)
交互过程:
用户提交问题后,应用层将请求发送到服务器后端。
后端准备输入数据,调用PyTorch/TensorFlow框架。
PyTorch/TensorFlow加载模型(可能从NVMe SSD读取),并通过CUDA框架将计算任务分配给GPU。
GPU从HBM读取模型参数和输入数据,执行大规模并行计算。
计算过程中,GPU与HBM频繁交互,存取中间结果。
CPU协调整个过程,管理GPU任务队列,处理I/O操作。
如果需要,NVMe SSD可能被用来存储中间结果或加载额外数据。
GPU完成计算后,结果通过CUDA框架返回到PyTorch/TensorFlow。
PyTorch/TensorFlow处理输出,返回给后端服务器。
后端服务器格式化响应,通过应用层接口返回给用户。
这个过程是高度并行和优化的,多个GPU可能同时工作,CPU不断调度任务,以确保高效生成响应。整个系统的性能取决于各个组件的协调工作,特别是GPU的并行处理能力和内存带宽。
今天,许多开发者从 OpenAI 那收到了一份警告信,显示2024/7/9日起OpenAI 将全面封锁中国 API 接入:
您好, 据我们的数据监测,贵组织正从 OpenAl 当前未支持的区域产生 API 访问流量。您可以在官网查阅我们所支持的国家与地区名单。请注意,自 7 月 9 日起,我们将对不在此支持名单上的区域实施 API 访问限制措施。为了确保持续使用 OpenAl 的各项服务,请在被支持的区域内登录访问。
如有疑问,欢迎访问我们的帮助中心寻求解答。
谢谢,
OpenAl 团队
这封信犹如平静湖面投入一块巨石,激起层层波澜。在此前,OpenAI 虽然严格限制了网页端聊天机器人的区域访问权限,但事实上对 API 服务却采取了“睁一只眼闭一只眼”的态度。
如今,封禁力度加大,今年七月起,包括中国大陆和中国香港在内的非支持国家和地区的开发者及企业都无法再访问 API 服务,OpenAI 真的要开始严格管控了。
有些国产GPU卡宣称支持兼容CUDA架构,可以比较方便地使用PyTorch/TensorFlow进行大模型训练和推理,目前其实也面临着被Nvidia掐断的风险,下面的文章我们将介绍一下CUDA架构和Nvidia有哪些途径可以掐断对于非Nvidia GPU的支持。
如果你有其任何关于PCIe5&6.0, CXL, NVMe, NAND, DDR5/LPDDR5以及UFS测试方面的我问题想咨询,请添加点击左下角“阅读原文”留言,或者saniffer公众号留言,致电021-50807071 / 13127856862,sales@saniffer.com。