一、GPU价格参考
- 有些在京东就能买到:https://item.jd.com/10065826100148.html
- 美国商务部限制 GPU 对华出口的算力不超过 4800 TOPS 和带宽不超过 600 GB/s,导致最强的 H100 和 A100 禁售。英伟达随后推出针对中国市场的 A800 和 H800。
H100 与 A100:H100 比 A100 快多少?
16-bit 推理快约 3.5 倍,16-bit 训练快约 2.3 倍。
二、部署大模型的最低和最佳配置
以 llama3::70B大模型为例
GPU要求
模型参数内存需求
一般显存需求为参数规模的两倍。
- 模型参数:70B(700亿)个参数
- 内存需求:70B参数 * 2字节 = 140GB
额外内存需求
额外内存需求是模型参数内存的0.5到1倍:
- 最小额外内存需求:140GB * 0.5 = 70GB
- 最大额外内存需求:140GB * 1 = 140GB
总内存需求
- 最小总内存需求 = 模型参数内存 + 最小额外内存 = 140GB + 70GB = 210GB
- 最大总内存需求 = 模型参数内存 + 最大额外内存 = 140GB + 140GB = 280GB
计算所需GPU数量
NVIDIA RTX 4090(24GB)
-
每块显存:24GB
-
最小所需块数:210GB / 24GB ≈ 8.75块,约9块
-
最大所需块数:280GB / 24GB ≈ 11.67块,约12块
调整配置建议
最低要求
- NVIDIA RTX 4090(24GB):12块(考虑到实际部署中的冗余)
最佳配置
- NVIDIA RTX 4090(24GB):14块(更多的冗余和性能优化)
内存需求分析
1. 模型参数加载
- 参数数量:Llama 3: 70B模型有70亿个参数。
- 模型参数内存需求:每个参数假设为2字节(FP16格式),因此模型参数占用的显存为140GB。
2. 数据预处理和加载
- 数据预处理:处理输入数据(如文本分词、特征提取等)需要一定的系统内存。
- 数据加载:将数据从存储设备加载到GPU显存中,通常在系统内存中进行缓冲和管理。
3. 中间结果存储
- 激活值和中间结果:前向传播和反向传播(如果进行训练)会产生大量的中间结果,这些中间结果会占用系统内存。
4. 操作系统和应用程序
- 操作系统:操作系统本身和后台服务需要一定的内存。
- 并行处理:多线程或多进程计算也会占用系统内存。
计算系统内存需求
内存分配比例
- 模型参数加载(总内存需求的40%)
- 数据预处理和加载(总内存需求的20%)
- 中间结果存储(总内存需求的20%)
- 操作系统和应用程序(总内存需求的20%)
最低和最佳内存要求
最低要求
系统内存需求:考虑到实际操作中的冗余和性能优化,最低要求如下:
- 模型参数加载:140GB
- 数据预处理和加载:70GB(假设模型参数内存的50%)
- 中间结果存储:70GB(假设模型参数内存的50%)
- 操作系统和应用程序:50GB(一般需求)
总最低内存要求:140GB + 70GB + 70GB + 50GB = 330GB
最佳配置
系统内存需求:为了更高效地运行和处理大模型,最佳配置考虑了更多的冗余和计算需求:
- 模型参数加载:140GB
- 数据预处理和加载:140GB(假设模型参数内存的100%)
- 中间结果存储:140GB(假设模型参数内存的100%)
- 操作系统和应用程序:100GB(更高的需求以保证系统稳定性)
总最佳内存要求:140GB + 140GB + 140GB + 100GB = 520GB
内存分配比例
在部署大模型时,各部分内存的分配比例如下:
- 模型参数加载:40%
- 数据预处理和加载:20%
- 中间结果存储:20%
- 操作系统和应用程序:20%
结论
- 最低内存要求:约330GB
- 最佳内存配置:约520GB
这个数据可以有点偏大,我在实测过程中,部署llama3:14b的大模型,占用了仅16G内存,触发推理时会多一些,这个数据可作为参考。
云服务厂商对比
国内主流
- 阿里云:GPU云服务器_GPU云计算_异构计算_弹性计算-阿里云 (可申请免费试用)
- 腾讯云:腾讯云最新活动_腾讯云促销优惠_代金券-腾讯云官网入口
- 火山引擎:GPU云服务器-火山引擎
国外主流
- AWS:https://aws.amazon.com
- Vultr:https://www.vultr.com
- TPU:https://cloud.google.com/tpu
TPU 是 Google 专门用于加速机器学习的硬件。它特别适合大规模深度学习任务,通过高效的架构在性能和能源消耗上表现出色。
它的优点和应用场景:
-
高性能和能效: TPU 可以更快地完成任务,同时消耗较少的能源,降低成本。
-
大规模训练: TPU 适用于大规模深度学习训练,能够高效地处理大量数据。
-
实时推理: 适合需要快速响应的任务,如实时图像识别和文本分析。
-
云端使用: Google Cloud 提供 TPU 服务,允许用户根据需求使用,无需购买硬件。
适用于图像处理、自然语言处理、推荐系统等多个领域。
在国外,科研机构、大公司和初创企业普遍使用 TPU。
下面是对两款 NVIDIA GPU 在他主流厂商的价格进行对比:
- A100:在云服务中,A100 是顶级的企业级 GPU,适用于高性能计算需求。
- T4:相比之下,T4 更为经济,适合日常模型微调和推理任务。
算力平台
主要用于学习和训练,不适合提供服务。
- Colab:谷歌出品,升级服务仅需 9 美金。https://colab.google.com
- Kaggle:免费,每周 30 小时 T4,P100 可用。https://www.kaggle.com
- AutoDL:价格亲民,支持 Jupyter Notebook 及 ssh,国内首选。https://www.autodl.com
建议:若需高速下载,尤其依赖于 GitHub 或 Docker 官方镜像,建议选择国外服务器。
根据场景选择 GPU
以下是基于显卡 4090 上的 chatglm 和 chatglm2 模型的 Fine tuning 实验数据概览: