| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- # ============================================================================
- # HelloAgents Chapter 11 - Agentic RL 环境变量配置文件
- # ============================================================================
- # 复制此文件为 .env 并填入你的API密钥和配置
- # 系统要求:Python 3.10+ (必需)
- # ============================================================================
- # 🚀 统一配置格式(推荐)- 框架自动检测provider
- # ============================================================================
- # 只需配置以下4个通用环境变量,框架会自动识别LLM提供商:
- # 模型名称
- LLM_MODEL_ID=your-model-name
- # API密钥
- LLM_API_KEY=your-api-key-here
- # 服务地址
- LLM_BASE_URL=your-api-base-url
- # 超时时间(可选,默认60秒)
- LLM_TIMEOUT=60
- # ============================================================================
- # 🤖 强化学习训练配置
- # ============================================================================
- # --------------------------------
- # 训练模型配置
- # --------------------------------
- # 基础模型(用于SFT和GRPO训练)
- # 推荐使用小模型进行实验:Qwen3-0.6B, Qwen2.5-0.5B-Instruct
- RL_BASE_MODEL=Qwen/Qwen3-0.6B
- # 训练输出目录
- RL_OUTPUT_DIR=./outputs
- # --------------------------------
- # 数据集配置
- # --------------------------------
- # 数据集名称(默认使用GSM8K数学推理数据集)
- RL_DATASET_NAME=openai/gsm8k
- # 数据集配置
- RL_DATASET_CONFIG=main
- # 数据集分割
- RL_DATASET_SPLIT=train
- # 最大样本数(用于快速实验,设为-1使用全部数据)
- RL_MAX_SAMPLES=100
- # --------------------------------
- # SFT训练超参数
- # --------------------------------
- # 训练轮数
- SFT_NUM_EPOCHS=3
- # 批次大小
- SFT_BATCH_SIZE=4
- # 梯度累积步数
- SFT_GRADIENT_ACCUMULATION_STEPS=4
- # 学习率
- SFT_LEARNING_RATE=2e-5
- # 最大序列长度
- SFT_MAX_SEQ_LENGTH=512
- # LoRA配置
- SFT_LORA_R=8
- SFT_LORA_ALPHA=16
- SFT_LORA_DROPOUT=0.05
- # --------------------------------
- # GRPO训练超参数
- # --------------------------------
- # 训练轮数
- GRPO_NUM_EPOCHS=2
- # 批次大小
- GRPO_BATCH_SIZE=4
- # 梯度累积步数
- GRPO_GRADIENT_ACCUMULATION_STEPS=4
- # 学习率
- GRPO_LEARNING_RATE=1e-5
- # 最大序列长度
- GRPO_MAX_SEQ_LENGTH=512
- # 每个prompt生成的响应数量
- GRPO_NUM_GENERATIONS=4
- # KL散度惩罚系数
- GRPO_KL_COEF=0.1
- # LoRA配置
- GRPO_LORA_R=8
- GRPO_LORA_ALPHA=16
- GRPO_LORA_DROPOUT=0.05
- # --------------------------------
- # 奖励函数配置
- # --------------------------------
- # 奖励函数类型:accuracy, length_penalty, step_penalty
- REWARD_TYPE=accuracy
- # 长度惩罚系数(仅用于length_penalty)
- REWARD_LENGTH_PENALTY=0.01
- # 步骤惩罚系数(仅用于step_penalty)
- REWARD_STEP_PENALTY=0.05
- # --------------------------------
- # 分布式训练配置
- # --------------------------------
- # 是否启用分布式训练
- DISTRIBUTED_TRAINING=false
- # 分布式训练策略:ddp, deepspeed_zero2, deepspeed_zero3
- DISTRIBUTED_STRATEGY=ddp
- # GPU数量(-1表示使用所有可用GPU)
- NUM_GPUS=-1
- # DeepSpeed配置文件路径(可选)
- # DEEPSPEED_CONFIG=./accelerate_configs/deepspeed_zero2.yaml
- # --------------------------------
- # 监控与日志配置
- # --------------------------------
- # 是否启用TensorBoard
- ENABLE_TENSORBOARD=true
- # TensorBoard日志目录
- TENSORBOARD_LOG_DIR=./logs/tensorboard
- # 是否启用Wandb
- ENABLE_WANDB=false
- # Wandb项目名称
- # WANDB_PROJECT=helloagents-rl
- # Wandb API密钥(获取方式:https://wandb.ai/authorize)
- # WANDB_API_KEY=your_wandb_api_key_here
- # 日志级别:DEBUG, INFO, WARNING, ERROR
- LOG_LEVEL=INFO
- # 日志保存间隔(步数)
- LOGGING_STEPS=10
- # 模型保存间隔(步数)
- SAVE_STEPS=100
- # 评估间隔(步数)
- EVAL_STEPS=100
- # --------------------------------
- # 硬件与性能配置
- # --------------------------------
- # 混合精度训练:no, fp16, bf16
- MIXED_PRECISION=bf16
- # 梯度检查点(节省显存)
- GRADIENT_CHECKPOINTING=true
- # DataLoader工作进程数
- DATALOADER_NUM_WORKERS=4
- # 是否固定随机种子
- SEED=42
- # ================================
- # HuggingFace API 配置
- # ================================
- # HuggingFace Token - 用于下载模型和数据集
- # 获取方式:https://huggingface.co/settings/tokens
- HF_TOKEN=
- # HuggingFace镜像站点(可选,用于加速下载)
- # 中国大陆用户可以使用以下镜像:
- # HF_ENDPOINT=https://hf-mirror.com
- # ================================
- # 模型缓存配置
- # ================================
- # HuggingFace模型缓存目录
- # HF_HOME=~/.cache/huggingface
- # Transformers缓存目录
- # TRANSFORMERS_CACHE=~/.cache/huggingface/transformers
- # ============================================================================
- # 📝 配置说明
- # ============================================================================
- #
- # 1. 基础配置:
- # - 必须配置LLM相关变量(LLM_MODEL_ID, LLM_API_KEY, LLM_BASE_URL)
- # - RL_BASE_MODEL建议使用小模型(如Qwen3-0.6B)进行实验
- #
- # 2. 训练配置:
- # - 快速实验:设置RL_MAX_SAMPLES=100, SFT_NUM_EPOCHS=1, GRPO_NUM_EPOCHS=1
- # - 完整训练:设置RL_MAX_SAMPLES=-1, 增加训练轮数
- #
- # 3. 分布式训练:
- # - 单GPU:DISTRIBUTED_TRAINING=false
- # - 多GPU:DISTRIBUTED_TRAINING=true, 选择合适的DISTRIBUTED_STRATEGY
- #
- # 4. 监控:
- # - 本地监控:ENABLE_TENSORBOARD=true
- # - 云端监控:ENABLE_WANDB=true, 配置WANDB_API_KEY
- #
- # 5. 性能优化:
- # - 显存不足:启用GRADIENT_CHECKPOINTING, 减小BATCH_SIZE
- # - 加速训练:使用MIXED_PRECISION=bf16, 增加GRADIENT_ACCUMULATION_STEPS
- #
- # ============================================================================
|