去试试感觉下这个闪电般的速度 Groq Groq家的LPU可不走寻常路,它抛弃了大家熟悉的GPU那套SIMD(单指令多数据)模式。别看GPU玩并行处理玩得飞起,拿来渲染图形啥的有几百个核心呢,但LPU呢,它是专为AI计算打造,能够提供确定性的性能表现。 而且呢,LPU在能源效率上也超给力,它通过减少管理多线程的开销,避免核心利用率低下,因此在每瓦特的计算量上能做得更好,堪称环保小能手。 Groq的LPU潜力无限,无论是聊天机器人互动、个性化内容生成,还是机器翻译等基于大型语言模型的应用,都有望因此而性能飙升,价格更亲民。特别是在NVIDIA的A100和H100那么抢手的情况下,它可能成为一个不错的替代选择。 说到Groq的创立,还得提它的大佬Jonathan Ross。2016年,他搞起了这家公司,而且哦,他可是Google TPU(张量处理单元)项目的发起人,一开始还只是他的业余项目呢。后来他在Google X的Rapid Eval Team混过一阵,最终决定自己出来搞Groq。
Meta 最近搞的LLM软件测试让人眼前一亮
“Meta 使用大型语言模型自动优化单元测试”(https://arxiv.org/abs/2402.09171) 这篇论文介绍了 Meta 的 TestGen-LLM 工具,这是一个利用大型语言模型(LLMs)来自动优化人类编写的测试的工具。该工具确保生成的测试类通过一系列过滤器,以保证相对原始测试套件的显著改进,并减少与 LLM 幻觉相关的问题。文中讨论了在 Instagram 和 Facebook 平台的 Meta 测试马拉松中部署 TestGen-LLM 的情况,并展示了令人鼓舞的结果。在专注于 Instagram 的 Reels 和 Stories 产品的评估中,75% 的 TestGen-LLM 测试用例成功构建,57% 可靠通过,测试覆盖率增加了25%。论文强调了在 diff 时间部署测试的有效性,因为它为工程师提供了现有测试和审核中的代码的完整上下文。通过测试马拉松的经验获得了关于 diff 时间部署模式的见解,揭示了这项技术在现实世界场景中的表现。最初是手动完成的,但在后续事件中自动化了,为 Instagram 测试马拉松构建 TestGen-LLM diffs 取得了有希望的结果。在第一次 Instagram 测试马拉松中,36名工程师提交了105个单元测试 diffs,其中16个由 TestGen-LLM 生成。值得注意的是,一个 diff 因测试用例中缺乏断言而被拒绝。结果各不相同,一些 diffs 通过覆盖以前未触及的方法和文件显著提高了覆盖率。最大的覆盖率改进来自于一个覆盖了多个新文件和 A/B 测试守门员的 diff。在相关工作方面,基于大型语言模型的软件工程(LLMSE)领域的软件测试生成已被广泛研究。虽然以前的文献回顾证实了基于 LLM 的测试生成方法的普遍性,但本文因其专注于扩展现有测试类并报告工业规模部署的结果而脱颖而出。总的来说,这篇论文通过 diff 时间部署策略,为使用 LLM 在 Meta…
Slack 给平台加入了 AI 驱动的搜索和总结功能
Slack 这个企业通讯平台不仅仅是我们日常工作的小助手,它还默默地成为了一个知识库,里面藏着各种宝贵的公司信息。但是,想要从这个混乱无序的知识海洋中捞出有用的信息,以前可没那么简单。好消息来了,Slack 最近推出了几个新功能,让这些信息变得触手可及,包括一项全新的 AI 驱动搜索工具和频道内信息总结能力。 Slack 的产品大佬 Noah Weiss 说,平台以一种非正式且无结构的方式自然而然地收集了企业信息。挑战在于如何找到方法,把这些藏在暗处的知识宝藏挖掘出来。他在接受 TechCrunch 采访时表示,“这一切的关键在于,现在这波生成式 AI 技术的涌现让我们能够从多年来积累的分析中提取出全新的意义和智能。” 去年五月,Slack 在纽约的 Salesforce World Tour 上宣布,它将把生成式 AI 集成到平台中,这不仅仅是一个泛泛的号召,还特别为 Slack 平台上的内容打造了 SlackGPT。 今天的宣布更具体地把这一点付诸实践。Weiss 说,能够总结频道内容帮助员工在休假后迅速赶上进度,或者避免阅读冗长的线索就能抓住对话的要点。通过频道总结,你可以请求一个总结,Slack 的 AI 模型就会生成一个讨论话题的总结,并提供参考资料来展示模型是如何创建总结的每个部分,这是这个功能设计中的一个关键部分。 “你可以深入到任何区域,我们会向你展示所有详细的上下文。所以我们真的在考虑透明度,建立信任,确保我们展示我们的工作,并且给人们能力深入了解更多,如果他们想要的话,”他说。 公司还允许用户以自然的方式提问,就像与 ChatGPT 一样,但它使用的是 Slack 内容而不是更广泛的互联网内容,所以用户可以问一个问题,比如 ‘Project Gizmo 是什么?’ Slack AI 然后提供一个答案,再次带有来源,让人们看到答案从哪里来,以及他们是否可以信任它。 每个答案都包括一个质量检查,用户可以说答案是好的、坏的还是中性的,这样模型就可以学习到关于响应的质量,系统工程师也可以看到模型的表现如何。 他没有透露关于底层模型的具体细节,只是说它是大型语言模型的混合体。“我们发现它们各有不同的表现方式,速度和质量特性也不同。我们花了很多时间对模型进行微调,以适应我们在 Slack 中实际拥有的数据,同时也在提示工程方面做了大量工作。” Slack 的 AI 搜索和总结功能是企业计划的附加产品,这意味着它的成本会在正常许可成本之上额外增加。Slack 没有提供成本细节,但它今天在美国和英国提供,目前只有英文版本,但公司表示不久的将来会有更多语言版本推出。
OpenAI发布Sora,另一个层次的黑科技
OpenAI刚刚向外界展示了一个令人震惊的新技术——一种基于文本提示生成逼真视频的人工智能,这个名为Sora的文本到视频模型,引发了网上一片惊叹。在周四的一篇博客文章中,OpenAI介绍说,Sora“深刻理解语言”,能够生成“表达丰富情感的引人入胜的角色”。https://openai.com/sora Sora能够生成包含多个角色、特定类型动作和准确的主题及背景细节的复杂场景。这家得到微软支持的初创公司说:“这个模型不仅理解用户在提示中请求的内容,还理解这些事物在物理世界中的存在方式。” OpenAI的CEO Sam Altman在X上邀请用户为Sora提供提示,然后发布了一些逼真视频的结果,包括两只金毛寻回犬在山顶上播客、一位祖母制作意大利面食gnocchi,以及海洋动物在海面上进行自行车比赛。 这些超现实的视频质量在社交媒体上引发了惊讶的反响,用户们纷纷称赞这些结果“不可思议”和“改变游戏规则”。“过了两个小时,我的大脑还是无法处理这些由OpenAI Sora生成的视频,”X上的用户Allen T说。然而,这一展示也引发了对潜在风险的担忧,特别是在全球密切关注的选举年,包括11月的美国总统选举。OpenAI在其博客文章中表示,将在向公众发布Sora之前采取几项重要的安全措施。 公司表示:“我们正在与红队专家合作——这些领域专家擅长于信息误导、仇恨内容和偏见——他们将对模型进行对抗测试。”“我们还在开发工具来帮助检测误导内容,比如一个检测分类器,能够识别视频是否由Sora生成。”OpenAI还承认Sora存在弱点,包括连贯性和区分左右的困难。 例如,一个人可能咬了一口饼干,但之后,饼干可能没有咬痕。与OpenAI的竞争对手Meta和Google也展示了文本到视频AI技术,但他们的模型未能产生像Sora那样逼真的结果。
下一代模型:Gemini 1.5,正如它的名字一样闪亮登场
上周,Google推出了其迄今为止最强大的模型——Gemini 1.0 Ultra,标志着其产品,尤其是Gemini Advanced变得更加有用的重要一步。从今天起,开发者和云客户也可以开始使用1.0 Ultra——通过AI Studio和Vertex AI中的Gemini API进行构建。 Google的团队继续推动最新模型的前沿,将安全性放在核心位置,并取得了迅速的进展。事实上,他们已准备好介绍下一代模型:Gemini 1.5。它在多个维度上展现出显著的改进,1.5 Pro在使用更少的计算资源的同时,达到了与1.0 Ultra相当的质量。 这一新一代还实现了在长文本理解上的突破。Google已经显著增加了其模型可以处理的信息量——稳定运行高达100万个令牌,实现了迄今为止任何大规模基础模型中最长的上下文窗口。更长的上下文窗口展示了可能性的承诺,将使得全新的能力成为可能,并帮助开发者构建更多有用的模型和应用程序。Google对开发者和企业客户提供这一实验功能的有限预览感到兴奋。Demis分享了更多关于能力、安全性和可用性的信息。 由Google DeepMind的CEO Demis Hassabis代表双子团队介绍Gemini 1.5:这是人工智能领域令人激动的时刻。领域内的新进展有潜力在未来几年为数十亿人提供更多帮助。自从引入Gemini 1.0以来,Google一直在测试、完善和增强其能力。今天,Google宣布了下一代模型:Gemini 1.5。Gemini 1.5带来了显著提升的性能。它代表了Google方法的一个重大变化,建立在几乎每一个部分的研究和工程创新之上,这包括使Gemini 1.5更加高效的训练和服务,采用了新的专家混合(MoE)架构。 Google正在为早期测试发布的第一个Gemini 1.5模型是Gemini 1.5 Pro。这是一个中等大小的多模态模型,为跨广泛任务的扩展进行了优化,并且与迄今为止最大的模型1.0 Ultra表现在相似的水平。它还引入了在长文本理解上的实验性突破特性。Gemini 1.5 Pro配备了标准的128,000令牌上下文窗口。但从今天起,一小部分开发者和企业客户可以通过AI Studio和Vertex AI在私密预览中尝试高达100万令牌的上下文窗口。 随着Google全面推出100万令牌上下文窗口,他们正在积极工作以改善延迟、降低计算需求并增强用户体验。Google对人们尝试这一突破性能力感到兴奋,并在下方分享了更多关于未来可用性的详细信息。这些在下一代模型中的持续进步将为人们、开发者和企业开启使用人工智能创建、发现和构建的新可能性。 Gemini 1.5基于Google在Transformer和MoE架构上的领先研究。而传统的Transformer作为一个大型神经网络运行,MoE模型被划分为较小的“专家”神经网络。根据给定的输入类型,MoE模型学会只激活其神经网络中最相关的专家路径。这种专业化大大提高了模型的效率。Google是通过诸如Sparsely-Gated MoE、GShard-Transformer、Switch-Transformer、M4等研究,成为深度学习中MoE技术的早期采用者和先锋。 Google的最新模型架构创新使Gemini 1.5能够更快地学习复杂任务并保持质量,同时训练和服务更加高效。这些效率帮助Google的团队比以往任何时候都更快地迭代、训练和交付更高级的Gemini版本,并且他们正在进行进一步的优化。作为大规模模型中首创的长上下文窗口,Google正在不断开发新的评估和基准测试来测试其新颖能力。遵循AI原则和严格的安全政策,Google确保其模型经过广泛的伦理和安全测试。然后,将这些研究成果整合到其治理过程、模型开发和评估中,以持续改进其AI系统。 自从去年12月引入1.0 Ultra以来,Google的团队继续对模型进行精炼,使其对更广泛的发布更安全。他们还进行了关于安全风险的新研究,并开发了红队技术来测试一系列潜在的危害。在发布1.5 Pro之前,Google采取了与其Gemini 1.0模型相同的负责任部署方式,进行了包括内容安全和代表性伤害在内的广泛评估,并将继续扩大这种测试。此外,Google正在开发进一步的测试,以考虑1.5 Pro的新长上下文能力。Google致力于负责任地将每一代Gemini模型带给全球数十亿人、开发者和企业。 从今天开始,Google通过AI Studio和Vertex AI向开发者和企业客户提供1.5 Pro的有限预览。更多信息请参阅Google开发者博客和Google Cloud博客。当模型准备好进行更广泛发布时,Google将引入标准的128,000令牌上下文窗口的1.5 Pro。不久,Google计划引入从标准的128,000上下文窗口开始并扩展到100万令牌的定价等级,随着模型的改进。在测试期间,早期测试者可以免费尝试100万令牌上下文窗口,尽管他们应该预期这一实验性功能会有较长的延迟时间。速度的显著改进也即将到来。 有兴趣测试1.5 Pro的开发者现在可以在AI Studio注册 (https://aistudio.google.com/app/waitlist/97445851),而企业客户可以联系他们的Vertex AI账户团队。
NVIDIA 刚刚揭秘了他们的最新大作——Eos,一台跻身全球十强的超级计算机
周四,NVIDIA 发布了一段视频,首次公开展示了其最新的数据中心级超级计算机——Eos,为我们揭开了驱动高级AI工厂的架构之谜。 Eos,这个规模庞大的NVIDIA DGX SuperPOD,是NVIDIA开发者利用加速计算基础设施和全面优化的软件创造AI突破的地方。配置了576套NVIDIA DGX H100系统,搭载NVIDIA Quantum-2 InfiniBand网络和软件的Eos,提供了高达18.4 exaflops的FP8 AI性能。 在2023年的超级计算贸易展览会上首次亮相的Eos,以希腊神话中的曙光女神命名,反映了NVIDIA对推进AI技术的承诺。Eos超级计算机是创新的加油站。每套DGX H100系统配备了八个NVIDIA H100 Tensor Core GPU,Eos共有4608个H100 GPU。因此,Eos能够处理最大的AI工作负载,包括训练大型语言模型、推荐系统、量子模拟等。 它展示了NVIDIA的技术在规模化工作时能做到什么。Eos的出现正逢其时。人们正在用生成式AI改变世界,从药物发现到聊天机器人,再到自主机器等等。为了实现这些突破,他们需要的不仅仅是AI专业知识和开发技能。他们需要一个AI工厂——一个专为AI设计的引擎,随时可用,可以帮助他们扩大规模,构建AI模型。 Eos做到了。在全球最快的500台超级计算机中排名第9,Eos推动了AI技术和基础设施的边界。它结合了NVIDIA的高级加速计算和网络技术,以及如NVIDIA Base Command和NVIDIA AI Enterprise等复杂的软件产品。Eos的架构为要求超低延迟和高吞吐量互联的大规模加速计算节点集群上的AI工作负载进行了优化,是企业扩大AI能力的理想解决方案。 基于NVIDIA Quantum-2 InfiniBand及其网络内计算技术的网络架构,支持高达400Gb/s的数据传输速度,便于快速移动训练复杂AI模型所需的大型数据集。Eos的核心是由NVIDIA的DGX H100系统驱动的革命性DGX SuperPOD架构。这种架构旨在为AI和计算领域提供紧密集成的全栈系统,能够进行大规模计算。 随着全球的企业和开发者寻求利用AI的力量,Eos站在了一个关键的资源点上,承诺加速向AI融合应用的旅程,为每一个组织注入动力。
最新研究发现,迄今为止最大的Amazon文本转语音人工智能模型展现出了”新兴能力”
亚马逊的研究人员训练出了迄今为止最大的文本转语音模型,他们声称这个模型展现出了“新兴”品质,提高了其自然地讲述甚至复杂句子的能力。这一突破可能正是这项技术需要的,以跳出令人不安的谷地。(详细的去看:BASE TTS) 这些模型的成长和进步是必然的,但研究人员特别希望看到一旦语言模型达到一定规模后,我们观察到的能力飞跃。出于我们不知道的原因,一旦大型语言模型(LLMs)增长到一定点,它们开始变得更加健壮和多才多艺,能够执行它们未经训练的任务。 这并不是说它们获得了自我意识或任何东西,只是说过了某个点,它们在某些对话AI任务上的表现呈现出曲棍球棒式增长。亚马逊AGI团队——他们的目标不言而喻——认为文本转语音模型的增长也可能出现同样的情况,他们的研究表明这确实是事实。 这个新模型被称为Big Adaptive Streamable TTS with Emergent abilities,简称BASE TTS。这个模型的最大版本使用了10万小时的公共领域语音,其中90%是英语,剩余的是德语、荷兰语和西班牙语。BASE-large有9.8亿参数,似乎是这一类别中最大的模型。他们还训练了基于10000小时和1000小时音频的4亿和1.5亿参数模型进行比较——目的是,如果其中一个模型显示出新兴行为,而另一个则没有,你就有了这些行为开始出现的范围。 事实证明,中等大小的模型显示出团队所寻找的能力跳跃,不一定在普通的语音质量上(它的评价更好,但只多了几分),而是在他们观察和测量到的新兴能力集上。下面是论文中提到的一些棘手文本示例: “这些句子被设计来包含挑战性任务——解析花园路径句子,对长篇复合名词施加短语重音,产生情绪化或耳语般的语音,或为像‘qi’这样的外来词或‘@’这样的标点符号产生正确的音素——所有这些BASE TTS都没有明确训练过,”作者写道。 这些特性通常会使文本转语音引擎出错,它们可能会发音不准确、跳过单词、使用奇怪的语调或犯下其他错误。BASE TTS仍然遇到了困难,但它比其同类模型——像Tortoise和VALL-E——表现得好得多。 他们为此模型制作的网站上有一些这些难处理文本被自然朗读的例子。当然这些例子是由研究人员挑选的,所以必然是精挑细选的,但无论如何都令人印象深刻。如果你不想点击查看,这里有几个例子: 哔哩哔哩音乐https://www.bilibili.com/audio/au4276593?type=1 因为这三个BASE TTS模型共享一个架构,很明显模型的大小和其训练数据的广度似乎是模型能够处理上述复杂性的原因。请记住,这仍然是一个实验模型和过程——不是一个商业模型或任何东西。后续研究将必须确定新兴能力的拐点以及如何有效地训练和部署结果模型值得注意的是,这个模型是“可流式传输”的,正如名称所示——意味着它不需要一次生成整个句子,而是可以逐刻以相对低的比特率进行。团队还尝试将语音元数据,如情感性、韵律等,打包在一个单独的、低带宽流中,这可能伴随着普通音频。 看来,文本转语音模型可能会在2024年迎来突破性时刻——正好赶上选举!但不可否认,这项技术的实用性,特别是在可访问性方面。团队确实注意到,由于担心坏人利用它,他们选择不公开模型的源代码和其他数据。不过,这只是时间问题,猫终将从袋中逃出。
开源安全芯片横空出世
今天,OpenTitan联盟宣布了一个里程碑式的成就:首款集成了开源硬件安全功能的商业硅芯片正式面世。https://opentitan.org/ 这标志着开源硬件运动再次迈出了重要一步。自从RISC-V这一流行的开源处理器架构问世以来,开源硬件便势如破竹地获得了越来越多的关注。 RISC-V提供了一种公开可用的指南,解释了计算机如何在最基础层面上高效运行。OpenTitan不仅仅停留在RISC-V的开源指令集上,它还提供了硅本身的开源设计。尽管之前也有开源硅片的开发,但据联盟称,这是首个包括设计验证阶段并生产出完全功能性的商业芯片的开源硅片。 这款基于RISC-V处理器核心的芯片,名为Earl Grey,集成了多种硬件安全和加密模块,共同工作于一个自足的微处理器中。该项目始于2019年,由一群公司联合发起,Google牵头,并由位于英国剑桥的非营利组织lowRISC监督。模仿开源软件项目的发展方式,该项目由来自全球的贡献者共同开发,包括官方隶属于该项目的合作伙伴和独立的编码者。今天的宣布是五年努力的高潮。 OpenTitan的联合创造者兼zeroRISC联盟伙伴的CEO Dominic Rizzo表示:“这款芯片非常令人兴奋。但这里面有更大的意义,那就是这种全新的开发方法论的诞生。不同于传统的指令与控制风格结构,这是一种分布式的方法。” 他们开发的方法论被称为Silicon Commons。OpenTitan的CEO Gavin Ferris解释说,与开源软件相比,开源硬件设计面临着更高的成本、较小的专业社群和产品发布后无法通过补丁修复bug的困难。Silicon Commons框架提供了文档规则、预定义的接口和质量标准,以及如何作为一个集体做出决策的治理结构。 Ferris说,项目成功的另一个关键是选择一个所有合作伙伴都有动力在五年的开发过程中持续参与的问题。硬件安全正适合这个角色,因为它的商业重要性以及它与开源模型的契合度。密码学中有一个被称为Kerckhoffs原则的概念,即在加密系统中,唯一应该保密的是密钥本身。开放整个协议确保了加密系统符合这一规则。 硬件信任根(RoT)是什么?OpenTitan采用了一种称为信任根(RoT)的硬件安全协议。其目的是提供一个无法远程访问的芯片内加密密钥源。因为它无法被外部访问,系统可以信任它未被篡改,从而为构建安全性提供了基础。“信任根意味着,归根到底,我们有共同信任的东西,” Analog Devices的集成电路设计高级总监Ravi Subrahmanyan解释说。一旦双方同意某件事,就可以建立一个可信的安全连接。 尽管传统的专有芯片也可以利用RoT技术,但开源它提供了额外的信任层。支持者认为,既然任何人都可以检查和探测设计,那么更有可能发现bug,并且可以验证bug修复。“开放性是好事,”Subrahmanyan说。“因为比方说,如果一个专有实现有问题,我不一定知道,对吧?我得听他们是否愿意告诉我。” 在构成物联网(IoT)的设备中,这种芯片上的安全尤其相关,因为它们面临着未解决的安全挑战。ZeroRISC及其合作伙伴将通过一个早期访问计划向IoT市场开放销售,并且他们预期这一领域将广泛采用。 Rizzo和Ferris相信,他们的芯片为开源硬件开发提供了一个模板,其他合作将会复制。除了提供透明的安全性,开源还可以节省公司的钱,因为它们可以重用硬件组件,而不必独立开发相同事物的专有版本。它还为更多合作伙伴参与这一努力打开了大门,包括OpenTitan联盟合作伙伴苏黎世联邦理工学院这样的学术机构。多亏了学术界的参与,OpenTitan得以整合了对未来量子计算机安全的密码协议。 “一旦这种方法论被证明是可行的,其他人就会采纳,”Rizzo说。“如果你看看开源软件的发展,起初人们认为这是一种边缘追求,然后它几乎成了每部手机的运行基础。它之所以能够取得成功,是因为它具有某些 宝贵的属性。因此,我认为我们现在正在见证这一点在硅片领域的开始。”
扎克伯格放言,Quest 3耳机远胜于Vision Pro
在这个元宇宙的奇幻旅程中,扎克伯格,这位亿万富翁大宅男,竟然在昨天通过一个三分钟的Instagram短片对苹果的新款可穿戴技术进行了毫不留情的吐槽,整个视频的气势仿佛在大声宣告:“她在我眼里美若天仙!” “我不仅认为Quest从性价比上更胜一筹,我认为就产品本身而言,Quest也是更优的选择。”Meta的CEO在视频中这样说道,而这段视频正是通过一位坐在他对面的家伙使用Quest 3录制的。扎克在网上大胆宣称Quest 3比Vision Pro更胜一筹,这简直不足为奇,就像他家里有一个游戏用的地堡一样显而易见。 更让人惊讶的是……他竟然选择在个人的Instagram账户上高声宣布这一切。扎克决定舒服地坐在沙发上,用一种苹果式的手势演示Quest 3,这反映出Meta和苹果在打造最终混合现实头盔的激烈竞争。 为了在VR/AR领域进一步巩固Meta的领先地位,扎克在其准备就绪的视频评测中强调了Quest 3与Vision Pro的以下几点对比: 这依然是一场任何人都有可能赢得的游戏。自从2014年收购Oculus以来,Meta就开始销售AR/VR头盔。虽然近来围绕Vision Pro的炒作使其工作相形见绌,但对新苹果产品的评测并没有表明这是一个iPhone时刻,甚至有人开始退回头盔。
Github用人工智能(AI)给网络安全漏洞补补窗户纸
2023年11月,GitHub宣布推出代码扫描自动修复功能,借助AI技术为用户代码库中的安全漏洞提出修复建议。该文章深入探讨了自动修复的内部工作机制以及用于测试和迭代的评估框架。 代码扫描自动修复是什么?GitHub代码扫描通过分析仓库代码,找出安全漏洞和其他错误。扫描可以根据计划或特定事件(例如,推送至分支或打开拉取请求)触发。当发现问题时,会向用户显示警告。代码扫描可以与第一方或第三方警报工具配合使用,包括开源和私有工具。GitHub提供了一个由CodeQL支持的第一方警报工具,CodeQL是其语义代码分析引擎,允许像查询数据一样查询代码库。GitHub的内部安全专家开发了一套丰富的查询,可以跨多种流行语言和框架检测安全漏洞。在此检测能力的基础上,代码扫描自动修复通过建议AI生成的修复方案,进一步提升了安全性。在首次迭代中,自动修复针对拉取请求中检测到的CodeQL警告启用,首先支持JavaScript和TypeScript警告。它以自然语言解释问题及其修复策略,直接在拉取请求页面显示建议的修复方案,并允许开发者提交、忽略或编辑这些建议。 自动修复背后的基本思想简单明了:当诸如CodeQL之类的代码分析工具发现问题时,GitHub会将受影响的代码和问题描述发送给大型语言模型(LLM),请求它提出代码编辑建议,以修复问题而不改变代码功能。文章接下来深入讨论了构建LLM提示、处理模型响应、评估功能质量以及向用户提供服务的细节和微妙之处。 自动修复提示是技术的核心,GitHub向LLM发出请求,通过LLM提示表达。CodeQL静态分析检测到漏洞,生成警告,引用问题代码位置及任何其他相关位置。例如,对于SQL注入漏洞,警告会标记使用不受信任数据构建数据库查询的位置,并包括一个或多个流程路径,显示不受信任数据如何到达该位置而未经消毒。GitHub从警告中提取信息,构建LLM提示,然后要求模型展示如何编辑代码以修复漏洞。 GitHub采用严格的格式描述模型输出,以便自动处理。模型输出Markdown,包含: – 详细的自然语言指令,用于修复漏洞。– 需要的代码编辑的完整规格,按照提示中定义的格式。– 如果适用,应添加到项目中的依赖项列表。 GitHub将自然语言解释与代码扫描警告一起展示给用户,随后是由代码编辑和添加的依赖项构成的差异补丁。用户可以审查建议的修复方案,必要时编辑和调整它,并将其作为提交应用于他们的拉取请求。 为了支持现实世界的复杂性并克服LLM的限制,GitHub采用了仔细的提示制作和后处理启发式规则。文章还概述了选择向模型展示的代码、添加依赖项、指定代码编辑的格式以及克服模型错误的方法。 通过广泛的自动化测试工具,GitHub能够对其提示和启发式规则进行迭代改进,同时最小化LLM计算成本。这种严谨的数据驱动开发方法使GitHub能够在同时将LLM计算需求降低六倍的情况下,将成功率提高了三倍。 用户体验通过增强代码扫描拉取请求体验,将有用的修复展示给用户。用户现在可以看到建议的修复方案,这可能包括多个文件中的建议更改,也可能超出拉取请求差异的范围。还会显示修复的自然语言解释。用户可以直接将建议的修复提交到拉取请求,或者在本地IDE或GitHub Codespace中编辑建议。 随着GitHub将代码扫描自动修复测试版推广给越来越多的用户,它正在收集反馈,修复小问题,并监控指标,以确保其建议实际上对野外的安全漏洞有用。与此同时,GitHub正在将自动修复扩展到更多语言和用例,并改进用户体验。