如何为软件工程优化ChatGPT和其他大模型

news2024/11/18 17:35:37

自ChatGPT发布以来,上至企业、下到软件工程师都在致力于寻找如何通过使用大语言模型(LLM),来提高工作效率的方法。虽然大多数LLM都能够为复杂的问题生成代码示例,但是具体如何将其集成到软件开发环境的过程,却各有不同。

在最近的一项研究中,来自查尔姆斯理工大学(Chalmers University of Technology)、哥德堡大学(University of Gothenburg)和瑞典RISE研究所的研究团队,对10家不同公司的24名专业软件工程师进行了为期一周的跟踪调查。这些工程师在日常工作中都会使用到ChatGPT。他们的研究结果提供了一些有关软件工程师如何在软件工程中使用ChatGPT的任务类型、以及影响其使用体验等方面的重要因素与推断。总的说来,这些发现对于那些希望将LLM纳入日常工作流程的企业来说,具有非常重要的意义。

ChatGPT的软件工程任务

这项研究包括了对ChatGPT 3.5各个聊天会话的调查。由结果可知,软件工程师主要会在如下三类任务中使用LLM:

  • 代码生成和修改:该类别也被研究人员称为“工件操控(Artifact Manipulation)”,其中包括了:生成、重构和修复代码等任务。在与ChatGPT的交互中,工件操控约占三分之一。此类交互通常较短,毕竟用户要么很快地收到了预期结果,要么会直接放弃尝试。然而,当用户持续尝试让ChatGPT提供源代码,或纠正其生成的方案中的错误时,双方就会出现较长的对话。
  • 专家咨询:工程师经常会向ChatGPT寻求资源、指导、建议或详细信息,以协助其完成工作任务。此类互动的目的不是为了获得具体的解决方案,而是旨在获得正确方向的提示。因此,在这些互动中,ChatGPT充当了一个虚拟同事的角色,或是比搜索互联网更为有效的替代方式。而在参与研究的软件工程师的互动中,此类咨询的占比为62%。
  • 指导和学习:软件工程师有时会使用ChatGPT获取与其工作任务相关的、更广泛的理论或实践知识。虽然此类对话只占整体互动的一小部分,但是会经常涉及到多个后续跟进的询问,以理清之前的答案。
优缺点

ChatGPT的最大优势在于能够帮助软件工程师学习到新的概念,毕竟与LLM交流所获得的专业知识,要比在互联网上搜索资源容易得多。

这项研究的参与者还使用了ChatGPT,来协助他们进行“头脑风暴式”会话。也就是说,在软件的开发、规划和设计阶段,LLM可以协助生成多种可供选择、且非常有价值的方案与想法。

在另一方面,一些参与者表示他们并不信任AI生成式工具,尤其是在处理公司特定的复杂任务时。这种不信任往往会导致他们对于ChatGPT所提供的任何建议,都要进行彻底的反复检查,进而使得结果可能适得其反。

另一个重要的问题是缺乏背景。由于LLM并不了解公司的具体信息,因此使用者需要为之提供相关的背景知识。否则,LLM在根据提示编译和提供上下文时,会增加“摩擦”,进而影响用户的使用体验。当然,在某些情况下,出于隐私考虑和公司政策,工程师确实无法共享详细的信息,这就可能会导致交互的不完整,甚至引发挫败感。

使用ChatGPT的第三个重要缺点在于减少了团队的交流和专注度。这往往在其他研究中较少被提及。参与者有时会直接使用聊天机器人,来回答各种问题。而这些问题其实本应由他们的同事来回答,才更为妥当且全面。同时,ChatGPT可能会降低使用者的专注度,毕竟软件工程师可能会花费更多的时间去调整提示,以生成完美的代码,而不愿自行修复略有缺陷的输出。

这对企业意味着什么?

作为一名软件工程师,您是否应该在日常的软件工程中利用LLM,来提高自己的工作效率,则完全取决于是否能够充分放大其优势并最小化其缺点。上述研究是在ChatGPT 3.5上进行的,而目前ChatGPT 3.5的性能已与GPT-4o和Claude 3 Opus等前沿模型的水平相差甚远。当前的模型拥有更广泛的知识,并在防止幻觉和虚假信息方面也更胜一筹。

不过,在企业应用方面,一些涉及到上下文的特定问题,即使用到最前沿的模型也无法很好地解决。例如,无论模型接受了多少训练,它总会对公司内部的专有信息不甚了解。因此,在工程师与模型进行交互时,如果聊天界面能够自动向模型提供上下文信息,则将会对用户体验的提升起到关键性作用。目前,业界已有几种方法可以做到这一点,其中包括:检索增强生成(RAG),即上下文信息在发送到模型之前,会被自动添加到用户的提示中。另外,LLM还可以被集成到用户的IDE(集成开发环境)中,在回答问题的同时,自动使用代码和项目文件作为上下文。

另一个有待解决的问题是:隐私和数据共享限制。许多公司对于可与第三方共享的信息种类有着严格的规定。这可能会限制工程师与ChatGPT等LLM的互动。目前,一种变通的办法是使用诸如Llama 3之类的开放模型。与私有模型相比,此类开源社区已经取得了令人瞩目的进展。同时,您也可以在自己的服务器上运行它们,并将其集成到自己的基础架构中,以便确保数据永远不会离开您的组织。

此外,上述研究也提出了一点:工程师在提示模型时所投入的精力。鉴于使用者提出请求和下达指令的方式,对于LLM性能的影响较大,因此减少提示工程的摩擦,会有助于改善用户体验,节省工程师与LLM交互的时间。目前,Anthropic的“提示生成器(Prompt Generator”和DeepMind开发的自动优化提示技术--OPRO,都在此方面表现卓越。

最后,该研究还提到了通过将LLM整合到团队工作中,可以在一定程度上缓解由于使用ChatGPT所导致的讨论分散和聚焦不集中等问题。例如,作为一款新的企业级聊天应用,Glue能够将LLM作为代理添加到各种讨论线程中,从而让孤立的LLM体验,升级为将AI代理植入群组对话中的效果。

毫无疑问,LLM将成为软件工程的重要组成工具,而并非简单的替代品。为了最大限度地利用好这个“脚手架”,我们需要让它扬长避短,充分发挥其在互动与生产式方面的优势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1864012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024-6-26 石群电路-30

2024-6-26,星期三,10:38,天气:雨,心情:晴。今天没有什么事情发生,继续学习,加油!!!!! 今日观看了石群老师电路课程的视频…

有两个长方柱,其高、宽、长分别为12,20,25;10,14,20。求它们的体积。编写一个基于对象的程序,在类中用带参数的构造函数对数据成员初始化

在上一篇文章中的构造函数不带参数,在函数体中对数据成员赋初值。这种方式使该类的每一个对象的数据成员都得到同一组初值(例中各个对象的数据成员的初值均为0)。但有时用户希望对不同的对象赋予不同的初值,这时就无法使用上面的办法来解决了…

数字化工厂生产管理看板系统如何优化生产流程

在当今高度数字化的时代,制造业正经历着深刻的变革,数字化工厂生产管理看板系统作为一种创新的工具,正在为优化生产流程发挥着关键作用。 数字化工厂生产管理看板系统是一个集数据采集、分析、展示和决策支持于一体的综合性平台。生产管理看板…

第 7 章: 对象关系映射

在第 6 章中,我们大概了解了如何通过 JDBC 来进行简单的数据库操作。通过 SQL 来执行操作虽然不算复杂,但在面向对象的语言中,这类操作多少显得有些格格不入,毕竟我们都是在与“对象”打交道。把对象与关系型数据库关联起来&#…

手机定位技术全解析:原理、发展与应用

1. 引言 背景介绍 最近,神仙姐姐刘亦菲主演的电视剧《玫瑰的故事》中的一段情节引发了广泛讨论。剧中,方协文(丈夫)对玫瑰(妻子)的控制欲变本加厉,竟然偷偷在她的手机上安装监控软件&#xff…

软考《信息系统运行管理员》-1.1信息系统概述

1.1信息系统概述 信息的含义 信息是人们关心的事情的消息或知识 信息的分类 按产生信息的客体性质分: 自然信息:声、光、热、电等生物信息:遗传信息,生物体内、生物种群内的信息交流机器信息:自动控制系统社会信息…

一文详解:生产计划和排产管理怎么做?

通过阅读本文,你可以了解以下内容:1、生产计划的制定;2、排产的策略和方法;3、生产计划和排产管理实施;4、生产计划和排产管理的效果评估。 一、生产计划制定 生产计划的本质就是协调企业一切资源“低成本、高质量”…

多模态能力评估新篇章:MMStar引领大型视觉语言模型评估新标准

随着大模型(LLMs)的快速发展,将视觉模态整合进LLMs以提升模型的交互能力已成为研究的热点。这些大型视觉语言模型(LVLMs)不仅展现出强大的视觉感知和理解能力,还能够通过对话与用户互动,提供更丰…

QT QSlider控件-主介绍 触发函数常用函数

QSlider控件是Qt库中用于提供一个可拖动滑块以选择数值或范围的界面元素。它广泛应用于需要用户进行数值调节的场景,如音量控制、亮度调整等。 一、QAbstractSlider的6个信号量触发函数: 1、void actionTriggered (int action): 当滑块上的某个可定义动…

昇思25天学习打卡营第2天|MindSpore快速入门-张量

张量 Tensor 张量(Tensor)是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。 张量是一种特殊的数据结构,与数组和矩阵非常相似。张量&#x…

Simufact Additive增材制造支撑创建功能

增材制造工艺作为近年来制造行业的顶流,一直备受各行业关注。除了率先大范围展开增材制造应用的航空行业,在汽车、电子乃至医疗行业也都有了不俗的进展。深谙增材制造工艺的学者都直言:使用3D打印简单,但应用好比较难。那是因为这…

ArcGIS Pro三维空间分析、专题制图、遥感制图全流程系统教学

ESRI宣布:ArcGIS 10.8.2 是 ArcMap 的当前版本,在 2026 年 3 月 1 日之前将继续受支持。我们没有计划在 2021/22 年随 ArcGIS 版本一起发布 ArcMap 10.9.x。这意味着 10.8.x 系列将是 ArcMap 的最终版本系列,并将在 2026 年 3 月 1 日之前受支…

前端应熟知的各种宽度高度

目录 一、window对象- 浏览器对象模型 二、Document对象-文档对象模型 前端做项目时经常需要使用到各种宽度高度,可以从两个地方获得这些数据。 一、window对象- 浏览器对象模型 浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。 所有浏览…

收款机TTS语音芯片新方案:WT3000T8,双语合成流畅,字库解码多样!

发布时间:2024-06-26 09:20 浏览次数:88次 一:方案背景概述 随着科技的飞速发展,人工智能和语音识别技术在各个领域都得到了广泛应用。其中,文本转语音(TTS)技术以其独特的优势,在收…

基于matlab的图像灰度化与图像反白

1原理 2.1 图像灰度化原理 图像灰度化是将彩色图像转换为灰度图像的过程,使得每个像素点仅包含一个灰度值,从而简化了图像的复杂度。灰度化原理主要可以分为以下几种方法: 亮度平均法 原理:将图像中每个像素的RGB值的平均值作为…

mac 常用工具快捷键集合

一、vim 快捷键 1、移动光标 h j k l 左 下 上 右 箭头上 上移一行 箭头下 下移一行 0 跳至行首,不管有无缩进,就是跳到第0个字符 ^ 跳至行首的第一个字符 $ 跳至行尾 gg 跳至文首 G 调至文尾 5gg/5G 调至第5行w 跳到下一个字首,按标点或…

【C++】类和对象(六)

文章目录 二、static成员概念面试题一个题目 三、友元友元函数说明 友元类 四、内部类(了解)概念:注意:特性: 五、匿名对象 书接上回: 二、static成员 01_31 03 12 01 概念 声明为static的类成员称为类的静态成员,用…

已解决:SQL Server 2012评估期已过

解决方案如下: 第一步,打开2012版的安装中心,选择版本升级 参考路径: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2012\配置工具 第二步, 输入产品序列号(其他版本的请自…

C语言 | Leetcode C语言题解之第198题打家劫舍

题目&#xff1a; 题解&#xff1a; int rob(int* nums, int numsSize){// dp0: 不偷这个屋子能窃到的最高金额int dp0 0;// dp1: 偷这间屋子能窃到的最高金额int dp1 nums[0];for (int i 1; i < numsSize; i) {int dp0new fmax(dp0, dp1);int dp1new dp0 nums[i];dp…

【操作系统】操作系统发展简史

目录 1.前言 2.第一代&#xff08;1945~1955&#xff09;&#xff1a;真空管和穿孔卡片 3.第二代&#xff08;1955~1965&#xff09;&#xff1a;晶体管和批处理系统 4.第三代&#xff08;1965~1980&#xff09;&#xff1a;集成电路和多道程序设计 5.第四代&#xff08;1…