前言
自Github Copilot发布之后,它在复杂任务上表现质量高,延迟时间普遍较低的优秀表现深受广大开发者的亲睐,但也因为其价格太贵,偶尔会出现延迟和质量问题把很多开发者阻挡在了门外。Github Copilot ?10/月或?100/年(对学生/开源贡献者免费)。
Codeium的出现恰逢其时,个人完全免费使用,完全可以平替Github Copilot,不管是功能还是质量方面以及语言和IDE的支持,Codeium都有很优秀的表现,相比Github Copilot支持的单行 + 多行代码生成外,还增加了聊天和搜索功能。在安全性方面Codeium可以选择退出代码片段收集和训练服务,永远不在私人代码上进行生成模型训练。
目前优秀的AI编程辅助工具非常多,面对这么多选择,每款产品的优劣势,以及收费情况,在编程领域的实际表现到底如何,面对海量复杂的信息,如何才能快速的、清晰的、更准确的找到适合自己的AI编程助手,我会持续性对这块进行连载输出,之前也有写过几篇介绍其他同类产品的文章,近期计划也会将目前主流优秀的几款工具进行对比评估,给大家一个清晰的对比和选择,敬请期待。
一、Codeium基本介绍
1.1、什么是Codeium?
Codeium是一个建立在顶尖AI技术上的代码加速工具包,它提供了单行 + 多行代码生成、内置聊天和搜索等核心功能,同时支持70+的编程语言,支持17+主流IDEs,Codeium是一款功能强大的编程工具,能够帮助程序员更高效、更准确地编写代码。
Codeium由Exafunction的团队开发,该团队核心成员主要由华人组成,Exafunction通过优化深度学习推理工作负载,在资源利用率和成本改进方面可以提供10倍的性能和效益,专注于构建深度学习应用程序,而不是管理集群和微调性能。
Codeium背后由美国两家顶级风险投资机构Greenoaks和Founders Fund投资,主要聚焦在科技和新兴市场领域进行投资,其也投资了马斯克的SpaceX。
1.2、Codeium能做什么?
Codeium支持以下特性:
代码智能提示:Codeium能够实时智能提示代码,代码提示完全基于人工智能自动完成,生成速度快,延时较低,帮助程序员更快地编写代码。
代码自动完成:Codeium能够自动完成代码,减少程序员的敲击次数,提高编码效率。
代码重构:Codeium可以自动重构代码,帮助程序员更好地管理和维护代码。
代码调试:Codeium内置了调试器,能够帮助程序员快速发现和解决代码中的问题。
版本控制:Codeium支持多种版本控制系统,包括Git、SVN等,方便程序员管理和维护代码。
团队协作:Codeium支持多人协作开发,能够提高团队的工作效率。
代码分析:Codeium能够对代码进行分析,帮助程序员发现和解决代码中的潜在问题。
智能搜索:Codeium可以对程序员的搜索关键词进行智能分析和推荐,帮助程序员更快地找到他们需要的信息。
人工智能聊天:Codeium拥有人工智能聊天的功能,可以回答程序员的问题和提供技术支持,帮助他们更好地应对编程和计算机科学方面的挑战。
1.3、Codeium是免费的?
目前根据官方的介绍,Codeium分两个版本,个人版和企业版,对于个人版是完全免费使用的,主要通过商业版本获得利润。有很多功能只在团队或组织层面才有意义,例如代码自主托管或对代码库进行训练微调。自主托管需要预先支付硬件成本,这对于个人开发者来说是无法承受的,而微调只有在存储库足够大,并具有足够的应用程序/产品特定逻辑或惯例时才有意义。
1、AI所需要的GPU计算成本非常昂贵,为什么还要为个人提供免费服务?
首先Exafunction团队在机器学习基础架构方案具备很丰富的经验,在Codeium出现之前,Exafunction团队在一些最大的机器人和机器学习公司中规模化优化复杂的GPU工作负载。已经将相同的基础架构和机器学习系统知识应用于Codeium的模型中,成本会比第三方调用低得多。(有兴趣的可以去了解下Exafunction团队以前做的一款产品——ExaDeploy)
2、Codeium是否会私自将用户的代码上传、共享、训练,隐私如何保障?
我们非常重视安全和隐私 - 我们从不出售/共享用户数据/代码或在用户代码上进行生成模型的训练(甚至使完全退出任何代码片段遥测变得超级容易)。我们实际使用的是如如果用户在推送模型或扩展更改后接受更多建议之类的信号,以此迭代(即聚合的A/B测试)。
3、个人用户可以一直免费使用吗?
官方没有很肯定的答复,毕竟创业公司未来的事情不好讲,至少要先保证可以维持生存下去,才有机会面向个人用户免费,也就是说有足够多的企业用户来支撑,可以让更多的开发人员使用起来,越来越多的个人使用并信任Codeium,并发现它有所帮助,他们就越有可能告诉他们的公司该企业版,而我们将真正赚钱!
简而言之,我们致力于拥有行业领先的免费层,包括像无限自动完成(今天一样)和我们可以廉价提供的任何其他功能。我们不会为了让个人支付而降低这个层面的功能。但是,如果有一些新的功能在个人级别上实际上是我们无限制提供服务所需的昂贵,我们将把它包装到Pro层中。但是,如果您不想付款,那就没什么可担心的 - 我们将继续改善您的体验。
1.4、Codeium用的GPT哪个模型?
通过跟Codeium的聊天对话就能看出来,实际上Codeium并不是使用的目前非常流行的Open AI公司的GPT模型进行训练的,而且采用了最新的自然语言处理技术和深度学习算法训练的,从响应速度上来看,确实很快,而且模型也是经过大量的公共代码训练调优,对编程领域来讲非常有优势。
但是除了Codeium代码智能提示之外,Codeium还提供了智能聊天和智能搜索产品,Codeium Chat目前使用了Open AI API来执行的推理,Chat 仅适用于启用了代码片段遥测的用户,因为我们无法保证 OpenAI 如何存储和使用遥测数据。目前只有VS Code中集成了Codeium Chat
Codeium Search 目前处于测试阶段,随着我们不断迭代和完善用户体验,仅对 VSCode 启用。一旦我们对这些功能可以为用户提供的价值充满信心,我们的其他 IDE 将得到快速支持。
二、Codeium安装插件
如果只需要使用智能代码提示,任意一款插件都没区别,但如果需要使用到Codeium的Chat和智能搜索能力,则目前只有VS Code可以支持,另外如果希望在浏览器随意支持代码提供功能,建议安装Chrome浏览器插件
Codeium提供了丰富的IDEs扩展支持,目前已支持17款IDE,包括
IntelliJ IDEA、PyCharm、WebStorm、GoLand、PHPStorm、CLion、Android Studio、Deepnote、Databricks、Google Colab、Jupyter Notebook、Chrome、Emacs、Neovim、Vim、JetBrains、Visual Studio Code。大家根据自己日常开发所使用的工具进行选择安装,这里仅以IntelliJ IDEA和VS Code及Chrome插件为例进行演示说明。
2.1、在 JetBrain IDE 上安装
安装插件
在 JetBrains IDE 中,导航到设置菜单(在 macOS 上为⌘ + ,在 Windows 上为“文件”(File)-> “设置”(Settings)),然后单击左侧菜单上的“插件(Plugins)” 在菜单顶部,单击“市场”(Marketplace)并在搜索栏中键入 Codeium。然后点击安装。
授权
请单击“安装”按钮来安装Codeium扩展。安装完成后,建议您重启IDE,重启完成后,打开一个新的编辑器窗口。在右下角,您应该会在右下角看到一个弹出窗口,用于登录 Codeium。
单击“登录”选项,这会将您重定向到 Codeium 网站。
提示:如果您收到一条错误消息,指出浏览器无法从您的 IDE 打开链接,您可能需要更新浏览器并重新启动授权流程。
创建账户
如果还没有 Codeium 帐户,上面打开的链接将被重定向去创建一个帐户。
为什么我们需要一个帐户?为了消除对产品的滥用并确保Codeium知道我们是属于早期用户,所以会要求在使用前使用帐户授权 Codeium 扩展。该账号不会出于任何目的使用、共享或出售任何身份信息。
如果您尚未登录,请使用您的帐户详细信息登录。成功登录后,导航回您的 IDE。
如果授权成功,应该会在 Jetbrains 窗口的右下角看到一条欢迎消息。您已经准备好使用 Codeium!
2.2、在 VS Code 上安装(推荐)
安装插件
在Visual Studio Code中,点击扩展选项卡并搜索“Codeium",安装扩展。
安装完扩展后,不用重启VS Code。
登录
在下图左侧1号位置的图表就是Codeium扩展入口,点击即可打开,第一次使用需要登录Codeium账户。
默认装完插件在右下角2号位置处会弹窗提示登录Codeium账户,直接进入注册/登录即可。
如果没留意,弹窗几秒消失之后,可以从下图3号位置处点击个人账号最下面有个菜单【使用Codeium Auth登录】从这里打开网页登录即可。
Chat演示
这里我问了检查一段代码的安全问题并给出优化和注释,它第一次返回的结果没有用代码编辑器展示,导致阅读很乱,经过重新提了要求,效果好多了。
2.3、安装 Chrome 扩展
在Chrome中安装Codeium扩展,可以在Web IDE中编写代码和注释时看到智能提示。 并且支持多个Web笔记本IDE,包括Colab,Jupyter,Databricks和Deepnote,并且可以在许多网站上使用,如JSFiddle,Codepen,Codeshare和StackBlitz。
安装插件
从Google应用商店搜索“Codeium”插件后开始安装
打开扩展菜单可以看到安装完的Codeium图表,可以点击后面的钉子将Codeium固定到导航窗口上,方便进入
登录
安装扩展程序后,应该已经打开了Codeium网站并提示您登录。您也可以通过单击扩展程序图标打开弹出窗口上的链接手动触发登录。
登录后,您应该能看到正常的 Codeium 图标,并准备好开始编写代码了!您可以尝试创建一个新的 Colab 笔记本来测试 Codeium。
三、Codeium编程实践
3.1、代码提示
Codeium 可以根据您编写的一段代码建议多行代码!试一试以下简单的标头。
3.2、接收建议
如果您喜欢该建议,只需按Tab 键接受。
3.3、注释识别
Codeium 还可以理解注释,让您仅从对所需功能的描述中获取代码!让我们试试前面的例子,只是写一个注释
注意:您可能会得到略有不同的结果。这是由于不断改进模型和采样以增加生成代码的多样性。
3.4、备选建议
虽然 Codeium 通常会在第一次尝试时生成好的代码,但在选项之间切换会很有帮助,尤其是当有多种潜在方法时。例如,Codeium 可能会生成以下实现,用于将点围绕原点逆时针旋转给定角度:
你可以使用 ⌥ + ] 和 ⌥ + [(在 MacOSX 上),或 Alt + ] 和 Alt + [(在 Windows / Linux 上)来切换备选建议(Codeium会给你提供多种代码实现方案)。
在这个例子中,查看下一个选项会得到一个完成方式,其中使用 math 库进行度数转弧度的转换。
注意:如果使用快捷键切换没有更多提示建议的时候,是因为Codeium认为只有一个最优选项,或者所有建议足够相似,可以合并成一个选项。
四、Chrome扩展程序
说到Codeium,不得不重点介绍一下它的Chrome插件,相对其它同类产品而言,它的这个扩展要强大很多,可以支持很多主流的笔记网站,目前其它产品都不支持在浏览器编码能快速自动完成提示,现在使用Codeium可以在浏览器中免费使用 AI 辅助的代码自动完成功能。
Codeium Chrome Extension
可以看到上面视频演示,通过一个Chrome扩展程序,Codeium也可以在以下场景中工作:
在线笔记应用,例如Colab,Jupyter,Databricks和Deepnote等
流行的沙箱网站,例如StackBlitz、JSFiddle等
甚至更多具有代码编辑器的网站,例如面试网站CodeShare.io
Codeium是唯一能在浏览器中运行的AI自动完成产品。 在官方网站的Web Playground中可以尝试无需任何安装即可使用。
五、Codeium Search
基于代码存储库的自然语言搜索、综合和总结、由AI驱动,在IDE中免费使用。
About Codeium Search | Codeium
使用说明
当前,Codeium Search仅适用于VSCode,并针对Python,JS,TS和Go文件进行操作(很快会扩展其它语言!)。
使用Codeium Search:
打开具有要搜索的工作区的VSCode窗口
更新您的VSCode Codeium扩展,以至少为1.1.46
转到VSCode设置(Code->首选项->设置),并搜索选项“Codeium:启用搜索”
选择该选项,并刷新您的VSCode窗口(Cmd-Shift-P->“Developer:Reload Window”)
您现在应该看到:(a)右下角有两个通知。第一个应该说“正在下载Codeium搜索模型…”,并且应迅速完成;第二个是一个进度条,显示“Codeium Search:正在索引工作区:[工作区路径]”,(b)活动栏中有Codeium图标
点击活动栏图标,您已准备好进行搜索!尽管您的工作区正在索引中,但Codeium搜索只需要与已经被索引的文件有关的内容。
(可选):通过启用View->外观->二级侧边栏(将打开编辑器窗口右侧的另一个面板)并将Codeium Search侧边栏拖入此空间,即可始终保持Codeium Search打开状态。 请注意,对于大型代码库,索引可能需要很长时间,一次性索引过程中您的系统可能会有些减慢。
六、Codeium企业版本
6.1、作为一家软件企业,主要关心什么
如何保障代码等知识产权的安全性
如何提高开发人员的生产力(研发效能)
如何保障代码库的质量
对于目前主流的AI智能编程助手,例如Codeium或Github Copilot,可以增加软件开发人员的生产力,并生成高质量的代码(从数十亿行代码中学习),没有将AI智能编程助手整合到工作流程中去的公司将无法具备这些优势,然而,对于几乎每个公司,无论大小,构建AI代码工具都不是核心能力,购买完整的解决方案将会立即为您提供最先进的工具,同时节约数百万美元的开发和维护成本。
鉴于上述需求,企业的理想AI智能编程解决方案应具备以下特点:
最大的代码安全性:代码永远不应离开企业的私有云或本地服务器。这样,企业的代码就永远不会被其他人看到、共享给其他人或用于训练任何其他人使用的模型。这样做不应成为成本障碍,但如果需要一个托管解决方案,则仍然应该保证您的数据不会被出售、分享或进行培训。
最大的辅助质量:任何代码建议或其他辅助都应是您的代码库最好的选择,这只能通过对现有代码库进行自定义来实现,例如微调模型。
最大的生产率提升:代码自动完成只是个好开始,但软件工程师不仅可以在他们已经知道要输入什么时加速。软件开发人员花费大量时间生成测试用例、编写文档、搜索现有代码库、调试、创建和审阅拉请求等等。软件开发人员操作的每种不同“模式”都可以通过AI加速。
6.2、Github Copilot for Enterprises没有帮助
Github Copilot推出了“企业计划”,但Github Copilot for Enterprises没有解决任何这些企业需求:
没有代码安全性的保证。保护与个人计划相同,代码片段被发送到Github、Microsoft和OpenAI服务器,且未明确代码保留和使用政策。你应该对安全和隐私有所担忧。
没有为您的代码库进行自定义。你只能获得通用模型,没有任何自定义。最好的做法是使用公司的框架和库,不这样做会降低可读性,并引入技术债务、性能问题和安全漏洞。
只有自动完成功能。Copilot只执行自动完成操作,而该功能在过去一年左右没有得到实质性改进。此外,Copilot也无法在每个IDE和平台上工作,例如在线笔记软件,这对于使所有开发人员更具生产力至关重要。
6.3、Codeium for Enterprises有所帮助
另一方面,Codeium for Enterprises实际上解决了企业的需求:
完全部署在您的本地或虚拟专用云(VPC)上。保证安全的最佳方法是不允许数据离开公司管理的资源。在自托管方式下部署Codeium for Enterprises。计算要求也很低,所以也不会为此而掏空钱包。如果你不想本地部署,我们很快就会提供SOC2合规的托管服务。
完全在自托管的Codeium实例中对现有存储库微调模型。无论是哪种部署方法,通用模型都不能提供与微调模型相同的生成质量。Codeium的基础质量与Github Copilot相当,因此微调肯定会胜过您的任何需求中存在的任何内容。在您的自托管实例内进行微调意味着您的数据将不会离开您的管理,并且没有人会获得暂时或永久的访问权限,包括我们。这些模型将自动部署在您的自托管Codeium实例中——模型权重将永远不会离开您的实例。
全套AI编码加速工具。我们将Codeium称为工具包而不是工具。 我们已经提供了Autocomplete on Enterprise,并正在积极开发Unit Test Generation、Doc Generation等。我们还有关于Search for Enterprises(已经提供给个人)、Chat、PR Review Automation、Debugging等更多想法。
假设工程师都知道他们想要输入什么,只需简单执行即可,并且可以完美地执行,忽略在谷歌等搜索引擎或StackOverflow上去搜索解决方案、因API文档或不熟悉的语言语法所花费的额外时间(不包括通过搜索和其他功能节省的任何时间)