当地时间本周二,谷歌在 Google’s Cloud Next 2024 上发布了一系列 AI 相关的模型更新和产品,包括 Gemini 1.5 Pro 首次提供了本地音频(语音)理解功能、代码生成新模型 CodeGemma、首款自研 Arm 处理器 Axion 等等。
介绍
CodeGemma 以 Gemma 模型为基础,为社区带来了强大而轻量级的编码功能。该模型可分为专门处理代码补全和代码生成任务的 7B 预训练变体、用于代码聊天和指令跟随的 7B 指令调优变体、以及在本地计算机上运行快速代码补全的 2B 预训练变体。
优点
- 智能代码完成和生成:完成行、函数,甚至生成整个代码块,无论您是在本地工作还是使用Google Cloud资源。
- 提高准确性:CodeGemma模型接受了来自web文档、数学和代码的5000亿个主要英语数据标记的训练,生成的代码不仅在语法上更正确,而且在语义上更有意义,从而减少了错误和调试时间。
- 多语言熟练:支持Python、JavaScript、Java、Kotlin、C、c#、Rust、Go等语言。
- 简化的工作流:将CodeGemma模型集成到您的开发环境中,以编写更少的样板文件,并更快地专注于重要的有趣和差异化的代码。
CodeGemma 与其他主流代码大模型的一些比较结果如下图所示:
使用
本地运行推荐使用ollama框架:
执行以下命令,下载并运行codegemma:
ollama run codegemma:7b
测试一下实际的代码生成效果:
问题:使用Java编写Http访问openai接口返回流式响应的代码
我们将大模型生成的代码复制到IDEA中,配置本地的Qwen模型,运行,代码出现了报错:
然后我们将以上报错问题提交给大模型,让它来解决一下这个问题,看看能不能做到:
问题:以上的代码出现了报错:cannot write to a URLConnection if doOutput=false - call setDoOutput(true)
根据大模型的回答是因为默认情况下 HttpURLConnection
的 doOutput
属性为 false
,需要设置 doOutput
属性为 true
。
修改后,代码就没有问题了,可以得到响应了,但效果却还不是流式的效果。
从最终的测试效果来看,CodeGemma作为程序员日常的编程助手也绰绰有余了,毕竟国内诸如文心一言、通义千问这些的代码能力也就那样。