Hi,您好,欢迎来到西安盛图软件科技有限公司!

程序员真的会被AI取代吗?我们如何理性看待AI变革之路

发布时间:2024-01-26 13:39:49


针对AI对程序员的影响,我们不应过于悲观和焦虑,而是要积极看待AI变革对我们产生的影响。只有不断提升自己,拥抱AI,才能让自己立于不败之地。虽然AI 技术可能会影响程序员的部分工作,但不太可能完全取代他们。程序员应关注技能提升和专业发展,以适应不断发展的技术环境。

AI 能否替代软件?

你可以把大模型比作人脑,传统程序比作计算器。虽然人脑也能做加减乘除,但是人脑能取代计算器吗?大家都知道神经网络模拟的是人脑,虽然现在还不能完全作证这个模拟到了什么程度,但起码出发点是模拟人脑,那按理说人脑有的缺点大模型也会有。目前的实践也证明了大模型不善于计算,无法精准地存取信息,存在随机性,这些恰恰也是人脑的弱点,却正好是传统程序的强项

所谓程序,其实就在干两件事“数据的存储,数据的处理”,无它。为什么数据库软件这么牛逼,赚这么多钱?因为数据的存储和处理少不了数据库。人类创造的大量高价值软件都是某个行业的信息系统,比如航空机票、铁路调度、ERP、银行账户、股票交易等,都极大地依赖数据库以及精准的数据处理。

我很难想象把 12306 干掉,放一个大模型在那里,所有人订票都跟 12306 聊天,然后这个大模型记录了一切。起码在目前的 AI 范式下,这个事情不可行。所以大模型更多的是取代人脑,而非取代软件。要让大模型很好地工作,需要给它工具,软件工具,正如 ChatGPT Plugins 所做的那样。所以编程不会被终结,反而会越来越重要,因为不光要给人做软件,还要给 AI 做软件

软件和模型的区别大致可以总结为:确定的交给程序,动态的交给模型。但这个格局会不会发生变化?两件事情的发生会打破这个格局:


这两个技术的出现可以让我们彻底抛弃现有的软件,这才是编程的终结。我不知道怎样才能发展出这两样技术,但起码对于目前的 AI 而言,需要新一轮的范式升级才有可能实现。未来的事情 who knows,关注当下,软件依然重要,比以前更加重要。

AI 是否会替代程序员的工作机会?

要回答这个问题,我们得搞清楚 AI 带来了什么——AI 是智力革命,是对智力的替代。工业革命让英国的农业人口从 60% 降低到 10%,信息革命让美国的工业人口从 40% 降到了 8%。按照这个思路,如果说 AI 是智力革命,白领在就业市场的占比会从 60%+ 变成个位数。从这个角度说,长期来看,AI 的确会替代程序员的工作机会。

如果 AI 可以替代人,那就意味着它替代了一种生产要素。这对于生产力的影响是巨大的,将释放更多的人类创造力,消灭旧岗位,创造新岗位,对大家的生活造成极大的影响。

GPT-4 的智力水平已经相当高,GPT-5 可能超越 80% 的人类智力。在这样的背景下,问题就变成了如何让 AI 真正去替代某一个工种。但当前来看,AI 技术仍然更偏向于辅助者,而非驱动者。市场上出现的完全由 AI 构建应用的产品,仍停留在玩具阶段。而辅助型的 AI 助手则更加成熟,如 GitHub Copilot,这样的工具并不能替代程序员,只能作为生产工具的增益,无法替代生产力本身。

Semantic Kernel 团队曾总结过:人类觉得有困难的工作,对于 LLM 同样困难。这点出了 LLM 的本质:一个类似于人脑,可以理解意图、代替脑力劳动的工具。那这个人脑本身的水平,自然限制了其是否可以在复杂场景下处理复杂问题。

对于复杂应用来说,LLM 需要在如下三个方面达到一定标准:

1. Context Length(上下文长度)

上下文长度可以说是新时代的内存。正是因为上下文长度不够,所以目前构建 LLM 应用需要各种复杂的 Prompt Engineering(提示工程)来做各种召回、切换、调度等工作,有点像当年的虚拟内存。但同样的上下文长度,质量却是不一样的。不能光看模型声明的上下文长度,而要实测有效的上下文长度。例如,GPT-4 默认的上下文长度是 8K,但也有 32K 版本。在实际测试时,会发现 32K 版本在上下文超过 8K 的情况下能力骤降,很多内容会被忽略。我理解这是 LLM 的注意力不够导致的,额外的上下文长度没有意义。所以 Context-Length 这个指标核心考察的是该 LLM 的有效上下文长度,得分越高说明处理长文本的能力越强。

2. Reasoning Depth(推理深度)

推理深度可以理解为 LLM 的“聪明”程度,能否举一反三、理解隐含意图、基于中间答案推断出最终答案。比如:

You are an AI software requirement analyst. Please make a judgement if the following requirements needs persistent storage. YES or NO, no explanations. Requirements: I want to hold a party tomorrow night. Please send invitation emails to my friends. My friends emails: Ella: ella@gmail.com, jack: jack@gmail.com. 

In the email, give them a link that shows a web page, ask them what kind of alcohol they prefer, whisky, wine or beer. I also need a web page to see their choices.

这是一个简单的信息收集应用的需求,在需求描述中是没有提到存储或者数据库这样的字眼,但是实现这个应用需要用到存储或者数据库。这就要求 LLM 理解这个需求的意图,并且推断实现这个意图必须有持久化的存储,正确答案是 YES。

3. Instruction Compliance(指令遵循)

指令遵循可以理解为 LLM 听话的程度。跟 LLM 打交道的过程中往往会遇到你让它不要干啥,但它压根不理你,还是会输出一些你不想要的内容的情况。比如你跟它说不能讨论政治,但在聊天过程中还是会回答政治相关的问题。我们还是拿上面那个信息收集的应用举例。我们在 Prompt 中明确了回答只要 YES or NO,但是我们来看看 LLM 的表现

可以看到 Claude 的理解是对的,但答案的格式是错的,也就是没有按照我们的指令生成答案。

指令遵循的能力是 LLM 结构化输出的基础,例如输出 YAML 或者 JSON。如果这个能力不好,不按照格式要求输出,会导致输出结果很难被下游的程序所使用。所以 Instruction Compliance 这个指标得分越高,说明 LLM 结构化输出的能力越好。

以上是在构建复杂应用的场景中必备的三个能力,恰好对应了“输入-处理-输出”三个环节,任何一项的薄弱都会导致很难实际使用这个 LLM。所以 LLM 能力本身的大发展,是可以替代人的基础。

当我们提到 LLM 在工业代替人进行工作时,除了和人打交道,往往还要和具体行业的知识、数据、系统进行交互。给 LLM 灌输行业知识,当前有两种方式,一种是 Fine Tuning(微调),另外一种是 Prompt Engineering。就目前实际的行业发展而言,Fine Tuning 还未形成共识,并且成本巨高,实际目前的大量应用都是基于 Prompt Engineering 做的——当前世界上应用最广泛的模型 GPT-4 并不提供 Fine Tuning 的选项。

但无论是 Fine Tuning 还是 Prompt 工程,都对结构化数据有一定要求。这方面我认为最值得参考的是微软的一篇论文,来自 Office Copilot 团队所著的“Natural Language Commanding via Program Synthesis”,这篇论文提到的工程实践有一个核心点就是 ODSL(Office DSL),是 Office 团队为这个场景定制的一套 DSL(领域特定语言),这也是控制大模型输出的主要手段,就是结构化,事实证明“大模型喜欢结构化”。

尽管人类和人工智能(AI)都拥有一定的智力能力,但在现阶段,大多数产品设计仍然以人类为中心,而非 AI。

以协作为例,单个人的工作能力有其天然的限制,因此需要与他人协同合作。这就导致了人类工作的异步性。在软件工程领域,我们使用 Git 这样的工具来解决异步协作带来的问题。

再比如,任何一个工程项目都需要经过生产和测试两个环节。考虑到确保工作的诚信性,通常我们不会让生产者和测试者是同一个人。但你完全可以让一个 AI 同时进行生产和测试,因为 AI 本身不存在诚信问题。

此外,人类和 AI 在交互方式上也存在着显著差异。比如,大部分的软件操作都需要使用鼠标,因为这种人类和 AI 在输入和输出(I/O)方式上的区别,导致 AI 其实很难操作现有的软件。

小结

AI 未来会怎样,没有办法预知,但是可以确定,它目前的编码水平不会威胁到程序员。

虽然现在的情况不太好,但等过了低谷期,经济恢复了,程序员的需求就会上升。

你的工作今年是有保障的。如果你努力的话,明年也是有保障的,而且很可能从此都是有保障的。因为如果一直不断学习 AI,你会越来越熟练地掌握它,让它为你工作,达到你的目的。也就是说,它会放大你的生产力。这就是很关键的地方,AI 与人类不是竞争关系,

它未必会减少机会,反而可能带来更多的机会。

因此,当前AI的编码水平不会对程序员构成威胁,并且通过不断学习和掌握AI的使用方法,可以将其作为工具来提高生产力。



以上为本次所有分享内容

图片

关注“盛图科技”公众号

私信“寒假编程训练营”即可免费报名参加!


图片


上一篇:软件工程--------就业与编程语言的多样性选择
下一篇:嵌入式——实时时钟(RTC)