AI大牛卡帕西发布2025年度总结:LLM潜力仅挖掘不到10%!

过去一年,LLM 发展迅速,能力和应用场景都在不断扩展。从基于可验证奖励的强化学习,到本地运行的智能代理,再到“Vibe 编程”和图形化界面,AI 正以前所未有的方式进入我们的工作和生活。

在这样的背景下,AI 大牛 Andrej Karpathy 在个人博客上分享了自己对 2025 年 LLM 发展的独特观察,既揭示了技术趋势,也提供了对未来智能形态的思考,非常值得一读。

https://karpathy.bearblog.dev/year-in-review-2025/

作者 | Andrej Karpathy       

编译 | ChatGPT、苏宓

出品 | 优快云(ID:优快云news)

2025 年是大语言模型(LLM)快速推进、变化密集的一年。下面列出的是一些在我看来尤为重要、且多少有些出乎意料的“范式转变”——它们在概念层面上改变了整体格局。

基于可验证奖励的强化学习(RLVR)

在 2025 年初,几乎所有实验室中 LLM 的标准生产训练流程大致如下:

  • 预训练(Pretraining,约 2020 年的 GPT-2/3)

  • 监督微调(Supervised Finetuning,SFT,约 2022 年的 InstructGPT)

  • 基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF,约 2022 年)

这一组合在相当长一段时间内都是训练生产级 LLM 的成熟且行之有效的方法。

进入 2025 年后,基于可验证奖励的强化学习(RLVR)逐渐成为事实上的新增关键阶段,并被纳入这一训练体系。

RLVR 的核心做法是:在多个可自动验证奖励的环境中(例如数学或代码类任务),对 LLM 进行强化学习训练。在这一过程中,模型会自发地发展出在人的视角下类似“推理”的策略——它们学会将问题拆解为一系列中间计算步骤,并掌握多种反复试探、回溯求解的策略(可参考 DeepSeek R1 论文中的示例)。在此前的训练范式下,这类能力很难通过直接设计获得,因为我们并不清楚对 LLM 而言,最优的推理轨迹和纠错路径究竟应当是什么样子;模型必须通过围绕奖励函数的优化,自行找到对自己有效的方式。

与 SFT 和 RLHF 这两个相对“轻量、短周期”的阶段不同,RLVR 依赖的是客观、不可被投机利用的奖励函数,因此允许进行更长时间、更充分的优化。

实践表明,RLVR 在“能力提升 / 成本”这一比值上表现极高,甚至消耗了原本计划用于预训练的大量算力。结果是,2025 年 LLM 能力的主要进展,很大程度上来自各大实验室对这一新阶段算力“积压”的集中释放:模型规模大致相近,但强化学习的运行时间显著拉长。

此外,这一新阶段还引入了一个此前不存在的重要调节维度(以及与之对应的尺度定律):可以通过在测试阶段生成更长的推理轨迹、增加“思考时间”,来控制模型能力。OpenAI 的 o1(2024 年末)是 RLVR 模型的首次公开展示,而在 2025 年初发布的 o3,则成为明显的拐点——人们已经可以直观地感受到这种差异。

幽灵 vs. 动物 / 锯齿状智能(Jagged Intelligence)

2025 年,是我(我想整个行业也是如此)第一次开始以更直观的方式真正理解 LLM 智能“形态”的一年。我们并不是在“进化或培育动物”,而更像是在“召唤幽灵”。

LLM 技术栈的各个层面都与生物智能截然不同——无论是神经架构、训练数据、训练算法,还是尤其关键的优化压力。因此,我们在智能空间中得到的必然是完全不同类型的存在,用“动物”的视角去理解它们,本身就并不合适。

从监督信号的角度看,人类的神经网络是为了在原始环境中保障群体生存而被优化的;而 LLM 的神经网络,则是为了模仿人类文本、在数学与代码等任务中获取奖励,以及在 LM Arena 上赢得人类的点赞而被优化的。

随着可验证任务领域逐步引入 RLVR,LLM 在这些领域附近的能力会出现“尖峰式”提升,而在整体表现上则呈现出一种颇为有趣的锯齿状特征:它们一方面像是博学多才的天才通才,另一方面又像是困惑且认知能力受限的小学生,随时可能被一次越狱诱骗,从而泄露你的数据。

(人类智能:蓝色;AI 智能:红色。因为它指出了一个常被忽略的事实:人类智能本身也是“锯齿状的”,只是锯齿的形态与 AI 不同。)

与上述讨论密切相关的,是我在 2025 年对各类基准测试逐渐产生的冷淡态度,甚至可以说是信任的流失。核心原因在于:基准测试在结构上几乎天然就是“可验证环境”,因此会立刻暴露在 RLVR 及其更弱形式(例如通过合成数据生成实现的变体)之下。

在典型的“刷榜”过程中,LLM 实验室的团队往往不可避免地会围绕基准测试,在嵌入空间中构造出一些相邻的小环境区域,并刻意“长出”足以覆盖这些区域的能力锯齿。在测试集上训练,正在成为一门新的艺术。

这也引出了一个耐人寻味的问题:

如果一个模型可以碾压所有基准测试,但仍然没有实现 AGI,那它究竟缺了什么?

关于本节所讨论的主题,我在下面这些文章中有更为深入的阐述:

  • Animals vs. Ghosts:https://karpathy.bearblog.dev/animals-vs-ghosts/

  • Verifiability:https://karpathy.bearblog.dev/verifiability/

  • The Space of Minds:https://karpathy.bearblog.dev/the-space-of-minds/

Cursor / LLM 应用的新一层

在我看来,Cursor 最值得关注的地方(除了它今年的爆发式增长之外)在于:它令人信服地揭示了 “LLM 应用”这一全新层级的存在——人们开始频繁讨论“某某领域的 Cursor(Cursor for X)”。

正如我今年在 Y Combinator 演讲中所强调的那样(https://www.donnamagi.com/articles/karpathy-yc-talk),像 Cursor 这样的 LLM 应用,本质上是在特定垂直领域内,对 LLM 调用进行打包与编排:

  • 它们负责完成“上下文工程”

  • 在后台编排多次 LLM 调用,将其串联成结构日益复杂的 DAG(有向无环图),并在性能与成本之间进行精细权衡

  • 为“人机交互”提供面向具体应用场景的 GUI

  • 提供一个“自治程度滑杆”

在 2025 年,很多人围绕这一新应用层“到底有多厚”展开了大量讨论:

所有应用最终都会被 LLM 实验室直接吞并,还是 LLM 应用本身依然存在广阔的机会空间?

我个人的判断是:LLM 实验室可能会培养出“能力一般的大学生水平”的模型,但 LLM 应用则会通过提供私有数据、传感器、执行器和反馈回路,对这些模型进行组织、微调,并真正将它们激活,组建成能够在特定垂直领域落地的专业团队。

Claude Code / 在你电脑上运行的 AI

Claude Code(简称 CC)是第一个让人直观感受到 LLM Agent 形态的产品——它能够以循环的方式,将工具使用与推理串联起来,用于解决更复杂、长期的问题。

对我来说,CC 另一大亮点在于:它能够直接运行在你的电脑上,并且使用你的私有环境、数据和上下文。相比之下,我认为 OpenAI 在这方面走偏了,他们早期的 Codex/Agent 研究主要聚焦于云端部署,通过 ChatGPT 容器进行编排,而没有充分考虑在本地运行的可能性。

虽然在云端运行的 Agent Swarms 看起来像是“AGI 的终极目标”,但现实世界中,我们处在一个能力增长锯齿状、起飞较慢的中间阶段,因此直接在开发者的电脑上运行 Agent 更为合理。

需要注意的是,这里真正关键的区别并不是 AI 操作究竟运行在云端还是本地,而在于其他所有因素:已经启动并运行的电脑、安装环境、上下文、数据、机密信息、配置,以及低延迟的交互体验。

Anthropic 在这一点上抓住了正确的优先顺序,并将 CC 打包成一个简洁且极具魅力的 CLI 形式,这改变了人们对 AI 的感知——它不再只是一个像 Google 一样需要访问的网站,而是一种“小精灵/幽灵”,真正“居住”在你的电脑上。这标志着与 AI 互动的一种全新、独立的范式。

 Vibe 编程

2025 年是 AI 实现突破的一年——它可以只用英文指令就生成各种令人印象深刻的程序,几乎不用理会代码本身。有趣的是,我第一次提出“vibe 编程”这个术语,是在一条随手灵感发的推文里,当时完全没想到它会发展得这么远。

通过 Vibe 编程,编程不再严格局限于专业编码人员,任何人都可以参与。从这个角度来看,它正是我在《赋能大众》(Power to the People)中提到的例子之一:LLM 彻底颠覆了技术扩散的方式——与以往所有技术相比,普通人从 LLM 中获得的收益远超专业人士、企业甚至政府。

Vibe 编程不仅让普通人能够接触编程,还让训练有素的专业人士能够撰写大量原本可能永远不会出现的软件。在 NanoChat 中,我通过 Vibe 编程,用 Rust 实现了自己定制的高效 BPE 分词器,而无需采用现成库,也不需要在 Rust 上达到多深的水平。

今年我用 Vibe 编程实现了很多项目,作为快速应用演示,来验证我想要存在的功能(例如 menugen、llm-council、reader3、HN 时间胶囊)。我甚至用 Vibe 编程快速生成了整个短生命周期应用,只为了找出一个 bug——为什么不呢?代码突然变得自由、短暂、可塑、一次性可丢弃。

Vibe 编程将重塑软件生态,并改变工作岗位的定义。

Nano Banana / LLM GUI

Google Gemini 的 Nano Banana 是 2025 年最令人惊叹、具有范式颠覆性的模型之一。在我的世界观里,LLM 是下一代重要的计算范式,类似于 20 世纪 70、80 年代的计算机。

因此,我们将看到类似的创新,原因与当年计算机时代类似:会出现个人计算机的对应形态、微控制器(认知核心)的对应形态,甚至是由 Agent 构成的「互联网」式系统,诸如此类。

特别是在 UI/UX 方面,与 LLM 进行“聊天”有点像在 1980 年代向计算机控制台发出命令。文本是计算机(以及 LLM)最原生、首选的数据表示形式,但对人类来说,文本并不是最理想的输入形式——人类其实不喜欢阅读文本,它既慢又费力。人们更喜欢以视觉化和空间化的方式获取信息,这也是传统计算机中 GUI(图形用户界面)被发明的原因。同理,LLM 也应该以我们偏好的形式与我们交流——通过图像、信息图、幻灯片、白板、动画/视频、Web 应用等。

目前早期的尝试形式当然包括 emoji 和 Markdown,它们通过视觉化方式“装饰”和布局文本,使信息更易于理解,如标题、加粗、斜体、列表、表格等。但谁来真正构建 LLM GUI 呢?在这个视角下,Nano Banana 提供了一个早期的线索,展示了未来 LLM GUI 的可能形态。

值得注意的是,它不仅仅是图像生成本身,更重要的是文本生成、图像生成与世界知识的联合能力,这些能力都在模型权重中紧密交织。

总结

2025 年是 LLM 发展令人兴奋且略有惊讶的一年。LLM 正在显现为一种全新的智能形态——它们在某些方面比我预期的更聪明,在某些方面又比我预期的更笨。无论如何,它们极具实用价值,而整个行业目前对它们的潜力认知,甚至还不到 10%。

同时,有太多新想法值得尝试,从概念上来看,这个领域仍然广阔开放。正如我今年早些时候提到的,我虽然表面上说法似乎矛盾,但实际上相信:一方面我们会看到快速且持续的进展,另一方面仍有大量工作需要完成。请系好安全带。

推荐阅读:

跳出超级 App 之争,鸿蒙系统级智能如何改写 AI 赛道规则?

“用自己服务器也要向GitHub交钱?”微软新规引开发者众怒,官方紧急喊停

首批鸿蒙极客:开发圈“金IP”的硬核实力

您的问题非常关键:**模型整体精度(OA=97.56%)看起来很好,但个别类别的分类精度却低至 0.75%,甚至某些类别只有 0.86%、0.90% 等等。这种现象是否正常?与训练方式有关吗?** 我们来逐步分析: --- ## 📌 **一、结果解析:为什么总体高,个别低?** 您得到的评估结果如下: | 指标 | 数值 | |------|------| | OA(总体准确率) | 97.56% | | AA(平均准确率) | 95.82% | | 最低单类精度 | Class 6: 75% | 这说明了以下几点: ### ✅ 总体表现优秀: - OA 达到了 97.56%,表示大多数样本被正确分类。 ### ⚠️ 存在类别不平衡或模型偏差: - 有个别类(如Class 6)精度为75%,远低于平均。 - 表示模型在这个类上犯了很多错误,可能是该类样本数量少、特征不明显,或者模型对它的学习不够充分。 --- ## 📌 **二、可能原因分析** 以下是导致“总体高,局部低”的常见原因: ### 1. 类别不平衡(数据分布不均) > 这是最常见的原因。 - 某些类别的样本数远远少于其他类别。 - 模型倾向于预测为多数类,忽略少数类。 - 即使某个类精度低,也不会显著影响整体 OA。 ✅ 解决方案: - 使用加权损失函数(如`class_weight='balanced'`); - 增加难例采样或使用过采样技术(SMOTE); - 在训练时打印每个类别的准确率,观察是否也低。 --- ### 2. 数据增强或预处理不当 - 如果某些类别在训练集和验证集中的增强策略不同,会导致模型泛化能力下降。 - 或者训练/测试图像归一化方式不一致。 ✅ 解决方案: - 确保训练和测试阶段的数据预处理完全一致; - 查看训练日志中每类精度的变化情况; - 使用可视化工具检查 Class 6 的原始样本是否标注错误或模糊。 --- ### 3. 模型结构偏重于部分特征 - 如果模型设计偏向提取特定波段或空间特征,可能导致某些类别难以区分。 ✅ 解决方案: - 可视化 Class 6 的样本与预测结果,看看是哪一类被误判; - 考察混淆矩阵,找出最容易与 Class 6 混淆的类别; - 调整网络结构或注意力机制,加强对这类特征的学习。 --- ## 📌 **三、如何判断是否与训练代码有关?** 您可以从以下几个方面入手确认是否训练阶段的问题: ### ✅ 查看训练日志中每类精度的变化曲线(如果有保存) - 如果 Class 6 的训练精度也一直较低,说明训练就学不好; - 如果训练精度高、测试精度低 → 存在过拟合; - 如果训练和测试都低 → 模型欠拟合或类别不平衡严重。 ### ✅ 训练过程中是否打印每类精度? - 如果没有打印,建议修改训练脚本,在每个 epoch 后输出 `per_class_accuracy`。 ### ✅ 检查训练集中每个类别的样本数量 ```python import numpy as np # 示例:假设你有 train_loader for _, labels in train_loader: unique, counts = np.unique(labels.numpy(), return_counts=True) print(dict(zip(unique, counts))) ``` --- ## 📌 **四、推荐解决方案** 为了改善 Class 6 等类别的分类精度,您可以尝试以下措施: ### ✅ 措施 1:增加类别权重(损失函数加权) ```python from sklearn.utils.class_weight import compute_class_weight # 在训练开始前计算类别权重 class_weights = compute_class_weight(class_weight='balanced', classes=np.unique(y_train), y=y_train) class_weights = torch.tensor(class_weights, dtype=torch.float).to(device) # 修改 loss 函数为带权重的交叉熵 criterion = nn.CrossEntropyLoss(weight=class_weights) ``` --- ### ✅ 措施 2:查看混淆矩阵,定位误分类类别 ```python from sklearn.metrics import confusion_matrix import seaborn as sns import matplotlib.pyplot as plt cm = confusion_matrix(y_true, y_pred) plt.figure(figsize=(10, 8)) sns.heatmap(cm, annot=True, fmt='d') plt.title('Confusion Matrix') plt.xlabel('Predicted') plt.ylabel('True') plt.show() ``` 观察哪个类最常将 Class 6 误判为其他类别。 --- ### ✅ 措施 3:可视化 Class 6 的样本与预测图 - 查看是否样本本身模糊、噪声大; - 是否存在标签错误(比如 Class 6 样本其实是 Class 4); - 利用 Grad-CAM 等技术查看模型关注区域是否正确。 --- ## ✅ 总结回答 > ❓ 总体精度还正常,怎么单个的精度这么点?和训练时使用的以前的代码有关系吗? - **有关系!** 特别是训练阶段的类别不平衡、数据增强、损失函数设置、是否监控每个类的精度等都会直接影响最终每个类的分类性能。 - 即使总准确率高,也不能代表所有类都表现良好。 - 建议您: - 在训练阶段增加每个类别的准确率输出; - 使用混淆矩阵查找最容易出错的类别; - 加入类别权重或改进数据分布,提高模型对少数类的识别能力。 如果您愿意提供训练代码片段或训练日志,我可以进一步帮您分析具体问题所在。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优快云资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值