写点什么

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:447749

评论

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

问题排查 | 客户端突如其来的“白屏”等待

蚂蚁集团移动开发平台 mPaaS

html5 移动开发 mPaaS 离线包

Fluid 0.5 版本发布:开启数据集缓存在线弹性扩缩容之路

阿里巴巴云原生

容器 云原生 k8s 分布式数据库 调度

一气之下开发了个群聊机器人

诡途

Python 办公自动化 群聊机器人

手把手教学基于深度学习的遥感影像倾斜框算法训练与分析

cv君

人工智能 深度学习 AI 智能 视觉

如何优化管理,打造高效的技术团队?

有只小耳朵

团队管理 技术管理 数字化转型

实时 摔倒识别 /运动分析/打架等异常行为识别/控制手势识别等所有行为识别全家桶 原理 + 代码 + 数据+ 模型 开源!

cv君

AI 目标检测 视频理解 引航计划

python 爬虫之selenium可视化爬虫

诡途

Python 爬虫 selenium

揭秘盒马鲜生,如何打破收益增长天花板!

博文视点Broadview

Flink架构体系

大数据技术指南

大数据 flink 28天写作 3月日更

致远互联低代码平台让项目管理“秒变”数字化

爱极客侠

数据分析实战项目-蛋壳公寓投诉分析

诡途

Python 数据分析 蛋壳公寓

最全模型效果评估报告上线,百度EasyDL助力模型效果快速优化

百度大脑

飞桨 EasyDL

在这里,每一行代码都需要被认真对待

DT极客

加入即可服务1.83亿个家!海尔智家让开发者面向亿万家庭

DT极客

飞桨中国行首站重庆 解读产业 智造

百度大脑

百度 飞桨 中关村智酷

寻找被遗忘的勇气(二十二)

Changing Lin

3月日更

终于有阿里高工把SpringBoot+SpringCloud+Docker+MQ整合在一起了

Java架构追梦

Java 架构 微服务 springboot SpringCloud

Spark常见的故障排除

五分钟学大数据

大数据 spark 28天写作 3月日更

安卓最全面试考点与面试技巧,大厂直通车!

欢喜学安卓

android 程序员 面试 移动开发

【活动回顾】5G时代的直播,将带来哪些低延迟体验

ZEGO即构

启动延时缩短 50%-80%,函数计算发布镜像加速功能

阿里巴巴云原生

Docker 容器 开发者 云原生 存储

【遇见Doris】基于Apache Doris的小米增长分析平台实践

ApacheDoris

数据产品经理实战-由BI到业务洞察

第519区

大数据 数据产品 数据分析体系

C 语言性能优化:循环展开

1

编程 程序员 性能优化 C语言 循环展开

最全面试考点与面试技巧,面试必问

欢喜学安卓

android 程序员 面试 移动开发

一套亿级用户的IM架构技术干货(下篇):可靠性、有序性、弱网优化等

JackJiang

2021年ONNX开发者大会即将召开

百度大脑

百度飞桨 ONNX

飞桨刷新分子性质预测榜单,助力AI药物研发

百度大脑

AI 药物研发 百度飞桨

【疑难杂症】关于Github私有库问题

Sher10ck

GitHub pycharm

入选Gartner全球AI报告,阿里云解读AI工程化的三大基础能力

阿里云大数据AI技术

机器学习 AI Gartner

智能家居操作系统谁最强?海尔智家独有“智家大脑”行业最领先

DT极客

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