从之前的博客截取了 AI 编程相关的一段,希望能有所帮助吧:
https://datahonor.com/blog/2024/12/23/ai_think_2024/#ai_1AI 的黄金时代¶
书接上文,我其实并不认为现在的 LLM 是“智能”的,我认为它只是一个庞大而又精密的机器。 但是就像所有精密的机器 (比如计算机) 一样,LLM 也有着无限的潜力,可以在各个领域发挥巨大的作用——即使它没有所谓的“智能”。
AI 辅助编程¶
Redis 的作者 Salvatore Sanfilippo 在年初写过一篇博客 LLMs and Programming in the first days of 2024. 博客中介绍了 LLM 在编程领域的一些应用,他认为 LLM 很适合用来替代一些琐碎的工作,比如用来写一些一次性的脚本,做一些数据分析等, 这样可以让程序员们更专注于更有意义的工作,比如设计架构,优化性能等。文章另外还有很多有有趣的观点:
LLMs and Programming in the first days of 2024
In the field of programming, perhaps their ability would have been of very little interest up to twenty or thirty years ago. Back then you had to know a couple of programming languages, the classic algorithms, and those ten fundamental libraries. The rest you had to add yourself, your own intelligence, expertise, design skills. If you had these ingredients you were an expert programmer, able to do more or less everything. Over time, we have witnessed an explosion of frameworks, programming languages, libraries of all kinds. An explosion of complexity often completely unnecessary and unjustified, but the truth is that things are what they are. And in such a context, an idiot who knows everything is a precious ally.
下面是这段话的中文翻译 (来自宝玉):
LLMs and Programming in the first days of 2024
在编程领域,直到二十或三十年前,这些能力可能还不太引人注目。那时,你需要掌握几种编程语言、经典算法以及那些基本的库。 其余的则依靠你自己的智慧、专业知识和设计能力。具备这些素质,你就能成为一名全能的专家级程序员。 然而,随着时间的推移,我们见证了框架、编程语言、各种库的大量涌现。这种复杂性通常是不必要的,甚至无法自圆其说,但事实就是如此。 在这样的情况下,一个无所不知的“白痴”成了宝贵的盟友。.
这里点明了一个事实:现在的编程环境变得越来越复杂,这也意味着程序员需要掌握更多的知识,花费更多的时间来学习和工作, 而 LLM 可以通过辅助编码来屏蔽这些复杂性来帮助程序员们减轻这些负担,进而让他们专注于更有意义的工作。
这点在 2024 这一年 AI 编程领域的发展中得到了很好的体现,比如 Cursor ,Windsurf 等辅助编程工具的强势崛起。 这些辅助编程工具在前端开发领域都有比较好的体验,比如这些工具目前可以通过简单的几句描述就生成漂亮的网页。 我个人浅薄的看法是,前端开发的技术栈变化非常快,也有很多框架,库等,这些都增加了前端开发的复杂性,正好对应了上面 Salvatore 提到的问题 (“框架、编程语言、各种库的大量涌现”)。 而通过 AI 辅助编程工具确实可以很好地解决这些问题:我们不必再去看各个框架自定义的 API ,只需要简单地描述我们想要的效果,LLM 就会帮我们生成符合描述的代码。
同样地,AI 辅助编程在生成数据分析报告,辅助编写 SQL 等方面也有着不错的表现。 这点在上面的博客中也有提到,而我个人在日常工作中也深有体会:AI 已经在实打实地帮助我们减轻很多工作量。
我并不认为 AI 会取代真正的程序员 (未来也不会),但其换掉这些琐碎的编码工作是大势所趋。 当然这里的“琐碎”是相对的,比如我需要一个 Web 页面来简单地展示数据,这个工作对于我来说就是琐碎的; 但是如果我们需要的是一个拥有良好交互体验且具有相当程度美观性的页面,那么这个工作可能就不再是琐碎的了。 同样地对于数据分析也是,如果我们只需要简单地统计一下数据,那么这个工作就是琐碎的; 如果我们需要从海量数据中找出一些有价值的信息,那么这个工作就不再是琐碎的了。
另外 Salvatore 提到了另外一个值得思考的问题:
LLMs and Programming in the first days of 2024
I regret to say it, but it's true: most of today's programming consists of regurgitating the same things in slightly different forms. High levels of reasoning are not required. LLMs are quite good at doing this, although they remain strongly limited by the maximum size of their context. This should really make programmers think. Is it worth writing programs of this kind? Sure, you get paid, and quite handsomely, but if an LLM can do part of it, maybe it's not the best place to be in five or ten years.
下面是这段话的中文翻译 (来自宝玉):
LLMs and Programming in the first days of 2024
不得不说,这是一个事实:现今的编程大多是在微调同样的内容,只是形式略有变化。这种工作并不需要太高的推理能力。 大语言模型在这方面表现出色,尽管它们的能力仍然受限于上下文长度。这个现象应该引起程序员的深思:真的值得去编写这类程序吗? 虽然可以赚到不错的收入,但如果大语言模型也能完成其中一部分工作,那么在未来五到十年,这可能并非最佳的职业发展方向。
我个人非常赞同这个观点,也认为这个问题提的非常好: "Is it worth writing programs of this kind?" 我相信在此后的几年时间,对这个问题的讨论会越来越多,而我们对这个问题的不同理解也会进一步地影响我们的未来职业发展方向。