省钱技巧
本文介绍在智川云平台上节省费用的实用技巧。
计费方式选择
按量计费 vs 包时长
| 计费方式 | 适用场景 | 特点 |
|---|---|---|
| 按量计费 | 短期任务、调试阶段 | 灵活,用多少付多少 |
| 包时长 | 长期训练、稳定使用 | 单价更低,资源预留 |
选择建议
- 调试阶段:使用按量计费,随时关机
- 正式训练:评估训练时长,选择合适的包时长
- 长期项目:包月更划算
及时关机
重要
不使用时务必关机!按量计费实例开机即计费。
关机不丢数据
- 系统盘数据保留
- 数据盘数据保留
- 环境配置保留
使用定时关机
预估训练时间,设置 定时关机 避免忘记关机。
自动关机脚本
训练完成后自动关机:
bash
# 训练完成后关机
python train.py && shutdown -h now
# 或使用 nohup
nohup bash -c "python train.py && shutdown -h now" > train.log 2>&1 &使用无卡启动
数据整理、环境配置等不需要 GPU 的操作,使用 无卡启动:
| 模式 | 价格 |
|---|---|
| GPU 模式 | 按 GPU 单价 |
| 无卡模式 | 0.1 元/时 |
推荐场景
- 上传/下载数据
- 安装软件包
- 调试代码(不涉及 GPU)
- 查看日志
GPU 选型优化
按需选择 GPU
| 任务类型 | 推荐 GPU | 说明 |
|---|---|---|
| 小模型调试 | RTX 3080/3090 | 性价比高 |
| 中等模型训练 | RTX 4090 | 性能强劲 |
| 大模型训练 | A100/H100 | 显存充足 |
| 推理部署 | RTX 3080/4080 | 成本较低 |
避免资源浪费
- 不要租用超出需求的 GPU
- 多卡训练前先单卡调试
- 评估显存需求再选择型号
存储优化
使用数据盘
- 大文件存放在数据盘
- 避免系统盘空间不足导致问题
清理缓存
定期清理节省空间:
bash
# 清理 pip 缓存
pip cache purge
# 清理 conda 缓存
conda clean -a -y
# 清理 HuggingFace 缓存
rm -rf ~/.cache/huggingface/hub/
# 清理 apt 缓存
apt clean压缩存储
bash
# 压缩不常用的数据
tar czf archive.tar.gz large_folder/
rm -rf large_folder/训练优化
使用混合精度
减少显存占用,可以使用更小的 GPU:
python
from torch.cuda.amp import autocast, GradScaler
scaler = GradScaler()
with autocast():
output = model(input)
loss = criterion(output, target)梯度累积
用更小的 batch size 达到相同效果:
python
accumulation_steps = 4
for i, batch in enumerate(dataloader):
loss = model(batch) / accumulation_steps
loss.backward()
if (i + 1) % accumulation_steps == 0:
optimizer.step()
optimizer.zero_grad()梯度检查点
用计算换显存:
python
from torch.utils.checkpoint import checkpoint
# 在模型中使用
output = checkpoint(self.layer, input)镜像复用
保存常用环境
配置好环境后保存镜像,避免重复配置:
- 配置好开发环境
- 保存为自定义镜像
- 后续直接使用该镜像
使用社区镜像
查找是否有现成的社区镜像,节省配置时间。
数据传输优化
先压缩再传输
bash
# 压缩后传输更快
tar czf data.tar.gz data/
scp -P 12345 data.tar.gz root@connect.gpuhome.cc:/root/rivermind-data/使用 rsync 增量同步
只传输变化的文件:
bash
rsync -avz --progress -e "ssh -p 12345" ./data/ root@connect.gpuhome.cc:/root/rivermind-data/费用监控
定期检查账单
- 登录控制台查看消费明细
- 设置余额提醒
- 及时充值避免服务中断
资源使用统计
bash
# 查看 GPU 使用情况
nvidia-smi
# 查看磁盘使用
df -h
# 查看内存使用
free -h