大模型到底是什么:一个不断"预测下一个词"的程序

前不久我在本地跑通了 ollama 和两个 qwen 模型,部署过程很顺利,但有一个问题一直悬着:那个 1.9GB 的文件里到底装了什么,凭什么它就能"对话"?这篇是我跟随 Andrej Karpathy 的入门视频(《Intro to Large Language Models》,2023 年,约 1 小时;他是 OpenAI 创始成员、前 Tesla AI 总监,原视频 https://www.youtube.com/watch?v=zjkBMFhNj_g ,B 站有翻译版)系统学习后的答案。

1. 什么是 LLM

LLM,Large Language Model,大语言模型。它本质上是一个循环的程序:根据已有的文字,预测下一个最可能出现的文字;把预测出的文字追加到输入末尾,再继续预测;如此循环,直到它输出结束标记。

就这么简单的一个循环。后面所有的"智能",都藏在这个循环不断调用的那个"预测函数"里。

2. 一个大模型 = 两个文件

Karpathy 用 Meta 开源的 llama-2-70b 来拆解,结论让人意外:一个大模型就是两个文件。

  1. 参数文件:约 140GB,里面是全部的神经网络权重------模型"学会"的一切都存在这里
  2. 运行程序:一个约 500 行的 C 语言文件(run.c),负责把参数文件读进内存、执行那个"预测下一个词"的计算

没有数据库,没有隐藏的服务端,没有配置中心。一个文件存知识,一个文件算知识。

那么 ollama 拉取的模型是什么呢? 对上这个框架就通了:ollama 自己就是那个"运行程序"的角色(准确说,它包装了 llama.cpp 这类引擎,相当于那 500 行 C 代码的现代化实现,还额外加了模型管理、API 服务这些外围能力)。而 ollama pull 拉下来的,就是那个 140GB 参数文件的压缩版 ------我部署的 qwen2.5:7b 有 4.7GB,它经过 Q4 量化(把参数从 16 位浮点压到约 4 位存储,相当于把这套"知识"做了有损压缩,体积降为约 1/4,能力略降)。所以使用ollama部署本地大模型里那两个文件(1.9GB 的 3B、4.7GB 的 7B)不是别的,正是"参数文件"本体。
压缩用到的技术叫量化,值得多说两句,因为它是"普通硬件能跑大模型"的关键。参数文件里每个参数原本是一个 16 位 的浮点数(可以理解为精度很高的小数);量化就是把这个小数换成精度更低、但占位更少的近似值。Q4 的意思是每个参数压到约 4 位存储------相当于把 70 亿个高精度小数全部"四舍五入"到粗刻度上,文件体积降到约原来的 1/4,这就是为什么 7B 参数的模型只需要 4.7GB。代价是能力略降(每次四舍五入都损失一点信息),但实践证明这个损失对日常使用影响很小------类比 JPEG 图片的有损压缩:文件小了几十倍,你几乎看不出画质差别。Ollama 库里 Q4/Q8 这样的后缀名,指的就是压缩到了什么精度,数字越大越接近原版、文件也越大。

3. 参数文件是怎么来的

分两个阶段。

阶段一:预训练(Pre-training)------把互联网压缩进 140GB

流程是:下载约 10TB 的互联网文本 → 集群约 6000 块 GPU → 把这些文本"压缩"进神经网络,花费约 200 万美元,等待约 12 天 → 得到一个基础模型(base model)。

10TB 变 140GB,Karpathy 称之为约 100 倍的有损压缩。这个类比很传神:它不像 zip 那样无损,而是像你读完一万本书之后写下的"理解"------细节丢了,但模式、知识、语言的规律留下来了。基础模型唯一的本领就是"接着你的话往下说",它不聊天、不回答问题,你问"中国的首都是哪里",它可能接着续写"这是地理课本第二章的第一道题"------因为互联网上这句话后面接的就是这种内容。

预训练压缩的是知识------10TB 文本里的规律被写进权重,原文信息几乎全部丢弃,再也还原不回来;量化压缩的是数值精度------参数文件已经生成,只是把文件里每个参数从 16 位的浮点数(可以理解为精度很高的小数)换成精度更低、但占位更少的近似值,一个参数都没少。

阶段二:调优(Fine-tuning)------教会它"当助手"

基础模型离"能用"还差一步。做法是:写标注规范 → 请人撰写约 10 万条高质量的"问题-理想回答"对 → 在基础模型上继续训练(约 1 天)→ 得到助手模型(assistant model)。

这一步的本质是给模型立行为规范:通过大量示范告诉它"有人问你问题时,好好回答"。之后再进入循环:部署 → 收集用户发现的不良行为 → 回到标注 → 再训练。我们平时用的 ChatGPT、GLM,都是走完这两个阶段的助手模型。

顺带一提,微调还可以做定向定制------喂某个领域的专业问答,就能得到该领域的"专家版"模型。这在部署侧是有真实需求的:私有化场景里"用自己的文档调出一个懂自己业务的模型"曾经是很流行的卖点(不过实践中更常用的替代方案是 RAG,这是后续篇章的话题)。

4. 视频里的"未来",很多已经发生

这个视频是 2023 年的,Karpathy 在结尾列了一串"几年内 LLM 会做到"的预测。两年多后的今天对照着看,很有意思:

  • 工具调用------他预测模型会使用计算器、Python 等现有软件。已实现,且就是使用ollama部署本地大模型里 3B/7B 实验的主角:DSH 告诉模型有哪些工具、模型决定何时调用哪个。3B 和 7B 在这件事上的巨大差异,正是因为这确实是"预测下一个词"之外需要额外能力的任务
  • 多模态------能看图、能听能说。也已实现:我日常用的主力模型就是原生支持视觉理解的(一个 1M 上下文、可处理图像的多模态模型)
  • 他还提到模型之间互相通信、针对具体任务定制微调后在应用商店里存在多个版本------这些今天也都有雏形了

一个两年前的预测几乎全部兑现,这本身就是这个领域变化速度的注脚。

5. 更远的未来:卡在"没有奖励函数"

视频里最有意思的思想实验是 AlphaGo 的对比。

AlphaGo 有两个阶段:先模仿人类棋手学习,再自我提升------给自己设奖励函数(赢棋),自己跟自己下几百万盘,最终超越所有人类。第二阶段不需要任何人类数据。

LLM 卡在第二阶段。模仿人类这一步(预训练+微调)已经做到了极致,但"自我提升"需要一个清晰的奖励信号:围棋赢就是赢,输就是输,规则完备。而开放的语言世界里没有这个函数------"这段话写得好不好""这个推理对不对"很难自动判定。所以今天的 LLM 无法像 AlphaGo 超越人类棋手那样超越人类语料。Karpathy 认为在有明确奖励标准的窄领域(如数学证明、代码通过测试)可以做到一部分------这一点后来也部分应验了,编程和数学正是近年模型进步最快的方向。

6. 一个我开始学习时的误会:MoE 和"专家"没关系

整理这份笔记时我想到一个问题:现在国产旗舰模型全是 MoE(Mixture of Experts,混合专家)架构------DeepSeek、GLM、Kimi、Qwen 全是。它和上面说的"领域专家系统"是一回事吗?MoE 又是国内发明的吗?

查证后两个答案都是否定的:

MoE 不是国内首创。这个思想 1991 年就有了(Jacobs 等人的论文《Adaptive Mixtures of Local Experts》),2017 年 Google 的稀疏化版本让它具备了实用价值,2023 年底 Mistral 的开源 MoE 模型让它进入主流视野。国内厂商的 contributions 是把这个架构的成本效率做到了极致(比如用更少的激活参数跑出旗舰性能),而不是发明它。

MoE 和"领域专家系统"也不是一回事。这是个容易望文生义的误会:

  • 领域专家系统 = 用领域数据微调出一个专用模型(第 3 节说的那种)
  • MoE 的"专家" = 把一个巨模型的参数切成很多组,每 token 只激活其中少数几组。"专家"是工程意义上的分组,不是人类可理解的领域分工------你没法说"3 号专家是医学组的"。哪组参数被激活由一个可学习的路由网络按 token 决定,切分出来的专长是数据里自己长出来的模式,人类看不懂也不需要看懂

MoE 解决的问题是成本:让"拥有海量参数(知识容量大)"和"每次推理只用少量参数(算力便宜)"同时成立。这正是国产旗舰模型参数表的由来------DeepSeek 763B、GLM 744B、Kimi 2.8T,总参数吓人,每 token 实际激活的只有几十 B。国内旗舰清一色选择 MoE,图的就是这个性价比。

相关推荐
n112126 天前
4G 显存老显卡怎么跑模型:llama.cpp 加 GGUF 配置
llama·llama.cpp·本地大模型·gguf
飞塔老梅子9 天前
16. M5 Max 128GB内存能支持的最大模型 (2) ❀ 老梅子学AI
人工智能·flash·本地大模型·lm studio·qwen3.8
ayaya_mana24 天前
Qwen3.5-9B融合DeepSeek-V4-Flash小模型实测与部署
windows·本地大模型·qwen3.5
虎虎(_ _)。゜zzZ1 个月前
零基础本地部署Qwen2.5-7B:从环境准备到模型对话的完整实操
agent·ollama·本地大模型·qwen2.5·离线ai·llm部署
每日出拳老爷子1 个月前
【AI】Ollama 更新后 skipping CUDA 掉回 CPU
gpu·nvidia·cuda·ollama·本地大模型
菊链诗腾3 个月前
部署大模型8GB显存128K大模型调优实战
人工智能·调优·本地大模型
Python私教4 个月前
Cursor + Claude Code 全流程实战:搭一套生产级 AI 编程工作流(2026 最新版)
人工智能·语言模型·qwen·ollama·本地大模型·大模型部署·deepseek
兆。4 个月前
如何在本地搭建天气智能体项目
langchain·openai·qwen·ollama·本地大模型
不懒不懒5 个月前
【从零搭建本地电商智能客服 Agent:Dify+Ollama+Qwen3.5 部署全流程】
dify·ollama·本地大模型·qwen3.5·电商智能客服·react 智能体;