这篇文章由MEE主编团队Natalie Cooper等人撰写,文章主要探讨了大型语言模型在生态学和进化研究中编程、教学和包容性方面的应用。
生态学和进化研究中利用大型语言模型进行编码、教学和包容性以增强研究能力摘要
大型语言模型(LLMs)是一种人工智能(AI),能够执行各种自然语言处理任务。由于像ChatGPT这样的免费应用程序的可用性,LLMs在科学写作和分析中的使用变得越来越突出。LLMs的增加使用不仅引发了对学术诚信的担忧,而且为研究社区提供了机会。这里我们重点讨论了使用LLMs在生态学和进化中编码的机会。我们讨论了如何使用LLMs生成、解释、评论、翻译、调试、优化和测试代码。我们还强调了编写有效的提示和仔细评估LLMs输出的重要性。此外,我们为使用这些模型包容性和诚信地使用起草了一个可能的路线图。
LLMs可以加速编码过程,尤其是对于不熟悉的任务,同时释放时间用于更高层次的任务和创造性思维,同时提高效率和创造性产出。LLMs还通过适应没有编码技能的个人、有限的编码教育机会或英语不是他们的主要书面或口头语言的人来增强包容性。然而,由LLMs生成的代码质量不一,存在与数学、逻辑、非可重复性和知识产权相关的问题;它也可能包括错误和近似值,特别是在新方法中。
我们强调了使用LLMs教授和学习编码的好处,并主张指导学生适当使用AI工具进行编码。尽管可以将许多编码任务分配给LLMs,我们还重申了教授编码技能的重要性,以解释LLM生成的代码并发展批判性思维技能。
作为MEE的编辑,我们有限度地支持在出版物中透明、负责任且得到承认地使用LLMs和其他AI工具。如果在手稿中描述的工作使用了LLMs或类似的AI工具(不包括通常使用的辅助工具,如拼写检查器、Grammarly和Writefull),那么在其方法部分必须有明确声明,相应的或高级作者必须对AI平台生成的任何代码(或文本)负责。
关键词:人工智能、ChatGPT、编码、包容性、大型语言模型、教学
1 | 引言
人工智能(AI)是一个快速发展的领域,在生态学和进化中有着无数的应用。尽管AI并不新鲜,但像GitHub Copilot、ChatGPT和Dall-E这样的资源的日益可用,导致越来越多的研究人员和学生使用这些工具进行研究和学习。虽然社区内对AI工具的使用存在普遍担忧,我们的观点重点在于负责任地使用AI,特别是大型语言模型(LLMs),以协助编码,无论是在研究中还是在课堂中。我们为使用“LLMs”的研究发表提供建议,我们在这里指的是LLMs和类似的生成性AI工具,而不是更广泛使用的辅助工具,如拼写检查器、Grammarly和Writefull。
1.1 | 什么是LLMs及工作原理?
人工智能(AI)是机器(通常是计算机或机器人)执行通常与智能人类相关联的任务的能力。当前的讨论主要集中在生成性AI的形式上,在这些形式中,计算机能够基于一组训练数据产生内容。有多种类型的生成性AI,包括生态学家和进化生物学家可能熟悉的几种(例如机器学习、深度学习、神经网络)。我们这里的重点在LLMs上,它们是能够执行各种自然语言处理任务的机器学习算法,如分类和生成文本(包括计算机代码)以及以对话风格回答问题。有几种可用的LLMs,包括ChatGPT(见框1)、Gemini(之前的Bard)、Llama、Guanaco和OpenLLaMA,还有许多正在开发中。
简单来说,像ChatGPT这样的LLMs旨在根据用户提供的文本提示预测一个单词或短语的下一部分。预测是通过将提示通过深度神经网络进行的,该网络本身已经被训练,以在大量训练数据中找到单词和短语之间的关系(LLMs中的“大”指的是用于训练这些模型的大量数据)。LLMs的预测基于用于训练它们的语料库的内容和结构,包括语法和句法规则,单词在特定序列中出现的频率,甚至是事实和想法如何一起呈现(无论这种呈现是否真的正确)。上下文线索也被用来提高预测的准确性,模型可以(不完美地)被训练以减少某些有问题的单词和短语的普遍性(例如暴力的、种族主义的或非法的)。与总是选择绝对最佳选项不同,大多数LLM算法在它们的响应中引入了一定程度的随机性。这种随机性对可重复性有影响(见下文),尽管现在有几个工具允许实现,用户可以移除这个随机组成部分(例如ChatGPT v 4.0)。
框1 什么是ChatGPT?
ChatGPT(https://chat.openai.com)于2022年底推出(Open AI, 2022),并且是目前可用的最受欢迎(也是臭名昭著的)LLM。它使用一个生成预训练变换器(GPT)LLM作为聊天机器人,允许用户进行交互式对话来生成内容。ChatGPT之所以受欢迎,是因为它(仍然)是免费的,尽管你需要为最新版本付费(在撰写本文时版本3.5是免费的,而版本4.0需要付费)。它是一个“非常大的”LLM,这意味着它的表现优于其他“大型”LLM。它也相对多才多艺,允许用户将其应用于多种任务。请注意,尽管它是最常用的LLM应用程序,ChatGPT并不总是你想做的事情的最佳工具;其他AI工具,如GitHub Copilot和Llama,针对编程进行了优化。LLM市场正在迅速变化,因此保持灵活性并调查新工具的出现可能是一个好策略。
2 | 使用LLMs进行编码
大型语言模型和其他AI应用程序非常擅长基于用户的自然语言提示生成功能良好且易于理解的计算机代码——包括没有编程背景的用户(Ellis和Slade,2023)。在生态学和进化领域,许多研究人员和学生已经使用LLMs帮助他们编写代码(Duffy,2024)。这样做需要两项主要技能:编写有效的提示和评估输出的结果。此外,用户需要知道如何负责任地应用这些工具。
2.1 | 编写有效的提示词
提示词是你与AI交互以生成响应的方式。提示词可以包括问题、评论、代码片段或示例,并应以完整的句子用“自然”语言写成(即纯文本,就像你与同事交流时使用的那样),而不是像你会输入搜索引擎的关键字字符串。例如,如果你想学习如何在R中运行线性回归,你可能会在搜索引擎中使用“线性回归”和“R”作为关键字,但对于LLM,更好的提示可能是“请向我展示如何在R中执行线性回归”(是否使用“请”等礼貌用语取决于用户)。一个好的提示词将是详细的,并尽可能指定尽可能多的上下文(问题的人物、什么、何时、何地、为什么和如何)。
对于编程问题,提示词应包括编程语言、你想使用的任何特定包以及你希望用代码实现什么。提示也可以是“链式”的;你可以用一个初始提示词查询LLM,然后跟随另一个提示词来更新结果。大多数为公众使用而设计的LLM将在单个聊天会话中(或根据所讨论的工具,多个以前的会话)“记住”以前提示中提供的上下文,并使用它来生成其结果。例如,如果你要求提供创建箱形图的代码,在下一个提示中,你可以要求它改变颜色,而无需重新指定箱形图的细节。另一个有用的提示是要求LLM“用例子解释”,或者“像我是一个高中生一样解释”。但请注意,大多数LLM都有一个字数限制的问题。在ChatGPT版本3.5(目前是免费的)中,限制是4096个标记或大约3000个单词,这可能会限制你可以在提示中放入的细节量。
2.2 | 评估输出
使用LLMs生成代码中最困难但也是最重要的部分是评估生成的代码的准确性(Lubiana等,2023)。AI常常被低估的一个错误是它们会“幻想”,也就是说,即使回答不准确或完全错误,它们也可能对回答非常有信心。当提示词没有给AI足够的上下文来回答正确,当训练数据没有包括足够的信息来解决提示,或者如果训练数据包含错误时,幻想倾向于发生。当LLMs响应关于较少使用的分析方法、包或编程语言的提示词时,幻想更有可能发生。由于大多数LLM被训练为产生被人类编辑认为是正确的答案,它们也可能偏爱语法正确性和可信度而不是准确性。因此,对任何AI给出的任何响应持怀疑态度,并且始终检查任何生成的代码是否按你想要的或期望的方式工作,这是极其重要的。
因此,要有效地使用LLMs进行编码,你仍然需要足够了解编程语言,以理解输出是否正确或不正确。
2.3 | LLMs在编码中的其他用途
除了生成代码外,LLMs还可以协助以下常规编码活动(另见Lubiana等,2023)。
解释代码(对自己和他人):拥有不是你写的代码或代码片段并不罕见(例如,从论文、合作者、GitHub或Stack Overflow导入或修改)或者你过去写的代码并没有很好地记录。有了好的提示词,LLMs可以解释代码的作用和原因。一个主要优点是AI非常耐心,所以如果第一次解释没有意义,你可以继续重复问同样的问题。
代码注释:注释是好的、可重复的代码的关键(Cooper和Hsing,2017),但一些常规注释通常被跳过。LLMs可以快速注释代码,包括常规部分,节省研究人员的时间和精力,这些可以应用于注释代码中更复杂或定制的部分。同样,验证生成的注释至关重要。
代码翻译:许多研究人员只熟悉一种编程语言,但可能发现他们需要使用另一种语言来解决某些问题。LLMs可以将代码从一种语言翻译成另一种语言(例如,从Python到R)或从一种包翻译到另一种包(例如,从tidyverse到基本R)。
调试代码:如果你的代码坏了,你可以提供代码给LLM,并要求它找到任何错误。理想情况下,你应该包括任何错误消息和代码的目标作为你问题的上下文。LLMs可以特别擅长解释晦涩的错误消息。
优化代码:有时,快速编写工作的代码比花很多时间优化代码使其高效运行更容易。LLMs可以接受未优化的代码并编辑它,使其运行更快,更有效。然而,在验证之前,正确的优化指标是重要的。
单元测试:标准单元测试对于许多算法和包至关重要。LLMs可以协助建议哪些测试最合适,以及如何构建和编写它们。
你必须检查AI是否正确完成了这些常规编码活动。特别是,使用LLMs进行调试可能充满了错误——记住,大多数LLM被训练为产生对人类看起来合理的结果,这意味着代码中的错误可能很难找到。
2.4 | 使用LLMs进行编码的好处和挑战
使用LLMs生成代码的主要好处是,它通常比自己编写要快,特别是如果我们是非专业程序员(即研究生态学和进化中的大多数人)或者对于我们以前没有遇到过的任务和问题。LLMs可以降低尝试可能复杂程度高的任务的机会成本,并且可以加速常规任务,留下更多时间用于其他事情,如综合和想法发展。LLMs还通过为没有编码技能的人、英语技能不太流利的人以及其他可能从不同的工作方式中受益的人提供更多机会来增加公平性和包容性。
此外,LLMs可以为给定数据分析任务生成多个建议,包括实现的和注释良好的解决方案和代码示例。这不仅可以增加编码技能的学习速度,还可以使经验较少的学者,特别是学生,能够快速开发复杂的多步骤方法来分析特定数据集,比较输出并选择最合适的解释方式。
使用LLMs进行编码的挑战之一是结果的质量差异很大——通常以不容易立即显现的方式。对于常用、文档齐全的函数、包和语言,LLMs通常快速、高效且大多准确,因为它们的训练数据集中有更多这些示例;例如,使用R包如ggplot2的答案往往是正确的。然而,当被问及较少使用的包时,错误更为常见;例如,使用OUwie拟合系统发育比较模型(Beaulieu和O'Meara,2022)通常会产生无意义的结果。许多LLMs也在数学和逻辑上挣扎,需要有效的提示词和广泛的测试来调试或识别错误(Chang人,2024;López Espejel等人,2023)。
结果通常也不是可重复的(至少对于普通用户不是),所以不同的人可能对相同的提示词得到不同的结果。这种不一致可能会让新手用户感到不安。
3 | LLMs和课堂编码教学
只要LLMs易于获取(特别是当它们仍然免费使用时),无论教育者是否喜欢,学生都会使用它们。我们的建议是指导和建议学生负责任地使用AI,而不是试图规范或禁止使用(另见Duffy,2024;Lubiana等,2023;以及https://cs50.ai/)。
我们自己的经验是,LLMs可以是教授和学习编码的极好助手。学生可以使用LLMs生成、解释、注释、翻译、调试和优化代码。学生也可以使用AI作为个人辅导,并继续以不同的方式反复询问同样的问题,以充分理解答案。学生也可能更愿意向聊天机器人寻求帮助,而不是向人类教师提问,因为后者担心后者会因为他们不知道简单问题的答案而严厉评判他们。同样,LLMs可以为拥挤课堂中的学生问题提供帮助,作为学生问题的第一接触点。这个设施可能对第一语言不是英语(或课堂上使用的任何工作语言)和害羞的学生特别有价值(例如Liu等,2024;框2)。两个特别有帮助的特点是,大多数LLMs可以轻松地用多种语言提供答案,并且它们可以快速总结或翻译用户手册或帮助论坛的文本。
框 2 通过LLMs实现公平和包容
关于LLMs和包容性的讨论往往集中在这些模型固有的偏见上(Schwartz等,2022)。如果用于生成结果的训练数据存在偏见(我们知道确实存在),那么LLMs自然会在它们的输出中反映出这种偏见,包括在代码输出中。这显然是不可取的。许多LLMs的开发者都在尝试解决这个问题,但训练数据仍然集中在互联网上使用广泛(包括计算机和人类语言)的语言的材料,以及由全球北方的富裕国家产生的素材。尽管在代码中可能比在散文或艺术中存在的文化和地区差异要少,但一些相同的问题可能适用于工具的目标受众、它们旨在促进的目标,以及它们被应用的方式。新LLMs的开发也很昂贵,无论是在人员、设备和基础设施方面,它们的开发很可能将继续由拥有最多金钱和权力的人主导。一个额外的大问题是,目前免费的平台可能会停止免费,或停止支持和发展;无论哪种方式,结果都将扩大现有计算和编程资源在机构和世界地区之间的差距。重要的是要问谁从AI中受益,谁错过了。
LLMs,特别是编码方面,也有潜在的公平和包容益处。免费AI工具的可用性应该有助于增加那些没有编码技能、没有接受编码教育的机会或没有能力支付学习费用的人的机会。已经有LLMs在课堂上被用来为学生提供定制的建议和反馈。学生可能更愿意向聊天机器人寻求帮助,而不是向助教或讲师提问,特别是如果他们需要多次问同样的问题才能理解答案,或者学生可以使用LLMs以更接近他们的方式获得答案。教会学生使用LLMs进行编码也可以减少一些学生发现编码比其他学生困难得多所引入的不平等。对于神经敏感学生和第一语言不是英语的学生,这些好处尤其明显。在考虑AI的公平和包容性时,也应该考虑这些好处。
3.1 | 我们是否仍然需要教授或学习编码?
在讨论LLMs和编码时,一个常问的问题是,我们是否仍然需要教授编码技能,或研究人员是否还需要编程,或者我们是否应该将整个过程外包给AI。
我们认为,我们应该继续教学生编码。尽管LLMs可以通过帮助那些在编码方面遇到困难的学生来促进学习,解释LLMs的输出并确定它们是否准确仍然需要基本的编码、统计和数学理解。此外,我们必须能够检测何时以及为什么由LLM生成的代码无法正常工作。学生还需要知道要让LLM做什么,以及为什么。因此,编码技能将继续对生态学和进化的学生至关重要,就像学习算术基础知识对于有效使用计算器或电子表格是必要的一样。我们预计,简单的调试功能和重复性任务可以轻松地用LLMs识别和解决,节省时间和效率,就像拼写和语法检查器加速手稿校对一样。
教授编码技能还提供了教学上的好处。例如,学习编码要求我们将大问题分解成通常更容易解决的较小块。它还需要强大的逻辑和科学推理,以理解你需要做什么以及如何让机器为你完成。此外,发展这些技能是一个有助于最大化创造力和创造新材料的战略过程,这两者对于做科学、做发现和激发创新都是必不可少的(例如Fletcher和Benveniste,2022)。总之,即使在一个充满文本、视频和由LLMs生成的代码的世界中,批判性思维技能仍将继续重要。
4 | 使用LLMs生成代码出版的最佳实践
当前《生态学和进化方法》(MEE)期刊的出版政策要求代码需要是新颖的、可用的和可理解的。MEE强调代码的质量、可用性、可访问性和功能性(见https://besjournals.onlinelibrary.wiley.com/hub/editorial-policies)。人们对使用AI生成的代码的问责和透明度提出了担忧(例如van Dis等,2023)。谁对代码(或文本)负责,谁应该获得它的信用?大多数期刊,包括MEE,期望论文的相应和资深作者对其所有内容负责。所有作者都被要求在提交前阅读并同意最终草稿的手稿。我们知道并不是每个作者都阅读了与论文相关的所有代码,但至少有一个作者必须这样做,并对它负责。使用LLM帮助生成代码并没有改变这一事实。当使用LLM时,我们希望负责人遵循与他们独立编写代码时相同的质量保证检查。
展望未来,当在MEE出版物中使用LLMs生成代码时,我们将要求:
至少有一个作者必须负责LLM生成的所有相关代码(或文本)。这一责任必须在作者贡献部分明确注明。
在手稿的方法部分必须明确声明使用AI/LLMs。必须报告AI应用程序(例如ChatGPT)和版本(例如3.5),以及AI生成了多少内容的细节。
由LLM生成的代码部分必须用注释标记,说明它们是这样生成的。请注意,我们这里的重点是使用LLMs进行编码;包括MEE在内的英国生态学会(BES)期刊,也对AI生成的内容有政策(https://besjournals.onlinelibrary.wiley.com/hub/editorial-policies),也必须遵循。其中一个重要部分是,AI不能被视为作者。
关于由LLMs生成的代码的另一个关键问题是缺乏可重复性。的确,如果你多次向大多数LLMs提出同样的问题,他们会给出不同且可能不准确的答案——但这有多大问题呢?在同一个问题上工作的两位研究人员可能会产生不同的代码解决方案;实际上,同一位研究人员在不同时间处理同一个问题也可能这样做。在特定情况下,这将是一个问题(例如,使用LLMs为元分析整理数据),但对于基本代码生成,只要代码本身产生可重复的结果并且满足MEE的质量、可用性、可访问性和功能性的标准(https://besjournals.onlinelibrary.wiley.com/hub/editorial-policies),并且作者承认使用LLMs生成代码,这种缺乏可重复性就不是一个议题。为此,对我们来说,与LLMs相关的缺乏可重复性类似于其他工具——结果应该是可复制的,但是决定如何创建这些特定结果的确切过程可能不是。我们认为,科学创造过程就是这样。在AI和LLMs的使用上保持透明将继续增加问责性。
5 | 结论
人工智能和大型语言模型(LLMs)并不是新技术;自20世纪60年代以来,各种AI应用就已经存在。许多对像ChatGPT这样的LLM应用崛起表示担忧的研究人员忘记了,我们每天在许多不同场合使用的拼写检查器和自动完成功能也是各种类型的AI。然而,生成性AI和LLMs的能力正在迅速提高,新的发展几乎每天都在出现。部分是由于这种变化的速度,以及跟不上的感觉,这正在推动担忧。例如,Excel中的AI将遗传序列重新格式化为日期,经过数十年的痛苦,相对常识,但我们知道ChatGPT或Gemini等工具中类似的错误吗?变化不总是坏的,AI和LLMs短期内不会消失。我们需要积极和负责任地参与这些工具的使用,同时推广最佳实践,这些实践本身也会继续变化。我们必须接受AI是一个快速发展的领域,我们期望我们对它的想法也会继续发展。
我们还注意到,我们在使用和开发AI工具方面的专业知识水平不同;即使是专家也不知道一年后该领域会在哪里。然而,我们仍然认为——至少目前——使用LLMs进行编码的潜在积极影响超过了潜在的负面影响。
我们也认识到这些方法固有的挑战。训练LLMs对环境有着惊人的大影响(框3),这些工具有潜力增加全球不平等(框2)。作为一个社区,我们应该考虑如何最有效和道德地使用AI工具,如何提高透明度,谁受益,谁错过了,以及我们如何减少它们的环境影响。最终,我们认为AI不是来取代我们的,而是来协助我们(更像是阿西莫夫的《我,机器人》书中的机器人,而不是恰佩克的《R.U.R.》或《终结者》电影中的机器人)。然而,鉴于AI的快速发展,添加“请”和“谢谢”到你的ChatGPT提示中可能也无妨。以防万一。
框 3 LLMs的环境影响:人们对AI对学术诚信的影响表示了极大的担忧,但对于AI对环境的直接和间接影响的讨论却少得多(Jay等,2024;Rillig等,2023;van Wynsberghe,2021)。仅一个自然语言处理模型的训练和调整的CO2排放量估计超过了生活在美国的人的平均终生CO2排放量(Strubell等,2019)。使用类似ChatGPT的服务在一年内产生的碳排放量是训练GPT-3的25倍(Chien等,2023)。LLMs还需要大量的基础设施和设备,所有这些都与相关的环境影响有关;例如包括水的使用和污染、开采稀土元素以及服务器温度控制所需的能源(Rillig等,2023)。目前许多研究集中在创建可持续、低碳的LLMs上(Chien等,2023;Patterson等,2021),但在这些研究成功之前,对于简单任务不必要地使用AI应该非常谨慎。你可能会为了节省几分钟的努力而大幅增加你的碳足迹。