通义灵码 基于代码大模型的智能编码助手 黎槟华通义实验室算法专家 www.top100summit.com “ 讲师简介 黎槟华 通义实验室通义灵码技术负责人 黎槟华(临城),阿里巴巴通义实验室算法专家,北京大学毕业,研究领域包括预训练、代码大模型、结构化问答等。在学术会议上发表论文20+篇。相关研究成果在通义灵码、通义晓蜜等产品中落地应用。 ” 人类+机器是世界的两大主体 泰语 英语日语 中文 …… NL2Code C++ JS Java 人类机器 Code2Code 法语 越南语 自然语言 (NaturalLanguage,NL) Code2NL 机器语言 (ProgramLanguage,Code) PHP Go 韩语...... PythonR C# www.top100summit.com 基于代码大模型的智能编码助手 应用层 通义灵码编码助手 www.top100summit.com 能力层 [智能代码生成] 代码行补全 函数级生成 逻辑块生成 多步推理续写 项目级感知 跨文件生成 [智能研发问答] 生成代码解释 代码生成注释 单元测试生成 研发多轮问答 调试错误排查 描述生成代码 大模型 通义灵码代码大模型 通义千问大模型 www.top100summit.com 目录 •通义代码大模型 •智能补全生成 •智能研发问答 •未来展望 www.top100summit.com 通义代码大模型 文本vs代码 1980年9月12日傍晚,姚明出生于上海市第六人民医院,出生时体重5 公斤,比普通新生儿重了几乎一倍[11]。姚明的父亲姚志源身高2米08, 母亲方凤娣身高1米88,两人均是打篮球出身[12]。姚志源退役后,分 配到上海海事局。方凤娣则进了体育科研所[13]。当时姚家居住在西康 路一老式里弄住宅[14]。 1982年,姚明随父母搬进位于康平路95号的上海体育学院职工宿舍 602室[12][15]。楼里住的都是上海体委的职工,王良佐、沈富麟等当 时都是姚家的邻居[13]。姚明出生后,姚明父母工资的大部分都用在伙食上,方风娣很长一段时间每个月只有四十多元的收入。姚明长身体的时候,食量很大。为了保证姚明的营养,姚明父母只能省吃俭用[13]。由于姚明对牛奶的需求也特别大,姚志源从牛奶厂工人朋友那里得到了牛奶卡,才使姚明每天都有牛奶喝[16]。 1986年的秋天,姚明提前一年进入高安路一小读书[17],当时姚明身 高是1.47米[18]。姚明一家离开了体育学院的职工宿舍,搬入到康平路 的新居[19]。小学的姚明是个喜欢读书的孩子,但因为身高不得不开始 篮球训练[16]。姚明自己小时候因身高超群而感到自卑。性格内向,也 是最受欺负的一个[20]。 www.top100summit.com 代码的特点-结构化 其他类库 注释 代码不仅是文本,同时是高度结构化的,能被自动化解析为AST、控制流等形态 分支函数 www.top100summit.com 语句 代码的特点-代码是解决问题的步骤 目标 www.top100summit.com 代码的本质是解决问题的步骤,运行代码才能得到结果,所以,代码就是思维链(COT)本身 步骤一步骤二 步骤三 步骤四 www.top100summit.com 代码的特点-复用类库 其他类库 代码文件并非standalone,通常会引入build-in类库、外部类库来解决对应的问题,所以,代码包含大量利用外部知识解决问题的过程 调用类库解决子问题 代码的特点-数据内聚 Sample1 Sample2 代码从整体看是内聚的,同一个文件的各个函数,语法一致,解决的同一类问题,所以,代码文件形成了天然的ICL数据 Sample3 Sample4 Sample5 www.top100summit.com www.top100summit.com 代码大模型发展路线 由自然语 代码大模型到底需要什么能力? 自然语言理解与生成 如何从自然语言生成代码 如何从代码生成自然语言 代码语言理解与生成 言构成的人类世界由代码语言构建的机器世界 www.top100summit.com www.top100summit.com 通义灵码大模型能力构成 基于通义千问大模型基座 增强自然语言能力 海量技术文档、教程、书籍 构筑自然语言和代码生成之间的桥梁 万亿级开源代码/积累代码 增强代码理解能力 通义灵码代码大模型 能力层 打造代码生成、注释生成、UT生成等10+代码领域技能 www.top100summit.com 全面的 技能 领先的 效果 强大的 基座 专业的 数据 代码生成代码补全注释生成UT生成代码解释代码问答SQL生成DSL生成CR辅助… 模型层 通义灵码代码大模型通义千问基座 数据层 代码API文档教程技术书籍配置文件 在通义灵码大模型加持下,HumanEval效果超过所有同规模模型 基于通义千问基座,有效结合文本和代码,打造通义灵码大模型 沉淀海量代码、API文档、技术书籍等11类专业、高质量数据,打造坚实大模型数据基础 www.top100summit.com 智能代码生成 代码生成-从单行补全开始 行级补全是最基础-的能力,即根据上文和下文,补全当前行中代码逻辑缺失的部分 www.top100summit.com 不一样的通义灵码 通义灵码代码生成 www.top100summit.com 更准确 智能感知环境生成合适粒度 更懂你 读懂你的规范多步推理续写 更全局 跨文件感知减少生成幻觉 www.top100summit.com 更准确-自适应多粒度生成 灵码可以从行、逻辑块、函数、类等多个补全粒度上启发编程者,提供更合适的生成代码 类级别 函数级别 逻辑块级别 行级别 www.top100summit.com 更懂你-根据你的规范多步推理续写 在代码上下文中,参考上下文的风格和代码逻辑, 为用户自动补全风格一致、逻辑合理的代码,为用户极大的提升编程效率 多步推理续写 根据上下边界点,自动推理续写左右边界点 多步推理续写 根据左上点,自动推理续写右上、右下、左下点 更全局-跨文件感知代码生成 通义灵码能够感知整个项目的信息,在代码补全中,严格参考类、函数、变量的定义,确保完全符合名称、类型等信息,从而避免代码幻觉问题 www.top100summit.com 没有跨文件感知能力 DwcReport的类初始化过程 •自动捏造不存在的变量 •自动捏造不存在的函数 生成大量幻觉内容 有了跨文件感知能力 DwcReport的类初始化过程 •成员变量正确 •成员函数正确 •函数参数类型正确 •函数参数个数正确 •函数参数顺序正确没有产生任何幻觉问题 www.top100summit.com 智能研发问答 痛点分析 读代码写代码测代码 www.top100summit.com 刚接手新代码、新模块,逻辑不了解,甚至连注释都没有,完全看不懂 了解实现逻辑,但细节代码实现还是要查,一边写代码,一边搜索引擎 每实现一个函数,都要花费很多时间写单元测试,大量重复性的框架性工作 智能研发问答–智能读代码-代码解释 用户选定某个函数,点击通义灵码图标,即可自动生成该函数的解释内容并能够生成更详细解释或英语解释 代码解释生成 •生成简单解释 •生成详细解释 •生成中文解释 •生成英文解释 www.top100summit.com www.top100summit.com 智能研发问答–智能写代码-代码领域问答 www.top100summit.com 智能研发问答–智能测代码-单元测试生成 开发者只需要准备好函数,模型可自动为函数生成单元测试类 单元测试生成 支持按不同的测试框架生成单元测试类,供用户自由选择,节省开发时间 www.top100summit.com 来自阿里云开发者的作品 www.top100summit.com “通义灵码编码助手只是开始, 人能突破应用限制,与机器无障碍沟通 才是终极目标” 基于NL2SQL打造ChatBI 端到端生成可执行SQL SQL生成一步到位,直接在数据库中执行,减少传统技术在前后处理环节的复杂度 支持NL2SQL复杂场景 支持动态选表、动态选字段、多表联合查询、TOPN/同比/环比/排名等分析类查询需求 支持企业干预和增强 www.top100summit.com 支持企业自定义同义词、检索召回、增加字段描述等作为知识增强手段,提升模型生成效果 企业数据安全隔离 企业无需将原始数据透传给大模型,调用时仅需要提供表结构、模型不接触企业原始数据 基于NL2Script打造Excel助手 直接将自然语言转换为脚本代码(Script),完成Excel操作 www.top100summit.com 生成公式生成透视图生成图表 www.top100summit.com 基于NL2DSL打造低代码应用助手 直接将自然语言转换为低代码描述语言(DSL),完成表单应用搭建 www.top100summit.com 未来展望 www.top100summit.com 编码助手 智能BI 办公助手 低代码编程 智能制造 机器人 … 通义灵码未来展望 应用层 智 [软件工程智能化] 代码生成代码解释 单元测试生成 缺陷自动发现 代码问答注释生成 智能CodeReview … 能力层 [代码应用智能化] NL2QL NL2ScriptNL2API NL2jsonNL2DSL … 具身 能代码应用 预训练层 通义灵码代码大模型 通义千问基座模型 微信官方公众号:壹佰案例关注查看更多年度实践案例