首页 >>  正文

python预测模型代码

来源:baiyundou.net   日期:2024-09-20

作者 | 苏宓

出品 | CSDN(ID:CSDNnews)

AI 编程距离程序员还有多远?如果说 GitHub Copilot 的到来,让众多开发者看到了希望,那么初创公司 Kite 的倒闭,也让我们认清了现实。

Kite 是一家使用 AI 帮助开发者编写代码的初创公司,也是 Python 代码自动补全的神器。一直以来,因为其在「Intelligent Snippets」功能的加持下,可以帮助 Python 程序员减少一半的操作,而备受大家喜爱,甚至此前 Python 之父 Gudio van Rossum 在使用之后,也强烈推荐。

然而这款工具经历了几年的迭代之后,11 月 16 日,Kite 创始人 Adam Smith 发布一则《Kite is saying farewell》(Kite 正在说再见)的公告,正式宣布 Kite 开发工作已经停止,日后该团队也不再支持 Kite 的软件,就此为 Kite 画上了句号。

Kite 失败的两重因素:技术超前与不赚钱

对于这款工具的突然停更,Adam Smith 也在公告中从两个维度分析了 Kite 业务失败的主要原因。

一、Kite 早在 10 多年前诞生,然而当时的技术还不成熟,未能实现人工智能辅助编程的愿景

在 Adam Smith 看来,Kite 建立了当时最先进的 AI 来帮助开发者,但它没有达到开发者所需的 10x 改进的突破,因为机器学习在代码上的最新技术还不够好。现如今出现的 GitHub Copilot 虽然展现了很大的发展前景,但仍然有很长的路要走。

Adam Smith 表示,“Kite 最大的问题是,最先进的模型不理解代码的结构。我们在为代码建立更好的模型方面取得了一些进展,但这个问题是非常工程化的。要建立一个能够可靠地合成代码的生产质量的工具,可能要花费超过 1 亿美元,目前还没有人尝试。”

二、Kite 未能实现商业化,产品不赚钱

作为一款旨在用 AI 帮助开发者提升 10x 生产力的工具,Adam Smith 直言,Kite 团队起初并没有将赚钱排在业务的第一位,这也是后来他们花了很长时间才弄清楚的失败原因。

对于 2014 年成立的 Kite 而言,由于当时环境下构建一款超前概念的 AI 代码自动补全工具,无论是在技术还是落地应用层面,都存在着巨大的挑战。因此,Kite 创建之初,便花了很大的功夫去构建世界一流的工程团队。

在工程团队人员集结之后,Kite 才去专注于产品研发。然而,或是自身低估了 Kite 产品研发的难度,也或是高估了市场人才的技能,仅是这两个流程,Kite 团队便花费了 5 年的时间去组队与研发。

直到 2019 年,Kite 才达到产品与市场的契合度,正式面向开发者推出。

初发布时,Kite 仅支持 Python,即使如此,也受到了很多用户的喜爱。

次年,Kite 相继支持 Java、Kotlin、C/C++、Objective-C、C#、Go、TypeScript 等十多种编程语言,也可以在 VS Code、Vim、Sublime、Atom、Android Studio 等开发环境中工作。

那时 Kite 官方表示,在该工具的帮助下,活跃开发者甚至每天只需编写由大约175 个“单词”组成的代码。

凭借这些便捷性,Kite 后来开始大力发展用户群体。对此,Adam Smith 表示,“我们在这方面执行得很好,将我们每月活跃的开发者用户群发展到 50 万名,而营销支出几乎为零。”

如果说前面几个创业的流程,Kite 走得顺风顺水,那么作为创业公司,要持续发展下去的源泉必然是实现营收。遗憾的是,Kite 产品未能产生收入,其拥有的 50 万开发者也并不愿意付费使用。

Adam Smith 在公告中指出,「我们的诊断是,个人开发者不会为工具付费。他们的经理可能会,但工程经理只想为离散的新功能付费,也就是说,让他们的开发人员在写代码时快 18% 的速度并没有引起足够强烈的共鸣。」

Kite vs GitHub Copilot

正是因为这两点,即使 Kite 后来也开启了新的业务探索,如代码搜索,也依然未能拯救这款工具的颓势。

其实一定层面上,Kite 也是一款与 GitHub Copilot 竞争失败的代码补全工具,因为从功能性上来看,GitHub Copilot 不仅在去年上线了代码搜索 Code Search 平台,也基于 Codex 引擎提供的支持,会分析开发者正在编辑的文件以及相关文件中的上下文,并在文本编辑器中提供建议。相对 Kite 而言,GitHub Copilot 背靠大厂的支持,其整体功能更为成熟与完善一些。

如今面对 Kite 在 AI 工具领域的出局,Adam Smith 遗憾地说道:

“我们为建立 Kite 做出了无数的牺牲。我们拿着低于市场价的工资来维持并延长我们的跑道,工作时间也很长,尤其是在公司成立的前几年。我们团队工程师拥有顶尖的背景,也经常被外界‘觊觎’。但我们想以一种特殊的方式为世界做出贡献,在 Kite,我们通过巨大的努力和承担我们的项目可能不成功的风险来做到这一点。

很遗憾,最终它没有成功。我们抓住了一个机会,我们可以大大加快世界上的软件开发速度。我们进行了实验,尽管每个人都做出了巨大的努力,但实验并没有成功。

如今事后诸葛亮来猜测过去的决定,这太容易犯错了。鉴于我们在 2014 年创办 Kite 时所知甚少,我只能满怀爱意地回顾我们当初冒险的勇气。正是因为有这样的勇气,我们才生活在一个快速进步的世界里。”

程序员为什么拒绝为工具付费?

随着技术的快速迭代,Kite 的离场,令人惋惜,但是对于其归咎失败的原因之一是:个人程序员拒绝为工具付费,也引发了 HN 平台上不少开发者的热议。

很多开发者认为,程序员之所以不愿意为工具付费,一方面是因为其商业模式不可接受,另一方面则是功能没有达到自己付费的预期。

其中网友 @malwrar 分享道:

我不喜欢依赖于可能在一个月内失去的东西,或者通过这种方式把我拴在互联网上。我认为那更像是一种服务,而不是一种工具。我更喜欢只买一次就能用的东西,但这种商业模式可能也会夭折,因为人们会盗用那些没有被拴在服务器上的组件的东西。

我想要说的是,我想买工具,但现在人们只是在租用。就个人而言,我在很大程度上希望这成为某人开源的项目,这样我可以真正拥有我的工具。

@JRPT 则表示:

我从未使用过 Kite,但我尝试了两次 GitHub Copilot,发现它充其量是微不足道的(最坏的情况是分散注意力)。在使用这款工具的时候,如果不仔细检查和修改它,我就不会使用其中的任何代码。但这仍然是一个巨大的帮助,仅编写测试所节省的时间就可以为此付费。我的猜测是 Kite 将自己定位为 Copilot 的免费替代品,然后无法获利。

@Dijit 认为:

作为初创公司的首席技术官,我注册的订阅服务数量之多令人难以置信,我花费了 8 美元、19 美元,重要的东西要 49 美元、99 美元不等。

有些工具很值得,如 GitLab、Confluence、Jira、1Password、Copilot、codepen、JetBrains、Visual Studio、Docker Desktop 等。

最令人沮丧的是:

1)我需要证明这些费用各自带来的价值,有些东西是很好的,但在纸面上带来的价值太小。

2)你不能只为一些人启用或购买工具,这样有巨大的重叠,而且这种重叠越来越大。

我明白人们需要得到报酬,但这些工具产品层出不穷。我已经在订阅这类的工具上花费了支持员工工资的 7%-13%。

其实,当前 Kite 的大部分代码已经在 GitHub(https://github.com/kiteco)上开源了,包括数据驱动的 Python 推理引擎、Python 公共包分析器、桌面软件、编辑器集成、GitHub 爬虫和分析器等等。最终,基于这种业务模式,Kite 折戟创业期,Adam Smith 表示,「我们迫不及待地希望人工智能能彻底改变编程。这不是我们开始时希望的结果,但我们庆祝每个人的勇气和贡献,他们使实验得以实现」。

最后,你认为什么样的 AI 软件工具会成功?你会为哪种 AI 编程工具而付费?

参考资料:

https://www.kite.com/blog/product/kite-is-saying-farewell/

https://news.ycombinator.com/item?id=33685209

","force_purephv":"0","gnid":"94ef6dc0a4f06cdbb","img_data":[{"flag":2,"img":[{"desc":"","height":"80","s_url":"https://p0.ssl.img.360kuai.com/t0186957a1ca5352752_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t0186957a1ca5352752.gif","width":"640"},{"desc":"","height":"241","title":"","url":"https://p0.ssl.img.360kuai.com/t0189d61ae97f8b6e4b.jpg","width":"588"},{"desc":"","height":"409","title":"","url":"https://p0.ssl.img.360kuai.com/t01b78a555e97c079d8.jpg","width":"1080"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"cache","pub_time":1669028647000,"pure":"","rawurl":"http://zm.news.so.com/ab945e25e3e1133ce0beb048652ffe40","redirect":0,"rptid":"a922af6b0c1b6411","s":"t","src":"CSDN","tag":[{"clk":"ktechnology_1:github","k":"github","u":""},{"clk":"ktechnology_1:pilot","k":"pilot","u":""}],"title":"失败告终!历经 8 年研发的 Python 代码补全神器 Kite 停止开发

蒋怨顷3163python做逻辑回归 怎么把导入的数据分成x,y -
萧豪魏18754326299 ______ 简介 本例子是通过对一组逻辑回归映射进行输出,使得网络的权重和偏置达到最理想状态,最后再进行预测.其中,使用GD算法对参数进行更新,损耗函数采取交叉商来表示,一共训练10000次.2.python代码#!/usr/bin/python import numpy ...

蒋怨顷3163想用机器学习做数据预测,大概就是根据材料的以往实验数据预测将来走向,想问下该怎么实现? -
萧豪魏18754326299 ______ 数据预测不一定需要用到机器学习,回归分析足够了,而且这样的外推常常不一定准确,还需要对结果进行统计学检验,如果要用到机器学习的话我推荐你是用matlab,里面的算法都是封装好的直接使用,我也推荐你几个预测算法 GRNN(广义回归神经网络):这个方法涉及到神经网络,对小样本数据有较好预测. SVM回归预测分析 SVM的信息粒化时序回归预测:svm学过机器学习都应该了解,它不仅可以用于分类,同样可用于数据预测外推,一个股票预测的例子很有意思 其他的还有自组织竞争网络(模式分类、预测)、灰色神经网络预测 原创答案,打字回答不易,如果满意望采纳,谢谢!

蒋怨顷3163python中怎么将模型训练的准确率与召回率 -
萧豪魏18754326299 ______ 数据集中:正例反例你的预测正例:AB你的预测反例:CD准确率就是A/(A+B)大白话就是“你的预测有多少是对的”召回率就是A/(A+C)大白话就是“正例里你的预测覆盖了多少”

蒋怨顷3163python定义模型 -
萧豪魏18754326299 ______ 学python的人都知道,python中一切皆是对象,如class生成的对象是对象,class本身也是对象,int是对象,str是对象,dict是对象....所以,我很好奇,python是怎样实现这些对象的?带着这份好奇,我决定去看看python的源码,毕竟源码才是...

蒋怨顷3163大数据开发中最常用的编程语言
萧豪魏18754326299 ______ 大数据仓库斯卡拉Scala是面向对象和函数式编程范例的完美结合. 它快速,强大,... 如果您想使用机器学习来挖掘大数据并构建预测模型,那么Python无疑是最合适的. ...

蒋怨顷3163最近一两年最火的编程语言是python 预测未来几年最火的编程语言是什么 -
萧豪魏18754326299 ______ 从实用角度,个人比较支持C#. 但要说会不会火,则不好说.因为C#比Python,JS之类的这种动态语言要复杂,学习起来需要更多的耐心,不太适合浮躁的初学者,但它的前景绝对是目前最应该被看好的,至少噱头是最多的,平台是最新的,...

蒋怨顷3163用python单元测试怎么测一段代码 -
萧豪魏18754326299 ______ 单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作.比如对函数abs(),我们可以编写出以下几个测试用例: 输入正数,比如1、1.2、0.99,期待返回值与输入相同; 输入负数,比如-1、-1.2、-0.99,期待返回值...

蒋怨顷3163如何对XGBoost模型进行参数调优 -
萧豪魏18754326299 ______ XGBoost参数调优完全指南(附Python代码)译注:文内提供的代码和运行结果有一定差异,可以从这里完整代码对照参考.另外,我自己跟着教程做的时候,发现我的库无法解析字符串类型的特征,所以只用其中一部分特征做的,具体数值跟...

蒋怨顷3163求教一个python代码 -
萧豪魏18754326299 ______ 代码如下:Python code?12345678 def print_lol(the_list,level):for each_item in the_list:if isinstance(each_item,list):print_lol(each_item,level+1) else:for tab_stop in range(level):ptint("\t",end='') print(each_item) 并把此代码构建发布后,调用:...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024