如何用大语言模型提高工作效率

软件工程师对大型语言模型(LLM)的看法存在严重分歧。许多人认为它们是迄今为止对该行业最具变革性的技术。另一些人则认为它们不过是又一个炒作过度的产品:想想很兴奋,但最终对从事严肃工作的专业人士来说毫无用处。

就我个人而言,我觉得我从人工智能中获得了很大的价值。我认为很多没有这种感觉的人都是“用错了方法”:也就是说,他们没有以最有帮助的方式使用语言模型。在这篇文章中,我将列出我作为一名高级软件工程师,在日常工作中经常使用人工智能的许多方式。

编写生产代码

我每次编写代码都会使用Copilot的代码补全功能¹。我接受的几乎所有补全都是完整的样板代码(例如,填写函数参数或类型)。我很少让Copilot为我生成业务逻辑,但这种情况偶尔也会发生。在我擅长的领域(例如,Ruby on Rails),我有信心我能比LLM做得更好。它只是一个(非常好的)自动完成工具。

但是,我并非总是在我擅长的领域工作。我经常发现自己需要在不太熟悉的领域进行小的战术性更改(例如,Golang服务或C库)。我知道这些语言的语法,并且用它们写过个人项目,但我不太确定什么是惯用的。在这些情况下,我更多地依赖Copilot。通常,我会启用o1模型的Copilot聊天,粘贴我的代码,然后直接询问“这是惯用的C语言吗?”

像这样更多地依赖LLM是有风险的,因为我不知道自己错过了什么。它基本上让我能够在所有领域都以一个聪明的实习生的水平进行操作。我必须像一个明智的实习生一样行事,并确保该领域的主题专家审查我的更改。但即便如此,我认为能够快速进行这类战术性更改是非常有价值的。

编写一次性代码

当我编写永远不会投入生产的代码时,我会更自由地使用LLM。例如,我最近做了一项研究,需要从API中提取大量公共数据,对其进行分类,并使用一系列快速正则表达式来近似该分类。所有这些代码都只在我的笔记本电脑上运行,我使用LLM编写了几乎所有代码:提取数据的代码,运行单独的LLM进行分类的代码,对其进行标记并测量标记频率并对其进行评分的代码,等等。

LLM擅长编写可以工作但无需维护的代码。仅运行一次(例如,用于研究)的非生产代码非常适合这种情况。我想说,我在这里使用LLM意味着我完成这项工作的速度比没有帮助的情况下快2到4倍。

学习新领域

我用LLM做的最有用的事情可能是把它当作一个随叫随到的导师来学习新领域。例如,上周末我学习了Unity的基础知识,并大量依赖ChatGPT-4o。使用LLM学习的妙处在于你可以提问:不仅是“X是如何工作的”,还可以提出后续问题,例如“X与Y有什么关系”。更重要的是,你可以问“这是对的吗”之类的问题。我经常写一些我认为我学到的东西,然后反馈给LLM,它会指出我哪里是对的,哪里仍然存在误解。我问LLM很多问题。

当我学习新东西时,我会做很多笔记。能够直接复制粘贴我所有的笔记并让LLM进行审查真是太棒了。

幻觉呢?说实话,自从GPT-3.5以来,我没有注意到ChatGPT或Claude出现太多幻觉。我尝试学习的大多数领域都非常容易理解(只是我不懂),而且根据我的经验,这意味着出现幻觉的可能性非常低。我从未遇到过从LLM那里学到的东西最终被证明是完全错误或产生幻觉的情况。

最后的bug修复手段

我不会经常这样做,但有时当我真的卡在bug上时,我会将整个文件或多个文件附加到Copilot聊天中,粘贴错误消息,然后直接问“你能帮忙吗?”

我不这样做是因为我认为我目前比目前的人工智能模型更擅长bug查找。几乎所有时候,Copilot(或者Claude,对于一些个人项目)都会感到困惑。但如果我真的卡住了,尝试一下还是值得的,以防万一,因为它非常省力。我记得有两三次我只是错过了一些细微的行为,而LLM抓住了,这为我节省了很多时间。

因为LLM在这方面还不太擅长,所以我不会花很多时间迭代或试图让LLM摆脱困境。我只是尝试一次,看看它是否能解决问题。

校对拼写错误和逻辑错误

我写了相当多的英文文档:ADR、技术摘要、内部帖子等等。我从不允许LLM为我写这些东西。部分原因是我认为我写得比目前的LLM更清楚。部分原因是我对ChatGPT的写作风格普遍反感。

我偶尔会做的是将草稿输入LLM并寻求反馈。LLM非常擅长捕捉拼写错误,有时会提出一些有趣的观点,从而成为我草稿的编辑内容。

像bug修复一样,我不会在这样做时进行迭代——我只是请求一轮反馈。通常LLM会提供一些文体反馈,我总是忽略这些反馈。

我将LLM用于以下任务:

  • • 使用Copilot进行智能自动完成

  • • 在我不熟悉的领域进行小的战术性更改(始终由SME审查)

  • • 编写大量一次性使用的研究代码

  • • 提出大量问题以学习新主题(例如,Unity游戏引擎)

  • • 最后的bug修复手段,以防万一它能立即解决问题

  • • 对长篇英文交流进行宏观层面的校对

我(目前)不将LLM用于以下任务:

  • • 在我熟悉的领域为我编写完整的PR

  • • 编写ADR或其他技术交流

  • • 在大型代码库中进行研究并找出事情是如何完成的

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

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

相关文章

基于STM32校车安全监控系统的设计(论文+源码+实物

1 方案设计 根据设计要求,本设计校车安全监控系统的设计以STM32F103单片机作为主控制器,通过MQ传感器实现异常气体的检测,当异常气体浓度异常时会通过继电器打开车窗进行通风,以保证舒适的环境,通过红外传感器用于监测…

Vite 打包原理

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

归一化与伪彩:LabVIEW图像处理的区别

在LabVIEW的图像处理领域,归一化(Normalization)和伪彩(Pseudo-coloring)是两个不同的概念,虽然它们都涉及图像像素值的调整,但目的和实现方式截然不同。归一化用于调整像素值的范围&#xff0c…

MySQL8.0实现MHA高可用

一、简介 MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能。MHA 在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的master 节点&#xf…

记录 | WPF基础学习登录界面制作

目录 前言一、普通方式Step1 创建项目Step2 设计布局Step3 对剩余布局进行内容填充可执行代码下载 Step4 编写点击事件Step5 创建新WPF窗口Step6 简单写点Index内容Step7 跳转到Index当前代码下载 二、绑定方式绑定用户名【单向绑定】双向绑定代码提供 三、MVVM方式1&#xff1…

vivado 7 系列器件时钟

7 系列器件时钟 注释: 本章节以 Virtex -7 时钟源为例。 Virtex-6 的时钟资源与此类似。如果使用不同的架构,请参阅有关器件的 《时 钟资源指南》 [ 参照 40] 。 Virtex-6 和 Virtex-7 器件内含 32 个称为 BUFG 的全局时钟缓存。 BUFG 可满…

无须付费,安装即是完全版!

不知道大家有没有遇到过不小心删掉了电脑上超重要的文件,然后急得像热锅上的蚂蚁? 别担心,今天给大家带来一款超给力的数据恢复软件,简直就是拯救文件的“救星”! 数据恢复 专业的恢复数据软件 这款软件的界面设计得特…

【图片合并转换PDF】如何将每个文件夹下的图片转化成PDF并合并成一个文件?下面基于C++的方式教你实现

医院在为患者进行诊断和治疗过程中,会产生大量的医学影像图片,如 X 光片、CT 扫描图、MRI 图像等。这些图片通常会按照检查时间或者检查项目存放在不同的文件夹中。为了方便医生查阅和患者病历的长期保存,需要将每个患者文件夹下的图片合并成…

Racecar Gym 总结

1.Racecar Gym 简介 Racecar Gym 是一个基于 PyBullet 物理引擎 的自动驾驶仿真平台,提供 Gymnasium(OpenAI Gym) 接口,主要用于强化学习(Reinforcement Learning, RL)、多智能体竞速(Multi-Ag…

基于微信小程序的医院预约挂号系统的设计与实现

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…

智体链:大语言模型协作完成长上下文任务

25年1月来自Penn State U和谷歌云的论文“Chain of Agents: Large Language Models Collaborating on Long-Context Tasks”。 解决有效处理长上下文的挑战已成为大语言模型 (LLM) 的关键问题。出现了两种常见策略:1)减少输入长度,例如通过检…

java s7接收Byte字节,接收word转16位二进制

1图: 2.图: try {List list getNameList();//接收base64S7Connector s7Connector S7ConnectorFactory.buildTCPConnector().withHost("192.168.46.52").withPort(102).withTimeout(1000) //连接超时时间.withRack(0).withSlot(3).build()…

机器学习在癌症分子亚型分类中的应用

学习笔记:机器学习在癌症分子亚型分类中的应用——Cancer Cell 研究解析 1. 文章基本信息 标题:Classification of non-TCGA cancer samples to TCGA molecular subtypes using machine learning发表期刊:Cancer Cell发表时间:20…

Redis --- 使用HyperLogLog实现UV(访客量)

UV 和 PV 是网站或应用数据分析中的常用指标,用于衡量用户活跃度和页面访问量。 UV (Unique Visitor 独立访客): 指的是在一定时间内访问过网站或应用的独立用户数量。通常根据用户的 IP 地址、Cookies 或用户 ID 等来唯一标识一个用户。示例&#xff1…

大学资产管理系统中的下载功能设计与实现

大学资产管理系统是高校信息化建设的重要组成部分,它负责记录和管理学校内所有固定资产的信息。随着信息技术的发展,下载功能成为提高资产管理效率的关键环节之一。 系统架构的设计是实现下载功能的基础。一个良好的系统架构能够确保数据的高效传输和存储…

Vue 3 中的 el-tooltip 详解:语法、示例及与其他框架对比

目录 前言1. 基本知识2. 实战Demo 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 1. 基本知识 el-tooltip 是 Element Plus(Vue 3 组件库)中的一个用于提示的组件,它可以在…

Day 31 卡玛笔记

这是基于代码随想录的每日打卡 491. 非递减子序列 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等&#xff0…

docker /var/lib/docker/overlay2目录把磁盘空间占满问题

1、查看服务器磁盘空间 df -h果然100%了,docker系统文件把磁盘空间占满了。 2、进入overlay2目录,查找那个容器工作目录占用最高 cd /var/lib/docker/overlay2du -h --max-depth1详见下图 好家伙占用110G!复制目录名称2c3c48ccac533c5d4a366d45a19bb9…

02vue3实战-----项目目录详解

02vue3实战-----项目目录详解 1.目录完整结构2.extensions.json文件3.node_modules文件夹4.public文件夹5.src文件夹6.文件.gitignore7.文件env.d.ts8.文件index.html9.文件package-lock.json和文件package.json10.文件README.md11.文件vite.config.ts12.文件tsconfig.json和文…

【蓝桥杯嵌入式】4_key:单击+长按+双击

全部代码网盘自取 链接:https://pan.baidu.com/s/1PX2NCQxnADxYBQx5CsOgPA?pwd3ii2 提取码:3ii2 1、电路图 将4个按键的引脚设置为input,并将初始状态设置为Pull-up(上拉输入) 为解决按键抖动的问题,我们…