ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

从零开始用云GPU实例跑大模型:租用、部署与微调实践

从零开始用云GPU实例跑大模型:租用、部署与微调实践 在实际的深度学习、大模型微调和推理部署工作中GPU 算力往往是第一个门槛。训练一个参数较多的模型或者跑一次 7B 级别模型的量化推理都需要显存足够大、计算能力足够强的显卡。对于没有自建机房条件的学生、创业团队和中小研发部门来说GPU租赁、显卡租赁、云端算力租用已经比自购硬件更现实。下面的内容围绕云 GPU 算力租用平台的实际使用流程展开以酷虎云这类提供 3090、4090、5090、A100、A800、H20 显卡并按小时计费的平台为对象讲清楚选实例、部署环境、控制成本、排查问题这四件事。看完之后你可以从零完成一次 GPU 实例的创建、环境搭建、模型任务运行和数据保存并对常见故障形成一套自己的处理顺序。1. 先理解 GPU 算力租赁解决了什么问题1.1 自购显卡和租用算力的本质区别自购显卡看起来简单买一块 4090插到工作站上装好驱动就能用。但实际算上整机成本、电源、散热、机房托管、故障保修和折旧一块显卡的完整使用成本远不止显卡本身。更麻烦的是任务周期不固定论文实验可能连续一周满载之后一个月都用不上硬件闲置成本很高。租用算力把固定成本转化成了可变成本。平台在数据中心统一采购显卡用户按小时付费开机才计费用完释放。对任务波动明显的场景这种模式的资金效率更高。租用算力的核心价值不是“更便宜”而是“用多少付多少不需要承担硬件生命周期管理”。要澄清一个常见误解租用 GPU 不等于远程桌面操作 Windows。绝大多数云 GPU 平台提供的是 Linux 实例用户通过 SSH 进入终端在命令行里完成环境安装、代码运行和日志查看。即使有 WebShell 或 JupyterLab 界面底层逻辑也是 Linux 环境。1.2 云端 GPU 实例的基本组成一个云端 GPU 实例通常由四部分组成计算资源显卡型号、显存大小、GPU 数量。CPU 和内存用于数据加载、预处理和控制逻辑。GPU 再强如果 CPU 核数太少、内存不足数据搬运会成为瓶颈。存储系统盘、数据盘。数据盘容量决定你能存多少数据集和模型权重。网络上传代码和下载模型的带宽影响任务准备时间。这四个参数要一起考虑。很多新手只盯着显卡型号选了 A100 却只配了 4 核 CPU 和 16GB 内存跑数据预处理时 CPU 满载GPU 利用率却上不去。在酷虎云这类平台上创建实例时页面会同时展示 CPU、内存、存储和带宽选项这些配置决定实例能否把显卡性能真正发挥出来。1.3 常见 GPU 型号一张表看清不同任务对显卡的需求差异很大先理解型号的基本定位再谈选型。型号架构显存典型用途定位RTX 3090Ampere24GB中小模型微调、推理、入门学习消费级RTX 4090Ada Lovelace24GB大模型推理、中小规模微调、高性价比消费级RTX 5090Blackwell32GB更新一代显卡适合大上下文推理消费/工作站级A100Ampere40GB/80GB大规模训练、高并发推理数据中心级A800Ampere80GB大规模训练、数据并行数据中心级H20Hopper96GB大显存推理、大 batch 场景数据中心级本表只列常见型号实际平台还会提供 H100、H200、B200 等更新型号以平台实际上架情况为准。算力表的数值TFLOPS 或 TOPS只能作为参考峰值算力不等于真实任务性能。实际表现还取决于显存带宽、PCIe 带宽、多卡互联和软件优化。2. 选实例不是越高配越好先算清楚三笔账2.1 任务类型决定显存和精度需求选实例的第一件事不是看显卡好不好而是看任务需要什么。可以把任务分成三类。第一类是模型训练和微调。这类任务既吃显存又吃算力。使用 LoRA、QLoRA 等参数高效微调方法时7B 模型可能 24GB 显存就能跑13B 模型推荐 40GB 以上70B 模型的量化微调则需要 80GB 或更多显存。训练任务通常还在乎多卡互联能力数据中心级显卡在多卡配置中通常有专门的互联设计比消费级显卡更适合数据并行和模型并行。第二类是推理服务。推理对显存容量的需求取决于模型规模和并发量。加载一个 7B 模型fp16 权重大约需要 14GB 显存再加上 KV Cache 和输入输出缓冲单卡推理建议至少预留 24GB。如果主要做高并发推理H20 这类大显存卡在 batch 聚合时往往比消费级显卡更有优势。第三类是数据处理、视频渲染或科学计算。图像处理、视频编解码、分子模拟等任务关注点更多在 CUDA 核心数量和显存带宽不一定要用数据中心级显卡。选型时要问自己三个问题模型或数据需要多大显存任务单卡能不能完成多卡并行后的通信开销能不能接受2.2 按小时计费模式下的成本估算方法按小时计费是 GPU 租赁最常见的计费方式。理解计费规则可以避免两类错误一是不知道停机是否计费二是低估任务运行时间。在创建实例前建议用下面的公式估算成本单次任务成本 实例单价元/小时 × 预计运行小时数 数据存储费用 流量费用如有使用酷虎云或其他云 GPU 平台时创建实例前要确认三个和计费有关的细节实例是创建后立刻计费还是开机后计费。很多平台创建实例即开始计费即使 SSH 还没连上。停机后是否还收取费用。有的平台停机只收存储费不收算力费有的平台停机仍然按折扣价计费需要看约定。快照、数据盘和公网 IP 是否单独收费。这些费用通常不高但长周期任务累计下来也不可忽略。注意创建实例前务必确认停机是否计费。按小时计费模式下停机是否收费直接影响任务总成本。举例来说一个 7B 模型的微调任务如果预计需要 10 小时使用 4090 实例假设单价为每卡每小时若干元成本就是单价乘以 10。如果分成两次运行中间停机 20 小时停机是否计费会直接决定成本是否翻倍。2.3 学习环境与生产环境的实例选择差异学习场景建议选择消费级显卡3090、4090 或 5090。这类实例价格相对低环境问题少适合初学者练习 PyTorch、跑通模型代码、做小规模微调实验。即使环境弄坏了重新创建实例的成本也低。生产场景要额外考虑稳定性和数据安全。建议选择数据中心级显卡并且注意这几点实例规格和镜像版本要记录在案避免环境无法复现。任务脚本、依赖清单、数据集要放在外部存储或代码仓库中不要只存在于实例本地。选择有快照和自定义镜像功能的平台任务开始前打快照。多卡训练任务要确认平台提供的互联方式否则通信开销可能抵消多卡收益。3. 从注册到连接完成一次 GPU 实例创建3.1 实例创建前需要确定的参数打开一个云 GPU 平台的控制台后创建实例时需要确定以下参数地域选择离自己数据源近的地域可以减少上传数据的时间。镜像操作系统的底子。多数平台提供 Ubuntu、CentOS、PyTorch、CUDA 等预置镜像。实例规格显卡型号、CPU 核数、内存大小。存储系统盘大小和数据盘大小。网络是否有公网 IP、带宽上限。这里最重要的建议是能用平台预置镜像就不要自己从空系统开始装。预置镜像通常已经装好 GPU 驱动和 CUDA 工具链省掉最容易出错的一环。3.2 创建实例并选择镜像以酷虎云这类平台的控制台为例创建时的选择顺序通常是选择地域和可用区。选择镜像。学习目的是 PyTorch就选带 PyTorch 或 CUDA 的镜像业务是推理就选带推理框架的镜像。选择显卡型号和数量。配置 CPU、内存、存储和带宽。设置登录密码或密钥。密钥登录更安全推荐优先使用。确认价格并创建。创建后实例会获得一个公网 IP 或内网 IP。公网 IP 用于从本地 SSH 登录如果平台只提供内网 IP需要先登录同区域的跳板机。3.3 通过 SSH 登录实例创建完成后用 SSH 客户端登录。Linux 和 macOS 终端直接使用ssh命令Windows 可以使用 PowerShell 或终端工具。ssh -i ~/.ssh/id_ed25519 root实例公网IP使用密码登录时ssh root实例公网IP登录成功后建议先执行一遍环境检查而不是立刻开始装包。检查内容包括操作系统版本、是否已有 NVIDIA 驱动、磁盘容量和 Python 版本。3.4 登录后第一时间做四项检查# 查看系统版本 cat /etc/os-release # 查看 GPU 状态 nvidia-smi # 查看磁盘空间 df -h # 查看 Python 版本 python3 --versionnvidia-smi是最关键的一项。正常输出会显示显卡型号、显存总量、当前占用和驱动版本。如果提示command not found说明驱动未安装或 PATH 没有配置如果提示No devices were found说明驱动与内核不匹配或者实例的显卡没有被正确加载。如果这些检查都通过再创建虚拟环境、安装框架。4. 在实例里安装框架并验证 GPU 可用4.1 驱动、CUDA、框架三层依赖的关系很多环境问题源于没有理解驱动、CUDA 和框架三者的关系。NVIDIA 驱动负责操作系统和显卡硬件之间的通信。它工作正常的标准是nvidia-smi能看到显卡信息。CUDA 工具链包含编译器、运行时库和计算库。PyTorch 等框架在安装时会捆绑自己需要的 CUDA 运行时所以系统层面不一定要单独安装完整 CUDA 工具包。框架PyTorch、TensorFlow通过 CUDA 调用显卡。框架版本和它捆绑的 CUDA 版本决定了对驱动版本的下限要求。关键经验驱动版本不要太老PyTorch 安装时选择匹配的 CUDA 版本不要为了解决 PyTorch 报错反复改系统默认 CUDA。一个常见坑是用户在系统里安装了新 CUDA导致原来的 PyTorch 报版本冲突。实际上只要nvidia-smi显示的驱动版本支持 PyTorch 捆绑的 CUDA系统 CUDA 是什么版本影响不大。4.2 安装 Python 环境和 PyTorch推荐使用 Miniconda 管理 Python 环境避免系统 Python 被污染。# 下载并安装 Miniconda wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh # 重新加载 bash 配置 source ~/.bashrc # 创建 Python 环境 conda create -n dl python3.10 -y conda activate dl然后按 PyTorch 官网给出的命令安装。以 CUDA 12.1 为例安装命令通常形如pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121这里要注意不要盲目安装最新版 PyTorch先确认实例的驱动版本支持哪个 CUDA 版本。驱动版本过低时即使 PyTorch 安装成功运行时也会报找不到 CUDA 设备的错误。4.3 跑通标准 GPU 验证脚本安装完成后运行下面的 Python 脚本验证 GPU 是否可用import torch print(PyTorch 版本:, torch.__version__) print(CUDA 是否可用:, torch.cuda.is_available()) print(GPU 名称:, torch.cuda.get_device_name(0)) print(显存总量(GB):, torch.cuda.get_device_properties(0).total_memory / 1024**3)预期输出大致是PyTorch 版本: 2.1.0cu121 CUDA 是否可用: True GPU 名称: NVIDIA GeForce RTX 4090 显存总量(GB): 24.0如果torch.cuda.is_available()返回False先回过去检查nvidia-smi。这一步是排查的起点。4.4 部署 Ollama 跑大模型推理Ollama 常用于在 GPU 上快速启动本地大模型推理。安装过程简单适合作为云 GPU 实例的第二个验证任务。# 下载 Ollama 安装脚本并执行 curl -fsSL https://ollama.com/install.sh | sh # 拉取模型并运行 ollama run qwen2.5:7b如果官方脚本下载速度不理想可以从平台预置镜像或公共镜像源获取 Ollama 安装包。首次运行会自动下载模型权重下载完成后进入交互式问答界面。这时在另一个终端里执行nvidia-smi可以看到显存被模型占用说明推理确实在使用 GPU。确认 Ollama 是否真的使用了 GPU可以观察两点一是nvidia-smi的进程列表里出现量化模型的显存占用二是执行ollama ps查看当前加载模型的状态。如果ollama run后速度很慢或者nvidia-smi里看不到 GPU 进程通常是驱动没有正确加载或者是 CUDA 运行库版本与 Ollama 不匹配。5. 用一个小任务完整验证租用流程5.1 用 PyTorch 做矩阵乘法压力测试环境就绪后先跑一个简单的矩阵乘法确认 GPU 能真正承载计算压力。import torch import time size 8192 a torch.randn(size, size, devicecuda) b torch.randn(size, size, devicecuda) # 同步一次确保前面的 CUDA 操作完成 torch.cuda.synchronize() t0 time.time() c torch.matmul(a, b) torch.cuda.synchronize() elapsed time.time() - t0 print(f矩阵大小: {size}x{size}) print(f耗时: {elapsed:.3f} 秒)这个脚本的意义在于验证 GPU 在高负载计算下的表现。如果矩阵乘法一直报错或者持续几分钟后出现GPU crash dump triggered之类的日志说明实例存在驱动不稳定或散热问题应该联系平台处理而不是继续调试代码。5.2 微调一个小模型时要注意的显存问题微调是 GPU 租赁的高频场景。以 LoRA 微调一个 7B 模型为例显存占用主要来自四部分模型权重、优化器状态、梯度、KV Cache 和中间激活。使用 LoRA 后可训练的参数量大幅减少显存占用也显著下降。即便如此7B 模型的 fp16 推理大约需要 14GB 显存微调则在 20GB 到 30GB 之间波动。因此 24GB 显存的 4090 适合 7B 模型的 LoRA 微调但训练过程中要监控显存使用情况watch -n 1 nvidia-smi如果遇到显存不足常见缓解方法包括降低 batch size这是最直接的方案。使用梯度累积模拟更大的 batch size不增加显存占用。使用混合精度训练减少激活值显存。换用更大显存实例比如 A100 80GB 或 H20。5.3 任务结束后的数据保存和实例释放按小时计费模式下任务结束后最重要的事是把需要保留的数据保存到实例外部再释放实例。保存数据的常用方式把代码推到 Git 仓库。把模型权重上传到对象存储或自己的存储空间。平台支持自定义镜像时把调整好的环境保存为镜像下次直接复用。数据盘如果支持快照先打快照再释放。注意释放实例前先确认数据备份完成实例本地数据在释放后通常无法恢复。确认数据已经保存后再执行释放实例操作。释放前要仔细看平台的确认提示因为释放后本地数据和系统盘通常会一起删除。6. 常见问题排查从现象到根因6.1 nvidia-smi 报错或找不到显卡现象执行nvidia-smi返回command not found或者提示No devices were found。排查顺序检查命令是否存在。如果不存在先确认驱动是否安装。用lsmod | grep nvidia查看内核模块是否加载。查看系统日志寻找 NVIDIA 相关报错。如果驱动模块加载失败最常见原因是内核版本和驱动版本不匹配。解决方案优先重建实例并选择预装驱动的镜像而不是在原实例上反复重装驱动。云平台实例的系统盘通常可以快速重建这是比本地机器更
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进