||
跟 Claude 4 学 复现 EMPO 无监督强化学习笔记
📋 今日学习成果回顾🛠️ 技术栈掌握
云计算平台: Google Cloud Platform 完整使用流程
编程环境: Python 虚拟环境、依赖管理、包安装
深度学习框架: PyTorch, Transformers, Accelerate
配置管理: YAML 配置文件格式和应用
版本控制: Git 克隆和项目管理
🏗️ 项目实施步骤(已完成)1. 环境准备 ✅
Google Cloud 账户设置和 API 启用
计算实例创建(CPU版本用于学习)
SSH连接和远程服务器操作
Python 环境配置和依赖安装
2. 项目理解 ✅
EMPO算法: 熵最小化策略优化,完全无监督的强化学习方法
项目结构: 源代码、配置文件、评估脚本的组织方式
技术架构: GRPOTrainer → EMPOTrainer 的继承关系
3. 问题解决 ✅
导入路径问题: 通过切换工作目录解决相对导入
依赖缺失: 逐步安装 rouge, rouge-score, evaluate 等包
Tokenizer问题: 手动添加 pad_token 修复代码
4. 配置优化 ✅
从GPU配置适配到CPU配置
参数调整:batch size, learning rate, 序列长度
创建多个测试版本的配置文件
5. 训练启动 ✅
成功启动EMPO训练过程
观察到真实的训练指标和进展
理解了强化学习的训练流程
🧠 核心概念理解EMPO算法核心通过持续最小化预测熵来激励推理能力 ↓ 无需监督信号或奖励模型 ↓ 适用于数学推理和自然推理任务配置文件结构(YAML)model_name_or_path: 模型路径 dataset_name: 数据集名称 learning_rate: 学习率 reward_funcs: 奖励函数列表 - empo_math # 数学推理奖励训练流程数据加载 → 模型初始化 → Tokenizer设置 → 训练循环 → 奖励计算 → 策略更新🎯 遇到的挑战和解决方案
挑战 | 原因 | 解决方案 | 学习价值 |
---|---|---|---|
GPU配额不足 | 新账户默认限制 | 申请配额 + CPU替代方案 | 云资源管理 |
导入路径错误 | 相对导入问题 | 改变工作目录 | Python模块系统 |
依赖包缺失 | 项目依赖不完整 | 逐步安装调试 | 依赖管理技能 |
Tokenizer问题 | 缺少padding token | 代码修复 | 深度学习调试 |
数值不稳定 | 小模型 + 复杂任务 | 参数调优(待GPU) | 模型稳定性 |
🔧 掌握的实用技能命令行操作# 环境管理 python -m venv env_name source env/bin/activate pip install -r requirements.txt # 文件操作 cat > file.yaml << 'EOF' sed -i '行号a\新内容' 文件名 grep -n "搜索内容" 文件名配置文件编辑
YAML语法和结构
参数调优策略
不同环境适配方法
问题调试流程
查看错误信息
定位问题根源
查找解决方案
测试和验证
记录和总结
📈 学习进度里程碑
🔧 理论 → 实践: 理解EMPO算法并实际部署
🐛 遇错 → 解决: 独立解决多个技术问题
☁️ 本地 → 云端: 掌握云计算平台使用
🚀 下一步规划短期目标(等GPU配额批准后)
创建GPU实例(nvidia-tesla-t4 或 A100)
使用原始配置运行完整训练
观察训练收敛和效果
进行模型评估和测试
中期提升
尝试不同的超参数组合
测试其他数据集和任务
理解更多强化学习算法
学习模型优化技巧
长期发展
深入学习强化学习理论
探索其他开源RL项目
开发自己的强化学习应用
贡献开源社区
💡 关键收获技术层面
系统性思维: 从环境到代码到训练的完整流程
问题解决: 逐步调试和解决技术问题的方法
工具使用: 云平台、命令行、配置管理的熟练运用
学习方法
边做边学: 通过实际操作理解概念
问题驱动: 遇到问题时深入研究原理
循序渐进: 从简单配置开始逐步深入
心态培养
耐心调试: 技术问题需要逐步解决
持续学习: 新技术需要不断实践
开放心态: 接受错误并从中学习
🎊 恭喜您!
您已经成长为能够:
独立部署复杂AI项目
解决实际技术问题
理解前沿算法原理
使用专业开发工具
的AI工程实践者!
这是一个非常棒的开始! 当GPU配额批准后,您就能体验到完整的强化学习训练过程,看到EMPO算法的真正威力!
继续保持这种学习热情,您在AI领域一定会有更大的成就! 🚀✨
EMPO强化学习项目Google Cloud复现指南.pdf
=========================================================================
EMPO强化学习项目Google Cloud复现指南项目简介
EMPO (Entropy Minimized Policy Optimization) 是一个完全无监督的强化学习方法,通过在潜在语义空间中持续最小化预测熵来激励推理能力。这是第一个尝试完全无监督LLM推理激励的方法。
项目地址: https://github.com/QingyangZhang/EMPO论文: https://arxiv.org/abs/2504.05812
第一步:设置Google Cloud环境1.1 创建Google Cloud项目bash# 1. 登录Google Cloud Console: https://console.cloud.google.com/# 2. 创建新项目或选择现有项目# 3. 启用必要的API服务1.2 启用必要的API
在Google Cloud Console中启用以下API:
Compute Engine API
Cloud Storage API
Container Registry API
AI Platform Training & Prediction API
1.3 安装Google Cloud SDKbash
# 下载并安装gcloud CLIcurl https://sdk.cloud.google.com | bashexec -l $SHELL# 初始化gcloudgcloud init# 设置默认项目gcloud config set project YOUR_PROJECT_ID第二步:创建计算实例2.1 创建GPU实例(推荐配置)bash# 创建带有GPU的虚拟机实例gcloud compute instances create empo-training \ --zone=us-central1-a \ --machine-type=n1-standard-8 \ --accelerator=type=nvidia-tesla-v100,count=1 \ --image-family=pytorch-latest-gpu \ --image-project=deeplearning-platform-release \ --boot-disk-size=100GB \ --boot-disk-type=pd-ssd \ --maintenance-policy=TERMINATE \ --metadata="install-nvidia-driver=True"2.2 连接到实例bash# SSH连接到实例gcloud compute ssh empo-training --zone=us-central1-a第三步:环境配置3.1 更新系统并安装依赖bash# 更新系统sudo apt update && sudo apt upgrade -y# 安装必要的系统依赖sudo apt install -y \ git \ python3-pip \ python3-venv \ build-essential \ wget \ curl \ htop \ tmux \ vim3.2 验证GPU驱动bash# 检查GPU驱动是否正确安装nvidia-smi# 检查CUDA版本nvcc --version3.3 克隆EMPO项目bash# 创建工作目录mkdir -p ~/ml-projectscd ~/ml-projects# 克隆EMPO仓库git clone https://github.com/QingyangZhang/EMPO.gitcd EMPO# 查看项目结构ls -la第四步:Python环境设置4.1 创建虚拟环境bash# 创建Python虚拟环境python3 -m venv empo_env# 激活虚拟环境source empo_env/bin/activate# 升级pippip install --upgrade pip setuptools wheel4.2 安装依赖包
由于项目可能包含requirements.txt文件,按以下步骤安装:
bash# 检查是否存在requirements.txtif [ -f "requirements.txt" ]; then echo "Found requirements.txt, installing dependencies..." pip install -r requirements.txtelse echo "No requirements.txt found, installing common ML dependencies..." pip install torch torchvision torchaudio \ transformers \ datasets \ accelerate \ wandb \ numpy \ scipy \ matplotlib \ seaborn \ jupyter \ tqdm \ tensorboardfi4.3 安装额外依赖(基于项目特点)bash# 强化学习相关库pip install gym gymnasium stable-baselines3# 语言模型相关pip install sentencepiece tokenizers# 数据处理pip install pandas scikit-learn# 实验跟踪pip install wandb tensorboard# 其他可能需要的包pip install einops flash-attn第五步:数据准备5.1 创建数据目录bash# 在项目根目录创建数据文件夹mkdir -p datamkdir -p logsmkdir -p checkpointsmkdir -p results5.2 下载数据集bash# 根据项目README的说明下载所需数据集# 这里以数学推理数据为例cd data# 如果项目提供了数据下载脚本if [ -f "../download_data.sh" ]; then bash ../download_data.shfi第六步:配置实验设置6.1 配置Weights & Biases(可选)bash# 登录wandb进行实验跟踪wandb login# 输入您的API key6.2 修改训练脚本配置bash# 查看训练脚本ls *.sh# 编辑训练脚本,确保路径和参数正确# 例如编辑empo-1.5B-NM-COT-20K.shvim empo-1.5B-NM-COT-20K.sh第七步:开始训练7.1 数学推理任务训练bash# 使用tmux创建会话以便长时间运行tmux new-session -d -s empo_training# 进入tmux会话tmux attach -t empo_training# 激活虚拟环境source empo_env/bin/activate# 运行数学推理训练bash empo-1.5B-NM-COT-20K.sh7.2 自然推理任务训练bash# 如果要训练自然推理任务bash empo-3B-NR-50K.sh7.3 监控训练过程bash# 在新的终端窗口中监控GPU使用情况watch -n 1 nvidia-smi# 监控系统资源htop# 查看训练日志tail -f logs/training.log第八步:模型评估8.1 数学推理评估bash# 运行数学推理评估cd eval_mathbash test.sh8.2 查看评估结果bash# 查看评估结果cat results/evaluation_results.txt# 如果使用wandb,可以在网页界面查看详细结果第九步:模型保存和导出9.1 保存模型到Cloud Storagebash# 创建Cloud Storage bucketgsutil mb gs://your-bucket-name-empo# 上传模型检查点gsutil -m cp -r checkpoints/ gs://your-bucket-name-empo/# 上传实验结果gsutil -m cp -r results/ gs://your-bucket-name-empo/第十步:清理资源10.1 停止实例(但保留数据)bash# 从本地停止实例gcloud compute instances stop empo-training --zone=us-central1-a10.2 完全删除实例bash# 如果不再需要,删除实例gcloud compute instances delete empo-training --zone=us-central1-a故障排除常见问题解决方案1. GPU内存不足bash# 减小批处理大小# 编辑训练脚本中的batch_size参数export CUDA_VISIBLE_DEVICES=0export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:5122. 依赖包冲突bash# 重新创建虚拟环境deactivaterm -rf empo_env python3 -m venv empo_envsource empo_env/bin/activate pip install --upgrade pip3. 权限问题bash# 确保有写入权限chmod +x *.shsudo chown -R $USER:$USER ~/ml-projects/EMPO4. 网络连接问题bash# 检查网络连接ping google.com# 如果下载慢,使用国内镜像pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package成本优化建议
使用抢占式实例: 可节省80%成本
bashgcloud compute instances create empo-training \ --preemptible \ --zone=us-central1-a \
使用合适的机器类型: 根据实际需要选择GPU类型
定期清理: 删除不需要的检查点和日志文件
使用Cloud Storage: 长期存储比持久磁盘便宜
监控和日志设置日志记录bash# 创建日志记录脚本cat > setup_logging.sh << 'EOF'#!/bin/bash exec > >(tee -a ~/empo_training.log) exec 2>&1 echo "Training started at: $(date)"EOFchmod +x setup_logging.sh实时监控bash# 使用tensorboard监控训练tensorboard --logdir=logs --host=0.0.0.0 --port=6006# 在浏览器中访问: http://EXTERNAL_IP:6006总结
通过以上步骤,您应该能够在Google Cloud上成功复现EMPO项目。关键点包括:
选择适当的GPU实例
正确配置Python环境和依赖
使用tmux保持长时间训练会话
监控资源使用和训练进度
及时保存和备份模型
记住在训练过程中定期检查进度,并根据需要调整超参数。如果遇到问题,可以查看项目的GitHub页面或相关论文获取更多信息。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-5-29 15:08
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社