1、蒋思源 aiXcoder代码大模型算法专家负责aiXcoder大模型开发的全流程,包括数据采集与清洗、大模型构建与训练、模型推理优化及服务、模型评估等。关注如何通过大规模分布式训练获得更符合软件工程实际开发场景的基础代码大模型;关注构建能符合软件开发流程、工具、行为的人类对齐训练方法;关注如何在私有代码上做领域化增量训练,并尽可能降低灾难遗忘等问题。演讲主题:提升代码生成质量:代码大模型实践经验提升代码生成质量:代码大模型实践经验蒋思源 aiXcoder 大模型算法专家1.预训练数据处理2.偏好对齐训练3.软件工程工具4.多智能体协同5.领域化训练6.代码质量评测l目录软件工程工具增强代码质量
2、多智能体协同增强代码质量领域化增强代码质量强化预训练数据处理偏好对齐增强代码质量基础模型质量保证工程化提升推理质量适配闭源代码质量把控生成代码质量评测评测指标监控生成质量预训练数据处理PART1PART1预训练数据处理原始代码数据挑选项目级综合过滤代码文件级过滤敏感信息去除语法分析静态分析常规预处理内容:重复性代码自动生成的代码无意义的代码语法分析:不完整的代码块非法字符关键词误用缺少必要的语法元素无效的语法结构静态分析:可维护性:判断语句嵌套过深不良命名规范可靠性:资源泄露数组越界类型错误作用范围错误未捕捉的错误未定义或未使用的变量安全漏洞数据预处理流预训练数据处理-语法分析预训练数据处理-
3、语法分析预训练数据处理 静态分析预训练数据处理 静态分析可维护性:np.is_nan()判定可靠性:构造方法不能返回值安全性:浮点数对比不安全安全性:变量释放后使用安全性:越界写安全性:内存溢出偏好对齐提升代码质量PART2PART2偏好对齐Magicoder:Empowering Code Generation with OSS-INSTRUCT偏好对齐https:/ RAG 缺陷检测通过现存的 CVE实例,多维度抽取安全漏洞知识库给定代码块,检索相应的代码缺陷背景知识利用背景知识检测当前代码块的缺陷与漏洞Vul-RAG:Enhancing LLM-based Vulnerability D
4、etection via Knowledge-level RAGAgent 增强代码质量PART4PART4流程化-AgentSelf-planning code generation with large language model 在代码场景中,让模型自己对任务做拆解能有效提升效果 简单任务可以借助 CoT 直接拆分为 Planning 复杂任务可以借助 ToT 多层拆分为 Action流程化-AgentSelf-collaboration Code Generation via ChatGPT流程化-AgentCODEAGENT:Enhancing Code Generation wi
5、th Tool-Integrated Agent Systems for Real-World Repo-level Coding Challenges流程化-Agent领域化训练提升代码质量PART5PART5领域化-增量训练企业领域知识l行业业务术语与流程规范l行业技术标准与规范l企业产品和服务详细信息l企业技术栈l编程框架.个性化训练的价值更准确的代码生成更好理解企业特有业务逻辑和技术细节遵循企业编码规范,风格统一的代码帮助新员工快速掌握技术规范.领域化-增量训练领域化-增量训练微调类型具体方法优点缺点Parameter-EfficientFine-Tuning(高效参数微调)LoRA节
6、省计算力:7B参数量以下可以不实现各种并行训练策略 数十亿参数量模型可以在消费级显卡上训练收敛速度可能不如Fine-TuningAdaptersPrefix TuningLadder Side-TuningFine-TuningFine-Tuning训练效果有保证计算资源需求大训练可能不稳定可能出现过拟合生成代码质量评测PART6PART6生成准确性评测LEVELINPUTOUTPUTDATASET独立的代码生成NL(自然语言需求+函数签名+输入输出对)function/method(完整的函数/方法)Human-