2024AI辅助编程测评与企业落地实践_第1页
2024AI辅助编程测评与企业落地实践_第2页
2024AI辅助编程测评与企业落地实践_第3页
2024AI辅助编程测评与企业落地实践_第4页
2024AI辅助编程测评与企业落地实践_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AI

辅助编程真实测评与企业落地实践2024.11CONTENTSAI辅助编程的背景和最新发展01测评集现状与全场景测评介绍02AI编程生成能力的可行性测评03企业提效的落地现状与解决方案04AI辅助编程的背景与发展01AI在自然语言处理NLP上的里程碑2003

Bengio团队嵌入技术,将高维稀疏的数据通过神经网络或其他算法映射到低维稠密的向量空间,尤其

Word

Embedding词向量普遍用于NLP

领域Embedding2013

GoogleWord2Vec模型生成词向量成为自然语言处理的标配方法,通过上下文来预测当前词语的CBOW训练方法,为后来神经网络语言模型的发展奠定了基础Word2Vec2017

Google

OpenAITransformer模型在翻译任务上超过之前最优秀的循环神经网络模型采用Attention

Layers重点解决多义词问题,基于此的 GPT

模型让AIGC

极大发展TransformerCode

LLM(代码生成大语言模型)的发展人工智能对自然语言的上下文推理、一词多义理解能力的加持。让场景契合的辅助编程领域有了快速的发展辅助编程相关场景任务一般有三大类:代码-代码:包含代码补全、代码修复代码-文本:代码解释、代码优化、代码异常排查文本-代码:通过高级提示词Prompt

做代码生成(单元测试、API、SQL、数据建模等)Code

LLM:代码生成大语言模型的发展关键模型与项目/pdf/2311.07989v12024.7CodeGeeX4 /THUDM/CodeGeeX42024.6

DeepSeek-V2/deepseek-ai/DeepSeek-V2现有Code

LLM测评数据集问题模型测试训练、测试数据不足现有的Code

LLM测评工具通常使用有限的训练数据以HumanEval、MBPP代表代码模型评测数据几年没更新评估标准单一现有的Code

LLM测评原理只关注代码结果的正确性,看不到代码的可读性、完整性、通用性等维度的信息测评打分原理造假容易各家公布自家测试结果,测评是黑盒的状态将测评集放到训练集中训练,好比拿着标准答案答考题,测评分数会虚高Github上公布的测评结果明显有水分代码大模型各家评测基数差异巨大Meta

Code

Llama智谱CodeGeeX

4阿里巴巴CodeQwen北大aiXcoderDeepSeek

Coder

V2同样大模型不同测评来源,评分不一样基本常识性错误代码大模型评测集工作原理根据测评文件编程任务给出prompt,调用大模型生成完整代码,保存到一个样本文件的completion字段中最常用的测评:Human

EvalOpenAI

发布的一个评估大型语言模型在代码生成方面表现的基准测试。它包含164个设计的Python编程任务,每个任务有多个单元测试,通过评估模型生成的代码是否能通过这些单元测试来评判模型的能力用JSON格式定义好编程任务,保存测评集在文件中12代码大模型评测集工作原理4用程序读取样本文件,批量把任务生成中代码和任务的单元测试代码合并成一个完整的程序3假设样本文件叫samples.jsonl

,调用叫evaluate_functional_correctness

函数完成1-4的步骤5批量动态执行每个任务程序,如果单元测试用例通过,返回passed,最后调用pass@k

的算法测评打分pass@k

打分算法简单来造个假1部署Humman

Eval

测评环境准备编程任务、答案样本简单用测试集和问题集运行打分效果,pass@k

分值0.1624pass@k

分值明显提高,达到0.499简单修改测试集数据,增加正确答案样本3业界都自家测评打分没有透明渠道造假成本太低基于场景功能的测评测试集02基于编程场景的测评编程使用场景从日常编程习惯,按频率和功能进行工具的对比测评,如代码补全、缺陷查找、代码调优、报错排查、代码解释等提示词生成能力提示词生成功能代码的能力,如API文档、单元测试、代码注释、参考模版编写新模块等能力的对比测评业务建模能力辅助编程能更多读懂我们的业务逻辑,参与框架设计,如数据库表设计、项目构建、根据数据模型生成Service代码客观加主观判定不能只局限程序对错简单打分,要加入更多判断标准:成熟度、完整度、易用性、语言特性等实际编程出发看到真正的价值代码补全提示上下文理解从代码上下文补全的结果,对比其理解和输出的准确能力统一风格能力基于已有的代码模版和示例,新的示例自动补全的准确性和代码风格的统一性能力考虑国内的正常使用,测评基于国内辅助编程平台,同时参考GithubCopliot。我认为的第一梯队产品去比较为了避嫌,暂且A、B、C表示。最后有测评总结报告,列出第一梯队和测评产品完整对比结果代码补全提示差、几乎没法用优秀、体验非常棒,内容风格一致统一风格能力这是有关电商产品库的真实代码先设计好类目表LsCategory

相关数据库操作模版示例参考LsCategory

模版,对比辅助生成电商Spu实例效果AAB补全一般,代码注解不一致C代码补全提示上下文理解能力这是有关机票搜索的真实的代码,search

方法根据入参搜索条件返回搜索结果CBA先输入文字注释,看看A、B、C各自代码补全效果:B、C理解了注释的意图,拿了不存在的入参属性

A理解想表达意图同时,给出了代码库中正确方法,也秒懂打印日志的意图测评维度不同项目案例逐行提示、多行提示测评代码补全总的代码采纳率作为测评标准长期统计,A代码采纳率略高,上下文能力一般,幻觉多高频缺陷查找常见致命缺陷导致CPU100%的死循环、各种严重的内存溢出、基本业务逻辑错误、线程并发死锁问题这类缺陷特点:常年高频发生、对业务影响大、往往花更多的精力进行线上排查和修复高频缺陷查找public

class

endlessLoop

{public

static

void

main(String[]

args)

{int

count

=

0;while(count

<

10)

{if(count

==

3)

{continue;}System.out.println(count);count++;}}}举个例子导致CPU100%的死循环ABC左边是一个常见的死循环Case,A、B、C都没有发现这个致命问题,用ChatGPT

明确告知会导致无限循环和修复建议。这种程序往往导致线上服务无法工作高频缺陷查找测评维度综合打分:借鉴Human

Eval打分思路,根据高频缺陷查找场景分析有没有缺陷正确与否进行开源测评集:同时讲主观答案进行提示词模版优化转换成客观答案/laziobird/CodeLLMTEval提示词模版Demo:测评集用代码大模型生成结果的客观答案检查<java></java>标签里的Java代码,有没有死循环的情况。返回XML标签格式结果,格式’<status></status>’,如果有,

status返回1,没有status返回0,不知道status返回-1<java>..........</java>BA测评初步结论测评集20+,A、B在70%识别缺陷,C不到60%报错排查的测评产品体验从产品角度看实用性编译错误阶段运行失败阶段测评维度:排查入口的友好性B、C

产品编译阶段排查功能实用BA

、Github

Copliot

没有编译阶段报错排查的功能A、B、C

插件在失败信息中异常排查的帮助链接AB报错排查的测评运行阶段的报错修复多种典型场景测试和验证、排查多个运行失败的Case示例:配置错误的环境路径,找不到服务启动失败Github

Copliot

插件并不支持这项功能A、C

排查错误根因更高辅助编程工具箱CA编程过程中,常用到一些工具类过去本地实现,后来借助saas工具AI工具箱的集成,因为大模型具备自定义提示词能力,工具类更通用更有效率C、A工具箱设计实用AI生成能力的可行性测评03高级功能生成能力零代码生成可运行的单元

测试用例,考虑测试边界,保持风格、规范统一几乎零代码生成准确的

API文档,文档可读性高、保持风格、规范统一*代码注释版本控制提交注释生成风格统一、可读性高参考现有代码库模版仿写实例的能力API文档单元测试表设计和SQL生成低代码平台能力参考生成数据建模单元测试生成能力仿写支持的能力:A支持选择仿写模版文件其它手动输入仿写文件的内容Token,非常不便利重要测评维度代码采纳率:可用性,普遍生成单元测试编译不过这个点比较不好评判,基于开销考虑,单元测试没有带上完备上下文

更细粒度化的方法测试生成能力、测试边界能力产品上A有友好的方法粒度单元测试入口A、B生产代码有更丰富的边界测试Case,C比较简单单元测试生成能力测评的维度

API级别单元测试可用性:比如A产品生产基本可用的Postman测试模版,

B和C生成模版不可用AA自动生成Postman

API请求模版Postman调用添加商品类目的API请求API测试用例验证成功Token生成API方法的Postman

Collection

2的JSON文件模版其中指定了地址和端口号8099参考表结构'create

table

ls_category....‘API文档生成能力相同提示词,文档的风格差异大不同用途性质的API文档,要清晰表达出来Prompt生成完整的API文档:带上入参、出参详细介绍,给出完整示例,格式markdown,给前端调用BAC选取5-6个项目的API服务API方法少,简单A、B、C很好的生成了文档API方法多,入参出参复杂A、B较好完整文档,C入参、出参不完整测评结果参考现有代码模块仿写新实例提示词设计非常重要RAG检索代码库的上下文能力友好的产品交互方式A根据模版,生成类似的实例代码ABCB、C仿写能力都很差、不准确

A支持选择代码文件,仿写和参考代码高度一致,有很强的复用性数据建模能力表设计通过业务系统描述数据库表字段、表结构关系的理解能力和准确度SQL生成根据业务需求,表结构基础架构上,生成可运行

SQL的能力项目构建根据技术需求,生成项目构建的能力低代码能力建模后,理解业务逻辑,

0-1构建、部署、启动项目的文档能力表设计和SQL测评维度用技术语言输入提示词,生成表设计,包含表与表的关系,完整的SQL多个实际项目,考验代码大模型业务场景理解能力和推理能力,同时考量正确率和完整度设计一个商品库表:里面有sku表、spu表、类目category表;spu和category关系:spu里面有一级、二级、三级类目信息

spu和sku关系:一个spu对应多个sku,区别在于规格,规格多有个值,可以用JSON方式保存为一个字段。sku包含第三级类目的信息Prompt电商系统产品库表设计BAB

在表设计、业务理解更完整:比如表字段描述、复杂字段业务示例表设计和SQL直接用业务语言输入提示词,看看对业务理解和代码更高要求的生成能力视频点播教学系统,设计表,产品需求如下:视频管理:视频列表、视频搜索、上下架视频、新增上传视频课程管理:课程列表、课程搜索、上下架课程、新增课程、课程关联视频、课程分类、一个课程会有一个或者多个视频分类管理:新增分类、新增一级分类、一级分类下新增二级分类、分类排序、删除分类视频数据记录表:每个用户观看视频最大时间,观看视频的完成比,记录每个用户的id、name视频统计信息表:每个视频观看人数、观看次数、观看完成比(每个用户观看视频95%表示视频观看完成)每个表都有如下的几个字段: `remarks`

............返回结果:所有表所有字段和字段说明的SQL语句Prompt视频教学系统产品需求文档ABCA

表设计漏掉了一个重要的用户播放记录表,表名不太符合规范B、C根据产品文档描述,没有设计E-R图下,完整的将所有表生成出来项目构建和低代码能力思考一个Vue+Bootstrap

的手机端的商城功能描述:一个商城首页、购物车页、个人中心Prompt前端Vue的商城项目一个Maven

项目,希望将Mysql

的表用mybatis+Springboot

封装成Dao

,mybatis

plus

版本3.5.5,Springboot

版本3.1.7,Mysql

驱动8.0.13

,完成pom.xml

,同时写Dao、Service、Controller

示例PromptJava

Maven

项目搭建用Python

实现企业内部用户授权服务的完整代码PromptPython

搭建授权系统系统差异、复杂程度很难统一测评输出主观、考量维度多、往往不是看一次性输出,包括续写能力开源构建、低代码项目模版提示词更细粒度维度观察:区分系统、区分语言、用途开源项目,让专业领域的人给出细节的建议借鉴低代码平台,从使用场景看实用性提示词模版设计体现了未来架构师、高级工程师编程能力的价值开源积累通用的项目提示词,完善项目模版,帮助研发团队提效不同用途的定位决定提示词风格/laziobird/CodeLLMTEval企业提效的落地现状与未来趋势04前沿科技公司公开AI

辅助编程案例Turing

helps

leading

AI

and

enterprise

companies

enhance

LLM

performance

for

reasoning,

coding

.Turing宣传为他们服务工程师带来了30%提效Turing

increases

developer

productivity

by

over

30%

with

Duet

AIbaidu团队百度营销服务团队案例有超过半数的工程师在使用其辅助日常编码工作。截至目前,百度营销服务团队已有超过95%的工程师使用文心快码进行研发提效,文心快码(Baidu

Comate)代码生成占比29.42%RAG

检索增强能力A提供RAG新建知识库管理后台RAG收录检索企业的代码库、知识库能力AA的编程智能问答中,匹配收录知识库的内容B支持RAG收录企业自身代码库能力开源代码大模型支持微调用训练框架Factory-LLaMA对开源代码大模型进行微调加入企业代码减小幻觉真实场景提效如何量化企业统计辅助编程提效的方案业界以代码采纳率作为一个主要的量化指标其它指标:智能问答使用次数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论