文件:ai_research/大模型的存在形式与运行方式.md 大小:11.5 KB 编码:UTF-8

大模型的存在形式与运行方式

文档目的

整理一个常见但容易混淆的问题:像 GPT、Claude、DeepSeek 这类大模型,究竟是以什么形式存在的?它们是不是一个可执行程序?这篇文档给出一个面向非研究视角、但足够准确的工程解释。

一句话结论:

大模型本体通常不是传统意义上的单个可执行程序,而更接近“模型权重 + 模型结构 + tokenizer + 推理运行时”的组合;用户日常接触到的 ChatGPT、Claude、DeepSeek 往往还是在这之上再包了一层产品与服务系统。


1. 大模型是不是一个可执行程序?

严格来说,通常不是

更准确地说,大模型可以拆成两层来看:

  1. 模型本体:训练得到的参数、结构定义、tokenizer、配置文件
  2. 运行系统:加载这些文件并执行推理的软件框架或服务

所以如果类比传统软件:

  • 模型更像“内容/参数文件”
  • 推理框架更像“播放器/解释器/运行时”
  • 聊天网页或 API 更像“产品外壳”

因此,大模型不是简单的 .exe.app 或单个二进制程序,而是一个数学模型 + 工程运行系统的组合体。


2. 大模型最核心的存在形式:参数/权重文件

大模型经过训练后,最核心的产物是参数(parameters),也常叫:

  • 权重(weights)
  • checkpoint
  • 模型文件

这些参数本质上是大量数值矩阵,用来表示模型在训练中学到的模式。

2.1 从存储角度看,它是什么

从文件系统角度看,大模型通常表现为一组文件,例如:

  • model.safetensors
  • pytorch_model.bin
  • consolidated.00.pth
  • *.gguf

这些文件本身不是“会主动运行的程序”,而是:

  • 被训练好的神经网络参数快照
  • 供推理程序加载的模型数据

2.2 为什么文件会很大

因为参数量非常大。

例如:

  • 7B 模型:约 70 亿参数
  • 70B 模型:约 700 亿参数

如果每个参数使用 2 字节存储,那么仅参数本身就可能达到几十 GB 到上百 GB。

因此,很多人第一次接触本地模型时会发现:

  • 模型文件很大
  • 往往要分片存储
  • 需要量化后才能更容易在本地运行

3. 只有权重还不够:还需要模型结构定义

即使拿到了模型文件,也不能自动运行。还需要知道:

  • 模型有多少层
  • hidden size 是多少
  • attention 怎么计算
  • 使用什么位置编码
  • 词表与 tokenizer 如何工作
  • 特殊 token 如何定义

因此,一个可用的大模型通常不只是一个权重文件,而是一组配套文件,例如:

  • config.json
  • tokenizer.json
  • tokenizer_config.json
  • special_tokens_map.json
  • generation_config.json
  • 若干权重分片文件

可以理解为:

  • 权重 = 学到的内容
  • 结构配置 = 这些内容该如何组合与计算
  • tokenizer = 文字与 token 之间的映射规则

4. tokenizer 是什么,为什么它也属于模型的一部分

大模型并不直接处理“汉字、英文单词、标点”本身,而是处理 token。

所以在模型运行前后,必须经过 tokenizer:

  1. 把输入文本切分成 token
  2. 把 token 映射成 ID
  3. 模型对这些 ID 进行计算
  4. 再把输出的 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(程序 / 运行时)

程序或运行时是:

  • 用来加载模型并执行推理的软件
  • 负责资源管理、推理加速、输入输出处理

例如:

  • transformers
  • vllm
  • llama.cpp
  • ollama

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. 延伸阅读方向

如果要继续深化,可以从下面几个方向展开:

  1. 本地部署链路:从 Hugging Face 下载模型,到用 vLLMllama.cppOllama 跑起来
  2. 量化与部署:为什么需要 Q4 / Q5 / Q8,为什么 gguf 常见于本地部署
  3. 模型与 Agent 的边界:聊天模型、工具调用、记忆系统、自动化执行如何组合
  4. 开源模型与闭源服务的区别:拿到权重 vs 只能调用 API,有哪些能力和限制差异

来源说明

  • 基于本次关于“GPT / Claude / DeepSeek 的存在形式”的对话整理
  • 面向工程理解进行结构化归纳
  • 适合作为后续解释本地模型、推理框架、Agent 系统时的基础认知文档