
RD-Agent FT-Agent 实战指南用 LLM 智能体自动完成基准驱动的模型微调闭环【免费下载链接】RD-AgentResearch and development (RD) is crucial for the enhancement of industrial productivity, especially in the AI era, where the core aspects of RD are mainly focused on data and models. We are committed to automating these high-value generic RD processes through RD-Agent, which lets AI drive>项目地址: https://gitcode.com/GitHub_Trending/rd/RD-Agent本篇指南基于仓库中的 FT-Agent 场景文档系统讲解如何在 RD-Agent 中运行「自动 LLM 微调」流程从基准任务定义、原始数据集准备到生成 LLaMA-Factory 训练配置、fail-fast 校验、OpenCompass 评估反馈的完整闭环。读完后你可以独立配置.env、跑通单次/批量微调任务并理解其背后各组件场景初始化、基准适配器、校验器、反馈生成的源码级实现。一、FT-Agent 是什么基准驱动的微调闭环FT-Agent 是 RD-Agent 中的 LLM 微调场景实现研究导向对应 ICML 2026 论文 FT-Dojo 的实验载体。它自动化的核心循环包含 5 个环节检查目标基准与可用原始数据集inspect benchmark and raw datasets生成数据处理代码和 LLaMA-Factory 训练配置generate>git clone https://github.com/microsoft/RD-Agent cd RD-Agent make dev四、最小.env配置在仓库根目录创建.env模型名与 API 设置按你的服务商调整。以下为官方文档给出的最小可用配置完整保留# LLM backend BACKENDrdagent.oai.backend.LiteLLMAPIBackend CHAT_MODELgpt-4o CHAT_TEMPERATURE1 CHAT_STREAMTrue OPENAI_API_KEYyour_api_key # OPENAI_API_BASEyour_api_base_if_needed # Embedding model used by RD-Agent infrastructure EMBEDDING_MODELtext-embedding-3-small # Fine-tuning workspace. Keep this stable to reuse downloaded models/datasets. FT_FILE_PATH/absolute/path/to/finetune_files # Runtime environment: docker is the default path; conda is available for local setups. FT_Coder_CoSTEER_env_typedocker # Target task. You may also pass these through CLI arguments. FT_TARGET_BENCHMARKaime25 FT_BENCHMARK_DESCRIPTIONAIME 2025 math competition problems. Each answer is an integer from 0 to 999. Expected Output Format: put the final answer within \\boxed{}, for example \\boxed{42}. # Target model and>rdagent llm_finetune \ --benchmark aime25 \ --benchmark-description AIME 2025 math competition problems. Each answer is an integer from 0 to 999. Expected Output Format: put the final answer within \\boxed{}, for example \\boxed{42}. \ --base-model Qwen/Qwen2.5-7B-Instruct \ --loop-n 3 \ --timeout 12h5.2 等价的直接 Python 入口dotenv run -- python rdagent/app/finetune/llm/loop.py \ --benchmark aime25 \ --benchmark-description AIME 2025 math competition problems. Each answer is an integer from 0 to 999. Expected Output Format: put the final answer within \\boxed{}, for example \\boxed{42}. \ --base-model Qwen/Qwen2.5-7B-Instruct \ --loop-n 3 \ --timeout 12h5.3 参数说明参数含义--base-model待微调的 HuggingFace 模型 ID除非已设置FT_BASE_MODEL否则必填--benchmark目标基准 key如aime25、chemcotbench_mol_edit--benchmark-description自然语言的任务与输出格式描述除非已在.env中设置否则必填--dataset数据集准备完成后供智能体选择的数据集名--upper-data-size-limit单个实验使用的训练样本上限--loop-nRD-Agent 循环的最大轮数--timeout整体墙钟预算如12h从 loop.py 的 main 函数 可以看到几条硬约束user_target_scenario目前尚未支持传入会被断言拒绝必须通过benchmarkbenchmark_description指定目标--base-model实际也必填自动选模型的逻辑尚未实现代码中保留了 TODO 断言。若提供--path形如$LOG_PATH/__session__/1/0_propose还可以从断点恢复循环状态--checkout控制是否清理该会话之后的日志。5.4 运行时会发生什么源码视角场景初始化LLMFinetuneScenscen/scenario.py是一个信息密度很高的阶段校验并创建FT_FILE_PATH执行prepare_all()准备全部已注册数据集若指定了base_model还会确保模型资产存在通过LLaMAFactory_manager拉取 LLaMA-Factory 的方法与参数元信息作为编码器的「知识源」生成dataset_info.json——数据集信息的单一事实来源包含 LLaMA-Factory 兼容字段file_name、formatting、columns、自动统计、截断样本与 AI 生成的描述采集本机 GPU 运行时信息并生成显存估算报告MemoryEstimator供规划提示词引用运行基线评估用目标模型在未微调状态下分别对基准的验证集与测试集打分。源码中注释明确Agent 只可见验证集分数baseline_benchmark_score测试集分数baseline_benchmark_score_test仅供前端展示。验证/测试切分由get_benchmark_ranges()动态生成——小数据集200 样本50/50 切分大数据集各取 100 个样本且保证两段不重叠见 benchmark.py。六、批量运行Job Runner多基准/多模型并行运行使用本目录的 job 辅助脚本cp rdagent/app/finetune/llm/job/tasks.json.example rdagent/app/finetune/llm/job/tasks.json cp .env rdagent/app/finetune/llm/job/.env bash rdagent/app/finetune/llm/job/run_ft_job.sh rdagent/app/finetune/llm/job/tasks.json任务定义来自 tasks.json.example结构如下{ tasks: [ { model: Qwen/Qwen2.5-7B-Instruct, benchmark: aime25, gpus: 0,1, timeout: 12h }, { model: Qwen/Qwen2.5-7B-Instruct, benchmark: chemcotbench_mol_edit, gpus: 2,3, timeout: 12h }, { model: Qwen/Qwen2.5-7B-Instruct, benchmark: tablebench_visualization, gpus: 4,5, timeout: 12h, benchmark_description: Table Visualization - generate executable Python code to create the requested chart from tabular data. Expected Output Format: return Python code in a python code block using matplotlib or pandas. } ] }任务字段说明来自 job/README.md字段必填默认值说明model是-HuggingFace 模型 IDbenchmark是-基准 key如aime25、chemcotbench_mol_editgpus否0写入CUDA_VISIBLE_DEVICES的值timeout否12h传给 FT-Agent 循环的墙钟预算port否-可选本地 API 端口为该任务写入OPENAI_API_BASEhttp://localhost:portbenchmark_description否取自scenarios.json任务与输出格式描述当任务条目未提供benchmark_description时job runner 会从 job/scenarios.json 中按基准名查表补齐两者都缺失时脚本直接报错退出。从 run_ft_job.sh 的实现可以看到其工作机制依赖jq、tmux、condaRD-Agent 的 conda 环境默认名为rdagent可用CONDA_ENV_NAME覆盖每个任务开一个 tmux 窗口会话名rdagent日志统一写入log/job_id/task.log任务工作区位于git_ignore_folder/RD-Agent_workspace/job_id/task/第一个任务会等待场景初始化产物$FT_FILE_PATH/datasets/dataset_info.json出现后才放行其余任务后续任务之间以 60 秒错峰启动运行模式由job/.env中的FT_Coder_CoSTEER_env_type决定docker模式跳过 conda 环境就绪检查conda模式则等待llm_finetune与opencompass两个环境初始化完毕。七、fail-fast 校验训练前的两道关卡文档强调「完整训练前先做 fail-fast 校验」其实现是 unified_validator.py 中的LLMConfigValidator采用两/三步验证策略参数过滤parameter filtering对照 LLaMA-Factory 实际支持的参数集合剔除生成配置中的不支持项系统参数注入注入受系统管理的参数如overwrite_cache、save_only_model、output_dir./output、per_device_eval_batch_size1防评估 OOM这些参数不进入对齐检查微批测试micro-batch testing在小规模数据集上做运行时验证——由于微批测试本身覆盖了完整性校验源码注释说明无需单独的完整性检查步骤。此外README Notes 指出生成的训练数据必须使用 Alpaca 风格的instruction、input、output字段校验器会在完整训练前检查这一点。对应超时配置为micro_batch_timeout默认 30 分钟与debug_data_processing_timeout默认 20 分钟用于编码阶段的 debug 数据处理。八、评估与反馈迭代评估环节由 benchmark.py 的run_benchmark实现要点包括在 Docker或 conda环境中渲染 OpenCompass 配置模板并执行opencompass config --work-dir dir通过adapter_config.json/adapter_model.*文件自动检测 LoRA 适配器必要时例如 vLLM 对含modules_to_save的 LoRA 支持受限自动执行 LoRA 合并后再评估推理参数从configs/models.yaml按「精确匹配 → 最长前缀匹配 → default」三级合并tensor_parallel_size: auto会向下取到最接近的 2 的幂评估结果除汇总准确率外还会抽取至多 10 条错误样本extract_error_samples供智能体反馈分析已有同目录时间戳结果时直接复用skip re-running避免重复评估。反馈生成由FTExperiment2Feedbackdev/feedback.py完成成功时基于基准分数、训练 loss 曲线超 60 点时自动采样首尾各 30 点以控制 token 膨胀与 SOTA/基线对比生成下一轮假设失败时切换到错误分析提示词并优先采用 runner 评估器产出的结构化分析execution / return_checking / code 三段而非裸错误字符串。文档 Notes 中「评估用验证集反馈驱动智能体迭代测试集保留用于最终报告/前端展示」的设计与上述源码注释完全一致。九、日志与 UI 观察运行产生的 RD-Agent trace 写入配置的日志目录。两种查看方式# FT 专用 Streamlit UI streamlit run rdagent/app/finetune/llm/ui/app.py # 通用 RD-Agent 日志 UI rdagent ui --port 19899 --log-dir your_log_folder批量运行时在 Streamlit UI 中选择生成的 job 文件夹作为日志源即可也可以tmux attach -t rdagent或tail -f log/job_id/*.log实时监控。十、实用注意事项汇总首次运行预期缓慢可能需要下载模型、数据集、LLaMA-Factory 资产与 OpenCompass 资产Docker 模式会把FT_FILE_PATH下的模型与数据集挂载进训练/评估环境训练数据格式必须是 Alpaca 风格三字段instruction/input/output否则会被校验器拦截验证/测试隔离智能体迭代只看验证集反馈测试集分数仅在最终报告与前端展示避免评估泄漏成本控制FT_API_MAX_WORKERS默认 8、FT_UPPER_DATA_SIZE_LIMIT默认 2000、--loop-n、--timeout以及benchmark_limit快速调试时可限制评估样本数是主要预算控制旋钮。参考文件场景文档 README、入口 loop.py、配置 conf.py、循环 scenarios/finetune/loop.py、场景 scen/scenario.py、评估 benchmark/benchmark.py、批量任务脚本 job/run_ft_job.sh。【免费下载链接】RD-AgentResearch and development (RD) is crucial for the enhancement of industrial productivity, especially in the AI era, where the core aspects of RD are mainly focused on data and models. We are committed to automating these high-value generic RD processes through RD-Agent, which lets AI drive>项目地址: https://gitcode.com/GitHub_Trending/rd/RD-Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考