1、DataFunSummit#2024DataFunSummit#2024豆包豆包MarsCode 落地编落地编程助手场景的探索实践程助手场景的探索实践李文超/开发工具技术专家豆包豆包MarsCode 编程助手起编程助手起源源豆包MarsCode 的现状与发展未来展望01豆包MarsCode 编程助手起源 IDE 智能化探索 开发者对 AI Coding 的诉求 豆包MarsCode 的历程IDE 智能化探索开发者对 AI Coding 的诉求豆包MarsCode 的历程 2022 年初代码智能团队开始探索 LLM 驱动的代码补全产品 自研代码 LLM 评测集和自动评测系统 构建数据链路和线上
2、A/B 测试体系 引入基于对话的编程助手 更高自动化编程能力 引入代码补全 Pro 编辑推荐功能 更多.豆包豆包MarsCode 编程助手起编程助手起源源豆包豆包MarsCode 的现状与发的现状与发展展未来展望02豆包MarsCode 的现状与发展 代码补全 代码补全 Pro Prompt 工程 科学的测评体系 概述 数据构造 产品交互代码补全-Prompt 工程代码补全-科学的测评体系 代码补全的采纳率不是好指标 只关注采纳率进行优化,容易被误导 采纳率=采纳次数/推荐次数 不容易拆解分析,归纳可指标链路优化路径 更适合作为体验指标代码补全-科学的测评体系 CPO-更科学的指标(Codei
3、um)尝试率:每当用户在编辑器中进行操作,比如输入新字符或删除一些代码时,都是 AI 给出补全建议的机会。尝试率指标反映了 AI 实际为用户提供建议的频率。AI 不进行尝试可能是由于延迟(如Debounce)或需要根据上下文情况来决定是否给出补全建议 CPO(Character per Opportunity)=(尝试率)*(反馈率)*(采纳率)*(每次采纳平均 token 数)*(token 平均字符长度)例子:用户敲击了 10 次按键,只有其中 6 次触发了请求,那么尝试率是 6/10代码补全-科学的测评体系 CPO-更科学的指标(Codeium)反馈率:AI 在给出补全建议时是存在延迟的
4、,包括上下文检索到网络开销再到实际模型推理都会引入延迟。如果延迟太高,开发人员将继续在编辑器中执行新的操作,触发新的推荐机会并使现有推荐机会变得无意义。此外,在推荐完成后,工具可能因各种原因决定不向开发人员显示建议:比如置信度不够高、触发了过滤器等。反馈率代表了有多少比例的建议最终被传递给开发人员以获得人类反馈。CPO(Character per Opportunity)=(尝试率)*(反馈率)*(采纳率)*(每次采纳平均 token 数)*(token 平均字符长度)例子:插件发起了 6 次请求,最后只有 3 次被展示,那么反馈率是 3/6代码补全-科学的测评体系 CPO-更科学的指标(Co
5、deium)采纳率:即使补全建议已经给到开发者,他们也可能觉得建议并不完美而拒绝。接受率反映了展示出的建议中有多少被开发者采纳。CPO(Character per Opportunity)=(尝试率)*(反馈率)*(采纳率)*(每次采纳平均 token 数)*(token 平均字符长度)如果展示的 3 次推荐,最后只有 1 次被采纳,那么采纳率是 1/3代码补全-科学的测评体系 CPO-更科学的指标(Codeium)每次采纳平均 token 数:在其它条件相同的情况下,较长和较短的代码推荐所带来的价值有很大差异。大型语言模型以 tokens 的形式处理输入并生成输出,这些 tokens 通常是
6、一小段字符,因此每个被采纳建议中平均 token 数反映了每条被采纳建议所传递出的实际价值 CPO(Character per Opportunity)=(尝试率)*(反馈率)*(采纳率)*(每次采纳平均 token 数)*(token 平均字符长度)代码补全-科学的测评体系 CPO-更科学的指标(Codeium)token 的平均字符数:开发人员看到的是字符而不是 token,不同的大语言模型可以有不同的分词器,因此,如果一个大语言模型的每个 token 生成了更多字符,实际上它会写出更多代码,而每个 token