AI是否能取代人类的工作?优势及局限性分析

新知榜官方账号

2023-07-10 06:26:43

AI是否能取代人类的工作?优势及局限性分析

随着ChatGP的火热,AI是否能取代人类的工作成了一个常见的问题?AI是不是可以取代码农,是否意味着可以终结人工Code?本文分析了AI编程的优势及其局限性,并探讨了AI为何目前还不能取代程序员。

AI编程的优势

首先来说说,AI编程的突出优势的几个方面:

  • 生成重复代码
  • AI擅长生成模板式的程序和本质上可重复的代码,例如遍历列表、序列化/反序列化JSON数据、实现一个爬虫的等可重复性的问题,大多数程序员也基本是靠谷歌搜索和StackOverflow,然后Ctrl+C,Ctrl+C复制粘贴的代码。这点上AI可以做得更好,他已经抓了大量这些来源的大量数据并且进行了良好的训练,可以提供大量这类模式化的代码片段(任务)。

  • 文档和注释
  • AI还可以自动根据代码编写代码文档和注释。可以分析现有代码并生成文档,进行有效(无效)的注释,并生成示例代码。

  • 自动测试
  • 同样地AI还可以为代码编写测试用例,并自动生成代码测试需要的数据,AI能自动识别数据的格式并相应条件下需要的值。

  • 代码优化
  • 可以和AI进行交流,让AI帮助对现有代码进行改进,比如提高代码可读性、优化性能、加强代码封装。

  • 代码解释
  • 对代码进行逐行解读,帮助程序员熟悉看不懂的数据,因为他可以无限关联上下文,而不是人类的人眼所及的范围内的部分代码,所以,在这方面AI是远远超过我们的期望地。

  • 数据分析和SQL查询生成
  • AI模型擅长理解数据。提供一个数据集,AI可以分析它的结构,并根据列来理解它代表的数据类型。然后可以向AI咨询有关数据的各种问题,并进行各种分析。和上面代码解释也一样,AI可以能更加全面的关联各种行列各种尺度的数据,进行横向、纵向以及各维度的数据关联,所以能看清数据的实质和关联。据此,AI可以自动生成代码和可视化数据。根据提供数据库模式,AI可以自动各种适应任务的SQL查询,例如进行数据分析或数据总结报告等。

AI编程的局限性

AI模型通过处理任务来工作,例如重写一段代码,并生成新代码作为输出。一个任务涉及三个组成部分:自然语言指令、希望其重写的随附代码段以及模型的输出。这三个元素构成了模型的上下文窗口,它允许有限数量的token(一个token相当于一个词,但有时一个词可能会产生多个tokens)。所以,模型只能处理有限数量的信息。GPT-3.5模型的上下文窗口大小为4000个tokens(约3,125个单词),GPT-4模型有两个变体:一个限制为8000个tokens,一个更大的版本大小为32,000个tokens(大约25000字)。字数地限制对AI使用大型代码库提出了挑战。上面列出的几乎所有功能都可以在相对较小的代码段中实现。例如,如果有一个包含2000行代码的文件,假设平均每行5个tokens,那么总共要处理10000个tokens。这已经超过了GPT-48k模型的限制。对于更多这样的文件,就算是GPT-432k模型也无法处理。

AI不能替代的工作

很显然,现在的AI已经可以处理很多任务了,并且会随着时间发展会变得越来越强。然而,实际软件工程还是比这些任务要复杂得多。工程师每天都要应对各种挑战,例如:了解包含成百上千个文件和数百万行代码的复杂代码库的组织和抽象(业务抽象、建模和架构)。对遇到的从未有过的问题提出新颖的解决方案,这需要对数据结构和算法有深刻的理解,并能够推断这些知识来解决未见过的问题(创新)。与他人协作以了解业务需求并在考虑可维护性和可扩展性的情况下设计可扩展的解决方案(协作和架构)。从事关键任务项目,如Linux内核、网络浏览器、编译器、图形引擎、游戏引擎、数据库、基础模型及算法和安全系统,这些项目需要专业技能和多年经验。这些软件非常重要、非常基础,不容有任何小的闪失,一个小bug可能会造成巨大破坏,想象一个文件系统错误会导致数据丢失或损坏。这些明显都不能交给AI。

另外,现在的AI发展还需要大量的程序员去开发、模仿、嵌套、界面化、本地化各种xxxGPT软件;另外大量的自有AI的模型和算法都需要大量的人重复早轮子,去拷贝、拿来、优化完善各种开源的AI系统这都需要程序员大量的工作。这无疑会给程序员带来大量的机会,就看码农们能不能抓住机遇“伴猪飞起来”而已。

本页网址:https://www.xinzhibang.net/article_detail-7286.html

寻求报道,请 点击这里 微信扫码咨询

关键词

AI 人工智能 编程

分享至微信: 微信扫码阅读

相关工具

相关文章