.env.example 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. # ============================================================================
  2. # HelloAgents Chapter 11 - Agentic RL 环境变量配置文件
  3. # ============================================================================
  4. # 复制此文件为 .env 并填入你的API密钥和配置
  5. # 系统要求:Python 3.10+ (必需)
  6. # ============================================================================
  7. # 🚀 统一配置格式(推荐)- 框架自动检测provider
  8. # ============================================================================
  9. # 只需配置以下4个通用环境变量,框架会自动识别LLM提供商:
  10. # 模型名称
  11. LLM_MODEL_ID=your-model-name
  12. # API密钥
  13. LLM_API_KEY=your-api-key-here
  14. # 服务地址
  15. LLM_BASE_URL=your-api-base-url
  16. # 超时时间(可选,默认60秒)
  17. LLM_TIMEOUT=60
  18. # ============================================================================
  19. # 🤖 强化学习训练配置
  20. # ============================================================================
  21. # --------------------------------
  22. # 训练模型配置
  23. # --------------------------------
  24. # 基础模型(用于SFT和GRPO训练)
  25. # 推荐使用小模型进行实验:Qwen3-0.6B, Qwen2.5-0.5B-Instruct
  26. RL_BASE_MODEL=Qwen/Qwen3-0.6B
  27. # 训练输出目录
  28. RL_OUTPUT_DIR=./outputs
  29. # --------------------------------
  30. # 数据集配置
  31. # --------------------------------
  32. # 数据集名称(默认使用GSM8K数学推理数据集)
  33. RL_DATASET_NAME=openai/gsm8k
  34. # 数据集配置
  35. RL_DATASET_CONFIG=main
  36. # 数据集分割
  37. RL_DATASET_SPLIT=train
  38. # 最大样本数(用于快速实验,设为-1使用全部数据)
  39. RL_MAX_SAMPLES=100
  40. # --------------------------------
  41. # SFT训练超参数
  42. # --------------------------------
  43. # 训练轮数
  44. SFT_NUM_EPOCHS=3
  45. # 批次大小
  46. SFT_BATCH_SIZE=4
  47. # 梯度累积步数
  48. SFT_GRADIENT_ACCUMULATION_STEPS=4
  49. # 学习率
  50. SFT_LEARNING_RATE=2e-5
  51. # 最大序列长度
  52. SFT_MAX_SEQ_LENGTH=512
  53. # LoRA配置
  54. SFT_LORA_R=8
  55. SFT_LORA_ALPHA=16
  56. SFT_LORA_DROPOUT=0.05
  57. # --------------------------------
  58. # GRPO训练超参数
  59. # --------------------------------
  60. # 训练轮数
  61. GRPO_NUM_EPOCHS=2
  62. # 批次大小
  63. GRPO_BATCH_SIZE=4
  64. # 梯度累积步数
  65. GRPO_GRADIENT_ACCUMULATION_STEPS=4
  66. # 学习率
  67. GRPO_LEARNING_RATE=1e-5
  68. # 最大序列长度
  69. GRPO_MAX_SEQ_LENGTH=512
  70. # 每个prompt生成的响应数量
  71. GRPO_NUM_GENERATIONS=4
  72. # KL散度惩罚系数
  73. GRPO_KL_COEF=0.1
  74. # LoRA配置
  75. GRPO_LORA_R=8
  76. GRPO_LORA_ALPHA=16
  77. GRPO_LORA_DROPOUT=0.05
  78. # --------------------------------
  79. # 奖励函数配置
  80. # --------------------------------
  81. # 奖励函数类型:accuracy, length_penalty, step_penalty
  82. REWARD_TYPE=accuracy
  83. # 长度惩罚系数(仅用于length_penalty)
  84. REWARD_LENGTH_PENALTY=0.01
  85. # 步骤惩罚系数(仅用于step_penalty)
  86. REWARD_STEP_PENALTY=0.05
  87. # --------------------------------
  88. # 分布式训练配置
  89. # --------------------------------
  90. # 是否启用分布式训练
  91. DISTRIBUTED_TRAINING=false
  92. # 分布式训练策略:ddp, deepspeed_zero2, deepspeed_zero3
  93. DISTRIBUTED_STRATEGY=ddp
  94. # GPU数量(-1表示使用所有可用GPU)
  95. NUM_GPUS=-1
  96. # DeepSpeed配置文件路径(可选)
  97. # DEEPSPEED_CONFIG=./accelerate_configs/deepspeed_zero2.yaml
  98. # --------------------------------
  99. # 监控与日志配置
  100. # --------------------------------
  101. # 是否启用TensorBoard
  102. ENABLE_TENSORBOARD=true
  103. # TensorBoard日志目录
  104. TENSORBOARD_LOG_DIR=./logs/tensorboard
  105. # 是否启用Wandb
  106. ENABLE_WANDB=false
  107. # Wandb项目名称
  108. # WANDB_PROJECT=helloagents-rl
  109. # Wandb API密钥(获取方式:https://wandb.ai/authorize)
  110. # WANDB_API_KEY=your_wandb_api_key_here
  111. # 日志级别:DEBUG, INFO, WARNING, ERROR
  112. LOG_LEVEL=INFO
  113. # 日志保存间隔(步数)
  114. LOGGING_STEPS=10
  115. # 模型保存间隔(步数)
  116. SAVE_STEPS=100
  117. # 评估间隔(步数)
  118. EVAL_STEPS=100
  119. # --------------------------------
  120. # 硬件与性能配置
  121. # --------------------------------
  122. # 混合精度训练:no, fp16, bf16
  123. MIXED_PRECISION=bf16
  124. # 梯度检查点(节省显存)
  125. GRADIENT_CHECKPOINTING=true
  126. # DataLoader工作进程数
  127. DATALOADER_NUM_WORKERS=4
  128. # 是否固定随机种子
  129. SEED=42
  130. # ================================
  131. # HuggingFace API 配置
  132. # ================================
  133. # HuggingFace Token - 用于下载模型和数据集
  134. # 获取方式:https://huggingface.co/settings/tokens
  135. HF_TOKEN=
  136. # HuggingFace镜像站点(可选,用于加速下载)
  137. # 中国大陆用户可以使用以下镜像:
  138. # HF_ENDPOINT=https://hf-mirror.com
  139. # ================================
  140. # 模型缓存配置
  141. # ================================
  142. # HuggingFace模型缓存目录
  143. # HF_HOME=~/.cache/huggingface
  144. # Transformers缓存目录
  145. # TRANSFORMERS_CACHE=~/.cache/huggingface/transformers
  146. # ============================================================================
  147. # 📝 配置说明
  148. # ============================================================================
  149. #
  150. # 1. 基础配置:
  151. # - 必须配置LLM相关变量(LLM_MODEL_ID, LLM_API_KEY, LLM_BASE_URL)
  152. # - RL_BASE_MODEL建议使用小模型(如Qwen3-0.6B)进行实验
  153. #
  154. # 2. 训练配置:
  155. # - 快速实验:设置RL_MAX_SAMPLES=100, SFT_NUM_EPOCHS=1, GRPO_NUM_EPOCHS=1
  156. # - 完整训练:设置RL_MAX_SAMPLES=-1, 增加训练轮数
  157. #
  158. # 3. 分布式训练:
  159. # - 单GPU:DISTRIBUTED_TRAINING=false
  160. # - 多GPU:DISTRIBUTED_TRAINING=true, 选择合适的DISTRIBUTED_STRATEGY
  161. #
  162. # 4. 监控:
  163. # - 本地监控:ENABLE_TENSORBOARD=true
  164. # - 云端监控:ENABLE_WANDB=true, 配置WANDB_API_KEY
  165. #
  166. # 5. 性能优化:
  167. # - 显存不足:启用GRADIENT_CHECKPOINTING, 减小BATCH_SIZE
  168. # - 加速训练:使用MIXED_PRECISION=bf16, 增加GRADIENT_ACCUMULATION_STEPS
  169. #
  170. # ============================================================================