大语言模型(LLM),究竟能不能替代程序员?

总有人问我,大语言模型这么强了,究竟能不能代替程序员?

我的答案是,大语言模型可以给程序员提效,精简研发团队和流程,但替换还谈不上。

在这里插入图片描述

LLM出现后,有人说:完蛋了,程序员要大面积失业了。

我不这样看。

LLM对于软件开发,什么变了?什么没有变?

变化的是,基础编码能力的知识平权,进而带来局部效率的提升。

没有变的是,现代软件工程对应的是规模化场景下的各种问题,基于LLM实现的编程提效只是其中的一小部分,而其中最重要的需求和代码演进模式都没有发生本质的变化。

编程不等于软件工程,编程只是软件工程的一部分。

软件工程有四大内在特性:复杂度、不一致性、可变性、不可见性。这些并没有因为LLM的出现而发生本质的变化,而这些才是软件工程面临的主要矛盾。

软件的复杂度,说的是需求分析和软件设计部分是复杂的,而不是局部的编码变简单。

软件的不一致性,说的是软件依然是知识手工业,LLM出现并未解决这个不一致性的概率,反而可能放大这个不一致性的概率。

我们只有需求说的足够清楚,代码才足够准确,如何准确描述需求变成了关键。

但要想把需求描述到能让它写出代码,需要的工作量似乎已经接近甚至超越过编码了。

很多人不能很好的描述需求,但不影响他写代码。

还有,很多产品经理提的需求,背后其实有很多暗知识,就是程序员已经对产品需求中不包含的信息进行了补充。

软件的需求,不仅仅是功能性的,还有很多非功能性的,这两者都是需要描述清楚的。

在这里插入图片描述

总之,软件从业者高估了编程的复杂度,但低估了功能和设计的复杂度。

软件的可变性,说的是软件会随着需求不断演进和变化,所以架构设计和模块抽象只能面向当下,它天然是短视的,或者局限性的,这往往是优秀的架构师也难以逾越的。

也正因为此,敏捷开发模式才被倡导起来了,需求是零散的,目标是模糊的,在有限的视角下,架构自然是有局限的,对此LLM也无能为力。

需求变化之后,程序员一般是在原有代码基础上改动,而不是直接从头全量生成全部代码,而这种局部的改动,对程序员和LLM都不容易。

图片

LLM写代码,本质上不是基于修改意见(Prompt)做代码修改,而是基于修改意见(Prompt)重新写了一份。

软件的不可见性,说的是软件不存在客观的形体,不同的侧面看会有不同的视图,这种强行可视化会造成构图的复杂,但无法可视化,就限制了有效的交流和沟通。
如果团队或者软件规模变得更大,这个问题就会变得更严重,软件研发过程中的沟通成本,决策成本,认知成本,试错成本都会变大。

这才是软件工程问题的本质,自始至终都没有变过,LLM对此也无能为力。

LLM只是实现了编程提效中的一小部分,而现代软件工程则需要应对规模化场景下的各种问题。

LLM时代,软件研发需要更多思考的是:
\1. 替代的是码农,共生的是工程师,也就是编码的最后一公里,可以被LLM代替,而工程师需要关注业务的理解,需求的分析,需求的拆解,架构的设计,理解问题本质,机器是副驾驶,工程师是主驾驶;
\2. 有利于控制研发团队规模,保持小团队的优势,一部分重复的工作可以通过LLM提效;
\3. 暗知识,系统设计或者需求不一定全是以文档形式存在,往往是在程序员或架构师的脑子里,或者在讨论的过程中,即便是有文档,也是个结果文档,大量的推导过程,妥协过程也不是在文档上体现的,这些被称为暗知识,这些暗知识是没法喂给LLM的。总之,你想到的多过你说出来的,你说出来的多过你能写下来的;
\4. Prompt即代码,代码不再只是代码,转换一种编程范式,当需求变更了之后,不是去修改代码,而是修改Prompt,基于Prompt版本做代码管理,这是编程范式的改变,我们用LLM重写低代码引擎,也是这个逻辑,Prompt即代码;
\5. 直接可运行,Prompt to executable 软件开发范式的可能性,随着Prompt即代码,编程范式的变化,基础设施也会随之变化,CICD等一系列工程实践,最终直接向终端交付价值,Serverless是Prompt即代码的一种可能实现;
\6. 计算机教育的反思,LLM证明了死记硬背+简单推理,就能超过大部分人,那教育的目的是什么?教育是应该把人培养成机器,还是把机器培养成人;

也许我们全都错了,我们需要新的思考与反思。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

下面这些都是我当初辛苦整理和花钱购买的资料,现在我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

<think>嗯,用户明确要求获取Java程序员学习AI大模型LLM)的学习路线,看来是个急需转型的Java开发者。从引用内容看,用户提供的资料都强调Java工程能力与AI结合的优势,特别是[1]和[4]提到Spring生态、高并发经验是构建可靠AI应用的基石,[3]还提到用户本身是"编写业务代码的程序员",说明需要实用落地的方案。 用户可能面临几个痛点:一是担心Python短板,二是如何复用现有Java经验,三是学习路径的优先级。从[2]的案例看,成功转型者也是从Java基础起步的,这增强了可行性论证。需要突出三点:降低Python门槛的策略、Java与AI框架的衔接点、分阶段目标设计。 在路线设计上,应该基于引用[1][4]的框架优化:基础理论阶段要解释清楚为什么Transformer比RNN适合Java生态(如并行计算优势);开发阶段重点放SpringAI和LangChain4j这类Java友好工具;部署环节强调Docker+K8s这类Java程序员熟悉的运维体系。对于数学要求,采用"用到再学"的策略,比如在解释LoRA微调时才引入矩阵分解概念。 最后考虑知识验证设计,参考[4]提到的"提高编码能力",每个阶段都设置Java视角的练习:比如理论阶段用JSAT实现Word2Vec替代Python作业,应用阶段用Quarkus开发客服机器人。这样能强化"Java程序员学AI"的专属感,而不是让用户感觉在重头学Python。 </think>基于Java技术栈转型AI大模型开发的学习路线可分为以下阶段,结合工程优势渐进式提升: --- ### **第一阶段:基础认知与工具准备**(1-2个月) 1. **AI基础概念** - 理解机器学习基础:监督/非监督学习、过拟合、交叉验证等概念 - 掌握大模型核心特性:Transformer架构(重点理解自注意力机制)、GPT/BERT类模型差异 - 学习资源:吴恩达《机器学习》课程 + 《图解Transformer》[^1] 2. **Python工具链速成** ```python # Java程序员重点掌握的Python库 import numpy # 矩阵运算(类比Java多维数组) import pandas # 数据处理(类比JDBC/Stream API) import torch # 深度学习框架(类比DL4J) ``` - 关键目标:能使用PyTorch实现简单神经网络,理解张量操作 3. **数学基础补强** - 重点掌握:概率论(贝叶斯定理)、线性代数(矩阵分解)、微积分(梯度计算) - 学习技巧:通过代码实践理解公式,例如用NumPy实现$$WX+b$$前向传播 --- ### **第二阶段:大模型开发实践**(2-3个月) 1. **Prompt Engineering** - 掌握CoT(思维链)、Few-shot Prompting等技巧 - 使用SpringAI框架集成OpenAI API: ```java // SpringAI示例(Java版调用ChatGPT) @Bean public ChatClient chatClient() { return new OpenAiChatClient(apiKey); } ``` - 实践:用Java重构Python提示词工程案例[^4] 2. **LangChain4J开发** - Java生态的AI应用开发框架: ```java // 构建检索增强生成(RAG)系统 var retriever = ContentsRetriever.from(new LocalDocumentLoader()); var chain = ConversationalRetrievalChain.builder() .chatLanguageModel(ChatModel.OPENAI) .build(); ``` - 实践:开发基于企业知识库的QA系统 3. **微调实战** - 使用Peft库实现参数高效微调(LoRA技术) - Java工程化支持: - 数据预处理:用Apache Beam处理训练数据集 - 模型服务:通过DJLServing部署微调后的模型 --- ### **第三阶段:进阶与生产落地**(持续迭代) 1. **模型优化技术** - 量化压缩:GGML/TensorRT优化推理速度 - 蒸馏技术:用Teacher模型训练轻量Student模型 - 实践:将13B模型压缩至4bit在Java服务部署 2. **私有化部署方案** | 方案 | Java技术支持 | 适用场景 | |---------------------|------------------------|------------------| | Ollama+SpringBoot | Docker容器化部署 | 本地测试环境 | | vLLM+Quarkus | GraalVM原生编译 | 高并发生产环境 | | Triton+Micronaut | gRPC服务通信 | 模型推理集群 | 3. **AI系统工程设计** - 架构模式: ```mermaid graph LR A[Java业务系统] --> B[LangChain4J编排层] B --> C{路由决策} C --> D[本地微调模型] C --> E[云端大模型API] ``` - 关键能力: - 用Resilience4j实现AI服务熔断 - 通过Micrometer监控GPU利用率 --- ### **学习资源适配** 1. **Java友好型教程** - 《Java机器学习实战》(JSAT库作者教程) - SpringAI官方文档(含Ollama集成指南) 2. **避坑建议** - 避免重复造轮子:优先使用Deep Java Library(DJL)而非从零实现算法 - 数学短板补救:通过代码反推数学原理,如用PyTorch自动微分理解梯度下降 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值