首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何借助大语言模型编写更好的代码

【编者按:随着大型语言模型(LLM)如ChatGPT的出现,编程领域正在经历快速的变革。LLM已经成为程序员的有力工具,能够辅助他们编写代码、提供解释和指导。近期,TechTalks 的创始人 Ben Dickson 发表了名为"How to write better code with ChatGPT"《如何通过ChatGPT编写更好的代码》的文章,文章中指出LLM 辅助编程有助于速度和生产力,但不能盲目相信其输出。拆分任务、逐步指导LLM,提供反馈和修正是成功利用LLM的关键。LLM的发展仍在不断进行,各种插件和技术的出现为程序员带来了更多可能性。但程序员需保持开放心态,理性利用这一新工具。我们特将该内容编译出来和各位客户、合作伙伴朋友分享。如需转载,请联系我们(ID:15937102830)】

生成软件代码是ChatGPT和其他指令遵循的大型语言模型(LLM)的强大应用之一。在给定正确的提示后,LLM可以生成原本可能需要数小时才能编写的代码。

然而,LLM无法完成程序员的所有工作。它们无法分解复杂的问题,思考逻辑和结构,并创建多层次的解决方案。它们一次只能处理一个令牌,预测下一个代码片段可能跟随用户提示和它们当前的输出。

以下是四个提示,将帮助您充分利用ChatGPT令人印象深刻的编码能力,同时避免其中的陷阱:

01

如果无法验证,不要轻信ChatGPT

ChatGPT总是自信的回答,即使他的答案是错误的

像ChatGPT这样的LLM的一个显著特点是它们的权威性声音。它们总是自信地回答,即使它们的输出是荒谬的。在几个场合,ChatGPT用令人信服但错误的答案回答了我的问题。

我对ChatGPT的经验法则是只在我完全理解并可以验证的主题中使用它。例如,我不会使用它来编写关于量子物理的解释,因为我对这个主题了解不足。但是,ChatGPT可以帮助我编写关于机器学习基础的有趣文章,因为我可以完全检查和纠正它的输出。

同样,在使用ChatGPT生成代码时,只有在您可以完全验证的任务中才可以信任它。ChatGPT可以编写不起作用的代码,或者更糟糕的是,能够工作但存在安全问题的代码。我将其视为一种自动化工具,可以完成那些我需要花费很长时间编写或需要多次查阅文档页面或在线论坛(如Stack Overflow)的繁琐工作。例如,您可以要求它编写一个排序算法,用Python启动Web服务器的代码,根据数据库模式编写SQL查询,或者生成Matplotlib的数据可视化命令。

02

一个迭代一个块

不要期望ChatGPT能够成功地为您编写完整的程序或复杂的代码块

LLM(大型语言模型)在需要推理和逐步规划的任务中往往会遇到困难。因此,不要期望ChatGPT能够成功地为您编写完整的程序或复杂的代码块。然而,这并不意味着ChatGPT无法在复杂的编程任务中提供帮助。如果您提供给它一个简单的任务(例如上面提到的任务),它成功的几率会大大提高。

将任务拆分为较小的步骤,并逐步提示ChatGPT。一个成功的方法是首先给ChatGPT一个逐步的程序逻辑概述,让它了解您想要编写的程序的逻辑。

这有助于为模型准备更大的任务。然后逐步提示LLM进行编码。简而言之,您进行推理,ChatGPT完成工作。(顺便说一句,这种从概述开始,逐步完成任务的方法对于其他任务,如撰写某些类型的文章,也很成功。)

如果您对逐步过程没有清晰的想法,可以从ChatGPT本身获得帮助。开始编码会话时,提示LLM生成一系列完成任务的步骤。然后根据需要更正概述,并开始提示它生成第一步的代码。

03

向ChatGPT提供反馈

ChatGPT对上下文非常敏感,其行为可以根据聊天历史而改变

不能期望ChatGPT在每个步骤中都能提供干净、安全和可工作的代码。当您检查其代码并输入到IDE中时,您会进行修正和调整。在这样做时,向ChatGPT提供已更正的代码作为反馈是一个很好的做法,如果适用,还可以提供解释。

需要注意的一点是,ChatGPT对上下文非常敏感,其行为可以根据聊天历史而改变。您可以利用这一点,这也是提供反馈和更正代码片段非常有帮助的原因。

例如,您可以说:“这是我更改的代码:[插入更正的代码]。请尝试在以后的步骤中进行[插入行为更正]。”这可以帮助引导ChatGPT朝正确的方向发展,并避免在回答未来的提示时重复错误。(同样,我在其他任务中使用这种反馈方法与ChatGPT也取得了成功,包括撰写文章。)

有时,您可以使用ChatGPT获取有关其自身代码的反馈。尝试打开一个单独的聊天会话,在其中提供ChatGPT生成的代码,并要求它改进或更正。有时,它会产生有趣的结果和新的探索方向。

04

清理ChatGPT的上下文

定期清理聊天内容的上下文,有助于提高模型代码的准确性

如果您正在处理一个特别大的任务,您的聊天历史可能会变得非常长,特别是如果您与ChatGPT来回进行了很多交互。根据您使用的模型,LLM的上下文记忆可能会用完。免费版本的ChatGPT的记忆容量为4,000个令牌。(对于语言任务,100个令牌大约相当于75个单词。对于编程任务,通常要少得多。)

一个成功的技巧是定期清理上下文。为此,您可以使用一个新的聊天会话,并在提示中向ChatGPT提供任务的概述、您目前已完成的步骤、您目前已生成的代码以及您希望它遵循的一些一般准则。然后告诉它从下一步继续。通过清理之前与LLM的交互中的混乱内容,您提供了一个更清晰的上下文,并提高了模型生成的代码的准确性。

结尾

LLM正在改变编程领域

LLM辅助编程领域正在迅速变化。例如,ChatGPT Plus现在拥有多个插件,可以帮助程序员在预测代码之外提供辅助。其他基于LLM的编码工具,如GitHub Copilot和Amazon CodeWhisperer,令开发人员的速度和生产力得到显著提高。检索增强技术使程序员能够将LLM的行为定制到自己的专有代码库或未包含在训练数据集中的库中。我们仍在探索LLM对程序员能做什么的可能性。

一款AI生成头像工具,可以生成各种风格的头像,快来试试吧~

源于硅谷、扎根中国,上海殷泊信息科技有限公司 (MoPaaS魔泊云) 是中国领先的人工智能(AI) 平台和服务提供商,为用户的数字转型、智能升级和融合创新直接赋能。针对中国AI应用和工程市场的需求,基于自主的智能云平台专利技术,MoPaaS 魔泊云在业界率先推出新一代开放的AI平台为加速客户AI技术创新和应用落地提供高效的GPU算力优化和规模化AI模型开发运维 (ModelOps) 能力和服务。MoPaaS魔泊云 AI平台已经服务在教学科研、工业制造、能源交通、互联网、医疗卫生、政府和金融等行业超过300家国内外满意的客户的AI技术研发、人才培养和应用落地工程需求。MoPaaS魔泊云致力打造全方位开放的AI技术和应用生态。同时,MoPaaS魔泊云在浙江嘉兴设立安尚云信信息科技有限公司全资子公司,致力于推动当地的科技产业发展,并积极培养本地专业技术人才,创造更大的社会和经济效益。MoPaaS 被Forrester评为中国企业级云平台市场的卓越表现者(Strong Performer)。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OOp6KnS-IpbGsx5_JZyBZQfg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券