【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

GitHub 工程师分享将 Copilot 引入工程实践的方法

  • 2023-08-31
    北京
  • 本文字数:1097 字

    阅读完需:约 4 分钟

GitHub工程师分享将 Copilot 引入工程实践的方法

GitHub 工程师 Albert Ziegler 和 John Berryman 表示,不需要拥有机器学习或生成式 AI 博士学位就可以创建有效的基于 LLM 的应用程序,提示词工程是关键。他们还分享了他们在开发GitHub Copilot过程中所积累的经验

 

LLM 的崛起为那些希望在应用程序中利用生成式 AI 的从业者创造了一个全新的领域。这个领域被称为提示词工程,专注于如何指导 LLM 产生不属于其预训练部分内容的输出。人们可以通过提示词工程定义包含足够多上下文信息的提示词,让 LLM 产生可能最佳的输出。

 

上下文信息存在于用户领域,并且应该与任务规范一起被包含在提示词中,而任务规范存在于不确定的文档领域,在那里,LLM 只是一种可以预测下一个标记的预测器。如果这两个领域之间没有被正确映射,例如,没有在提示词中告知响应应该被作为“一个有用的 IT 专家”生成的内容返回,那么返回的响应可能会很一般。

 

Ziegler 和 Berryman 表示,对于 Copilot 来说,有用的上下文信息可能包括语言、文件路径、光标上方的文本、光标下方的文本、其他文件中的文本,等等。

 

用户领域和文档领域之间的转换正是提示词工程所覆盖的领域——由于我们已经在 GitHub Copilot 项目上工作了两年多,所以在这个过程中发现了一些模式。

 

总的来说,他们建议的方法是基于一系列步骤的。首先,你需要收集所有相关上下文(也就是上下文收集),可能包含所有的源文件。在大多数情况下,这些上下文信息的量将超出可用的 LLM 窗口,因此你需要通过将其分割成较小不重叠的块。接下来的两个阶段是找到一种自然的方式将上下文信息注入到 LLM 文档中,例如,对于 Copilot 来说就是使用代码注释,并根据其相关性确定要包含的片段的优先级。如果你有多个 LLM 模型可选择,那么另一个阶段是决定使用哪个模型进行推理。最后一步是定义一个停止标准,让 LLM 知道何时完成,例如,当输出换行符时。

 

实现提示词工程有很多种方法。最近,微软开源了LMOps工具包,其中包含了Promptist(一种用于优化用户文本输入以生成图像的工具)和结构化提示词(一种用于在少量学习提示词中包含更多样本来生成文本的技术)。

 

尽管我们可以推测 LLM 将发展到不再需要提示词工程的地步,但 OpenAI 工程师 Sherwin Wu 在上一次纽约 QCon 大会的“生产环境中的 LLM”小组讨论会上指出,至少在未来五年内仍然可能需要它

 

如果你对 GitHub 在提示词工程方面所采用的方法感兴趣,请不要错过这篇完整的文章,它涵盖了比本文更多的细节内容。

 

原文链接

https://www.infoq.com/news/2023/07/copilot-prompt-engineering/


相关阅读:

Copilot Chat 推出公开测试版,GitHub:花费数月的单元测试成为过去

集成 GPT-4 的编程神器来了,GitHub 发布 Copilot X:编程 30 年,突然就不需要手敲代码了?

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2023-08-31 08:005126

评论

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

低代码:数字化转型趋势下的快速开发方式

互联网工科生

低代码 数字化

Nginx配置Websocket

EquatorCoco

HTTP websocket 协议解析

C++ LibCurl实现Web指纹识别

不在线第一只蜗牛

c++ 编程 web socket LibC

2023中关村论坛系列活动——英特尔智能医疗健康创新合作论坛在京成功举办

E科讯

HashMap HashTable ConcurrentMap 中key value是否可以为null

javaNice

Java

AppLink结合金蝶云星空作订单信息同步流程

RestCloud

零代码 APPlink

2023-11-22:用go语言,给你一个长度为 n 下标从 0 开始的整数数组 nums。 它包含 1 到 n 的所有数字,请你返回上升四元组的数目。 如果一个四元组 (i, j, k, l) 满足

福大大架构师每日一题

福大大架构师每日一题

低代码PaaS开发平台

树上有只程序猿

低代码 PaaS 私有化部署

埃森哲使用 Amazon CodeWhisperer 助力开发人员提高工作效率

亚马逊云科技 (Amazon Web Services)

Java Python 人工智能 S3 Amazon CodeWhisperer

2023 IoTDB Summit 应用实例议题详解 | 报名到场即送卫衣!

Apache IoTDB

以太坊铭文聚合交易平台 Scorpio,铭文爆发的新推手?

股市老人

2024年企业软件定制开发必须了解的4大趋势

SoFlu软件机器人

数字化转型 企业 定制软件开发 技术服务

让公有云服务“宁安如梦”的“定心丸”在哪里?

轶天下事

阿里云崩了:企业未来该怎么选择云厂商?

轶天下事

华为数字治理经验,首次披露!

轶天下事

智能监控,高效观测 IT 系统瓶颈

观测云

IT 智能监控

专访|OpenTiny 开源社区 常浩:完成比完美更重要

OpenTiny社区

开源 Vue 前端 富文本编辑器

开源之夏 2023 | Databend 社区项目总结与分享

Databend

当前各类厂商纷纷入局低代码赛道,关于低代码未来的发展前景如何?

代码生成器研究

软件测试/测试开发丨人工智能时代软件测试的变化

测试人

人工智能 软件测试

企业如何选择一款高效的ETL工具

RestCloud

ETL

国际版Amazon Lightsail的功能解析

穿过生命散发芬芳

AWS Lightsail 轻量级服务器

还在为考试重题、错题而头疼?大可不必!时习知新功能了解一下!

轶天下事

乌卡时代确定性稀缺,企业多云战略最需看中什么?

轶天下事

前言 | AI工程化部署

AIWeker

AI AI工程化部署

MySQL大表设计

EquatorCoco

MySQL 数据库 数据库云

编程到底难在哪里?

代码生成器研究

低代码究竟能干什么?

代码生成器研究

透过一台电视,看到万家星闪

脑极体

通信

编程新手如何提高编程能力?

代码生成器研究

程序员指南|学会与大模型相处,提升个人开发效率

SoFlu软件机器人

程序员 软件开发 人工智能「 ChatGPT

GitHub工程师分享将 Copilot 引入工程实践的方法_生成式 AI_Sergio De Simone_InfoQ精选文章