[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-yongliang-wu--DFT":3,"tool-yongliang-wu--DFT":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":82,"owner_twitter":82,"owner_website":82,"owner_url":83,"languages":84,"stars":105,"forks":106,"last_commit_at":107,"license":82,"difficulty_score":108,"env_os":109,"env_gpu":110,"env_ram":111,"env_deps":112,"category_tags":121,"github_topics":82,"view_count":23,"oss_zip_url":82,"oss_zip_packed_at":82,"status":16,"created_at":122,"updated_at":123,"faqs":124,"releases":158},2703,"yongliang-wu\u002FDFT","DFT","[ICLR 2026] On the Generalization of SFT: A Reinforcement Learning Perspective with Reward Rectification.","DFT 是一项源自 ICLR 2026 的研究成果，旨在从强化学习（RL）的视角重新审视并提升监督微调（SFT）的泛化能力。在大型语言模型的训练中，传统的 SFT 方法虽然稳定，但往往难以具备强化学习那样的强大推理与泛化性能，而直接应用 RL 又面临训练复杂、成本高昂的挑战。DFT 正是为了解决这一痛点而生，它通过一种名为“奖励修正（Reward Rectification）”的创新机制，巧妙地将强化学习的优势融入标准的监督微调流程中。\n\n这项技术的核心亮点在于“简单却高效”。它无需构建复杂的强化学习训练框架，仅通过对训练数据的奖励信号进行修正，就能让模型以 SFT 的计算成本，获得接近 RL 方法的推理效果。目前实验数据显示，DFT 在数学推理和代码生成等需要强逻辑的任务上表现尤为出色，显著提升了 70 亿参数及以下规模模型的泛化水平。\n\nDFT 非常适合 AI 研究人员和开发者使用。如果你正在探索如何在有限的算力下提升模型的逻辑推理能力，或者希望深入理解 SFT 与 RL 之间的内在联系，DFT 提供了一个极具价值的实践方案。需要注意的是，该方法目前在文学创作或金融分析等非强逻辑场","DFT 是一项源自 ICLR 2026 的研究成果，旨在从强化学习（RL）的视角重新审视并提升监督微调（SFT）的泛化能力。在大型语言模型的训练中，传统的 SFT 方法虽然稳定，但往往难以具备强化学习那样的强大推理与泛化性能，而直接应用 RL 又面临训练复杂、成本高昂的挑战。DFT 正是为了解决这一痛点而生，它通过一种名为“奖励修正（Reward Rectification）”的创新机制，巧妙地将强化学习的优势融入标准的监督微调流程中。\n\n这项技术的核心亮点在于“简单却高效”。它无需构建复杂的强化学习训练框架，仅通过对训练数据的奖励信号进行修正，就能让模型以 SFT 的计算成本，获得接近 RL 方法的推理效果。目前实验数据显示，DFT 在数学推理和代码生成等需要强逻辑的任务上表现尤为出色，显著提升了 70 亿参数及以下规模模型的泛化水平。\n\nDFT 非常适合 AI 研究人员和开发者使用。如果你正在探索如何在有限的算力下提升模型的逻辑推理能力，或者希望深入理解 SFT 与 RL 之间的内在联系，DFT 提供了一个极具价值的实践方案。需要注意的是，该方法目前在文学创作或金融分析等非强逻辑场景的效果尚在探索中，团队也诚挚邀请社区共同测试与改进，以推动其在更广泛领域的应用。","\n\u003Cdiv align=\"center\">\n\n# *On the Generalization of SFT*: \u003Cbr>A Reinforcement Learning Perspective with \u003Cbr>Reward Rectification\n\n\n\u003Ca href=\"http:\u002F\u002Farxiv.org\u002Fabs\u002F2508.05629\" target=\"_blank\">\n    \u003Cimg alt=\"arXiv\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-DFT-red?logo=arxiv\" height=\"25\" \u002F>\n\u003C\u002Fa>\n\n\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fcollections\u002FLiang0223\u002Fdft-6892da5e421a56a8deb48c9f\" target=\"_blank\">\n    \u003Cimg alt=\"HF Model: Cambrian-1\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20_Huggingface-Models-ffc107?color=ffc107&logoColor=white\" height=\"25\" \u002F>\n\u003C\u002Fa>\n\n\u003Cdiv style=\"font-family: charter; text-align: center; margin: 0 auto;\">\n                    \u003Ca href=\"https:\u002F\u002Fyongliang-wu.github.io\u002F\" class=\"author-link\" target=\"_blank\">Yongliang Wu*\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fscholar.google.com\u002Fcitations?user=dHBNmSkAAAAJ\" class=\"author-link\" target=\"_blank\">Yizhou Zhou*\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fscholar.google.com\u002Fcitations?user=IH2wK1cAAAAJ\" class=\"author-link\" target=\"_blank\">Zhou Ziheng\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FForJadeForest\" class=\"author-link\" target=\"_blank\">Yingzhe Peng\u003C\u002Fa> &emsp;\n                    \u003Cbr>\n                    \u003Ca href=\"https:\u002F\u002Fscholar.google.com\u002Fcitations?user=fdwhd9gAAAAJ\" class=\"author-link\" target=\"_blank\">Xinyu Ye\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fjoyhuyy1412.github.io\u002F\" class=\"author-link\" target=\"_blank\">Xinting Hu\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fvitozhu04.github.io\u002F\" class=\"author-link\" target=\"_blank\">Wenbo Zhu\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"http:\u002F\u002Fluqi.info\u002F\" class=\"author-link\" target=\"_blank\">Lu Qi\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Ffaculty.ucmerced.edu\u002Fmhyang\u002F\" class=\"author-link\" target=\"_blank\">Ming-Hsuan Yang\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fyxpalmweb.github.io\u002F\" class=\"author-link\" target=\"_blank\">Xu Yang\u003C\u002Fa> &emsp;\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\u003C\u002Fdiv>\n\n## 🌟 Thanks for the Feedback of Community\n\nWe are grateful for the many thoughtful comments and feedback from the community regarding DFT, ranging from discussions of related ideas to reports of its application in different scenarios. We have heard of both successes and failures when applying DFT, for instance in literary or financial tasks.\n\nHere, we would like to clarify that we do not claim DFT can replace SFT in all cases, as noted in our limitations section:\n\n> *“While our experiments demonstrate substantial gains from DFT on mathematical reasoning benchmarks, this evaluation is confined to math-focused and code-focused (will be released in next version) datasets and models up to 7 billion parameters.”*\n\n---\n\nNonetheless, these less successful cases, as well as community discussions on platforms such as Zhihu or Xiao Hong Shu about the intuitive principles behind DFT, together with our own experimental experience, have prompted us to think more deeply about the conditions under which DFT works well, and why it may be less effective in other contexts.\n\nAll this feedback reminds us of a remark by computing pioneer Richard Hamming in *The Art of Doing Science and Engineering: Learning to Learn* (p.27), which we have slightly adapted:\n\n> *“Almost everyone who opens up a new field does not really understand it the way the followers—or the critics—do.”*\n\n---\n\nWe hope this work can contribute to renewed interest in exploring the interplay between SFT and RL, and in better understanding the factors that underlie both the successes and the limitations of methods like DFT. Looking ahead, we also welcome researchers who are interested in our work to improve DFT in some of the currently unsuccessful cases, or in leveraging the ideas to uncover other connections between RL algorithms and SFT, ultimately aiming to achieve RL-like benefits at the cost of SFT across a broader range of settings.\n\n## 📰 News\n\n* **\\[2025.08.08]** We have released the training scripts, evaluation scripts, and model checkpoints.\n\n## Abstract\nWe present a simple yet theoretically motivated improvement to Supervised Fine-Tuning (SFT) for the Large Language Model (LLM), addressing its limited generalization compared to reinforcement learning (RL). Through mathematical analysis, we reveal that standard SFT gradients implicitly encode a problematic reward structure that may severely restrict the generalization capabilities of model. To rectify this, we propose Dynamic Fine-Tuning (DFT), stabilizing gradient updates for each token by dynamically rescaling the objective function with the probability of this token. Remarkably, this single-line code change significantly outperforms standard SFT across multiple challenging benchmarks and base models, demonstrating greatly improved generalization. Additionally, our approach shows competitive results in offline RL settings, offering an effective yet simpler alternative. This work bridges theoretical insight and practical solutions, substantially advancing SFT performance.\n\n## Code Implementation\nDFT is a **one-line change** to standard SFT: scale each token’s loss by its predicted probability (detached to avoid gradient flow).\n\n```python\nloss = loss * torch.softmax(shift_logits, dim=-1).gather(1, shift_labels.unsqueeze(-1)).squeeze(-1).detach()\n```\n\n## ⚙️ Installation\n\nOur codebase has been tested on H100 servers with the following environment:\n\n* `python 3.10.0`\n* `torch 2.6.0+cu124`\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyongliang-wu\u002FDFT.git\ncd DFT\n```\n\n### 🔧 Set Up Training Environment\n\n```bash\nconda create -n DFT python=3.10 -y\nconda activate DFT\ncd verl\nbash scripts\u002Finstall_vllm_sglang_mcore.sh\npip install --no-deps -e .\n```\n\n## 🚀 Getting Started\n\n### Step 1: Prepare Data\n\n```bash\n# Generate training data (optional: change --train_end to control volume)\npython examples\u002Fdata_preprocess\u002Fnumina_cot.py --train_end 100000\n\n# Generate evaluation data\npython examples\u002Fdata_preprocess\u002Fmath_dataset.py\n```\n\n### Step 2: Launch Training\n\n```bash\nnproc_per_node=8\nproject_name=numina-cot\n\nexperiment_name=numina-cot-dft-qwen-2.5-math-1.5b\nsave_path=checkpoints\u002F$experiment_name\n\ntorchrun --standalone --nnodes=1 --nproc_per_node=$nproc_per_node \\\n        -m verl.trainer.fsdp_dft_trainer \\\n    data.train_files=data\u002Fnumina_cot\u002Ftrain.parquet \\\n    data.val_files=data\u002Fmath500\u002Ftest.parquet \\\n    data.prompt_key=extra_info \\\n    data.response_key=extra_info \\\n    data.train_batch_size=256 \\\n    data.max_length=2048 \\\n    optim.lr=5e-5 \\\n    data.prompt_dict_keys=['question'] \\\n    data.response_dict_keys=['answer'] \\\n    data.micro_batch_size_per_gpu=4 \\\n    model.partial_pretrain=Qwen\u002FQwen2.5-Math-1.5B \\\n    model.use_liger=True \\\n    model.fsdp_config.model_dtype=bf16 \\\n    trainer.default_local_dir=$save_path \\\n    trainer.project_name=$project_name \\\n    trainer.experiment_name=\"$experiment_name-$(date +%Y%m%d-%H%M%S)\" \\\n    trainer.logger=['console','tensorboard'] \\\n    trainer.default_hdfs_dir=null \\\n    trainer.test_freq=10 \\\n    trainer.save_freq=50 \\\n    trainer.total_epochs=1 \\\n    ulysses_sequence_parallel_size=1 \\\n    use_remove_padding=true\n```\n\n### Step 3: Evaluation\n\nTo evaluate the trained model, please first follow the [Qwen2.5-Math repository](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2.5-Math) to set up the evaluation environment.\n\n```bash\n# Select the prompt format matching your model\nPROMPT_TYPE=\"qwen-boxed\"\n# PROMPT_TYPE=\"llama-base-boxed\"\n# PROMPT_TYPE=\"deepseek-math\"\n\n# Set available GPUs\nexport CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\n\n# Configure sampling settings\nN_SAMPLING=16\nTEMPERATURE=1\n\n# Specify model and output directories\nMODEL_NAME_OR_PATH=\"\"  # e.g., checkpoints\u002Fyour-model-name\nOUTPUT_DIR=\"\"          # e.g., outputs\u002Feval_results\n\n# Run evaluation\nbash sh\u002Feval.sh $PROMPT_TYPE $MODEL_NAME_OR_PATH $OUTPUT_DIR $N_SAMPLING $TEMPERATURE\n```\n\n## Limitations\nBased on our evaluations and community feedback, DFT performs strongly on tasks with non-deterministic solution trajectories—i.e., those that admit multiple valid reasoning paths—such as mathematical chain-of-thought (CoT) reasoning, solutions to highly complex coding problems, and multimodal reasoning with informative CoT. By contrast, its performance is weaker on tasks with a single, well-specified ground-truth answer, particularly when the associated CoT (if exists) is highly constrained and near-deterministic (low-entropy).\n\n## Citation\nIf you find this paper valuable for your research or applications, we would appreciate it if you could cite our work:\n```latex\n@article{wu2025generalization,\n  title={On the Generalization of SFT: A Reinforcement Learning Perspective with Reward Rectification},\n  author={Wu, Yongliang and Zhou, Yizhou and Ziheng, Zhou and Peng, Yingzhe and Ye, Xinyu and Hu, Xinting and Zhu, Wenbo and Qi, Lu and Yang, Ming-Hsuan and Yang, Xu},\n  journal={arXiv preprint arXiv:2508.05629},\n  year={2025}\n}\n```\n\n## Related Repositories\n* [https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftrl](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftrl): TRL supports DFT now, check [this script](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftrl\u002Fblob\u002Fmain\u002Fdocs\u002Fsource\u002Fsft_trainer.md).\n* [https:\u002F\u002Fgithub.com\u002Fhiyouga\u002FLLaMA-Factory](https:\u002F\u002Fgithub.com\u002Fhiyouga\u002FLLaMA-Factory): LLaMA-Factory supports DFT now, check [this script](https:\u002F\u002Fgithub.com\u002Fhiyouga\u002FLLaMA-Factory\u002Fblob\u002Fmain\u002Fexamples\u002Fextras\u002Fdft\u002Fqwen2_full_sft.yaml).\n* [https:\u002F\u002Fgithub.com\u002Fmodelscope\u002Fms-swift](https:\u002F\u002Fgithub.com\u002Fmodelscope\u002Fms-swift): ms-swift supports DFT now, check [this script](https:\u002F\u002Fgithub.com\u002Fmodelscope\u002Fms-swift\u002Fblob\u002Fmain\u002Fexamples\u002Ftrain\u002Ffull\u002Fdft.sh).\n* [https:\u002F\u002Fgithub.com\u002FLauorie\u002FDFT](https:\u002F\u002Fgithub.com\u002FLauorie\u002FDFT): Reproduced the DFT method without using Verl.\n* [https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl](https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl): Codebase used for training.\n* [https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2.5-Math](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2.5-Math): Codebase used for evaluation.\n","\u003Cdiv align=\"center\">\n\n# *关于SFT的泛化问题*：基于奖励修正的强化学习视角\n\n\n\u003Ca href=\"http:\u002F\u002Farxiv.org\u002Fabs\u002F2508.05629\" target=\"_blank\">\n    \u003Cimg alt=\"arXiv\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-DFT-red?logo=arxiv\" height=\"25\" \u002F>\n\u003C\u002Fa>\n\n\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fcollections\u002FLiang0223\u002Fdft-6892da5e421a56a8deb48c9f\" target=\"_blank\">\n    \u003Cimg alt=\"HF Model: Cambrian-1\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20_Huggingface-Models-ffc107?color=ffc107&logoColor=white\" height=\"25\" \u002F>\n\u003C\u002Fa>\n\n\u003Cdiv style=\"font-family: charter; text-align: center; margin: 0 auto;\">\n                    \u003Ca href=\"https:\u002F\u002Fyongliang-wu.github.io\u002F\" class=\"author-link\" target=\"_blank\">Yongliang Wu*\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fscholar.google.com\u002Fcitations?user=dHBNmSkAAAAJ\" class=\"author-link\" target=\"_blank\">Yizhou Zhou*\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fscholar.google.com\u002Fcitations?user=IH2wK1cAAAAJ\" class=\"author-link\" target=\"_blank\">Zhou Ziheng\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FForJadeForest\" class=\"author-link\" target=\"_blank\">Yingzhe Peng\u003C\u002Fa> &emsp;\n                    \u003Cbr>\n                    \u003Ca href=\"https:\u002F\u002Fscholar.google.com\u002Fcitations?user=fdwhd9gAAAAJ\" class=\"author-link\" target=\"_blank\">Xinyu Ye\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fjoyhuyy1412.github.io\u002F\" class=\"author-link\" target=\"_blank\">Xinting Hu\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fvitozhu04.github.io\u002F\" class=\"author-link\" target=\"_blank\">Wenbo Zhu\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"http:\u002F\u002Fluqi.info\u002F\" class=\"author-link\" target=\"_blank\">Lu Qi\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Ffaculty.ucmerced.edu\u002Fmhyang\u002F\" class=\"author-link\" target=\"_blank\">Ming-Hsuan Yang\u003C\u002Fa> &emsp;\n                    \u003Ca href=\"https:\u002F\u002Fyxpalmweb.github.io\u002F\" class=\"author-link\" target=\"_blank\">Xu Yang\u003C\u002Fa> &emsp;\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\u003C\u002Fdiv>\n\n## 🌟 感谢社区的反馈\n\n我们非常感谢社区对DFT提出的诸多中肯意见和反馈，从相关概念的讨论到不同场景下的应用报告，不一而足。在文学或金融等任务中，我们也听到了关于DFT成功与失败的案例。\n\n在此，我们想澄清一点：正如我们在局限性部分所指出的那样，我们并不声称DFT能够完全取代SFT：\n\n> *“尽管我们的实验表明DFT在数学推理基准上取得了显著提升，但这一评估仅限于以数学和代码为中心的数据集，以及参数规模不超过70亿的模型。”*\n\n---\n\n然而，这些不太成功的案例，加上知乎、小红书等平台上关于DFT直观原理的讨论，以及我们自身的实验经验，促使我们更深入地思考DFT在哪些条件下表现良好，而在其他情况下为何效果欠佳。\n\n所有这些反馈让我们想起计算机先驱理查德·汉明在《科学与工程的艺术：学会学习》（第27页）中的一段话，我们稍作改编：\n\n> *“几乎每一个开辟新领域的人，其实都不如追随者——或者批评家——那样真正理解它。”*\n\n---\n\n我们希望这项工作能够激发人们重新关注SFT与RL之间的相互作用，并更好地理解DFT等方法之所以取得成功或存在局限性的因素。展望未来，我们也欢迎对我们的工作感兴趣的研究人员，在当前尚未成功的案例中改进DFT，或利用这些思路发掘RL算法与SFT之间的更多联系，最终实现在更广泛的场景中以SFT的成本获得类似RL的优势。\n\n## 📰 新闻\n\n* **\\[2025.08.08]** 我们已发布训练脚本、评估脚本及模型检查点。\n\n## 摘要\n我们提出了一种简单却具有理论依据的大型语言模型（LLM）监督微调（SFT）改进方法，旨在解决其相较于强化学习（RL）的泛化能力不足问题。通过数学分析，我们揭示了标准SFT梯度隐含着一种可能严重限制模型泛化能力的问题性奖励结构。为纠正这一点，我们提出了动态微调（DFT），通过用该 token 的预测概率动态缩放目标函数，从而稳定每个 token 的梯度更新。令人惊讶的是，这一行代码的改动便在多个具有挑战性的基准测试和基础模型上显著优于标准SFT，展现出大幅增强的泛化能力。此外，我们的方法在离线强化学习场景中也表现出竞争力，提供了一种既有效又更为简便的替代方案。这项工作将理论洞见与实践解决方案相结合，极大地提升了SFT的性能。\n\n## 代码实现\nDFT是对标准SFT的**一行修改**：将每个 token 的损失乘以其预测概率（并将其分离以避免梯度流动）。\n\n```python\nloss = loss * torch.softmax(shift_logits, dim=-1).gather(1, shift_labels.unsqueeze(-1)).squeeze(-1).detach()\n```\n\n## ⚙️ 安装\n\n我们的代码库已在配备H100显卡的服务器上进行了测试，环境如下：\n\n* `python 3.10.0`\n* `torch 2.6.0+cu124`\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyongliang-wu\u002FDFT.git\ncd DFT\n```\n\n### 🔧 设置训练环境\n\n```bash\nconda create -n DFT python=3.10 -y\nconda activate DFT\ncd verl\nbash scripts\u002Finstall_vllm_sglang_mcore.sh\npip install --no-deps -e .\n```\n\n## 🚀 开始使用\n\n### 第一步：准备数据\n\n```bash\n# 生成训练数据（可选：调整--train_end以控制数据量）\npython examples\u002Fdata_preprocess\u002Fnumina_cot.py --train_end 100000\n\n# 生成评估数据\npython examples\u002Fdata_preprocess\u002Fmath_dataset.py\n```\n\n### 第2步：启动训练\n\n```bash\nnproc_per_node=8\nproject_name=numina-cot\n\nexperiment_name=numina-cot-dft-qwen-2.5-math-1.5b\nsave_path=checkpoints\u002F$experiment_name\n\ntorchrun --standalone --nnodes=1 --nproc_per_node=$nproc_per_node \\\n        -m verl.trainer.fsdp_dft_trainer \\\n    data.train_files=data\u002Fnumina_cot\u002Ftrain.parquet \\\n    data.val_files=data\u002Fmath500\u002Ftest.parquet \\\n    data.prompt_key=extra_info \\\n    data.response_key=extra_info \\\n    data.train_batch_size=256 \\\n    data.max_length=2048 \\\n    optim.lr=5e-5 \\\n    data.prompt_dict_keys=['question'] \\\n    data.response_dict_keys=['answer'] \\\n    data.micro_batch_size_per_gpu=4 \\\n    model.partial_pretrain=Qwen\u002FQwen2.5-Math-1.5B \\\n    model.use_liger=True \\\n    model.fsdp_config.model_dtype=bf16 \\\n    trainer.default_local_dir=$save_path \\\n    trainer.project_name=$project_name \\\n    trainer.experiment_name=\"$experiment_name-$(date +%Y%m%d-%H%M%S)\" \\\n    trainer.logger=['console','tensorboard'] \\\n    trainer.default_hdfs_dir=null \\\n    trainer.test_freq=10 \\\n    trainer.save_freq=50 \\\n    trainer.total_epochs=1 \\\n    ulysses_sequence_parallel_size=1 \\\n    use_remove_padding=true\n```\n\n### 第3步：评估\n\n要评估训练好的模型，请先按照 [Qwen2.5-Math 仓库](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2.5-Math) 的说明设置评估环境。\n\n```bash\n# 选择与您的模型匹配的提示格式\nPROMPT_TYPE=\"qwen-boxed\"\n# PROMPT_TYPE=\"llama-base-boxed\"\n# PROMPT_TYPE=\"deepseek-math\"\n\n# 设置可用的GPU\nexport CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\n\n# 配置采样参数\nN_SAMPLING=16\nTEMPERATURE=1\n\n# 指定模型和输出目录\nMODEL_NAME_OR_PATH=\"\"  # 例如：checkpoints\u002Fyour-model-name\nOUTPUT_DIR=\"\"          # 例如：outputs\u002Feval_results\n\n# 运行评估\nbash sh\u002Feval.sh $PROMPT_TYPE $MODEL_NAME_OR_PATH $OUTPUT_DIR $N_SAMPLING $TEMPERATURE\n```\n\n## 局限性\n根据我们的评估和社区反馈，DFT 在具有非确定性解题路径的任务上表现强劲——即那些存在多种有效推理路径的任务，例如数学链式思维（CoT）推理、高度复杂的编程问题求解以及带有信息丰富 CoT 的多模态推理。相比之下，DFT 在答案唯一且明确的任务上的表现较弱，尤其是在相关的 CoT（如果存在）高度受限且接近确定性（低熵）的情况下。\n\n## 引用\n如果您认为本文对您的研究或应用有价值，我们非常感谢您引用我们的工作：\n```latex\n@article{wu2025generalization,\n  title={On the Generalization of SFT: A Reinforcement Learning Perspective with Reward Rectification},\n  author={Wu, Yongliang and Zhou, Yizhou and Ziheng, Zhou and Peng, Yingzhe and Ye, Xinyu and Hu, Xinting and Zhu, Wenbo and Qi, Lu and Yang, Ming-Hsuan and Yang, Xu},\n  journal={arXiv preprint arXiv:2508.05629},\n  year={2025}\n}\n```\n\n## 相关仓库\n* [https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftrl](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftrl)：TRL 现已支持 DFT，请参阅 [此脚本](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftrl\u002Fblob\u002Fmain\u002Fdocs\u002Fsource\u002Fsft_trainer.md)。\n* [https:\u002F\u002Fgithub.com\u002Fhiyouga\u002FLLaMA-Factory](https:\u002F\u002Fgithub.com\u002Fhiyouga\u002FLLaMA-Factory)：LLaMA-Factory 现已支持 DFT，请参阅 [此脚本](https:\u002F\u002Fgithub.com\u002Fhiyouga\u002FLLaMA-Factory\u002Fblob\u002Fmain\u002Fexamples\u002Fextras\u002Fdft\u002Fqwen2_full_sft.yaml)。\n* [https:\u002F\u002Fgithub.com\u002Fmodelscope\u002Fms-swift](https:\u002F\u002Fgithub.com\u002Fmodelscope\u002Fms-swift)：ms-swift 现已支持 DFT，请参阅 [此脚本](https:\u002F\u002Fgithub.com\u002Fmodelscope\u002Fms-swift\u002Fblob\u002Fmain\u002Fexamples\u002Ftrain\u002Ffull\u002Fdft.sh)。\n* [https:\u002F\u002Fgithub.com\u002FLauorie\u002FDFT](https:\u002F\u002Fgithub.com\u002FLauorie\u002FDFT)：复现了 DFT 方法，未使用 Verl。\n* [https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl](https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl)：用于训练的代码库。\n* [https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2.5-Math](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2.5-Math)：用于评估的代码库。","# DFT 快速上手指南\n\nDFT (Dynamic Fine-Tuning) 是一种针对大语言模型监督微调（SFT）的改进方法。它通过动态调整每个 token 的损失权重，以极低的代码改动成本（仅需一行代码），显著提升模型在数学推理、复杂代码生成等任务上的泛化能力，达到接近强化学习（RL）的效果。\n\n## 环境准备\n\n本项目已在 H100 服务器环境下测试通过，建议配置如下：\n\n*   **操作系统**: Linux\n*   **Python**: 3.10.0\n*   **PyTorch**: 2.6.0+cu124\n*   **硬件**: 推荐多卡 GPU 环境（示例中使用 8 卡）\n\n> **注意**：由于依赖特定的并行训练框架 `verl`，请确保您的环境支持 CUDA 12.4 及以上版本。\n\n## 安装步骤\n\n### 1. 克隆项目代码\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyongliang-wu\u002FDFT.git\ncd DFT\n```\n\n### 2. 创建并激活虚拟环境\n```bash\nconda create -n DFT python=3.10 -y\nconda activate DFT\n```\n\n### 3. 安装核心依赖\n进入 `verl` 目录并执行安装脚本（该脚本会自动安装 vllm, sglang, mcore 等依赖）：\n```bash\ncd verl\nbash scripts\u002Finstall_vllm_sglang_mcore.sh\npip install --no-deps -e .\n```\n\n> **国内加速提示**：如果上述安装过程下载缓慢，建议在执行 `pip` 命令时添加国内镜像源，例如：\n> `pip install --no-deps -e . -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 基本使用\n\n以下是基于 Qwen2.5-Math-1.5B 模型进行 DFT 训练的最简流程。\n\n### 第一步：准备数据\n生成训练数据（Numina-CoT）和评估数据（Math500）：\n```bash\n# 生成训练数据 (--train_end 可控制数据量)\npython examples\u002Fdata_preprocess\u002Fnumina_cot.py --train_end 100000\n\n# 生成评估数据\npython examples\u002Fdata_preprocess\u002Fmath_dataset.py\n```\n\n### 第二步：启动训练\n使用 `torchrun` 启动分布式训练。以下命令展示了在 8 卡环境下训练 Qwen2.5-Math-1.5B 的配置：\n\n```bash\nnproc_per_node=8\nproject_name=numina-cot\n\nexperiment_name=numina-cot-dft-qwen-2.5-math-1.5b\nsave_path=checkpoints\u002F$experiment_name\n\ntorchrun --standalone --nnodes=1 --nproc_per_node=$nproc_per_node \\\n        -m verl.trainer.fsdp_dft_trainer \\\n    data.train_files=data\u002Fnumina_cot\u002Ftrain.parquet \\\n    data.val_files=data\u002Fmath500\u002Ftest.parquet \\\n    data.prompt_key=extra_info \\\n    data.response_key=extra_info \\\n    data.train_batch_size=256 \\\n    data.max_length=2048 \\\n    optim.lr=5e-5 \\\n    data.prompt_dict_keys=['question'] \\\n    data.response_dict_keys=['answer'] \\\n    data.micro_batch_size_per_gpu=4 \\\n    model.partial_pretrain=Qwen\u002FQwen2.5-Math-1.5B \\\n    model.use_liger=True \\\n    model.fsdp_config.model_dtype=bf16 \\\n    trainer.default_local_dir=$save_path \\\n    trainer.project_name=$project_name \\\n    trainer.experiment_name=\"$experiment_name-$(date +%Y%m%d-%H%M%S)\" \\\n    trainer.logger=['console','tensorboard'] \\\n    trainer.default_hdfs_dir=null \\\n    trainer.test_freq=10 \\\n    trainer.save_freq=50 \\\n    trainer.total_epochs=1 \\\n    ulysses_sequence_parallel_size=1 \\\n    use_remove_padding=true\n```\n\n### 第三步：模型评估\n训练完成后，需参考 [Qwen2.5-Math 仓库](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen2.5-Math) 配置评估环境，然后运行评估脚本：\n\n```bash\n# 选择与模型匹配的 Prompt 格式 (根据基座模型选择 qwen-boxed, llama-base-boxed 等)\nPROMPT_TYPE=\"qwen-boxed\"\n\n# 设置可用 GPU\nexport CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7\n\n# 配置采样参数\nN_SAMPLING=16\nTEMPERATURE=1\n\n# 指定模型路径和输出目录\nMODEL_NAME_OR_PATH=\"checkpoints\u002Fyour-model-name\"  # 替换为实际保存路径\nOUTPUT_DIR=\"outputs\u002Feval_results\"\n\n# 执行评估\nbash sh\u002Feval.sh $PROMPT_TYPE $MODEL_NAME_OR_PATH $OUTPUT_DIR $N_SAMPLING $TEMPERATURE\n```\n\n### 核心原理说明\nDFT 的核心实现仅为标准 SFT 损失函数的一行修改，即利用预测概率对每个 token 的 loss 进行动态缩放（并切断梯度回传）：\n```python\nloss = loss * torch.softmax(shift_logits, dim=-1).gather(1, shift_labels.unsqueeze(-1)).squeeze(-1).detach()\n```\n\n> **适用场景提示**：DFT 在具有非确定性解题路径的任务（如数学思维链 CoT、复杂代码生成）上表现最佳；对于答案唯一且推理路径固定的任务，提升可能有限。","某金融科技团队正在构建一个基于 7B 参数大模型的自动化数学推理引擎，用于实时解析复杂的衍生品定价公式并生成验证代码。\n\n### 没有 DFT 时\n- 模型在面对训练数据中未出现过的新型金融公式变体时，泛化能力显著下降，经常产生看似合理但逻辑错误的“幻觉”推导。\n- 为了提升准确率，团队不得不收集海量特定领域的标注数据进行多轮监督微调（SFT），导致数据清洗和标注成本居高不下。\n- 引入完整的强化学习（RL）流程来优化推理路径又显得过于沉重，奖励函数设计复杂且训练过程极不稳定，难以在有限算力下落地。\n- 最终交付的模型在标准测试集上表现尚可，但在实际业务遇到的长尾复杂算例中，成功率波动极大，无法满足生产级稳定性要求。\n\n### 使用 DFT 后\n- 借助 DFT 的奖励修正机制，模型在仅使用少量基础 SFT 数据的情况下，显著提升了对未见过的数学公式变体的泛化推理能力。\n- 团队无需再耗费巨资构建大规模专用数据集，DFT 以接近 SFT 的训练成本实现了类似强化学习的性能增益，大幅降低了数据依赖。\n- 训练过程保持了监督微调的简洁与稳定，避免了传统 RL 中奖励稀疏和收敛困难的问题，使得在单卡环境下快速迭代成为可能。\n- 在实际业务的长尾复杂算例测试中，模型的解题成功率趋于稳定，能够可靠地处理高难度的衍生品定价逻辑，达到了上线标准。\n\nDFT 成功打破了监督微调与强化学习之间的壁垒，让中小规模模型也能以低成本获得强大的数学推理泛化能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyongliang-wu_DFT_49bfc157.png","yongliang-wu","Yongliang Wu","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fyongliang-wu_7017e59d.jpg","A master student at Southeast University.","Southeast University","Shanghai",null,"https:\u002F\u002Fgithub.com\u002Fyongliang-wu",[85,89,93,97,101],{"name":86,"color":87,"percentage":88},"Python","#3572A5",90.7,{"name":90,"color":91,"percentage":92},"Shell","#89e051",8.2,{"name":94,"color":95,"percentage":96},"Jupyter Notebook","#DA5B0B",0.7,{"name":98,"color":99,"percentage":100},"ANTLR","#9DC3FF",0.4,{"name":102,"color":103,"percentage":104},"Makefile","#427819",0,554,22,"2026-04-02T12:36:07",4,"Linux","必需 NVIDIA GPU，测试环境为 H100，需支持 CUDA 12.4","未说明",{"notes":113,"python":114,"dependencies":115},"代码库在 H100 服务器上测试通过。安装过程涉及 verl 框架及 vllm、sglang、megatron-core 等组件的编译安装（需运行 install_vllm_sglang_mcore.sh 脚本）。训练示例使用了 8 卡环境 (nproc_per_node=8)。该工具主要针对数学推理和代码生成任务优化，在确定性答案任务上效果可能受限。","3.10.0",[116,117,118,119,120],"torch>=2.6.0+cu124","vllm","sglang","megatron-core","verl",[26,13],"2026-03-27T02:49:30.150509","2026-04-06T10:24:51.459231",[125,130,135,140,145,150,154],{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},12203,"DFT 训练时出现梯度消失或损失值过低（如 0.0001）是否正常？","是的，这是正常现象。DFT 的损失值通常比 SFT 低 10 到 20 倍左右。如果在实现中使用了 `torch.exp(-losses)` 计算概率系数，请确保正确处理了负标签（padding mask），例如：`valid_mask = (flat_labels >= 0).float()`，并将掩码应用到概率系数上。","https:\u002F\u002Fgithub.com\u002Fyongliang-wu\u002FDFT\u002Fissues\u002F5",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},12204,"使用 DFT 微调后，模型的思维链（CoT）长度显著缩短且准确率下降，原因是什么？","这通常与超参数设置有关。建议尝试以下调整：1. 确保 DFT 使用的数据与 SFT 一致；2. 将学习率调整为 SFT 的 1\u002F10；3. 尝试先进行 2 轮 SFT 预热，再进行 DFT 微调，仅做 1 轮 SFT 可能无法达到最佳增益效果。","https:\u002F\u002Fgithub.com\u002Fyongliang-wu\u002FDFT\u002Fissues\u002F20",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},12205,"在 GSM8K 等数学任务上，DFT 的效果不如 SFT（准确率下降），如何解决？","DFT 对数据和超参数非常敏感。如果效果不佳，建议：1. 更换或筛选更高质量的数据集；2. 尝试增大学习率（例如设置为 SFT 学习率的 10 倍，如从 5e-6 调至 5e-5）；3. 注意该方法在 LoRA 微调下的表现可能不稳定，需仔细调试。","https:\u002F\u002Fgithub.com\u002Fyongliang-wu\u002FDFT\u002Fissues\u002F18",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},12206,"DFT 适用于哪些任务场景和数据类型？为什么在某些任务（如金融）上效果反而变差？","DFT 并非在所有场景都优于 SFT。在某些任务中（如金融），如果 DFT 导致模型无法学会输出格式或丢失特殊 Token，可能是学习率过大或训练轮数不当。建议在小学习率下训练 1 个 Epoch 观察格式遵循情况；若学习率过大，模型可能无法收敛到正确的输出格式。","https:\u002F\u002Fgithub.com\u002Fyongliang-wu\u002FDFT\u002Fissues\u002F14",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},12207,"单独使用 DFT 会导致模型输出格式与训练数据不匹配（如合并推理步骤），该如何解决？","这是一个已知现象。单独使用 DFT 时，模型倾向于“将两个推理步骤合并为一个”，导致格式偏差。建议在 DFT 之前先进行充分的 SFT（监督微调）以固定输出格式，或者采用 SFT 与 DFT 结合的策略（如先 SFT 再 DFT），以兼顾格式遵循和推理能力提升。","https:\u002F\u002Fgithub.com\u002Fyongliang-wu\u002FDFT\u002Fissues\u002F1",{"id":151,"question_zh":152,"answer_zh":153,"source_url":129},12208,"在使用 `vocab_parallel_cross_entropy` 时，如何正确计算 DFT 的概率系数？","两种方法在正常情况下是等价的：可以直接使用 `torch.exp(-losses)`，也可以通过 `softmax` 后 `gather` 对应标签的概率。如果标签中包含负数（Padding），务必使用掩码处理：`prob_coefficients = prob_coefficients * valid_mask`，其中 `valid_mask` 由 `flat_labels >= 0` 生成。",{"id":155,"question_zh":156,"answer_zh":157,"source_url":144},12209,"DFT 训练中出现话术重复增加的问题，是否与学习率有关？","是的，这与学习率密切相关。在小学习率情况下，虽然格式遵循较好，但可能会出现话术重复增加的现象；而在大学习率下，格式遵循能力可能会崩溃。建议通过实验寻找平衡点，通常推荐较小的学习率并配合适当的 Epoch 数（如 1-3 轮）。",[]]