版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
蒋思源|aiXcoder算法工程师目录CONTENTS01
代码生成质量提升03
后处理提升质量02
后训练提升质量04
总结PART
01如何提升代码生成的质量观察:•训练数据质量对生成代码质量极其重要•后处理手段对保证生成代码质量极其重要•利用大语言模型自我修正代码对最终生成质量作用突出
代码生成质量是全流程的后训练:•当前顶尖模型通过
RL
大幅度提升了代码质量•逻辑推理、数据推理等能力的学习能一定程度泛化到代码领域•通过
TestTime
Scalling
能进一步提升困难代码问题的质量推理阶段后处理:•软件工程拥有丰富且精确的辅助工具•结合规则与工具,进一步降低模型在缺少上下文情况下的幻觉推理•改进推理方式像人一样能回溯
「Post+」愈加重要后训练:-从训练数据、训练方式、训练任务上提升模型对代码质量上的感知。后处理:-在模型之外,借助prompt
、工具、workflow用现实世界上的信息与规则约束模型生成的代码质量。
概览PART
02后训练提升代码生成质量
指令微调:
基础质量优化Magicoder:
EmpoweringCodeGenerationwithOSS-INSTRUCT,
2023
指令微调:
基础质量优化SelfCodeAlign:Self-AlignmentforCodeGeneration,
2024问题:•代码大语言模型普遍缺乏代码执行能力方法:•通过多轮对话将编译器反馈信息嵌入到模型•为SFT引入编译器反馈信息
指令微调:
基础质量优化OpenCodeInterpreter:
IntegratingCodeGenerationwith
Executionand
Refinement,
2024观察•增量生成对于已有的语法结构有破坏性•项目级的上下文处理能力偏弱做法•将语法结构嵌入到训练任务中•将项目级上下文嵌入到训练任务中
指令微调:
基础质量优化aiXcoder-7B
:
A
Lightweight
and
Effective
Large
Language
Model
for
Code
Processing,
2024观察•代码正确性的语义复杂性难以通过SFT捕捉做法•模型直接针对问题深沉一组函数签名与单元测试代码•通过单元测试的通过与否直接计算奖励并作为策略模型的优化信号
偏好对齐训练:
精细化调整PLUM:
Preference
Learning
PlusTestCasesYields
BetterCode
Language
Models,
2024观察•模型生成的错误类型非均匀分布•代码生成存在易错点做法•通过PageRank对代码集合与测试集合排序识别易错点,构建偏好数据•修改奖励权重,加强模型对错误点的关注
偏好对齐训练:
精细化调整Focused-DPO:
EnhancingCodeGenerationThrough
Focused
PreferenceOptimizationon
Error-Prone
Points,
2025观察•代码质量也需要考虑可读性、效率、最佳实践等•传统静态分析很难处理多样性做法•提供不同问题在指令遵循、代码解释、代码复杂性和效率、代码可读性、编码风格五种方向的大量生成结果•使用LM对生成结果的五个方向进行评分
偏好对齐训练:
精细化调整CodeUltraFeedback:AnLM-as-a-Judge
DatasetforAligning
Large
Language
ModelstoCoding
Preferences,
2024
偏好对齐训练:
精细化调整观察•模型在补全代码时缺乏有效的代码项目全局上下文•基础模型的补全行为与人的编辑偏好不一致做法•通过静态分析,抽取可能需要的常量、类与方法等信息•通过Rag抽取相近可参考的代码片段•通过RL对齐模型生成结果与人工结果aiXcoder-7B-v2:Training
LLMsto
Fully
Utilizethe
LongContext
in
Repository-levelCodeCompletion,
2025观察•主流提升生成质量的方法是SFT•当前训练更关注NL与Code之间的映射
做法•将LLM视为Actor网络,引入Critic模型评估生成程序的功能正确性,为Actor提供密集反馈信号•训练Critic网络预测程序的单元测试结果(编译错误、运行错误、测试失败、测试通过)
基于规则的强化学习:
与确定系统交互CodeRL:
MasteringCodeGenerationthrough
Pretrained
Modelsand
Deep
Reinforcement
Learning,
2022观察•代码中的条件语句增多会使模型生成正确代码的概率呈指数级下降,难以在输出空间中找到高质量轨•单元测试可能无法覆盖复杂代码的所有部分,导致某些代码片段从未被执行•传统强化学习基于整个代码序列优化,包含了与奖励计算无关的代码片段,降低了优化精度做法•当模型在当前难度下生成正确代码的比例超过阈值时,减少提供的规范解决方案部分•创建Mask矩阵标记未执行的代码片段,并部分更新
基于规则的强化学习:
与确定系统交互StepCoder:
ImproveCodeGenerationwith
Reinforcement
LearningfromCompiler
Feedback,
2024
基于规则的强化学习:
与确定系统交互•DeepSeek-R1第一阶段强化学习训练•SFT
冷启动•通过
few-shot让顶尖
LLM
以确定格式生成
CoT数据•通过
prompt直接要求模型生成带反思和验证的
CoT数据•收集
R1-Zero生成的数据,并通过人工标注提升可读性与准确性•面向推理能力的强化学习•提供一批有明确答案的问题,涉及代码、数学、科学、逻辑推理领域•提供最终回答验证机制,纯规则系统作为
reward•统计模型回答中不同语言的占比,并作为
rewardDeepSeek-R1:
Incentivizing
ReasoningCapability
in
LLMsvia
Reinforcement
Learning,
2025
基于规则的强化学习:
与确定系统交互开源项目已经复现了很多代码规则性奖励:IOI竞赛题、代码编译与执行DeepSeek-R1:
Incentivizing
ReasoningCapability
in
LLMsvia
Reinforcement
Learning,
2025•观察:通过生成测试用例扩展数据质量仍然不够高•方法:CodeDPO通过自生成和验证代码与测试用例,利用类PageRank算法迭代更新代码片段的自验证分数,优先选择通过更多高可信度测试用例的代码片段,有效提升代码正确性。CodeDPO:AligningCode
ModelswithSelfGenerated
andVerified
Source
Code,
2024
基于规则的强化学习:
验证数据多样性问题•给定功能描述与代码,生成测试用例•给定功能描述生成测试用例输入的生成代码•通过运行时生成一组测试用例的输入•如果被测函数生成结果不一致,投票排除错误结果
基于规则的强化学习:
验证数据多样性问题LM-PoweredTestCaseGenerationfor
DetectingTricky
Bugs,
2024•观察:当前代码生成相关的训练基本都聚焦于独立函数•方法:针对解Issue的Agent
,以最后代码片段的字符相似性
作为RewardSWE-RL:Advancing
LLM
Reasoningvia
Reinforcement
LearningonOpenSoftware
Evolution,
2025
基于规则的强化学习:
代码范围的局限性•观察:处理项目级开发问题,模型会出现不遵循
prompt
、工具调用错误、Action陷入循环等•方法:识别正确与错误的
Action序列,并将正确的
Action偏好训练到模型中SEAlign:AlignmentTrainingforSoftware
EngineeringAgent,
2025
基于规则的强化学习:
代码范围的局限性PART
03后处理提升代码质量•通过现存的
CVE
实例,多维度抽取安全漏洞知识库•给定代码块,检索相应的代码缺陷背景知识•利用背景知识检测当前代码块的缺陷与漏洞
推理约束:
Prompt与采样约束生成内容Vul-RAG:
EnhancingLM-basedVulnerability
Detectionvia
Knowledge-level
RAG,
2024•观察:当前的代码生成缺少实时的回撤机制来排除错误路径•方法:解码过程中引入回溯机制,使模型能够在生成过程中检测错误、回退并重新生成,从而避免错误累积
推理约束:
Prompt与采样约束生成内容ROCODE:
Integrating
Backtracking
Mechanismand
ProgramAnalysis
inarge
Language
ModelsforCode
Generation,
2025
Agent:Workflow管控生成内容Self-collaborationCodeGenerationviaChatGPT,
2023在代码场景中,让模型自己对任务做拆解能有效提升效果•简单任务可以借助
CoT直接拆分为
Planning•复杂任务可以借助
ToT
多层拆分为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山东化工职业学院单招职业技能测试题库及答案解析
- 篮球教学中运动心理训练方案
- 物流车辆调度管理及优化方案
- 房地产项目预算编制与成本控制方案
- 项目沟通管理制度
- 各高校开学工作方案
- 水上游船经营实施方案
- 校外托管机构实施方案
- 一季度开门红实施方案
- 高中双拥工作方案怎么写
- 门窗安装安全操作规程
- 基于STM32单片机的智能水杯设计
- 动画角色设计韩宇教学课件全套
- 国内实验室安全事故案例
- 幕墙规范知识培训内容
- 电子商务客服规范细则
- 生物实验室生物安全培训课件
- 基于沉浸式体验下的城市形象构建与传播研究-以西安大唐不夜城为例
- 建筑工程测量 第3版 习题及答案 单元2 水准测量-作业参考题解
- 2025光伏电站巡视规范
- 《工业机器人技术基础》课件 2.3.1 工业机器人的内部传感器
评论
0/150
提交评论