程序员如何在ChatGPT世界中生存?( 二 )


例如,与其要求人工智能程序员从头开始编写整个程序代码,不如认真考虑一下程序需要完成的所有任务 。进一步划分这些任务,要求模型为每项任务编写特定的函数,这就需要与模型来回探讨实现某项任务所需采取的步骤 。
亚伯拉罕说:“将其视为一个了解某个主题知识但经验不太丰富的聪明实习生 。”
提示工程的精确性和清晰性非常重要 。亚伯拉罕提到:“你需要非常清楚地告诉模型你想要什么,非常准确地告诉它你要求它解决什么问题,并确保你在一直跟进 。”
学习人工智能和机器学习的基本概念,以及了解大型语言模型的工作原理和优缺点也很有价值 。你需要深入研究,但掌握一些常识对于判断结果至关重要 。
为了帮助你快速入门,Abraham 推荐,其中包含有关提示库和工具的章节内容、提示指南和视频课程等,而维斯林格姆则建议阅读《图解转换器》,以了解更多有关模型和机器学习的基础知识 。
保持批判态度,并关注风险
软件工程师应对大型语言模型的输出结果持批判态度,因为它们往往会产生幻觉,生成虚构、不准确甚至是错误的代码 。维斯林格姆说:“盲目使用人工智能生成的代码很容易陷入死胡同,而且很难发现其中细微的错误 。”
维斯林格姆说道,"这就是为什么检查生成的代码至关重要,尽管这会增加一定的工作量,但对于提高工作效率可能弊大于利 。但亚伯拉罕认为,"在某些情况下,验证代码比从头开始编写代码要容易得多,而且先生成代码,然后进行验证,最后再整合至现有的代码库中是一种更快的方法" 。
我们不妨对这些模型的输出结果进行分析,并提出以下问题: 这个模型是根据什么数据训练的?哪些数据被过滤掉了,哪些数据没有包括在内?训练数据的历史有多长?模型是在什么版本的编程语言、软件包或库上训练的?这些问题的答案可能会影响结果并提供更多相关信息 。
开发人员还应该警惕在这些模型中输入专有代码 。一些公司,如 Tabnine,提供企业版的人工智能编码助手,在提供隐私的同时还能学习企业的编码模式和风格 。
版权是另一个需要考虑的因素,不过如果你使用这些工具来完成几行代码或为普通琐碎的任务生成代码,那么与生成大段代码相比,版权问题就不那么令人担忧了 。
"程序员应该对自己所要做的事情的独创性有一定的认识,以及这种独创性在多大程度上符合他们的环境,"莱萨马说 。"如果模型生成的代码具有一定的原创性,那么在将其放入代码库之前,一定要保持怀疑和猜忌的态度" 。
一个更大的问题是代码的安全性,因为这些模型可能会生成包含漏洞的代码 。维斯林格姆认为,软件开发的最佳实践,比如代码审查和强大的测试流水线有助于防范这种风险 。
莱萨马说:"更有经验的软件工程师能够带来的一种意识是,代码中最常见的漏洞和代码容易受到攻击的最常见方式 。"他们会建立一种直觉,知道哪些地方需要注意,哪些地方会引起警觉 。今后,这类技术将成为软件工程组合中更重要的组成部分 。”
程序员要想在生成式人工智能世界中生存下去,就需要将人工智能视为一种工具,并将其融入到工作流程中,同时认识到这些工具的机遇和局限性,并且依靠人类的编码能力来发展壮大 。
译者:Araon_

【程序员如何在ChatGPT世界中生存?】


推荐阅读