CoolFace
Modelpublic

cwenzi/neuroflow-cpp

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
1likes
deploy_tianchi.sh156 linesDownload Raw Back to scripts
1#!/bin/bash2# ════════════════════════════════════════════════════════3# NeuroFlow — 阿里天池 JupyterLab 一键部署脚本4# 使用前必读:5#   1. 在天池控制台完成登录,并把登录保持时间建议改为 24 小时并重新登录6#   2. 避免在 JupyterLab 工具运行中登录态失效导致 kernel 中断7#   3. GPU 实例按时计费,不使用时及时停止8# 用法: 在天池 JupyterLab 终端运行:9#   bash scripts/deploy_tianchi.sh10# ════════════════════════════════════════════════════════11 12set -e13 14echo "╔══════════════════════════════════════════════════╗"15echo "║     NeuroFlow 天池 JupyterLab 自动部署脚本        ║"16echo "╚══════════════════════════════════════════════════╝"17echo ""18echo "⚠️  使用前请先在阿里云控制台完成登录,"19echo "   建议把登录保持时间改为 24 小时并重新登录。"20echo "   若 kernel 后续中断,通常就是登录态过期导致。"21echo ""22 23# ── 0. 检查 GPU ──24echo "🔍 [1/6] 检查 GPU 环境..."25nvidia-smi || {26    echo "❌ 未检测到 GPU,请确认当前实例已挂载 GPU。"27    exit 128}29nvidia-smi --query-gpu=name,memory.total --format=csv,noheader30 31# ── 1. 安装依赖 ──32echo ""33echo "📦 [2/6] 安装编译依赖..."34apt-get update -qq35apt-get install -y -qq cmake build-essential git python3 python3-pip libomp-dev 2>/dev/null36 37# CUDA 提示38if command -v nvcc &>/dev/null; then39    echo "   CUDA: $(nvcc --version | grep 'release' | awk '{print $6}' | tr -d ',')"40else41    echo "   ⚠️ nvcc 未找到,若天池镜像未预装,请使用官方 CUDA 镜像/环境。"42fi43 44# ── 2. 获取代码 ──45echo ""46echo "📥 [3/6] 获取 NeuroFlow 源码..."47REPO_URL="https://github.com/chenzhiwenhphp12-afk/neuroflow-model.git"48if [ -d "neuroflow-model" ]; then49    echo "   检测到已有目录 neuroflow-model,尝试拉取更新..."50    cd neuroflow-model || true51    git pull || true52else53    git clone "$REPO_URL" neuroflow-model || {54        echo "   ⚠️ GitHub 克隆失败,请检查网络;若不可达,请手动上传 neuroflow-model 仓库。"55        exit 156    }57    cd neuroflow-model58fi59 60echo "   当前目录: $(pwd)"61 62# ── 3. 准备训练数据 ──63echo ""64echo "📝 [4/6] 准备训练数据..."65if [ ! -f "data/train.txt" ]; then66    mkdir -p data67    python3 - <<'PY'68import os69if not os.path.exists('data/train.txt'):70    samples = []71    for i in range(2000):72        samples.append(f'这是第{i}条训练数据,用于NeuroFlow模型的预训练和微调任务。')73    with open('data/train.txt', 'w', encoding='utf-8') as f:74        f.write('\n'.join(samples))75    print(f'   已生成 {len(samples)} 条训练样本 -> data/train.txt')76else:77    print('   训练数据已存在: data/train.txt')78PY79else80    echo "   训练数据已存在: data/train.txt"81fi82 83# ── 4. 编译 ──84echo ""85echo "🔧 [5/6] 编译 NeuroFlow (CUDA 模式)..."86HAS_CUDA=false87if [ -f /usr/local/cuda/include/cuda.h ] || [ -d /usr/local/cuda ]; then88    HAS_CUDA=true89fi90 91if [ "$HAS_CUDA" = true ]; then92    echo "   使用 CUDA 后端编译..."93    cmake -B build_cuda \94        -DNEUROFLOW_USE_CUDA=ON \95        -DNEUROFLOW_USE_AVX2=ON \96        -DNEUROFLOW_USE_BLAS=OFF \97        -DCMAKE_BUILD_TYPE=Release98    cmake --build build_cuda -j"$(nproc)"99    BUILD_DIR="build_cuda"100else101    echo "   ⚠️ 未检测到 CUDA,使用 CPU OpenMP 编译..."102    cmake -B build_cpu \103        -DNEUROFLOW_USE_CUDA=OFF \104        -DNEUROFLOW_USE_AVX2=ON \105        -DNEUROFLOW_USE_BLAS=OFF \106        -DCMAKE_BUILD_TYPE=Release107    cmake --build build_cpu -j"$(nproc)"108    BUILD_DIR="build_cpu"109fi110 111echo "✅ 编译完成!二进制文件在 ./$BUILD_DIR/"112 113# ── 5. 运行训练 ──114echo ""115echo "🚀 [6/6] 开始训练验证..."116echo "════════════════════════════════════════════════════"117echo "  配置: configs/config_distill.json"118echo "  数据: data/train.txt"119echo "  GPU:  $(nvidia-smi --query-gpu=name --format=csv,noheader)"120echo "  显存: $(nvidia-smi --query-gpu=memory.total --format=csv,noheader)"121echo "════════════════════════════════════════════════════"122 123./$BUILD_DIR/neuroflow_train_v2 \124    --config configs/config_distill.json \125    --data data/train.txt \126    --output output_tianchi \127    --epochs 5 \128    --batch-size 64 \129    --lr 0.001 \130    --use-cuda \131    --adam \132    --log-interval 10 || {133        echo ""134        echo "❌ 训练启动失败。"135        echo "   建议先检查:登录态是否过期、kernel 是否断开、CUDA 是否可用。"136        exit 1137    }138 139echo ""140echo "🎉 训练完成!"141echo "   模型保存在: output_tianchi/"142echo ""143echo "   🔜 下一步"144echo "   1) 全量训练示例:"145echo "      ./$BUILD_DIR/neuroflow_train_v2 \\"146echo "          --config configs/config.json \\"147echo "          --data data/train.txt \\"148echo "          --output output_full \\"149echo "          --epochs 100 \\"150echo "          --batch-size 64 \\"151echo "          --lr 0.0001 \\"152echo "          --use-cuda --adam"153echo ""154echo "   2) DLC 任务提交:"155echo "      如需我继续帮你准备天池 DLC 提交配置,回复我即可。"156