大型语言模型和人工智能代码生成器的兴起( 三 )


大型语言模型和人工智能代码生成器的兴起

文章插图
图2 BingGPT在图片右侧解释其语言模型和训练数据
2023年3月初 , 香港科技大学人工智能研究中心的Pascale Fung就ChatGPT评估进行了演讲 。
LaMDA(对话应用程序语言模型)是谷歌2021年的“突破性”对话技术 , 是2017年针对对话训练的Transformer模型 , 经过微调 , 可以显著提高其反应的敏感性和特异性 。LaMDA的优势之一是它可以处理人类对话中常见的话题漂移 。
LaMDA的一个版本为谷歌公司的对话式人工智能服务Bard提供了动力 。Bard于2023年3月21日发布 , 并于2023年5月10日全面发布 。以下将讨论它的代码生成功能 。
PaLM
PaLM (路径语言模型)是来自Google Research的2022年密集的纯解码器Transformer模型 , 具有5400亿个参数 , 使用Pathways系统进行训练(参见PaLM论文) 。PaLM是使用英语和多语言数据集的组合进行培训的 , 这些数据集包括高质量的网络文档、书籍、维基百科、对话和GitHub代码 。
谷歌公司还为PaLM创建了一个“无损”词汇表 , 它保留了所有空白(对代码尤其重要) , 将词汇表外的Unicode字符拆分成字节 , 并将数字分割成单独的令牌 , 每个数字一个令牌 。PaLM Coder是PaLM 540B的一个版本 , 仅对Python/ target=_blank class=infotextkey>Python代码数据集进行了微调 。
PaLM-E
PaLM-E是谷歌公司在2023年推出的“具体化”(用于机器人)多模态语言模型 。研究人员从一个强大的大型语言模型PaLM开始 , 并通过补充机器人代理的传感器数据来具体化它(PaLM-E中的“E”) 。PaLM-E也是一个功能强大的视觉和语言模型 。除了PaLM之外 , 它还集成了ViT-22B视觉模型 。
LLaMA
LLaMA(大型语言模型元人工智能)是由Meta AI(又名Meta- FAIR))于2023年2月发布的650亿个参数的“原始”大型语言模型 。Meta表示 , “在大型语言模型空间中训练像LLaMA这样的小型基础模型是可取的 , 因为它需要更少的计算能力和资源来测试新方法 , 验证其他人的工作 , 并探索新的用例 。基础模型在大量未标记的数据上进行训练 , 这使得它们非常适合针对各种任务进行微调 。”
LLaMA以多种尺寸发布 , 同时还发布了一张模型卡 , 详细说明了模型是如何构建的 。Meta-FAIR的Yann LeCun表示 , 最初 , 用户必须请求检查点和标记器 , 但现在它们已经被释放了 , 因为有人通过提交请求正确获得了模型 , 并在4chan上发布了一个可下载的种子 。
专门的代码生成产品虽然包括ChatGPT和Bard在内的一些大型语言模型可以生成用于发布的代码 , 但如果它们对某些代码进行微调 , 通常是来自免费开源软件的代码 , 以避免公然侵犯版权 。这仍然引发了“开源软件盗版”的担忧 , 比如2022年针对GitHub、微软(GitHub的所有者)和OpenAI公司的GitHub Copilot产品和OpenAI GPT Codex模型提起集体诉讼的主张 。
需要注意的是 , 除了使用在公共可用代码上训练的人工智能模型之外 , 一些代码生成工具依赖于搜索代码共享网站 , 例如Stack Overflow 。
Amazon CodeWhisperer
Amazon CodeWhisperer集成了Visual Studio Code和JetBrains IDE , 根据现有代码生成代码建议以响应注释和代码完成 , 并可以扫描代码以查找安全问题 。用户还可以激活CodeWhisperer , 以便在AWS Cloud9和AWS Lambda中使用 。
CodeWhisperer很好地支持Python、JAVA、JavaScript、TypeScript和C#编程语言 , 以及其他10种编程语言 。它对个人开发人员是免费的 , 对专业团队来说 , 每个用户每月需要支付19美元 。
Heller采用CodeWhisperer编写了如下所示的Python代码 , 并对它进行了审查、测试和调试 , 其结果很好 。
大型语言模型和人工智能代码生成器的兴起

文章插图
图3
Heller使用Amazon CodeWhisperer生成代码 。在文件的顶部输入了注释 , 剩下的大部分都是CodeWhisperer 。Heller必须从几个选项中选择代码 , 并从前一个选项中删除未使用的导入语句
Bard
Bard于2023年4月21日宣布支持编程 。该公告指出 , 支持20多种编程语言 , 包括C++、Go、Java、JavaScript、TypeScript和Python 。作为一个快速测试 , Heller让Bard“编写一个Go函数来返回当前的日期和时间 。”它做得很快:


推荐阅读