生成式AI现已革新性地改变了编程方法。Jon Udell依据自己的经历,总结出了怎么与大言语模型帮手进行高效合作的办法。
译自7 Guiding Principles for Working with LLMs,作者 Jon Udell。
在《以网站的方法考虑的七种办法》中,我概括总结了一套形式,这些形式来源于我作为优先面向网络的作家和软件开发人员的经历。其思想是(而且仍然是),网络架构 —— 被Roy Fielding描述为一个互联网规划的分布式超媒体体系 —— 展现出你想要保持一致的粒度。你不需求对TCP/IP或HTTP的底层有充分的了解就能够与网络的方向保持一致,可是你的确需求对更高层次的构造形成直觉: 超链接、结构化和非结构化的数据、可重用的组件与服务以及发布-订阅的通信形式。
同样,你不需求对构成大型言语模型中心的神经网络的底层了解,才能与该架构的方向保持一致。尽管我无法解说LLM是怎么作业的—能够说没有人能够解说—但我能够有效地运用它们,并开端整理一套辅导准则。以下是我的清单:
- 大声考虑
- 不要盲信,要求证明
- 运用助理团队
- 要求合唱式解说
- 外包形式识别
- 自动化转化
- 边做边学
1. 大声考虑
在《当橡皮鸭说话时》一文中,我描述了运用LLM的最佳方法之一: 只要与它们对话@“橡皮鸭”一词来自软件工程:
橡皮鸭调试(或橡皮鸭法)是经过用口头或书面自然言语论述问题来调试代码的一种办法。这个名称来源于《程序员实用主义》一书中的一个故事,其间一个程序员会随身携带一个橡皮鸭,并经过逼迫自己一行一行地向鸭子解说代码来调试代码。 —Wikipedia
当编程时,我会与LLM讨论代码惯用法、库和配置战略。例如,今天我在协助一个在容器中运行Steampipe有困难的人。这成为我学习Docker中绑定装载和卷装载的时机,这是一个我之前并不清楚的话题。经过一番研讨后,我以为关于我或许想在容器运行时更改的配置文件运用绑定装载更合理,而关于数据库文件运用卷装载更合理(因为关于你不会修改的文件来说,这更高效)。
在LLM时代之前,这些想法会留在我的内心,因为尽管讲述你的作业总是有价值的,但自言自语感觉很尴尬。为什么不只跟搭档聊天呢?当然,你能够而且应该这样做,可是你需求注意何时以及多频繁地打断他们的作业流程。现在我能够将想法反弹给我的LLM助理团队。即便他们仅仅哑巴橡皮鸭,这也是有用的,但他们不是哑巴: 他们以协助我验证、否定或澄清想法的方法响应。
这个准则不只适用于技术主题。当我写散文时,我现在经常与LLM对话。例如,当我写这篇文章的导言时,我在“粒度”这个隐喻上挣扎。它感觉正确,但或许有点陈词滥调。我没有仅仅这样想,而是对ChatGPT和Claude都说了出来。他们都没有觉得有问题,也没有提出一个更有说服力的代替方案,所以我决议坚持这个隐喻。即便LLM没有说任何有用的话,它们也鼓舞你大声考虑。
2. 不要盲信,要求证明
这个规矩在技术范畴最容易运用。现在我运用LLM编写许多小的方便脚本,以简化或自动化使命。例如,我最近在制造屏幕录像时,需求一点JavaScript来平滑滚动我要演示的网页上的长项目标单。在“曩昔的时代”,这会牵扯到一个权衡:编写代码的收益是否值得支付的努力?现在我只需求请求代码,它一般能够直接运用或经过小的调整就能够作业,但成果很容易验证:它要么起作用,要么不起作用。
当然,有一种更严格的办法来验证软件:编写测验,以证明它做你期望的事情。我肯定不是唯一一个以前偷工减料测验的人。现在,我更有或许将测验用作验证LLM编写的代码的一种方法 —— 这是一个很好的鼓励!在某些状况下,你甚至能够将LLM置于自主的自我导向循环中,并调查它迭代以经过测验处理方案,这既令人难以置信又非常有趣。
在其他范畴,形式化验证LLM输出就比较困难。当我写文章时,我经常要求我的AI帮手为我的标题和副标题提出变化,但没有正确或过错的答案——这是对什么更好或更差的主观判别。
我从未依靠LLM供给现实信息,但如果你这样做,显着你应该核实你的现实。有些或许正确或过错,其他的则存在解说的空间。无论哪种状况,都没有任何代替人类判别的办法。而且,敦促LLM引用它们的来源从未有害。从历史上看,它们无法这样做,但随着它们取得经过实时网络查找增强训练数据的才能,依据你能够检查的来源支撑其响应变得更加可行。
3. 招募助理团队
我经常运用ChatGPT和Claude,以及依靠这些引擎中的一种或另一种的编码帮手。哪个更好?这取决于状况!在给定的状况下,我的任何帮手都或许是处理技术问题或激发有价值见地的那一个。而且常常比较成果很有用。当我想评价两种代替处理技术问题方案的权衡时,我邀请我的整个帮手团队对利弊进行评价。出现的一致并不具有约束力,而我终究决议推翻它,可是存在一致的现实——有几种互补的理由支撑——协助我使考虑更清晰,并为我的决议辩解。
在非技术方面,我最近给我的帮手一个我喜爱的书本的长列表,要求他们给出主张。以下是提示:
- 不要包括现已在列表中的作者的书,我或许现已读过它们,或者知道它们并决议不包括它们。
- 不要运用“更多这样的”规矩,我正在寻觅书本、流派或主题,这些会让我感兴趣,但与此列表中的书本显着无关。
- 用令人愉快和周到的书本给我惊喜,这些书本我会喜爱的。
我很赏识各种反响。这儿也有一致: ChatGPT和Claude都主张Sy Montgomery的《章鱼的魂灵(The Soul of an Octopus)》。现实上,我现已读过这本书(尽管现在我倾向于重新读一遍),而且不应该主张它,因为我的列表中包括另一本Sy Montgomery的书本。参见规矩2: 不要盲信,要求证明!
4. 要求合唱式解说
在合唱式解说中,Mike Caulfield描述了StackExchange和Quora等网站的问答进程为读者供给了一系列答案,读者能够从中综合出对主题的了解。如果你遵从规矩2(运用帮手团队),你能够在任何主题上要求合唱式解说。在这个比如中,我想更多地了解web服务器回来的HTTP头。当我向Sourcegraph Cody、GitHub Copilot Chat和ChatGPT提出面信息,并请求进行概述和解说时,每个都以略有不同的方法回答。差异——就他们选择概述的项目,以及怎么解说它们——具有辅导意义,并比任何单一解说都能给我更好地把握术语、概念和关系。

你也能够经过运用Wired的5个层次公式,要求单个LLM供给合唱式解说。
在5个层次中,专家科学家以5个不同的复杂度层次向不同目标解说一个高层主题——首先向儿童,然后向青少年,然后向主修同一学科的本科生,研讨生,最终向同行。
这不只适用于技术主题,也适用于更广泛的主题。例如:
我的理财方案师主张我将一些资金转移到年金中。请按以下目标解说利弊:
- 九年级学生
- 大学四年级生
- 中期作业专业人士
- 后期作业专业人士
- 理财方案师
长期以来,从各种来源组合解说一直是或许的,但从未如此轻松或具有如此精细的对解说等级的控制。在遵守规矩2(不要盲信,要求证明)的前提下,你能够从要求一个或多个LLM供给合唱式解说中取得很多收益。
5. 运用形式识别
人类和LLM都是强壮的形式识别器,以互补的方法。咱们能够轻松检测到支撑叙事弧线、抽象类比和情感智力的形式。但咱们在识别LLM能够轻松发现的数据形式方面遇到困难。与LLM合作是弥补这种人类弱点的有力方法。
在一种状况下,我和一个搭档因无法将CSV文件加载到Steampipe表中而感到困惑。没有CSV验证器发现数据存在任何语法问题,但ChatGPT注意到一个异常: 有两列具有相同的名称。Excel不介意这一点,但Postgres介意。咱们终究会弄理解的,但对咱们不显着的重复列形式对LLM来说清楚明了。
在另一种状况下,社区的一个成员在容器中运行Steampipe时遇到费事。问题的原因是在docker run命令中过错运用了–mount参数。有两种风味: 绑定装载(运用主机途径)和卷装载(运用逻辑名称)。因为不熟悉这些选项,混淆主机途径和逻辑名对我来说一开端并不显着。但ChatGPT马上就看出来了。
这儿是一个非技术示例。我给每个帮手供给了我用来提示书本主张的书单,要求他们按类别对书本进行分组。然后,我要求他们在每个类别中引荐书本。这个使命并不需求非人的才能去注意数据中的初级细节,但的确获益于非人的才能,能够更快速和全面地检测到我本能够经过支付更多努力才能推断出的形式。
咱们的信息饮食中包括许多结构化的、半结构化的和非结构化的数据。判别这些数据的意义仍然是咱们的作业。做到这一点需求识别数据中的各种形式,对此LLM是一个强壮的盟友。
6. 自动化转化
咱们所说的常识作业中有很多令人苦恼的内容只触及从一种格局到另一种格局的重复转化:HTML文档需求变成Markdown(或反之亦然),JSON格局需求转化为CSV(或反之亦然)。当人们花费数小时在修改器中推移字符以完结这些转化时,这是死于一千剐的进程。LLM的形式识别超才能延伸到基于形式的转化,并能够让咱们更有成效地运用这些小时来从事对这些转化仅仅入门要求的高阶智力使命。
在一种状况下,我需求将谷歌文档中供给的一个复杂表格转化为在网页上出现表格所需的相应JSON结构。在“曩昔的时代”,这将需求很多庸俗的手动修改。ChatGPT无法在一次经过中完结整个转化,但当我给它表格的各个部分时(每个部分展现一个不同的形式)它是成功的。与平常相同,我遵从规矩2(不要盲信,要求证明)来检查成果,然后进行纤细更正。但与手动转化所需的作业量相比,这仅仅微乎其微的努力。
在另一种状况下,我运用LLM将测验脚本的原始日志转化为去重和分类日志中的事件的摘要。彻底验证该成果将是冗长庸俗的,但对我的意图来说这并非真正必要——我只需求对每个类别中的事件分类和数量有一个大略的了解。
这些是LLM的普通用处,这正是重点。咱们在这些普通的使命上花费了太多时间和精力。让咱们外包这些苦差事,并更好地运用这时间和精力。
7. 边做边学
一个朋友最近说: “我以为ChatGPT是我遇到的最好的教师。我有一个触及常微分方程的个人项目。那些在大学里可怕极了。我从未上过那门课。现在我能够提出问题,迭代答案,探索联系。没有判别,没有不及格,没有成果。”
LLM的反响是实时学习的绝佳方法。在项目中,你能够在面向具体使命的可教授时间取得常识,所以学习是立即的、具体的,而不是展望性的。这儿展现了LLM怎么让我仅学习关于一个JavaScript框架的足够常识,以推动一个项目。
在运用显性学习时,你也或许会隐性地取得相关常识。这儿引用了LLM教我一些自己原本不知道需求了解的东西和技术的比如,这种隐性学习很理想,一般出现在咱们从无意中供给隐性和显性辅导的人那里学习时。但咱们需求合理规划对别人时间和注意力的占用。有了一直供给的LLM副驾驶员监控咱们的常识作业并做出反响,咱们能够在作业中高效学习,并紧记实时取得的与使命相关的常识。
机器人伙伴合作守则
咱们才进入LLM时代一年,正在发现AI帮手的才能和怎么最好地运用它们。随着功用和才能的不断涌现,咱们需求拟定守则辅导咱们度过这个具有历史意义的革新。本文的七条守则不会是这个主题的最终言,但至今对我很有用,或许能够协助你在咱们惯例与AI帮手合作的国际中导航。
本文在如此众生(yylives.cc/)首发,欢迎大家访问。