开发人员运维人员 源代码监控 根据survey.stackoverflow.co统计 编码提效 编码提效 目前 三年内 根据腾讯内部问卷反馈 提升开发效率 工具智能化 AI新技术探索 经验复用 12% 24% 产研 团队 48% 16% 【模型】探索适合代码场景的行业模型 LLaMa系的模型tokenwindowsize有限 (2048),涉及到代码理解/生成这类prompt/output任务,易因超出token长度限制或由于上下文信息不全导致任务中断 LLaMa系模型humanEval和MBPP测试结果低于专用代码生成模型 LLaMa是综合模型,预训练阶段私用代码知识库仅占6.5%,工程知识量 存在天花板 【应用形态】打造流畅高效的编程体验 针对专业开发者,提升工作效率和质量,对 AI辅助生成的代码存在批判性思维 针对代码学习钻研用户,专注代码本身,创建小的、即时使用的任务型应用程序 响应速度更快、成本更低,基于更小的模型? 具备高粘度的编程体验,及时补全将调用的函数、方法等辅助性编码实 践下文 【企业需求】符合国内行业客户诉求——SMAF 代码安全多模能力数据看板丰富场景 保证基础模型里用于训练的代码是安全的 保障补全出来的代码是安全的 Security 各部门的业务特性不同,可能需要多个性化行业模型 M 根据不同业务特性,进行二次训练,补全模型 aaS 如何保障二次训练以及行业代码的训练效果 A 有哪些效能指标,可以帮助管理者观察工具对开发工作的提升 nalysis 代码补全是高频场景,优先度最高 AI编码辅助之外,代码扫描、评审、以及DevOps上下游规划 Full 代码补全 技术对话 自动化测试 代码诊断 腾讯AI代码助手,基于混元代码模型之上的,面向开发者的,代码智能补全和开发辅助的工具,以帮助开发者提高代码完成速度和准度,帮助企业管理者洞察研发效能情况。 当前支持Python,JavaScript/TypeScript,Java,C/C++,Go,Rust,swift等十几款主流编程语言,支持JetBrains和 VScode。 “码”随心想 寻“师”问“道” 海纳百川 APIServer 埋点采集 配置中心 应用服务 对话采纳率 代码采纳率 模型服务 代码补全模型 (3B-7B) 代码对话模型 (百亿) IDE插件 4 1 管理运营平台 代码补全 技术对话 单元测试 代码诊断 代码生成率 模型应用层 遥测 全链路 响应耗时 1 模型训练平台(可选) 模型评测 模型管理 模型训练 训练集管理 QPS 代码补全 技术对话 自动化测试 代码诊断 生成单元测试 代码补全 技术对话自动化测试代码诊断 根据注释生成代码 根据注释描述及上下文,生成业务逻辑代码与函数 根据上文补下文 根据光标上下文的代码或注释生成代码建议 补全行内代码 补全内容包含常见的特征,对象判空,循环定义,异常捕捉,日志定义等 函数块内补全代码 函数定义描述,根据上下文补合理的业务逻辑 技术对话 代码补全自动化测试代码诊断 情境感知的技术对话 根据当前上下文情况,有推理的解答回复 对话指令操作 支持常用指令:翻译、互转、解释、排错等,通过精准的指令定义,让对话更有效 提问推荐 针对上文的回答自动生成下一个可能的提问推荐列表 对话生成代码建议 通过对话得到的代码建议,可以与编码区结合,支持建议对比,并根据问题答案生成代码片段 自动化测试 代码补全技术对话代码诊断 生成测试用例 根据代码逻辑生成测试文件,通过测试用例的描述,实现特定的单元测试 生成接口测试 根据工程语境,准备测试所需数据,并进行大量的接口测试 生成冒烟测试 根据工程语境,生成冒烟测试,加强软件开发过程质量 生成优化方案 对有问题的测试结果,可根据测试结果通过对话寻求修复建议,或寻求测试代码优化建议 代码诊断代码补全自动化测试 技术对话 代码错误修复建议 代码语法问题、编译错误、运行报错等等,通过诊断,给予修复建议 强化代码可读性 针对代码可读性,复杂度进行诊断,并给出建议优化 发现潜在代码隐患 发现代码存在的潜在异常问题、空指针、安全漏洞等,在开发阶段及时修正 提交代码前的检查 提交PR前进行代码诊断检查,并给出意见 通过自动补全和生成代码,AI代码助手可以显著提高编程效率,使开发人员能够 更快地完成代码编写任务。 AI代码助手能够检测和纠正语法错误和逻辑错误,降低代码的错误率,提高代码质量。 针对一些复杂的模式化/框架化代码和一些不利于人类记忆的语法,AI代码助手可以更准确、更高效的生成。使研发人员能够专注于关 键业务问题和创新性任务。 AI代码助手根据业界最佳实践和编程规范,智能生成高质量的代码,有助于保持项目的整洁和可维护性。 AI代码助手可以让研发的知识广度更加丰富,前端研发在AI辅助下可以完成部分后端代码的编写,后端研发也可以完成 前端工作。 对于一些复杂问题,AI代码助手可通过多轮对话提供更详细的解决方案,帮助开发者轻松应对技术挑战。 说明:3台虚拟机作为K8S容器平台的管理节点,并负责业务可观测建设 说明:AI代码助手后端服务,包括多模型接入、网关管理、License管理、效能度 量、配置管理、账号集成、插件下发等,后端服务均为无状态服务,支持平滑扩容 。。。 技术对话模型 技术对话模型 代码补全模型 代码补全模型 Master Master Master Worker Worker Worker GoLand PyCharm PhpStorm WebStorm IDEA VSCode AI代码助手部署分为TCS容器平台、后端服务、模型服务节点等几个部分,各个部分能够根据业务需要动态扩容。 TCS容器平台:提供企业级的K8S容器平台,并支持业务的监控、日志等可观测能力建设。 后端服务:部署AI代码助手后端服务,包括多模型接入、网关管理、License管理、效能度量、配置管理、账号集成、插件下发等,后端服务均为无状态服务,支持平滑扩容。 模型服务:提供模型服务,模型服务可以运行在 TCSWorker上。 Ti-One训练平台(可选):如果需要对模型进行 训练和微调,则需要部署Ti-One训练平台。 POC场景 显卡资源估算逻辑: 传统的后端服务,一般速度的单位是"每条请求多少毫秒",而吞吐量(QPS、TPS等)的单位是"每秒多少个请求"。但是对于LLM服务,由于单条请求的执行时间差异很大,用户设置的prompt,max_new_tokens,stop_words等参数都会影响执行时间,导致单条请求耗费时间从几十毫秒到几十秒都是很常见的。LLM吞吐量和模型大小、GPU、部署框架、量化方案相关。 生产部署–NVIDIA显卡 代码补全场景: 1.在代码补全场景中,模型是3B、部署框架采用的是vllm、量化方案采用的是fp16。它的吞吐量和GPU型号/数量正相关。 2.在代码补全场景中,推理触发的频率较高,正常范围在10~20/分钟,单次推理的输出假定单行平均为16个 Token为标准(约为60个字符,符合大部分代码补全预期) 代码补全(7B模型)占70%左右的显卡算力技术对话(13B模型)占30%左右的显卡算力 3.如果延时的要求为1s,则一张A10的卡,可以同时支撑6个左右的用户。如果延时要求为200ms,则一张A10的卡,只能同时支持1.2个用户。(这里是并发估算逻辑) 4.如果是其他型号的显卡,可以参考显卡在FP16下的算力来估算所需数量。比如:A10显卡的FP16算力为125teraFLOPS,A100显卡的算力为312teraFLOPS,那么1张A100的显卡可以约等于2.5张A10的显卡 华为AT800服务器;服务器配置:AT800(Model9000)A2机箱(2x2.5NVME,4xKunpeng92048Core2.6G,8xAscend910B);显卡型号:Ascend910B;显卡数量:8;操作系统:麒麟v10sp2;需要驱动:GPUVersion:23.0.rc2 生产部署–华为显卡(晟腾910B) 技术对话场景: 1.在技术对话场景中,模型是13B、部署框架采用的是vllm、量化方案采用的是fp16。推理的吞吐量和GPU型号 /数量正相关。 2.由于技术对话场景中对话的输入与输出差异化较大,并且输入的token长度非常影响模型的吞吐量。假定一个输入的token长度为50的场景下,单张A10的显卡的输出token是18/s 3.假设我们有10张A10的显卡,那么10秒(一个对话场景,10秒左右给出完整结果是一个用户可以接受的时间)的总共输出token是1800个,而一个对话的返回token是从几十到几百不等的。所以1张A10的显卡,大概可以提供1-1.5个对话的并发。并发超过了就需要排队。 4.对话是交互式使用,因此用户使用对话的频率远低于补全。我们假定一个用户,在正常情况下使用对话的频率 为3-5分钟一次,每次对话的占用时间为10~20秒不等,可以得出一张A10的卡,可以支撑15人左右使用 (非并发逻辑,常规频率使用,GPU满负载)。 5.如果可以接受更长的流式对话输出时间,可以减少显卡需求 需求描述 在原有大模型助手的基础上,新增模型驱动短信发送功能。 1、通过“技术对话”,完成调用腾讯云短信的驱动函数; 2、通过“代码补全”,完成短信服务封装; Demo演示 传统人工开发时长:2H 运用代码助手的开发时长:5min 需求描述 在原有大模型助手的基础上,新增模型驱动短信发送功能。 1、通过“技术对话”,完成调用腾讯云短 信的驱动函数; 2、通过“代码补全”,完成短信服务封 装; Demo演示 传统人工开发时长:2H 运用代码助手的开发时长:5min 需求描述 在原有大模型助手的基础上,新增模型驱动短信发送功能。 1、通过“技术对话”,完成调用腾讯云短信的驱动函数; 2、通过“代码补全”,完成短信服务封 装; Demo演示 传统人工开发时长:2H 运用代码助手的开发时长:5min 数据看板 模型导入 模型管理 模型优化 模型评测 版本管理 模型文件 手/自动伸缩 流量分配 服务监控 热更新 ConfigMap Secrect 需求与痛点 金融机构代码不可外泄 开源模型难以定制和调优 开发成本居高不下,开发周期紧 张,开发者忽略测试用例编写 技术人员查阅大量技术方案寻找 灵感,降低开发效率 某金融机构通过AI代码助手,赋 能全新开发形态,实现降本增效