AI狂潮下的技术人:坚守还是转型?一个边缘工程师的深度思考
写此文章的目的
目前我在职业发展上有些迷茫。一方面,我和同事在公司里感觉有点被边缘化,对现在嵌入式图形库开发的工作也产生了些许倦怠。另一方面,外界都在说2025是“AI Agent元年”,内外因素交织,逼得我不得不思考如何应对未来的变化。 是应该继续坚守现在的岗位,还是顺应趋势主动转型、拼一把试试? 如果留在原岗位,未来的发展路径其实比较清晰,薪资增长也大致可以预期。但我对AI领域也很感兴趣,也观察到AI相关岗位的薪资不错,招聘需求也在明显增加。AI的发展潜力有目共睹,未来很可能会替代一部分岗位。比如美国有调研显示,初级岗位中已有13%被AI替代,但高级岗位受影响较小。就我目前的工作来看,短期内AI还难以取代,除非出现技术上的巨大突破——真到那时,可能大多数岗位都难以幸免。 正因为有这些不确定,我才想更深入地理解AI技术的发展脉络。希望从技术原理出发,结合行业报告和我观察到的趋势,来判断是应该转型,还是继续在现有岗位上深耕——包括我的岗位是否会被AI替代,以及AI如何能增强我的职业竞争力。
AI的基础
AI(人工智能)的底层原理根植于神经网络,其原理基于模拟人脑的神经元网络。神经网络通过模拟神经元之间的连接来处理信息,其核心是数学上的函数逼近——通过调整大量参数(权重和偏置)来学习数据中的模式。 在神经网络之上,Transformer架构是一种专门设计用于处理序列数据(如自然语言)的神经网络变体,它通过引入自注意力机制提升了模型的能力。下面,我将系统性地解释AI的底层原理,包括神经网络的基础、Transformer的构建方式,以及两者之间的关系。
神经网络
一个基本的神经网络由输入层、隐藏层和输出层组成,每个层包含多个“神经元”,这些神经元通过加权连接传递信号。神经网络通过训练过程(如反向传播算法)调整参数,以最小化预测误差,从而学习从输入到输出的映射。
- 底层数学原理:神经网络的本质是一个复杂的非线性函数。假设输入为向量 ,输出为向量 ,则网络可以表示为 ,其中 代表所有参数(权重和偏置)。函数 通常由激活函数(如ReLU或Sigmoid)引入非线性,使网络能够逼近任意复杂函数(通用逼近定理)。
- 黑箱特性:正如用户所指出的,神经网络是一个“黑箱”,因为其决策过程不透明。这主要源于两个原因:
- 高维与非线性的复杂性:现代神经网络拥有数百万到数十亿个参数,输入数据(如图像、文本)也被表示为高维向量。数据在网络中经过多层非线性变换,使得内部状态难以直观解释。这类似于追踪一个复杂系统中的路径——我们知道输入和输出,但无法精确描述中间过程。
- 分布式表征:知识并非存储在单个神经元中,而是分布式编码在大量神经元的连接模式中。例如,概念“猫”由多个神经元的激活组合共同表示,而不是一个特定神经元。这种分布性增强了模型的鲁棒性,但增加了可解释性的难度。 神经网络作为底层基础,为各种AI应用提供了通用框架,包括图像识别、语音处理等。然而,传统神经网络在处理序列数据(如语言)时存在局限,如难以捕获长距离依赖关系,这引出了Transformer架构的发展。
Transformer
Transformer 是一个 Encoder-Decoder 架构,核心用于序列转换任务(如机器翻译、文本生成等),输入一个序列(如源语言句子),输出另一个序列(如目标语言句子)。整体分为三大部分:编码器(Encoder,红色框)、解码器(Decoder,蓝色框)、输出层(Linear + Softmax)。
编码器
编码器的任务是将输入序列(如“我爱机器学习”)转换为一个包含所有输入信息的“上下文向量”(Context Vector),供解码器使用。 输入: 原始文本序列(经分词后的Token序列) 输出: 编码后的上下文向量(传递给解码器)
编码器的核心组件(从下到上):
- ① Input Embedding(输入嵌入)
- 作用:将离散的Token(如单词、子词)转换为连续的低维向量(如“我”→ [0.2, 0.5, -0.1…])。
- 类比:给每个词分配一个“数字身份证”,让计算机能理解。
- ② Positional Encoding(位置编码)
- 问题:Transformer没有RNN的顺序处理能力,无法直接感知Token的顺序(如“我爱你”和“你爱我”语义不同,但输入向量顺序若打乱,模型会混淆)。
- 作用:通过公式生成位置向量,与嵌入向量相加,显式告诉模型每个Token的位置信息(如第1个词、第2个词的位置差异)。
- ③ 编码器子层(重复N次,图中“Nx”)
每个子层由两个核心模块+“Add & Norm”组成,按顺序处理:
- Multi-Head Attention(多头自注意力)
- 核心:让每个Token“关注”输入序列中所有其他Token,计算它们之间的关联强度(注意力权重)。
- 举例:处理“我爱机器学习”时,“爱”会重点关注“我”和“机器学习”,“机器学习”会关注“爱”等。
- “多头”:将注意力拆分成多个“头”并行计算,每个头捕捉不同类型的依赖关系(如语法依赖、语义依赖),最后拼接结果,提升模型表达能力。
- Add & Norm(残差连接+层归一化)
- “Add”:将模块输入与输出相加(残差连接),防止深层网络梯度消失,让模型更容易训练。
- “Norm”:层归一化,将向量标准化(均值0、方差1),稳定训练过程。
- Feed Forward(前馈网络)
- 作用:对每个Token的向量进行独立的非线性变换(与序列长度无关),进一步加工特征(如从“词向量”提炼更抽象的语义向量)。
- 结构:两层线性变换(Linear)+ ReLU激活函数,公式:
FFN(x) = max(0, xW1 + b1)W2 + b2。
- Multi-Head Attention(多头自注意力)
解码器
解码器的任务是基于编码器的上下文向量,逐步生成目标序列(如英文翻译结果)。 输入: 目标序列的“已生成部分”(如翻译时,先生成“I”,再生成“love”等)+ 编码器的上下文向量 输出: 下一个Token的概率分布(如生成“machine”的概率)
解码器的核心组件(从下到上):
- ① Output Embedding + Positional Encoding
- 与编码器类似:目标序列的Token先经嵌入转换为向量,加上位置编码,告知解码器生成序列的顺序。
- ② 解码器子层(重复N次,图中“Nx”)
每个子层由三个核心模块+“Add & Norm”组成,按顺序处理:
- Masked Multi-Head Attention(带掩码的多头自注意力)
- 核心:和编码器的自注意力类似,但多了“掩码(Mask)”。
- 为什么需要掩码? 训练时,解码器的输入是“完整目标序列”(如“我爱机器学习”的翻译目标“I love machine learning”),但生成时是“自回归”的(只能用已生成的前i-1个词预测第i个词)。为了模拟生成过程,需要用掩码掩盖“未来的词”(如预测第2个词“love”时,掩盖第3、4个词),避免模型“作弊”看到未来信息。
- 掩码实现:通过上三角矩阵将对角线以上的位置权重设为-∞,Softmax后概率为0。
- Multi-Head Attention(编码器-解码器注意力)
- 核心:让解码器“关注”编码器的输出(上下文向量),即生成目标词时,参考输入序列中相关的词。
- 机制:Query(查询)来自解码器前一个子层的输出(当前生成的中间结果),Key和Value来自编码器的输出(输入序列的上下文)。
- 举例:翻译时生成“machine learning”,解码器会通过该模块关注输入序列中的“机器学习”。
- Feed Forward(前馈网络)
- 与编码器的前馈网络完全相同:独立加工每个位置的向量,提炼生成所需的特征。
- Masked Multi-Head Attention(带掩码的多头自注意力)
输出层
解码器最后一个子层的输出,经过线性层映射到目标词汇表大小(如英文词汇表有5万个词,输出5万维向量),再通过Softmax转换为概率分布,取概率最大的Token作为下一个生成结果。
Transformer架构,Transformer目标是预测,行为是模式匹配,找到动态计算最可能的下一个词,一旦数据量大了,计算的速度将会指数级变慢。
神经网络和Transformer的关系
可以把二者的关系理解为 “基础框架”与“ specialized 架构” 的关系。
- 神经网络是基础框架
- 核心思想:模拟人脑神经元连接,通过“输入层 -> 隐藏层 -> 输出层”的结构,使用数学函数(线性变换+非线性激活)来学习和逼近任何复杂的输入-输出关系。
- 好比是“建筑学的基本原理”:它定义了如何用砖块(神经元)和水泥(连接权重)来建造房屋,但并没有规定房屋的具体样式(是平房、四合院还是摩天大楼)。
- Transformer是建立在神经网络之上的 specialized 架构
- 核心创新:为了解决处理序列数据(如句子、代码)的难题,它引入了自注意力机制。这个机制允许模型在处理序列中的任何一个元素时,能够直接“关注”并权衡序列中所有其他元素的重要性,从而高效地捕捉长距离依赖关系。
- 好比是“一种专门为处理信息流而设计的摩天大楼蓝图”:这座大楼(Transformer)完全遵循建筑学原理(神经网络),但它有自己独特且强大的核心结构——“注意力电梯”(Self-Attention),这架电梯可以快速地将任何楼层的信息传递到其他任何楼层,使得整栋大楼的信息流通极其高效。
AI的能力
目前能力--截止2025-10-26
当前AI的实际水平呈现出显著的“能力鸿沟”:它在特定、定义明确的任务上可以表现出色,但在需要深度推理和广泛通用智力的挑战中仍面临瓶颈。 一个关键的衡量标尺是“人类最后的考试”(HLE)基准。该基准旨在通过高难度的生物和化学问题,测试AI系统在人类知识极限上的推理能力。根据论文(基于监视器的检索增强生成的自适应多智能体优化用于科学推理),最先进的大型语言模型在HLE的黄金数据集上达到了约48.3%的准确率。 这个成绩需要客观看待:
- 一方面,它标志着AI在处理复杂、多步科学推理问题上取得了实质性进展。从几年前的几乎无法作答,到如今能解决近半数难题,进步速度惊人。
- 另一方面,48.3%的准确率也清晰地表明,AI尚未达到专家级水平。这远未达到学术界普遍认为的“精通”门槛(通常指80%-90%以上的准确率)。它表明模型在面对真正前沿和复杂的开放式问题时,其推理的可靠性和深度仍存在根本性局限。
能力局限
根据神经网络和Transformer的底层原理可以知道当前AI存在的局限是:
- 计算复杂度高,导致token昂贵,即便有KV缓存还是昂贵;Transformer的核心是 自注意力机制,其计算复杂度为 O(n²)。
- 模型幻觉难以解决;幻觉是“统计模式匹配+自回归生成”的必然产物,因模型无能力验证事实真伪,仅依赖数据中的概率分布。幻觉会导致模型生成错误的信息,影响其在实际应用中的可靠性。
- 上下文限制;上下文限制是“计算复杂度控制”与“黑箱高维特性”的共同结果,无法通过简单增加窗口大小解决(会进一步加剧Token成本和注意力分散)。
- 不能自我进化(静态参数与离线训练模式)。参数固化:模型训练完成后,权重参数固定,无法像人类一样通过日常经验自主更新知识;
- 不理解真正的规律(相关性≠因果性);神经网络的“黑箱特性”和Transformer的“模式匹配”本质,使其无法掌握深层规律;
- 无实际操作能力(脱离物理世界交互);神经网络与Transformer本质是“符号/向量处理器”,缺乏与物理世界交互的硬件接口和操作逻辑;
经典由于模型导致的问题:
误差累积
大模型本身的局限性,回答准确度不是很高,假如有95%,执行20次,误差累积,只剩下0.9的20次方,成功率只剩下0.36了。究其原因还是大模型目前是没办法知道自己回答是对还是错,需要人为设置一些反馈机制告诉模型对不对。即使不对大模型也可能陷入死循环,导致任务失败。具体参考2025年,我为何看衰人工智能智能体(尽管我正在开发它们) 如下图:
Token消耗
Token不使用一些手段,token消耗很大,例如2025年,我为何看衰人工智能智能体(尽管我正在开发它们)作者在开发对话式数据库智能体原型时,深刻体会到了这一点。最初的几次交互成本很低。但在一个会话进行到第50次查询时,每次响应的成本就达到了数美元——超过了它所提供的价值。从经济角度来看,这在大多数场景下根本行不通。
对于token效果,这个可以利用上下文工程技术和KV缓存来优化。这里只是一个极端的举例。
解决能力局限的方法
在不改变模型本身解决缺陷的技术
Prompt工程
Prompt工程的核心思想是:通过精心设计的输入指令(Prompt),引导大模型(LLM)的思维过程,并约束其输出格式和内容,使其生成的结果更精准、可靠、符合特定场景的需求。 prompt工程设计依赖经验设计,类似咒语,大模型输出不符合期望,需要使用咒语来获得期望的输出;prompt调优的过程也类似炼金,效果如何全看输入和输出;
上下文工程
大语言模型的一个根本特性是静态参数化。这意味着模型一旦完成训练,其内部的权重参数就固定不变,无法像人类大脑的神经突触那样持续动态调整来适应新知识或新任务。这导致了模型本身不具备长期记忆能力。 同时,模型在推理时受限于其固定的上下文窗口长度。它无法像人类一样将过往的所有经历和知识都装入“工作记忆”中进行处理。我们不可能将任务所需的所有信息都塞进这个有限的窗口内。 正是这两个核心限制,催生了对上下文工程 和外部记忆系统 的迫切需求。其核心思想是:既然模型的内在记忆是固定且有限的,那么我们就在模型外部为其构建一个可动态存储和检索的“记忆模块”。
- 上下文工程的作用:通过精心设计和组织提示,将当前任务最相关、最必需的信息放入模型的上下文窗口中。这相当于为模型提供了一个高度聚焦的“短期工作记忆区”。
- 外部记忆模块(如向量数据库)的作用:作为模型的“外挂硬盘”或“长期记忆库”,它可以存储远超过模型上下文窗口的海量信息。当需要处理特定任务时,系统会从这个外部记忆中实时检索出最相关的片段,并将其作为上下文提供给模型。通过这些“模型就好像有记忆了”,其本质是通过 “提示词(任务指令) + 检索到的相关上下文(外部记忆)” 的组合,在模型每次调用时,动态地为其构建一个临时的、任务特定的“记忆场景”。这个“记忆”的最大长度,就是模型上下文窗口的上限。 常见的上下文工程技术有:
-
Context Offloading (上下文卸载):将信息从核心的对话历史中移出,存放到外部系统(如文件系统),只在上下文中保留一个轻量级的引用
-
Reducing Context (上下文精简):通过总结或压缩来减少信息量,例如修剪旧的工具调用记录
-
Retrieving Context (上下文检索):在需要时,按需从外部系统将信息取回。实现方式包括基于索引的语义搜索,或更简单的基于文件系统的搜索工具(如 glob 和 grep)
-
Context Isolation (上下文隔离):通过将任务分解给多个子代理(sub-agents),每个子代理拥有自己独立的、更小的上下文窗口,从而实现关注点分离和上下文管理
PS: RAG本质也是一种上下文工程,通过引入外部知识源,弥补大模型自身知识库的静态性和事实性不足。
工具调用
工具调用(Function Calling)是指大模型拥有调用外部工具(如API、数据库、计算器等)的能力。当模型遇到无法直接回答的问题(需要实时数据、特定计算或实际操作)时,它可以主动选择并调用一个合适的工具来获取信息或执行操作。 其核心是模型思考和决策能力,能够根据用户问题和上下文,判断是否需要调用工具,如果需要调用,就会返回需要调用的工具名称和参数。再由本地执行工具调用,获得结果后,将结果返回给模型,模型根据结果,生成最终的回答。
MCP协议
所谓的MCP协议就是一种标准化的工具调用的协议,它定义了工具提供者和模型之间的交互规范。本质还是工具调用,只是在调用过程中,模型需要按照MCP协议的规范,来生成调用请求,而工具提供者则需要按照MCP协议的规范,来解析调用请求并返回结果。
MCP的作用类似USB-C如下图:模型可以通过标准的MCP协议访问不同的应用,应用只需要定义好规范就可以被各个模型调用,只要模型支持function calling的能力。
A2A协议 Agent2Agent(A2A)是谷歌于2025年4月推出的开放式协议,旨在实现不同AI智能体间的安全互操作与协作,为多智能体系统提供标准化通信框架。 工作方式如下图:
每个agent都有自己的:
- AgentCard:这是每个智能体的标准化自我描述文件,是其能力的“说明书”。它使智能体能够被其他智能体发现和理解。
- Task:这是智能体之间请求的标准化表达。它明确地定义了一个工作单元。
- Artifact:这是在智能体之间传递的标准化数据对象,是任务的输入和输出。它可以被视为智能体协作的“共享工作区”中的文件。
MCP与A2A协议 MCP是“人机协作”协议,而A2A是“机机协作”协议。它们的关系是互补而不是竞争,在一个A2A的多智能体系统中,每个智能体自身都可以通过MCP协议来扩展自己的能力。
延申技能:
工作流
工作流(Workflow)则是在工具调用基础上的延伸。通过编排多个提示词和工具调用的顺序,我们可以指导大模型完成一系列连续、复杂的任务。例如,下图展示了一个“调研并总结”的工作流:
Agentic
Agentic 是指大模型在执行任务时,能够自主地思考、决策、调用工具、与用户交互,最终完成任务的能力。最常用的模式就是ReAct模式,即“Reasoning and Acting”模式。
claude skill
它是一个框架,帮助模型去执行自定义的任务;是一种“外部引导”技术,通过提供任务指令、上下文信息和外部工具,来引导模型生成符合要求的回答。核心是生成一个三级的索引表,每个表的颗粒度都不一样,这样就可以包含任务的所有信息,包括任务指令、上下文信息和外部工具。让模型自己根据索引表,来思考、决策、调用工具、与用户交互,最终完成任务。
改变模型本身的能力
模型微调
模型微调的核心思想是:在预训练大模型的基础上,使用特定领域或任务的数据集进行有针对性的额外训练,使模型“专业化”,从而在该领域或任务上获得更优异的表现。 与Prompt工程和RAG这些“外部引导”技术不同,微调是直接对模型的内部参数进行更新,相当于为模型“重塑”一部分知识结构和行为模式。 模型微调本身的局限性比较大,存在以下问题:
- 数据依赖与质量:“垃圾进,垃圾出”。微调的效果极度依赖于训练数据的质量、数量和代表性。准备高质量的数据集是最大的挑战之一。
- 灾难性遗忘:模型在学习新知识时,可能会遗忘之前预训练中获得的有用通用知识。
- 成本与技术门槛:尽管PEFT技术降低了门槛,但仍需要机器学习知识和计算资源,并非所有团队都能轻松上手。
- 静态性:一旦微调完成,模型的知识就固定了。要更新知识,需要重新进行微调,不如RAG灵活。 而且在模型迭代速度如此快的今天,模型微调不如prompt和RAG灵活。
解决办法的局限
不改变模型能力的局限
您提出的这几个方面——Prompt 工程、上下文工程、Function Calling——确实是构建高质量大语言模型应用的核心技术,并且您说得非常对,它们都需要反复的“调优”。这种“调优”本质上是在弥补当前大模型技术的一些固有局限。 下面我们来逐一分析这三个能力的核心局限。
Prompt 工程的局限
Prompt 工程是与模型进行“对话”的艺术,旨在引导模型产生期望的输出。其局限主要源于模型的“黑盒”特性和对文本模式的敏感度。
- 脆弱性与不稳定性:Prompt 的微小改动(如换一个同义词、调整句子顺序、增减一个标点)可能导致输出质量的显著差异或突然失效。这就像在寻找一个狭窄的“甜点区”,没有明确的规则,大量依赖经验和试错。
- 缺乏可预测性与可解释性:即使一个Prompt在99次测试中都有效,也无法保证第100次它不会失败。我们很难从原理上解释“为什么这个Prompt有效”,更多的是经验性的总结,这使得调试和优化变得困难。
- “咒语”的幻觉:容易让人产生一种“找到了万能钥匙”的错觉,但事实上,针对特定模型微调或训练的有效Prompt,换一个模型(甚至同一模型的不同版本)可能就完全无效。
- 上下文窗口的消耗:复杂、冗长的Prompt会占用宝贵的上下文窗口,留给其他任务(如示例、历史对话)的空间就变小了。
- 无法教授模型新知识:Prompt 工程本质是激发模型已有的知识和能力,而不是向模型注入它不知道的新信息或复杂逻辑。对于模型训练时未见过的新概念或细节,Prompt 工程无能为力。
上下文工程的局限
上下文工程关注如何构建和利用模型的上下文窗口(即输入给模型的所有文本信息),其核心局限来自技术硬约束和模型的理解能力。
- 有限的上下文长度:这是最直接的硬限制。虽然现代模型的上下文窗口已从几千扩展到几十万甚至百万token,但它依然是有限的。对于长文档分析、长程对话等场景,如何筛选和压缩最相关的信息始终是一个挑战。
- “中间失忆”问题:即使上下文窗口足够长,模型对位于上下文中间部分的信息的记忆和关注度会显著低于开头和结尾部分。这导致在超长文本中,模型可能会“忘记”或忽略关键信息。
- 信息检索效率低:将大量信息塞进上下文,并期望模型能准确找到所需信息,其效率远低于传统的数据库检索。这就像让人在一本没有目录和索引的厚书中查找某一句话,成本很高。
- 成本高昂:处理长上下文(尤其是百万token级别)的计算成本和API调用成本非常高昂,不适合高频或实时性要求极高的应用。
Function Calling 的局限
Function Calling 让模型可以调用外部工具或API,极大地扩展了其能力边界。但其局限在于“规划”与“执行”的脱节。
- 依赖准确的意图识别:模型必须首先正确理解用户的意图,才能决定调用哪个函数、以及以什么参数调用。对于模糊、复杂或隐含的意图,识别失败率较高。
- 复杂的多步推理和规划能力弱:模型很难自主进行复杂的多步规划(例如,“先调用A函数获取数据,然后根据结果判断是调用B函数还是C函数,最后将结果汇总”)。这通常需要外部的“智能体(Agent)”框架来管理状态和控制流,模型本身只负责单步的决策。
- 参数构造的可靠性问题:模型需要将自然语言理解转化为结构化的参数。这个过程可能出错,例如格式错误、数值错误、或遗漏必需参数。需要额外的校验和错误处理机制。
- 无法处理动态环境:Function Calling 通常是“一次性”的。模型在调用函数时,难以考虑外部世界的动态变化。例如,在调用一个订餐API时,它无法知道今天的餐厅是否休息,这需要额外的逻辑来处理异常。
总结与共性局限
将三者结合起来看,它们的共同局限揭示了当前大模型能力的核心边界:
| 能力 | 核心目标 | 主要局限 | 本质原因 |
|---|---|---|---|
| Prompt 工程 | 引导与激发 | 脆弱、不稳定、不可预测 | 模型的“黑盒”特性,对输入模式高度敏感 |
| 上下文工程 | 信息提供与记忆 | 长度限制、中间失忆、检索效率低 | Transformer架构的注意力机制和计算复杂度限制 |
| Function Calling | 能力扩展与行动 | 规划能力弱、参数不可靠、依赖意图识别 | 模型缺乏真正的“思维链”和世界模型,本质是文本预测 |
根本性的共同局限是:当前的大模型本质上是基于概率的、无状态的、被动的文本生成器。
改变模型能力的局限
模型微调的局限
您问到了一个非常核心且深刻的问题。如果说Prompt工程、上下文工程和Function Calling是“使用”模型的艺术,那么模型微调就是“改造”模型的艺术。它的局限同样显著,而且往往更根本、成本更高。 模型微调的局限可以从以下几个关键维度来理解:
知识与能力的“天花板”效应
- 无法突破基座模型的先天容量:微调本质上是在基座模型(预训练模型)已有知识和能力的基础上进行“精修”。它无法让模型学会它从未见过的新概念或技能。如果基座模型对某个领域(如非常专业的医学知识)一无所知,仅靠微调很难让它成为该领域的专家。这就像一位高中老师很难把一名小学生直接培养成大学生,因为基础知识的鸿沟太大。
- “灾难性遗忘”:这是微调最著名的局限。为了让模型在特定任务A上表现更好,我们用它不熟悉的任务A的数据去训练它。这个过程会覆盖或削弱模型原有的、与任务A不直接相关的通用知识和能力。例如,微调一个模型成为法律专家,可能会导致它写诗、编程或进行常识推理的能力下降。我们是在用“专才化”换取“通才性”。
数据依赖与成本问题
- 高质量数据的稀缺与成本:微调的效果极度依赖于训练数据的质量和数量。制作大量、精准、无偏见的标注数据成本极其高昂,且过程枯燥。对于许多小众领域,可能根本不存在足够的高质量数据。
- 数据偏差的放大:如果微调数据本身存在偏差(例如,特定领域的对话数据主要由男性用户产生),微调后的模型不仅会学会任务,还会放大数据中存在的偏见,并且这种偏见会被“固化”到模型权重中,比通过Prompt工程引入的偏见更难纠正。
技术复杂性与操作难度
- 超参数敏感:微调过程涉及学习率、训练轮数、批量大小等一系列超参数。这些参数的选择对结果影响巨大,但又没有普适的“金科玉律”,需要大量实验来调优,技术门槛远高于写Prompt。
- 方法与技巧的选择:全参数微调成本高且易导致遗忘,因此催生了Parameter-Efficient Fine-Tuning(PEFT,参数高效微调) 技术,如 LoRA。虽然LoRA等大大降低了成本,但又引入了新的超参数(如秩
r、Alpha值等),需要根据任务选择合适的方法和配置,增加了技术复杂性。 - 评估困难:如何全面评估微调后的模型?不仅要看它在目标任务上的表现,还要测试其通用能力是否退化。建立一个可靠的评估体系本身就是一个挑战。
部署与维护的沉重负担
- 高额的计算与存储成本:每个微调后的模型都是一个独立的、体积巨大(通常几GB到几十GB)的实体。存储、部署和推理这些模型需要大量的硬件资源。如果你需要为10个不同的任务微调10个模型,你就需要维护10个模型副本,成本呈线性增长。
- 版本管理的噩梦:当基座模型更新,或者你的业务需求变化时,你可能需要重新进行微调。管理多个微调模型的版本、追溯每个版本的训练数据和参数,会带来巨大的运维复杂性。这被称为“模型蔓延”。
目前常用的各种技术框架
低代码平台
- Coze:一个AI代理平台(如Coze AI),提供低代码工具来构建和部署对话代理,支持集成多种数据源和API。
- Dify:一个低代码LLM应用开发平台,允许用户通过可视化界面快速构建AI应用,如聊天机器人或知识库系统。
- ...
优势:
- 低代码:无需编写复杂的代码,即可构建功能强大的AI应用。
- 可视化:通过拖放组件和配置参数,实现应用的可视化设计。
- 集成性:支持与外部数据源、API和工具的集成,扩展应用的功能。
局限:
- 功能限制:尽管提供了可视化工具,但在某些复杂场景下,可能需要编写自定义代码来实现特定功能。
- 依赖外部服务:许多低代码平台依赖外部服务(如数据库、API),这可能导致依赖问题和数据隐私风险。
代码平台
- LangChain:一个流行的开源框架,用于构建基于LLM的应用程序。它支持链式操作(如提示模板、记忆管理),简化了与外部数据源和工具的集成。
- LangGraph:基于LangChain的扩展,用于构建有状态的工作流图。它允许定义复杂的多步骤流程,例如代理之间的交互和条件分支。
- AutoGen:由微软开发的框架,专注于多代理对话系统。它支持创建协作代理(如用户代理、助手代理),用于自动化任务解决和对话。
- ...
优势:
- 模块化与易用性:提供大量预构建组件(如模型、工具、记忆模块),通过组合方式快速构建AI应用原型,降低开发门槛。
- 强大的工作流与状态管理:支持构建复杂、有状态的多步骤工作流(如图结构、循环、分支),非常适合开发自主智能体和复杂推理应用。
- 卓越的多智能体协作:专为多智能体对话设计,能轻松创建不同角色的智能体,通过自动化对话协作解决复杂任务。
- 广泛的生态集成:与多种LLM提供商、外部数据源、API和工具无缝集成,具备高度的灵活性和扩展性。
局限:
- 抽象复杂性与学习曲线:高度的抽象化使得在调试复杂逻辑或深入定制时难度增加,需要理解框架内部机制,存在一定的学习曲线。
- 平台锁定与灵活性限制:虽然模块化程度高,但在实现高度特定或非标准功能时,可能受限于框架设计,仍需编写底层代码。
- 性能开销与依赖:多层的抽象可能引入性能开销,且应用功能严重依赖外部服务(如LLM API、数据库),存在服务稳定性、成本和数据隐私风险。
AI 应用代表
所有的AI应用都是基于我说的Prompt工程、上下文工程、工具调用这些技术进行组合,才能实现复杂的任务。 例如:claude code
- 工具调用:claude code 具有bash命令行、文件读写、网络抓取这些内置功能,还可以基于MCP拓展,调用外部工具(如Python脚本、数据库查询等)。
- 上下文工程:claude code 会搜索当前文件夹下面的所有文件,并进行标注,生成检索和总结信息,放在claude.md里面方便模型理解都有哪些文件和功能,方便模型后续直接根据要求检索;
- Prompt工程:claude 内置了有非常优秀的prompt,这样claude code就可以适合绝大部分的任务;
AI未来演绎
根据各个公司的发展报告和视频以及自己对于AI的理解,AI未来的发展主要包括以下几个方面:
- AI能力会不断发展,算力规模会不断变大,这是可预见的;Google、openai、阿里、马斯克、扎克伯格不是在研发芯片就是在砸钱建更大的数据中心;更强的算例,更大的计算平台,也会推动算法层面的创新;套用“苦涩的教训”来说,最重要和最有效的算法创新是那些能够实现计算扩展的通用方法。此外,有证据表明算法创新依赖于计算扩展来进行开发。这表明我们应该预期算法进步,但这是由计算扩展推动并专注于计算扩展的。然而,这是一个关键的不确定性。如果计算不是瓶颈,能力的提升可能比这里预测的要快。
- AI多模态能力发展。高质量人类文本数据可能于2027年前耗尽,但多模态数据(图像、视频)和合成数据(通过AI生成)将成为新来源,支撑算力扩展。
- 关键能力突破:
- 世界模型的发展,世界模型发展起来,AI将会学习到一般的规律,不仅局限于文本,这时候AI将有能力链接物理世界,驱动机器人运动。
- 底层算法发展,AI将具有持续学习的能力,这个比较遥远,目前还没有什么比较知名的算法可以达到这一点。
- 应用深度渗透。各家公司开始接入AI,让AI进入到工作中,这一点已经慢慢实现了;主要领域还是在编程方面接入,已经有一些好用的工具,claude code,code X,cursor,trae等等工具。未来将会有更多工具出现,不仅是聊天机器人,编码,将会细分更多。
泡沫
AI 目前我觉得是有一定的泡沫的,但是AI本身是有很大的价值的,未来的市场会有很大的发展。一些初级岗位和重复性还有辅助类的工作AI是可以替代的,这就是AI的价值。一个东西本身就具有很大的价值,就算是具有泡沫,价值被高估了,泡沫破裂也依然会有价值。所以我认为泡沫不用太过于担心,只要AI本身有价值,就会有市场。
个人学习启示
AI的发展目前是比较快的,没有什么统一的框架,今天出了Agentic RAG,明天就出claude skill。对于个人应该是优先学习基本原理和基本的使用,其他框架都是基于这些原理和使用进行扩展的。学习了基本使用和原理,后续拓展和学习一些框架,以及挑选适合公司的业务或者修改框架也是可以的;毕竟AI的能力摆在哪里,长处和短处都很明显,目前看来是没有两全其美的方案,每种框架都有各自的局限和优势;
低代码框架
- coze/dify: 适合不懂代码的小白,灵活度比较低,但是比较方便。例如产品经理,想要快速搭建一个原型可以使用。
- n8n:适合有一定代码基础的人,灵活度比较高,但是比较复杂。例如开发人员,想要自定义一个工作流可以使用。
- AgentKit:openAI的一个零代码的框架,适合不懂代码的人使用,跟coze/dify类似,比较不成熟,不了解就不评价了;
代码框架
- langchain/langgraph: 目前最成熟的框架,也是最常用的框架。在Boss直聘上面可以看到,如果是招聘应用开发,基本都会写上这里两个。截止10月26日,已经发布了1.0版本,也进行了2亿美元的融资;学开源框架优先学习;
- autoGen: 微软发布的一个多智能体协作框架,适合多智能体的场景;
个人的基本学习路线:
基本原理->不依赖框架实现小demo->调优->开源框架->根据框架实现demo->调优->本地模型部署和接入->模型微调
额外学习: 可以多看看国外的开源技术文章。
基本原理: 学习看吴恩达大佬的《Agentic AI》,然后自己根据openAI的sdk去做实践。视频说的都是基本原理和方法,如果想要参考代码和我的学习文档,正在整理中。
调优: 在《Agentic AI》 里面就有说明。
开源框架: 优先学习langchain/langgraph,还有精力可以看看别的,例如autoGen之类的。开源框架能够帮助快速实现原型和部署什么的,能满足大部分情况了,对于不满住需求的,需要自己修改框架或者自己实现。自己实现已经学习过基本原理了,应该是不难的。
模型部署: 个人还没学习,也仅仅是了解。后续要部署自己的模型一定会需要的,原因如下:
- 数据隐私与安全:这是最刚性、最重要的需求,尤其是在金融、医疗、法律、政府和军工等敏感行业。
- 降低成本与可控支出:对于高频次、大规模的应用场景,本地部署从长期看更具成本效益
- 低延迟与高可靠性:许多实时应用场景对响应速度有极高要求
模型微调: 微调的话,个人还没学习,也仅仅是了解。微调一定是放在最后的,原因在于成本+AI开源模型发布也很快。可能你花费大价钱和时间训练好的模型,用同一套的Prompt、上下文工程、function calling 效果跟开源模型差不多;个人认为模型微调的优先级一定是最低的。
参考资料
- 为什么我在2025年看衰人工智能智能体
- 论大型语言模型的生物学特性
- RPG:用于统一且可扩展代码库生成的仓库规划图
- 阿里云栖者大会视频
- 谷歌2030AI未来报告
- 于OpenAI 的企业AI应用报告聊聊企业级市场的AI现状与发展趋势
- AI in the Enterprise
- OpenAI 最新报告:AI 在企业中的应用
- 知乎transformer架构介绍
- rag 局限
- 多agent优化推理
- Building effective agents
- Effective context engineering for AI agents
- Agentic Context Engineering
- gemini-for-google-workspace-prompting-guide-101
- 使用 OpenAI Agents SDK 构建智能体
- Building AI Agents with the OpenAI Agents SDK
- Building effective agents
- Effective context engineering for AI agents
- Agentic Context Engineering
- gemini-for-google-workspace-prompting-guide-101
- open-ai-sdk-cn
- 使用 Python 和 MCP 构建本地文件操作服务
- MCP文件操作服务器:让AI帮你管理文件
- OpenAI中文文档】MCP工具使用指南
- openAI 中文文档
- hello agents 综合agent学习
- AI回答