From 463cf697fd6758367d409943def469eb87681616 Mon Sep 17 00:00:00 2001 From: shuiyu1123 Date: Sun, 21 Jun 2026 01:58:21 +0000 Subject: [PATCH] =?UTF-8?q?[=E8=87=AA=E5=8A=A8]=20=E4=BA=91=E7=AB=AF?= =?UTF-8?q?=E4=B8=80=E9=94=AE=E9=83=A8=E7=BD=B2=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup_cloud.sh | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 setup_cloud.sh diff --git a/setup_cloud.sh b/setup_cloud.sh new file mode 100644 index 0000000..99882c0 --- /dev/null +++ b/setup_cloud.sh @@ -0,0 +1,90 @@ +#!/bin/bash +# -*- coding: utf-8 -*- +""" +XiaLi 云 GPU 一键搭建脚本 +========================= +适用于 AutoDL / 矩池云 / 恒源云 等国内云GPU平台 + +用法: + bash setup_cloud.sh # 完整搭建 + bash setup_cloud.sh --train-only # 只拉代码,不下载数据 +""" + +set -e + +echo "========================================" +echo " XiaLi 云 GPU 训练环境搭建" +echo "========================================" + +REPO_URL="https://gitee.com/shuiyu1123/xiaoli-llm-chat.git" +WORK_DIR="/root/xiaoli-llm-chat" + +# 1. 克隆代码 +echo "" +echo "[1/4] 克隆代码..." +if [ -d "$WORK_DIR" ]; then + echo " 目录已存在,拉取更新..." + cd "$WORK_DIR" && git pull +else + git clone "$REPO_URL" "$WORK_DIR" + cd "$WORK_DIR" +fi + +# 2. 安装依赖 +echo "" +echo "[2/4] 安装依赖..." +pip install torch numpy -q +# 检查 torch 是否有 CUDA +python3 -c "import torch; print(f'CUDA可用: {torch.cuda.is_available()}, GPU数: {torch.cuda.device_count()}')" 2>/dev/null || { + echo " ⚠️ 检测到无 CUDA,尝试安装 GPU 版 PyTorch..." + pip install torch --index-url https://download.pytorch.org/whl/cu118 -q +} +pip install modelscope -q + +# 确认词表存在 +echo "" +echo "[3/4] 检查词表..." +ls -la vocab.json 2>/dev/null || { + echo " ⚠️ vocab.json 不存在!请确认仓库完整" + exit 1 +} +python3 -c " +import json +with open('vocab.json') as f: + v = json.load(f) +print(f' 词表: {len(v)} tokens, vocab_size={max(v.values())+1}') +" + +# 4. 确认训练脚本 +echo "" +echo "[4/4] 确认训练脚本..." +ls -la train_cloud.py && echo " ✅ train_cloud.py 就绪" + +# 显存信息 +echo "" +echo "========================================" +echo " 环境就绪!" +echo "========================================" +python3 -c " +import torch +if torch.cuda.is_available(): + total = torch.cuda.get_device_properties(0).total_mem / 1024**3 + name = torch.cuda.get_device_name(0) + print(f' GPU: {name} ({total:.1f} GiB)') +else: + print(' ⚠️ 未检测到 GPU!') +" +echo "" +echo "启动训练命令:" +echo " cd $WORK_DIR" +echo "" +echo " # 单卡训练(完整流程)" +echo " python3 train_cloud.py --epochs 5 --align-epochs 20" +echo "" +echo " # 从检查点续训" +echo " python3 train_cloud.py --resume --epochs 10" +echo "" +echo " # 24G显存用更小batch" +echo " python3 train_cloud.py --batch-size 32" +echo "" +echo "========================================" \ No newline at end of file