AI 编程要再进一步,大模型要解决哪些关键问题?
论智能化编程的起源,可以追溯到集成开发环境(IDE )的辅助提示功能。只不过,传统 IDE 的智能化辅助功能比较简单,一般是基于开发人员的输入和已有项目代码, 即时预测待补全代码中的类名、方法名和代码片段等, 并提供建议列表。
而现在所说的智能化编程,在深度学习技术的影响下,跟以前已经大不一样,甚至已经有本质的区别。
华为云 Dev AI Lab Leader、智能化研发算法技术专家马宇驰认为:“GitHub Copilot 问世的 2021 年,是真正的智能化编程出现的元年。在此之前的代码补全,也就相当于输入法的联想功能。”
华为云 Dev AI Lab Leader、智能化研发算法技术专家 马宇驰
GitHub Copilot 由 GitHub 和 OpenAI 开发,其底层技术采用了 Codex 模型——该模型经过了百亿级代码(包括 GitHub 上的公共存储库)的训练。GitHub Copilot 的特别之处在于,它不仅仅是一个代码自动补全工具。与大多数代码辅助工具相比,它可以理解更多上下文。无论是文档、注释、函数名,还是代码本身,GitHub Copilot 都会基于开发者提供的上下文来合成匹配的代码。开发者可通过 GitHub Copilot 在编辑器中获取有关整行代码或完整函数的建议。
Copilot 的进化速度非常惊人。2021 年 6 月,Copilot 刚发布时,其做题准确率是 28.8%,当时业界最高也只能达到 11%。今年 3 月,接入了 GPT-4 的 Copilot X 做题准确率已经达到了 67%。
“不基于大模型的 AI 编程助手,其编程能力非常差。在我们看来,它甚至不属于智能化的范畴。” 马宇驰表示。Copilot 的横空出世给了马宇驰及其团队不少启发。于是在 2021 年底,华为将研发工具 CodeArts 与盘古大模型相结合,开发了智能编程助手 CodeArts Snap。
据了解, CodeArts Snap 训练了 760 亿行精选代码,8500 万开源代码仓,1300 余万篇技术文档,具备智能生成、智能问答、智能协同三大核心功能,可以实现一句对话让代码生成、一次点击即可自动注释和生成测试用例,一条指令即可智能部署。
当前 CodeArts Snap 已经积累了不少用户,并且收获了诸多反馈。马宇驰表示,未来,CodeArts Snap 将持续演进,不断提升智能化编程能力。他曾提到,在当前阶段而言,从模型优化和工程优化的角度来看,“基于大模型的代码生成”还面临八大关键技术挑战。这也是 CodeArts Snap 未来演进的方向。
一是中文友好的代码生成。目前诸多大模型的预训练语料数据都是以英文为主,中文语料占比仅为 3% 至 5%。在 IDE 中采用对话式交互时,中文的表现要远远逊色于英文。如何在语料有限的情况下,在保障模型性能的条件下,增强中文语义的理解能力,满足利用中文/英文描述同等的代码生成能力,是当前一大关注点。
二是 Prompt 优化与交互式 Input 改进。大模型一大特性就是,在交互时描述越精准, Prompt 写得越好,生成的内容质量就越好。如何在用户意图表达不那么明确的情况下,也能判断用户输入的任务描述完整性和合理性,并通过交互明确意图,提高代码生成准确率很是关键。
三是集成学习探索。当前大模型动辄就是百亿级、千亿级、万亿级参数,要把如此大规模的数据“吃下去”,推断成本非常高。因此,能否结合预训练模型,在满足推断准确率的情况下,利用参数量更小的模型达到更大规模模型的推断效果,达到提升推断效率的目的呢?
四是体验评估与优化。构建客观且贴近真实工程的评估指标/手段,能够更好地帮助行业良性发展。
五是模型在线学习。用户的数据反馈对于模型能力的提升非常有帮助。在保护用户隐私的前提下,基于用户的显式和隐式反馈对在线的大模型进行微调,实现在线模型实时更新,都是业内要探讨的问题。
六是低成本 SFT。如何实现各种研发场景的训练/验证数据集快速低成本建设,以及模型的训练及自动验证部署也很关键。
七是后处理。后处理对于提升模型在实际应用场景的效果非常关键。根据项目上下文,检查和修复所生成代码的编译运行错误;结合单元测试,修复生成程序中的逻辑性错误。虽然解决的都是小问题、小错误,但是能让整个代码的生成质量更上一层楼。尤其是未来,将会有更多大模型将同步生成代码和生成测试,两两匹配,在闭环中提升代码整体质量。在这种情况下,后处理对于大模型整体能力的提升非常有帮助。
八是模型轻量化。模型轻量化的重要性毋庸置疑,它关系着成本、效率、性能和用户体验。在保证精度不过多下降的前提下,采用轻量化模型支撑端测算力实现模型推断,也很值得关注。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
官宣!Databend Cloud 和青云科技达成合作
近日,北京数变科技有限公司与北京青云科技股份有限公司(以下简称:青云科技 )顺利完成了产品兼容性适配互认证。本次测试是对 Databend 云原生数据仓库系统与青云科技公司自主研发的 QingStor U10000 进行严格的联合测试验证。测试结果显示,经过严格联合测试,双方产品完全相互兼容,系统运行稳定、安全,满足性能和功能要求。能够为用户提供安全可靠的解决方案。 青云科技,于 2021 年 3 月在上交所科创板上市,是一家技术领先的企业级云服务商与数字化解决方案提供商。公司坚持核心代码自研,以顶尖的技术实力见长,构建起端到端的数字化解决方案,持续打造云原生最佳实践,以中国科技服务数字中国。青云科技是最早布局混合云市场的厂商之一,提供打通公有云和私有云,交付一致功能与体验的混合云技术。 QingStor U10000则是一款面向海量非结构化数据的统一数据存储平台,支持多种数据访问协议及多协议间数据无损互通,可满足客户数据全生命周期管理的需求,为上层业务提供高可靠、易扩展、高性价比的海量数据存储和管理服务。 Databend是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数...
- 下一篇
Rust 1.71.0 稳定版发布
Rust 1.71.0 稳定版已发布。 重要变化 C-unwindABI 正式稳定(同时包括其他-unwind后缀的 ABI 变体1):该特性对于跨 ABI 边界时,异常处理的行为更安全 调试器增加可视化属性#[debug_visualizer(natvis_file = "...")]和#[debug_visualizer(gdb_script_file = "...")], 它们支持将 Natviz 描述和 GDB 脚本嵌入到 Rust 库中,以在检查这些库创建的数据结构时改进调试器输出。Rust 本身已经为标准库打包了类似的脚本一段时间,但此功能使库作者可以为终端用户提供类似的体验。 raw-dylib 链接:在 Windows 平台上,Rust 现在在编译时无需依赖动态库就能使用它们的功能,使用#[link]的新选项kind="raw-dylib"选项即可实现。 将 musl 版本升级到 1.2.3,大部分用户不会受到影响 其他变化包括部分新的 API 稳定化,以及const上下文中的新稳定 API 详情查看发布公告。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Hadoop3单机部署,实现最简伪集群