写点什么

GitHub 基于大语言模型构建 Copilot 的经验和教训

作者:Matt Saunders

  • 2023-10-10
    北京
  • 本文字数:1375 字

    阅读完需:约 5 分钟

大小:748.24K时长:04:15
GitHub基于大语言模型构建Copilot的经验和教训

GitHub在一篇文章中分享了他们在构建和扩展GitHub Copilot——一个使用大语言模型的企业应用——过程中所学到的经验教训。


在 GitHub 的一篇博文中,GitHub 的 AI 产品负责人Shuyin Zhao描述了他们如何在三年多的时间里历经三个阶段——“Find it”、“Nail it”和“Scale it”——成功推出了 GitHub Copilot。


在“Find it”阶段,他们专注于找到 AI 可以有效解决的问题,通过一种足够专注的方式快速推向市场,并且足以产生影响。


这包括确定到底是为了谁而解决问题——帮助开发人员更快地编写代码,减少上下文切换。此外,他们只关注SDLC的一部分:IDE中的编码功能,并结合当下的 LLM 的能力。这样他们就可以专注于让工具提供代码建议,而不是生成全部代码。他们还致力于确保他们所做的是对现有工具进行增强,不要求开发人员改变已有的工作流程。


“在设计产品时,我们不仅要考虑输出需要人类进行评估的模型,也要考虑正在学习如何与 AI 互动的人类。”


——Idan Gazit,GitHub Next 高级研发总监


在“Nail it”阶段,他们基于从A/B测试中获得的真实用户反馈进行迭代式产品开发。他们进行快速迭代、试错和学习。在使用 Copilot 的 Web 接口进行了简短的实验后,他们将重点转向了 IDE,以减少在编辑器和 Web 浏览器之间切换,并让 AI 在后台运行。在进一步的迭代中,通过观察开发人员在编码时打开的多个 IDE 选项卡,GitHub Copilot 可以同时处理多个文件。


随着生成式 AI 的迅速发展,他们开始重新审视过去所做出的决策,技术的进步和用户对它的熟悉程度有时会让过去的决策变得过时。于是,提供交互式聊天的想法开始活跃起来,他们需要基于沉没成本谬论改变决策,例如,当大语言模型的进步允许一个模型处理多种语言时,就需要改变为每种语言构建 AI 模型的想法。


最后,在“Scale it”阶段,他们致力于确保 AI 模型结果的一致性、管理用户反馈,并定义了关键性能指标,以实现应用程序的普遍可用性(GA)。他们还考虑了安全性和 AI 责任问题,使用过滤器来避免为用户建议不安全或具有冒犯性的代码。


改进质量和可靠性方面的工作包括缓解大语言模型的幻觉,即答案可能是不可预测的,并且每次查询都有所不同。解决这个问题的策略包括修改发送给大语言模型的参数,以减少响应的随机性,并缓存频繁的响应以减少变化和提高性能。


GitHub 使用等待列表来管理技术预览版的早期用户。这意味着他们可以获得来自一小群早期采用者的评论和反馈。对真实用户反馈的深入分析使得 GitHub 团队能够识别出有问题的更新,并改进产品的关键性能指标,例如开发人员保留了多少由 Copilot 生成的代码。


最后,他们确保开发人员生成的代码是安全的,并通过过滤器来拒绝可能引入安全问题(如 SQL 注入)的代码建议。社区也提出了一些问题,例如 Copilot 的代码建议与公开的代码相重叠可能会产生许可问题或其他影响。他们为此提供了一个代码参考工具,帮助开发人员做出明智的选择。


在市场策略方面,他们向一些有影响力的社区成员展示了技术预览版,并且面向的是个人用户而不是企业。这有助于在正式发布时获得广泛的支持,从而促使企业采用它。


关键在于展示专注于特定问题的重要性、整合实验结果和用户反馈,以及在应用扩展时优先考虑用户需求。


由于生成式 AI 的采用仍处于早起阶段,GitHub 也在密切关注市场对生成式 AI 工具的需求。感兴趣的读者可在 GitHub 的博客上阅读全文


原文链接

https://www.infoq.com/news/2023/10/github-copilot-lessons/

2023-10-10 09:448014

评论

发布
暂无评论
发现更多内容

VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS HPE (慧与) 定制版

sysin

esxi

研发流程走出低谷,靠老一套肯定不行了

禅道项目管理

运维 开发 研发流程 禅道项目管理软件 禅道DevOps解决方案

【YashanDB 知识库】Mybatis-Plus 如何正确配置分页?Oracle 和 MySQL 写法都能用!

数据库砖家

数据库

捷报!天翼云CTyunOS系统入选中央国家机关采购名单!

天翼云开发者社区

操作系统 天翼云 CTyunOS系统

原生 Android App 开发的优势

北京木奇移动技术有限公司

软件外包公司 APP外包公司 APP开发公司

如何检测网站是否支持IPv6?有哪些指标?

防火墙后吃泡面

全新 Graviton4 实例,提升 Valkey 性价比

亚马逊云科技 (Amazon Web Services)

天翼云助力中国交建,引领交通基建迈入数智新时代!

天翼云开发者社区

交通 大模型 数智化转型

LED屏幕天花板安装:打造炫酷空间的实用指南

Dylan

商业 LED LED display LED显示屏 LED屏幕

vivo 互联网研发效能关键技术与实践

vivo互联网技术

DevOps 研发效能 CI/CD 测试工具

CodeBuddy 开发者福音!在线简历0元搞定,再也不怕面试翻车!

不惑

CodeBuddy

VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS ConnectX-3 网卡定制版

sysin

esxi

黑龙江等保:跨省或全国联网运行的网络系统如何选择备案地?

黑龙江陆陆信息测评部

成功案例丨从草图到鞍座:用先进的发泡成型仿真技术变革鞍座制造

Altair RapidMiner

仿真 CAE Inspire 工业仿真 发泡成型

YashanDB|YMP 报错“OCI 版本为空或架构不一致”?一文快速排查

数据库砖家

数据库

VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动

sysin

esxi

CST如何快速获得微带线或带状线简单分析模型

思茂信息

cst CST软件 CST Studio Suite

【YashanDB 知识库】JDBC 查询 date 字段不返回时分秒?别只用 getString!

数据库砖家

数据库

原生 iOS App 开发的优势

北京木奇移动技术有限公司

软件外包公司 APP外包 APP开发公司

HyperMesh视觉控制

智造软件

仿真软件 Hypermesh hyperworks

YashanDB 启动报错:control file 版本不兼容,怎么处理?

数据库砖家

数据库

快手上线鸿蒙应用高性能解决方案:数据反序列化性能提升90%

HarmonyOS开发者

YashanDB 单机部署时报错:prohibited operation?

数据库砖家

数据库

《算法导论(第4版)》阅读笔记:p59-p75

codists

算法

YashanDB 部署报错:YAS-05721 节点名非法怎么办?

数据库砖家

数据库

Mybatis-Plus 集成 YashanDB 时分页功能怎么配置?

数据库砖家

数据库

Uniapp开发鸿蒙购物项目教程之样式选择器

幽蓝计划

等保测评公司:备案证明

黑龙江陆陆信息测评部

等保测评:五级等保系统?

黑龙江陆陆信息测评部

一物一码赋能智能制造:MES如何实现生产全流程数字化追溯

万界星空科技

mes 一物一码 二维码系统 产品二维码管理 二维码追溯

GitHub基于大语言模型构建Copilot的经验和教训_生成式 AI_InfoQ精选文章