我在阿里云做前端代码智能化

作为一个整天以代码为伴的码农,避免不了会接触到各种代码提示工具,但是呢,用久了之后会发现他们都有个共同点,那就是 模型巨大,动辄几百兆;并且模型大必然需要更多的计算,同样会导致电脑内存占用高,风扇呼呼的转,时间久了逐渐会发现电脑存储不够用了,电脑变卡了等等问题。

那么,有没有一款轻量化的代码提示插件?或者说,如何实现一款轻量化的代码提示插件呢?

下面我会从 模型选择、模型实现、模型优化三个方面 来介绍我们在代码智能提示方面的一些实践。

模型选择
 如何衡量一个模型的效果是好还是不好呢?
我们首先建立了基本的模型衡量体系,见下图。

我们会从推荐的准确性、完整性、连续性、性能、个性化以及智能性六个维度去综合评价一个模型的优劣。之后,我们会进一步完善这个体系,使之能够系统完整的评测模型的效果。

实践中,我们选取了 GPT-2模型和基于markov的n-gram统计模型进行对比。

对比发现,GPT-2模型在准确性和完整性方面表现优异,但是在性能方面,由于模型较大,推荐一次耗时较久,(这里我们试了最少参数的版本,训练之后模型在500M左右,推荐一次大概需要10S ),由于暂时没找到模型压缩的方法,只能暂时放弃。
另一个n-gram模型,在测试后发现,它在持续推荐和性能 方面表现优异,模型大小仅有40M,但也并非完美,在准确性和完整性方面表现的不是很好。

在实践中,我们发现,推荐耗时在毫秒级别能够使用户顺畅无阻碍的编写下去,多于1s,则会让用户的输入产生停顿。 基于此我们暂时选取n-gram作为我们的推荐模型。

模型实现
下面介绍一下n-gram模型的基本原理以及我们的实现。

首先,n-gram模型基于马尔可夫链的假设,即:当前这个词出现的概率仅仅跟前面几个有限的词相关。 以最简单的n=2为例,即 下一个词出现的概率仅跟之前一个词相关,基于这个思想,我们将大量代码进行切分,这样我们得到了很多的二元组,这里可以使用单词的出现次数代表概率。这样,我们根据一个词就可以得到一个不同概率分布的推荐列表,然后每次都以当前词进行推荐,就可以产生持续不断的推荐了。切分的效果参考这张图

以下是模型训练和产生推荐的大致流程。

模型优化
在真实应用中,仅仅有这些是远远不够的。模型只是其中一部分,更多的应该是在应用过程中,依据实践经验和用户的反馈,对模型进行不断调优:

比如,在实际应用中,基于同一个上下文,我们一般会同时产生基于n=3,n=4等等不通粒度的推荐,我们会给不通粒度赋予不同的权重,然后结合概率进行筛选和排序,并且根据实际效果以及我们的反馈体系,对权重进行断优化,确保产生最佳效果的推荐。
另外,为了让推荐更加个性化,我们的模型需要具备实时训练的能力,即用户的输入在产生推荐的同时,还要参与模型的增量训练,并根据用户实际的选择对模型进行调优,确保模型的准确性和个性化,大致流程图如下
还有,为了得到更加轻量的模型,我们对语料库也进行了精简,比如,在初始模型中,我们对出现概率极低的语料进行了删减,保持模型的轻巧和高效,同时由于具备实时训练的能力,确保这个操作不会影响到推荐的准确率。

结语
当然,目前的这些对于一个轻巧好用的代码提示来说是远远不够的,当前我们正在尝试完善模型的衡量体系 ,并且在尝试更多轻量的语言模型,希望给用户提供完美的体验。

原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英特尔携手百度全方位深化合作 共筑智能生态

2021年7月29日,英特尔公司今日出席智能经济高峰论坛暨百度云智峰会2021并分享了一系列与百度在人工智能、云计算、智能边缘等方面的最新合作进展。在智能技术方面,百度基于第三代英特尔至强可扩展处理器,打造全功能AI开发平台Baidu Machine L…

决策树之 GBDT 算法 - 回归部分

GBDT(Gradient Boosting Decision Tree)是被工业界广泛使用的机器学习算法之一,它既可以解决回归问题,又可以应用在分类场景中,该算法由斯坦福统计学教授 Jerome H. Friedman 在 1999 年发表。本文中,我们主…

广技师17专插本c语言答案,广东技术师范学院2017年专插本C语言程序设计(1)

1、广东技术师范学院2017 年专插本 C语言程序设计注意:请将答案写在答题纸上,否则无效!一、判断题: (12 分每题 2 分)1、 C 语言规定 :在一个源程序中 ,main 函数的位置必须在最开始。2、假设所有变量均为整型,则表达式 (a2,b5,b,…

深度强化学习在时序数据压缩中的应用--ICDE 2020收录论文

彼节者有间,而刀刃者无厚;以无厚入有间,恢恢乎其于游刃必有余地矣 ----- 庖丁解牛 前言:随着移动互联网、IoT、5G等的应用和普及,一步一步地我们走进了数字经济时代。随之而来的海量数据将是一种客观的存在&#xff0…

技术干货 | mPaaS 框架下如何使用 Crash SDK 对闪退进行分析?

简介: Android Native Crash 处理案例分享 目前 mPaaS Android 是使用的是 Crash SDK 对闪退进行的处理,Crash SDK 是 Android 平台上一款功能强大的崩溃日志收集 SDK,有着极高的崩溃收集率和完整、全面的崩溃日志信息,生成的日志…

山石网科蒋东毅:网络连接矩阵复杂化,传统安全防护框架需重构

编辑 | 宋慧 供稿 | 山石网科 头图 | 蒋东毅在 ISC 2021主题论坛发表演讲 7月28日上午,在ISC 2021 第九届互联网安全大会主题论坛上,山石网科高级副总裁、首席战略官(CSO)蒋东毅带来了一场主题为《政企安全面临的多重挑战和未来趋…

如何使用java来实现windows系统关机

可以使用Java代码来调用操作系统的命令行来实现Windows关机操作。具体步骤如下: import java.io.IOException;public class ShutdownWindows {public static void main(String[] args) {try {// 调用命令行执行关机命令Process process Runtime.getRuntime().exec…

设树采用孩子兄弟表示法存放.用类c语言设计算法计算树的高度.,(数据结构课程设计分类题目.doc...

(数据结构课程设计分类题目线性表顺序表:1、设有一元素为整数的线性表L(a1,a2,a3,…,an),存放在一维数组A[N]中,设计一个算法,以表中an作为参考元素,将该表分为左、右两部分,其中左半部分每个元素小于等于an,右半部分每个元素都大于an, an位于分界位置上(要求结果仍…

双11“新贵”红星美凯龙:数据中台充分给足转型马力

今年“天猫双11”全球狂欢季,让双11新手红星美凯龙刷足了存在感。从去年首度试水双11,到拿下今年618天猫超级晚、“天猫双11狂欢夜”两大S级总冠名,红星美凯龙通过线上玩法频频出圈,成为中国企业化数字化转型、数字化用户运营的创新样本。 红星美凯龙董事长车建新指出:红星美凯…

CDN应用进阶 | 正确使用CDN 让你更好规避安全风险

为了帮助用户更好地了解和使用CDN产品,CDN应用实践进阶系统课程开课了。12月17日,阿里云CDN产品专家彭飞在线分享了《正确使用CDN,让你更好规避安全风险》议题,内容主要包括以下几个方面: 使用CDN的常见误区和问题有哪…

“程序员千万不要选全栈开发”

作者 | 千鸟(网名) 小路助手开发者责编 | 晋兆雨出品 | CSDN(ID:CSDNnews)对于大多数人来说,大学毕业后选择一家满意的公司,一路升职加薪才是正解,但他却偏偏选择了一条鲜有人知的…

「直播回顾」Mars:加速数据科学的新方式

简介: 本文从数据科学概念、背景和现状切入,引出加速数据科学的新方式Mars,并介绍了Mars具体能解决的一些问题和背后的逻辑、哲学,同时对Mars整体数据处理流程进行了介绍。 本文分为4个部分: Mars的背景和现状 Mars解…

围观|第一代云原生企业米哈游如何让想象发生?

作者 | 贾宁宇 来源|阿里巴巴云原生公众号 在米哈游的办公区,有一间会议室,专门留给了阿里云工程师。 今年,是这家二次元文化公司创立的第九年,米哈游和阿里云的交情,也有八年了。 米哈游总裁刘伟还记得多年前&…

作为一名通信老司机,我是如何看待翼龙通信无人机救灾的?

作者:小枣君来源:鲜枣课堂昨天,关于翼龙无人机救灾的新闻,刷屏了整个网络。由国家应急管理部紧急调派的翼龙-2H应急救灾型无人机,搭载中国移动的基站设备,从贵州安顺出发,连续出动两次&#xff…

揭秘大流量场景下发布如「丝般顺滑」背后的原因

为什么很多互联网公司不敢在白天发布,都选择在半夜发布。要是能摆脱半夜发布的窘境,它不香吗?选择在半夜发布无非是为了减少对用户的影响,出了问题影响面可控。 那我们就来谈谈,发布会有哪些问题。 若您的应用没有上…

Serverless 落地之痛怎么解?

传统业务在开发上线的过程中,需要团队合作,每个人开发一部分,合并代码,开发联调,然后进行资源评估,测试环境搭建、线上环境搭建、测试上线、运维。但是在 Serverless 时代下,开发者只需要开发自…

可信云十年,重磅研究成果与2021云计算十大关键词悉数发布

编辑 | 宋慧 出品 | CSDN云计算 头图 | 2021可信云大会现场 可信云从提出到发展至今,已经历经了十个年头,可信云大会也已举办到第八届。2021年7月27-28日,由中国信息通信研究院、中国通信标准化协会联合主办的“2021可信云大会”盛大开幕&am…

「直播回顾」Mars应用与最佳实践

简介: 本文首先对Mars的概念、功能、优势进行了介绍,随后,对Mars几个典型的应用场景进行介绍,并通过两个Demo展示了在使用Mars后数据科学性能的提升,最后总结了Mars的最佳实践,让使用Mars更高效便捷。 本文…

TechWorld2021技术嘉年华,解锁“不一样”的技术盛会

当今,网络空间和物理空间的边界不断融合,网络安全和信息化作为一体之两翼也在进行一种融合,网络安全产业伴随着“融合”持续升级发展。7月30日 ,以“融合•Convergency”为主题的TechWorld2021绿盟科技技术嘉年华在北京顺利召开&a…

《资源成本双优化!看 Serverless 颠覆编程教育的创新实践》

简介: 说起 Serverless 这个词,我想大家应该都不陌生,那么 Serverless 这个词到底是什么意思?Serverless 到底能解决什么问题?可能很多朋友还没有深刻的体会和体感,这篇文章我就和大家一起聊聊 Serverless。…