2024全球机器学习技术大会 | aiXcoder分享代码大模型实践经验,提升代码生成质量
这就需要根据企业提供的不同程度数据(代码、业务文档、需求文档、设计文档、测试文档等),并充分考虑行业业务术语与流程规范、行业技术标准与规范、企业技术栈、编程框架等领域知识,在提升代码生成质量的过程中,为了获取更多的上下文信息,RAG是必不可少的预处理工程工具,可以显著降低模型生成幻觉。,去除语句嵌套过深、不良命名规范、资源泄露、数组越界等代码缺陷,确保代码的可维护性、可靠性和安全性。,去除不完整的
2024全球机器学习技术大会 | aiXcoder分享代码大模型实践经验,提升代码生成质量
aiXcoder Lab 2024年11月22日 15:46 北京
以下文章来源于aiXcoder智能化软件开发 ,作者硅心科技
aiXcoder成立于2018年,聚焦AIGC for Code领域,致力于将前沿人工智能技术应用于软件工程,帮助个人开发者和企业客户提升软件开发效率和代码质量。
11月14日-15日,由中国开发者网络CSDN和高端IT咨询与教育平台Boolan联合主办的「2024 全球机器学习技术大会」在北京成功举办。50+顶尖技术专家、1000+行业精英围绕12大热门专题,为开发者提供AI和大模型领域技术全视角解读。
在「代码大模型与软件变革」专题中,aiXcoder代码大模型算法专家蒋思源发表《提升代码生成质量:代码大模型实践经验》主题演讲。
结合aiXcoder多年来在软件工程领域的深厚技术积累与丰富的行业实践,蒋思源分享了一个系统化“代码生成质量提升框架”,并详细阐述如何通过多层次策略,实现代码生成质量的显著提升。
首先,通过治理预训练数据与偏好对齐数据,保证训练的代码大模型天然能生成高质量代码;
进而,通过RAG、软件工程工具及多智能体协同,优化大模型预处理与后处理流程,提升大模型推理质量;
然后,通过特定领域化训练,进一步增强代码在专业领域的生成质量,适配闭源代码质量要求;
最后,对生成的代码质量进行评测,并通过监控指标持续优化。
1、预训练数据处理
多重筛选,确保基础质量
在预训练阶段,一般开源大模型会做一些常规数据预处理,如项目级和代码文件级的综合过滤,去除重复代码、自动生成和无意义的代码。
考虑到代码相较于自然语言具有更强的结构性, 且对处理逻辑的描述更加规范且更受到语法限制,所以在常规预处理基础上,需要结合代码结构及特征,采用语法分析技术,去除不完整的代码块、非法字符、关键字误用等问题,让程序代码的表达方式更加明确和准确。也需要采用静态分析技术,去除语句嵌套过深、不良命名规范、资源泄露、数组越界等代码缺陷,确保代码的可维护性、可靠性和安全性。
2、偏好对齐
循环迭代,持续优化模型性能
一般而言,代码偏好对齐很难同时保持数据的多样性与数据质量。
aiXcoder 采用的是一种迭代的对齐训练过程,基于规则和模型的双重过滤,确保数据的高效性和高质量。随着每一轮迭代的进行,确保只有真正有价值的数据被用于模型的进一步训练,从而推动模型性能的持续提升。
3、工程化处理
RAG+后处理,增强代码生成效果
在提升代码生成质量的过程中,为了获取更多的上下文信息,RAG是必不可少的预处理工程工具,可以显著降低模型生成幻觉。
此外,基于语法分析、静态分析等后处理过程也很重要,确保补全代码语法结构完整、控制代码长度和缩进,特别是在融合IDE推荐和补全行为的编程场景中都非常适用,可以让生成的代码更加准确、更加符合上下文和开发者期望。
4、Agent协同
多轮交互,推动生成流程智能化
Agent在增强代码质量方面扮演着重要角色,它具备规划、循环、反思等控制机制,可以像人一样模拟不同角色处理不同任务。这些机制使其能够针对复杂任务,进行多轮交互性推理,并持续根据外部环境反馈调整执行策略,提升代码质量,自主实现从任务开始到结束的全流程自动化和高效处理。
此外,Agent具备工具调用能力,通过工具来嫁接模型与现实环境之间的关系,使得大模型能够自动调用多种软件工具来解决复杂问题。
5、领域化训练
定制化增量训练,满足企业需求
通用大模型缺乏垂直知识,难以生成符合企业需要的高质量代码。这是很多企业没办法直接应用通用大模型的主要原因,也决定了领域化训练成为大模型落地企业的必经之路。
这就需要根据企业提供的不同程度数据(代码、业务文档、需求文档、设计文档、测试文档等),并充分考虑行业业务术语与流程规范、行业技术标准与规范、企业技术栈、编程框架等领域知识,进行有针对性的增量训练,以适配不同企业的需求和业务流程,促进更高质量的代码生成和研发全流程能力提升。
从训练层面、推理阶段,到领域化训练,再到模型生成质量评测,aiXcoder“代码生成质量提升框架”体现了从基础到工程再到领域及评测的全面策略,有效确保代码大模型生成的代码不仅准确、符合业务需求,同时在实际应用中高效、可靠且安全。这一体系,在aiXcoder服务客户的过程中也得到了不断地实践、验证和认可。
未来,aiXcoder将持续进行技术创新和产品迭代,不断探索人工智能在软件工程领域的深入应用与发展,助力各行业拥抱智能化未来。
揭示Transformer重要缺陷!北大提出傅里叶分析神经网络FAN,
填补周期性特征建模缺陷
更多推荐
所有评论(0)