大模型的存在形式与运行方式¶
文档目的¶
整理一个常见但容易混淆的问题:像 GPT、Claude、DeepSeek 这类大模型,究竟是以什么形式存在的?它们是不是一个可执行程序?这篇文档给出一个面向非研究视角、但足够准确的工程解释。
一句话结论:
大模型本体通常不是传统意义上的单个可执行程序,而更接近“模型权重 + 模型结构 + tokenizer + 推理运行时”的组合;用户日常接触到的 ChatGPT、Claude、DeepSeek 往往还是在这之上再包了一层产品与服务系统。
1. 大模型是不是一个可执行程序?¶
严格来说,通常不是。
更准确地说,大模型可以拆成两层来看:
- 模型本体:训练得到的参数、结构定义、tokenizer、配置文件
- 运行系统:加载这些文件并执行推理的软件框架或服务
所以如果类比传统软件:
- 模型更像“内容/参数文件”
- 推理框架更像“播放器/解释器/运行时”
- 聊天网页或 API 更像“产品外壳”
因此,大模型不是简单的 .exe、.app 或单个二进制程序,而是一个数学模型 + 工程运行系统的组合体。
2. 大模型最核心的存在形式:参数/权重文件¶
大模型经过训练后,最核心的产物是参数(parameters),也常叫:
- 权重(weights)
- checkpoint
- 模型文件
这些参数本质上是大量数值矩阵,用来表示模型在训练中学到的模式。
2.1 从存储角度看,它是什么¶
从文件系统角度看,大模型通常表现为一组文件,例如:
model.safetensorspytorch_model.binconsolidated.00.pth*.gguf
这些文件本身不是“会主动运行的程序”,而是:
- 被训练好的神经网络参数快照
- 供推理程序加载的模型数据
2.2 为什么文件会很大¶
因为参数量非常大。
例如:
- 7B 模型:约 70 亿参数
- 70B 模型:约 700 亿参数
如果每个参数使用 2 字节存储,那么仅参数本身就可能达到几十 GB 到上百 GB。
因此,很多人第一次接触本地模型时会发现:
- 模型文件很大
- 往往要分片存储
- 需要量化后才能更容易在本地运行
3. 只有权重还不够:还需要模型结构定义¶
即使拿到了模型文件,也不能自动运行。还需要知道:
- 模型有多少层
- hidden size 是多少
- attention 怎么计算
- 使用什么位置编码
- 词表与 tokenizer 如何工作
- 特殊 token 如何定义
因此,一个可用的大模型通常不只是一个权重文件,而是一组配套文件,例如:
config.jsontokenizer.jsontokenizer_config.jsonspecial_tokens_map.jsongeneration_config.json- 若干权重分片文件
可以理解为:
- 权重 = 学到的内容
- 结构配置 = 这些内容该如何组合与计算
- tokenizer = 文字与 token 之间的映射规则
4. tokenizer 是什么,为什么它也属于模型的一部分¶
大模型并不直接处理“汉字、英文单词、标点”本身,而是处理 token。
所以在模型运行前后,必须经过 tokenizer:
- 把输入文本切分成 token
- 把 token 映射成 ID
- 模型对这些 ID 进行计算
- 再把输出的 token ID 还原成文本
这意味着:
- 同样一句话,不同 tokenizer 的切分结果可能不同
- tokenizer 与权重、模型结构通常是绑定的
- tokenizer 不匹配时,模型效果会显著异常
所以工程上,大模型通常不是“只有一个权重文件”,而是“权重 + tokenizer + 配置”一起构成可运行单元。
5. 真正让模型跑起来的是推理引擎(Inference Engine)¶
模型文件本身不会自己回答问题,必须由推理引擎来加载和执行。
常见推理运行时包括:
- PyTorch
- Hugging Face Transformers
- vLLM
- TensorRT-LLM
- llama.cpp
- Ollama(更偏产品化封装)
这些运行时负责:
- 加载模型权重到内存或显存
- 调用 tokenizer 处理输入
- 按模型结构逐层做矩阵计算
- 计算下一个 token 的概率分布
- 采样/解码生成结果
- 通过 CLI、HTTP API 或聊天界面对外提供服务
一句话:
会执行的是推理程序,不是权重文件本身。
6. 从数学角度、工程角度、产品角度分别看“大模型是什么”¶
6.1 数学角度¶
大模型可以看成一个函数:
输入一串 token,预测下一个 token 的概率分布。
6.2 存储角度¶
大模型是一组大体积参数文件及其配置文件。
6.3 工程角度¶
大模型是一个推理系统中的核心计算部件,需要依赖:
- 权重
- 模型结构
- tokenizer
- 推理框架
- CPU/GPU
- 服务层
6.4 产品角度¶
大多数用户接触到的并不是“模型文件”,而是:
- ChatGPT
- Claude
- DeepSeek 网页
- 各类 API 服务
也就是说,普通用户接触到的往往是:
模型能力被包装成的在线产品或远程服务
7. GPT、Claude、DeepSeek 分别更像什么¶
7.1 GPT¶
对普通用户来说,GPT 通常表现为:
- OpenAI 提供的远程模型服务
- 通过网页、App 或 API 调用
你通常拿不到底层模型权重。
所以 GPT 对用户的存在形式更像:
一个远程 AI 服务,而不是本地模型文件。
7.2 Claude¶
Claude 与 GPT 类似。
对大多数用户而言,Claude 主要以以下形式存在:
- Claude 聊天产品
- Anthropic API
- 被集成进其他产品的远程能力
所以用户接触到的也是“服务”,而不是底层模型本体。
7.3 DeepSeek¶
DeepSeek 的情况更适合拿来理解“模型”和“服务”的区别。
它常有两种形态:
形态 A:远程服务¶
例如:
- 官网聊天界面
- API 调用
此时它和 GPT / Claude 很像,本质上是云端服务。
形态 B:可下载的开源权重¶
部分 DeepSeek 模型可公开下载,这时它的存在形式就更接近:
- 一组模型文件
- 可以被本地推理框架加载
- 可以在自己的机器或服务器上运行
所以 DeepSeek 是理解这一点的典型例子:
同一个“模型家族”既可以以远程服务形式存在,也可以以本地权重文件形式存在。
8. Model、Program、Service、Agent 的区别¶
这几个词很容易混在一起,最好分清。
8.1 Model(模型)¶
模型是:
- 参数化的神经网络
- 负责根据输入计算输出
- 能力主要储存在权重里
8.2 Program / Runtime(程序 / 运行时)¶
程序或运行时是:
- 用来加载模型并执行推理的软件
- 负责资源管理、推理加速、输入输出处理
例如:
transformersvllmllama.cppollama
8.3 Service(服务)¶
服务是:
- 在模型运行时之上再包装一层 API、鉴权、限流、日志、计费等能力
- 对外暴露成可调用接口
例如:
- OpenAI API
- Anthropic API
- DeepSeek API
8.4 Agent(智能代理)¶
Agent 是在模型和服务之上继续增加:
- 目标
- 规划
- 工具调用
- 多步执行
- 记忆
- 结果校验
可压缩成一个公式:
Agent = 大模型 + 工具 + 工作流 + 记忆/规划
所以:
- 并不是所有 LLM 服务都是 Agent
- 能连续读文件、查网页、调用命令并完成多步任务的系统,更接近 Agent
9. 本地部署一个模型时,真实运行链路是什么¶
可以用下面这条链路理解:
用户输入文本
↓
聊天界面 / CLI / API 请求
↓
应用层服务
↓
推理运行时(Transformers / vLLM / llama.cpp / Ollama)
↓
tokenizer 把文本转成 token
↓
模型结构 + 权重执行计算
↓
CPU / GPU 逐步生成下一个 token
↓
输出 token 被解码回文字
↓
返回给用户
这里每层职责不同:
- 界面层:负责交互
- 服务层:负责请求管理
- 推理层:负责执行模型
- tokenizer:负责文本与 token 转换
- 模型权重:负责“能力本体”
- 硬件层:负责实际算力
10. 本地模型目录通常长什么样¶
一个常见模型目录可能包含:
my-model/
├── config.json
├── tokenizer.json
├── tokenizer_config.json
├── special_tokens_map.json
├── generation_config.json
├── model-00001-of-00004.safetensors
├── model-00002-of-00004.safetensors
├── model-00003-of-00004.safetensors
└── model-00004-of-00004.safetensors
或者在某些本地推理生态里,会看到更聚合的格式:
*.gguf
例如:
DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf
这类文件通常是为了特定推理生态(例如 llama.cpp)做过转换或量化,更适合本地部署。
11. 常见文件格式简表¶
| 文件/格式 | 常见用途 | 说明 |
|---|---|---|
safetensors |
主流权重存储 | 更安全、加载快,Hugging Face 生态常见 |
bin / pt / pth |
PyTorch 权重 | 早期或不同项目中常见 |
gguf |
llama.cpp 生态 | 适合本地推理、量化后部署 |
config.json |
模型配置 | 描述层数、维度、架构等 |
tokenizer.json |
tokenizer 配置 | 处理文本切分与 token 映射 |
generation_config.json |
生成配置 | 默认推理参数,如温度、最大长度等 |
12. 一个直观比喻¶
可以把大模型类比成“电影文件 + 播放器 + 视频网站”:
- 模型权重 = 电影文件
- 推理程序 = 播放器
- 聊天产品/API = 视频网站或播放器界面
所以:
- 电影文件本身不是播放器
- 播放器本身也不是电影内容
- 用户真正体验到的是整套系统
换成大模型语境就是:
- 权重文件本身不是聊天产品
- 推理引擎本身也不是模型能力的全部
- 用户接触到的是“模型 + 运行时 + 服务包装”后的成品
13. 常见误区¶
误区 1:大模型就是一个程序¶
不准确。更准确地说,它是需要被程序加载和运行的一组模型文件与配置。
误区 2:ChatGPT 就等于一个模型文件¶
不准确。ChatGPT 是产品形态,背后包含模型、服务、策略层、工具系统、鉴权、日志、计费等整套基础设施。
误区 3:下载了权重就等于能直接使用¶
不一定。还需要:
- 匹配的 tokenizer
- 合适的运行时
- 足够的 CPU / GPU / 内存 / 显存
- 正确的推理参数
误区 4:Agent 就是更大的模型¶
不准确。Agent 往往不是“更大的模型”,而是在模型之上增加工具、记忆、规划和执行闭环的系统设计。
14. 最简总结¶
如果只保留最关键的一层理解,可以记住:
大模型本体通常更接近“训练出来的参数文件”,而不是传统单体程序;真正提供聊天、问答、推理或自动执行能力的,是“模型权重 + tokenizer + 配置 + 推理引擎 + 服务系统”的组合。
15. 延伸阅读方向¶
如果要继续深化,可以从下面几个方向展开:
- 本地部署链路:从 Hugging Face 下载模型,到用
vLLM、llama.cpp、Ollama跑起来 - 量化与部署:为什么需要 Q4 / Q5 / Q8,为什么
gguf常见于本地部署 - 模型与 Agent 的边界:聊天模型、工具调用、记忆系统、自动化执行如何组合
- 开源模型与闭源服务的区别:拿到权重 vs 只能调用 API,有哪些能力和限制差异
来源说明¶
- 基于本次关于“GPT / Claude / DeepSeek 的存在形式”的对话整理
- 面向工程理解进行结构化归纳
- 适合作为后续解释本地模型、推理框架、Agent 系统时的基础认知文档