《A1--蒋思源--后训练过程中的代码质量提升.pdf》由会员分享,可在线阅读,更多相关《A1--蒋思源--后训练过程中的代码质量提升.pdf(39页珍藏版)》请在三个皮匠报告上搜索。
1、蒋思源aiXcoder 算法工程师目录CONTENTS代码生成质量提升0102后训练提升质量后处理提升质量03总结04PART 01如何提升代码生成的质量代码生成质量是全流程的观察:训练数据质量对生成代码质量极其重要后处理手段对保证生成代码质量极其重要利用大语言模型自我修正代码对最终生成质量作用突出Post+愈加重要后训练:当前顶尖模型通过 RL 大幅度提升了代码质量逻辑推理、数据推理等能力的学习能一定程度泛化到代码领域通过 TestTime Scalling 能进一步提升困难代码问题的质量推理阶段后处理:软件工程拥有丰富且精确的辅助工具结合规则与工具,进一步降低模型在缺少上下文情况下的幻觉推
2、理改进推理方式像人一样能回溯概览后训练:-从训练数据、训练方式、训练任务上提升模型对代码质量上的感知。后处理:-在模型之外,借助prompt、工具、workflow 用现实世界上的信息与规则约束模型生成的代码质量。PART 02后训练提升代码生成质量指令微调:基础质量优化Magicoder:Empowering Code Generation with OSS-INSTRUCT,2023指令微调:基础质量优化SelfCodeAlign:Self-Alignment for Code Generation,2024指令微调:基础质量优化问题:代码大语言模型普遍缺乏代码执行能力方法:通过多轮对话将
3、编译器反馈信息嵌入到模型为SFT引入编译器反馈信息OpenCodeInterpreter:Integrating Code Generation with Execution and Refinement,2024指令微调:基础质量优化aiXcoder-7B:A Lightweight and Effective Large Language Model for Code ProcessingaiXcoder-7B:A Lightweight and Effective Large Language Model for Code Processing,2024,2024观察增量生成对于已有的语
4、法结构有破坏性项目级的上下文处理能力偏弱做法将语法结构嵌入到训练任务中将项目级上下文嵌入到训练任务中偏好对齐训练:精细化调整PLUM:Preference Learning Plus Test Cases Yields Better Code Language Models,2024观察代码正确性的语义复杂性难以通过SFT捕捉做法模型直接针对问题深沉一组函数签名与单元测试代码通过单元测试的通过与否直接计算奖励并作为策略模型的优化信号偏好对齐训练:精细化调整Focused-DPO:Enhancing Code Generation Through Focused Preference Optim
5、ization on Error-Prone Points,2025观察模型生成的错误类型非均匀分布代码生成存在易错点做法通过PageRank对代码集合与测试集合排序识别易错点,构建偏好数据修改奖励权重,加强模型对错误点的关注偏好对齐训练:精细化调整CodeUltraFeedback:An LLM-as-a-Judge Dataset for Aligning Large Language Models to Coding Preferences,2024观察代码质量也需要考虑可读性、效率、最佳实践等传统静态分析很难处理多样性做法提供不同问题在指令遵循、代码解释、代码复杂性和效率、代码可读性、
6、编码风格五种方向的大量生成结果使用LLM对生成结果的五个方向进行评分偏好对齐训练:精细化调整aiXcoder-7B-v2:Training LLMs to Fully Utilize the Long Context in Repository-level Code Completion,2025观察模型在补全代码时缺乏有效的代码项目全局上下文基础模型的补全行为与人的编辑偏好不一致做法通过静态分析,抽取可能需要的常量、类与方法等信息通过Rag抽取相近可参考的代码片段通过RL对齐模型生成结果与人工结果基于规则的强化学习:与确定系统交互CodeRL:Mastering Code Generatio