写点什么

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 年,突然就不需要手敲代码了?

公众号推荐:

AGI 概念引发热议。那么 AGI 究竟是什么?技术架构来看又包括哪些?AI Agent 如何助力人工智能走向 AGI 时代?现阶段营销、金融、教育、零售、企服等行业场景下,AGI应用程度如何?有哪些典型应用案例了吗?以上问题的回答尽在《中国AGI市场发展研究报告 2024》,欢迎大家扫码关注「AI前线」公众号,回复「AGI」领取。

2023-08-31 08:005164

评论

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

[整理]CI持续集成-基于Github Action

小鑫同学

前端 Node 10月月更

变量与常量介绍笔记

魏铁锤

10月月更

桌面端开发(Tauri)开启第一篇

小鑫同学

前端 Node 10月月更

声网高纯:领域和方向要聚焦,用最专业的方法做最专业的事丨人物专访

声网

人工智能 音视频

2022-10-13:给定一个只包含三种字符的字符串:( 、) 和 *, 写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则: 任何左括号 ( 必须有相应的右括号 )。 任何右括号 )

福大大架构师每日一题

算法 rust 福大大

「Hive进阶篇」一、详解存储格式及压缩方式

大数据阶梯之路

大数据 hive 面试 数仓

H5加载Android本地路径图片

小鑫同学

前端 Node 10月月更

Express 基于 Node.js 平台,快速、开放、极简的 Web 开发框架

小鑫同学

前端 Node 10月月更

cstdio的源码学习分析10-格式化输入输出函数fprintf---宏定义/辅助函数分析01

桑榆

源码刨析 10月月更 C++

「Hive进阶篇」二、万字长文超详述hive企业级优化

大数据阶梯之路

大数据 hive 面试 hive优化

【玩转云函数】打通Github到企微的消息通知

小鑫同学

前端 Node 10月月更

开箱体验Rust,Come on!!!

小鑫同学

前端 Node 10月月更

数据导出Excel实战

卢卡多多

Excel 数据导出 10月月更

Java历史与环境搭建笔记

魏铁锤

10月月更

跟着卷卷龙一起学Camera--一亿像素的好坏03

卷卷龙

ISP camera 10月月更

最火的物联网技术MQTT,其服务质量QoS的三个级别分别是什么意思,本文一定对您有帮助!

wljslmz

物联网 mqtt QoS 10月月更

混合云中合规管理的思考

HummerCloud

云安全 混合云 安全合规检测 10月月更

jsbridge-n22使用指南

小鑫同学

前端 Node 10月月更

跟着卷卷龙一起学Camera--一亿像素的好坏01

卷卷龙

ISP camera 10月月更

Java编程之数组

魏铁锤

10月月更

Sass入门使用指南

小鑫同学

前端 Node 10月月更

【从0到1学算法】3.折半查找

Geek_65222d

10月月更

MTPuTTY配置ssh连接Gitlab

Yeats_Liao

后端 Java core 10月月更

架构实战营模块 3 作业

陌生流云

架构实战营

微信朋友圈架构设计

风行

架构 架构实战训练营9期

算法策略的主动选择,拒绝if...else...(策略模式+简单工厂模式)

小鑫同学

前端 Node 10月月更

ReactNative-Android插件

小鑫同学

前端 Node 10月月更

跟着卷卷龙一起学Camera--一亿像素的好坏02

卷卷龙

ISP camera 10月月更

【一Go到底】第十四天---break快速入门

指剑

Go golang 10月月更

JavaMail 使用POP3/SMTP服务发送QQ邮件

Yeats_Liao

后端 Java core 10月月更

Visual Studio Code 安装教程附插件推荐

Yeats_Liao

后端 Java core 10月月更

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