当你看到一个模型标注"开源"时,它到底给了你什么?权重?训练数据?训练代码?本文用实际例子拆解开源模型的"开放边界"。
开源模型 = 公开权重(参数)。权重就是模型学到的那几十亿个数字,是模型的"全部知识"。
但"开源"的程度各不相同——有的给全套,有的只给权重,训练数据通常不给。
以你的 Hugging Face 下载目录为例:
Qwen3.5-0.8B/ ← 一个完整的开源模型
├── model.safetensors ← ★ 权重文件(8亿个数字)
├── config.json ← 模型架构配置
├── tokenizer.json ← 分词器(词汇表)
├── tokenizer_config.json ← 分词器配置
├── chat_template.jinja ← 对话模板
├── vocab.json / merges.txt ← 词汇表原始数据
├── LICENSE ← 许可证(使用条款)
└── README.md ← 模型说明
| 文件 | 内容 | 大小 | 开源? |
|---|---|---|---|
| model.safetensors | 8 亿个权重数字 | 1.6 GB | 核心! |
| config.json | 24层、hidden_size=1024 等 | 2.9 KB | 是 |
| tokenizer.json | 248,320 个词汇 | 12.8 MB | 是 |
| chat_template.jinja | 对话格式模板 | 7.8 KB | 是 |
| LICENSE | Apache 2.0 | 11 KB | 是 |
model.safetensors 就是模型的全部"知识"——那 8 亿个 BF16 数字。 有了它,你就可以在本地运行、微调、量化这个模型。
开源的内容(你拿得到的):
├── 权重文件 ← 模型的"大脑",最核心的东西
├── 架构配置 ← 模型的结构图纸
├── 分词器 ← 模型的"语言字典"
├── 推理代码 ← 怎么运行这个模型
└── 许可证 ← 你可以怎么用
不开源的内容(你通常拿不到的):
├── 训练数据 ← 用什么数据训练的(商业机密)
├── 训练代码 ← 怎么训练的(可能部分公开)
├── RLHF 数据 ← 人类反馈偏好数据(核心机密)
├── 训练日志 ← 训练过程的 loss 曲线等
└── 基础设施细节 ← 用了多少 GPU、训练了多久
训练数据 = 模型的"教材"
如果公开教材:
1. 版权风险:训练数据包含大量网页、书籍、代码,版权不明确
2. 隐私风险:可能包含个人信息
3. 竞争壁垒:高质量训练数据是公司的核心竞争力
4. 安全风险:可能被用来生成有害内容
公开:
✅ 权重(0.6B / 1.7B / 4B / 8B / 14B / 32B / 72B 全系列)
✅ 架构代码
✅ 分词器
✅ 推理代码
✅ 技术报告(论文级别的设计说明)
✅ Apache 2.0 许可证(商用友好)
不公开:
❌ 训练数据(万亿级 token 的网页/书籍/代码)
❌ RLHF 偏好数据
❌ 训练基础设施细节
你能做的:下载 → 本地运行 → 微调 → 量化 → 商用部署。
公开:
✅ 权重(8B / 70B / 405B)
✅ 架构代码
✅ 分词器
✅ 技术报告
限制:
⚠️ 自定义许可证(非 Apache 2.0,月活>7亿的公司需申请)
⚠️ 训练数据不公开
不公开:
❌ 训练数据
❌ RLHF 数据
你能做的:下载 → 本地运行 → 微调 → 量化 → 大部分场景商用。
公开:
✅ 权重(R1-Distill 系列、V2/V3)
✅ 架构代码
✅ 分词器
✅ 技术报告(MoE 架构设计详细公开)
✅ MIT 许可证(最宽松的开源协议)
不公开:
❌ 训练数据
❌ RLHF 数据
你能做的:下载 → 本地运行 → 微调 → 量化 → 任何用途(MIT 协议最宽松)。
不公开:
❌ 权重
❌ 架构
❌ 分词器
❌ 训练数据
❌ 训练代码
你能做的:
→ 只能通过 API 调用(付费,按 token 计价)
→ 不能下载、不能微调、不能离线运行
同 GPT-4,只提供 API 服务。
| 模型 | 权重 | 架构 | 分词器 | 技术报告 | 训练数据 | 许可证 |
|---|---|---|---|---|---|---|
| Qwen3.5 | ✅ | ✅ | ✅ | ✅ | ❌ | Apache 2.0 |
| DeepSeek-R1 | ✅ | ✅ | ✅ | ✅ | ❌ | MIT |
| Llama 3.1 | ✅ | ✅ | ✅ | ✅ | ❌ | Llama 协议 |
| GPT-4 | ❌ | ❌ | ❌ | 部分 | ❌ | 无(仅 API) |
| Claude | ❌ | ❌ | ❌ | 部分 | ❌ | 无(仅 API) |
from safetensors import safe_open
# 打开权重文件
with safe_open("model.safetensors", framework="pt") as f:
# 查看所有张量(参数组)的名称和形状
for key in f.keys():
tensor = f.get_tensor(key)
print(f"{key:50s} {list(tensor.shape)} {tensor.dtype}")
输出类似:
model.embed_tokens.weight [248320, 1024] torch.bfloat16
model.layers.0.self_attn.q_proj [1024, 256] torch.bfloat16
model.layers.0.self_attn.k_proj [1024, 256] torch.bfloat16
model.layers.0.self_attn.v_proj [1024, 256] torch.bfloat16
model.layers.0.self_attn.o_proj [256, 1024] torch.bfloat16
model.layers.0.mlp.gate_proj [1024, 3584] torch.bfloat16
model.layers.0.mlp.up_proj [1024, 3584] torch.bfloat16
model.layers.0.mlp.down_proj [3584, 1024] torch.bfloat16
...
model.layers.23.mlp.down_proj [3584, 1024] torch.bfloat16
lm_head.weight [248320, 1024] torch.bfloat16
每一行就是一个参数矩阵,里面全是 BF16 数字。
import torch
from safetensors import safe_open
with safe_open("model.safetensors", framework="pt") as f:
# 取出第1层的 Q 投影矩阵
q_proj = f.get_tensor("model.layers.0.self_attn.q_proj")
# 看前 5×5 个权重
print(q_proj[:5, :5])
输出:
tensor([[ 0.0234, -0.0156, 0.0312, 0.0078, -0.0469],
[-0.0039, 0.0195, -0.0273, 0.0117, 0.0059],
[ 0.0430, -0.0098, 0.0020, -0.0352, 0.0176],
[-0.0215, 0.0391, 0.0059, -0.0020, -0.0293],
[ 0.0137, -0.0254, 0.0410, 0.0195, -0.0117]], dtype=torch.bfloat16)
这就是开源的内容——这些具体的数字。 每个权重就是一个 BF16 浮点数,像 0.0234、-0.0156 这样。
开源权重 → 你可以:
1. 本地运行(离线推理)
python -c "from transformers import AutoModelForCausalLM; ..."
2. 微调(用你自己的数据修改权重)
→ 你的 HXXedge:在 Qwen3.5-0.8B 权重基础上 LoRA 微调
3. 量化(压缩精度,减小体积)
→ 你的 RKLLM:BF16 权重 → W8A8 INT8 量化
4. 部署到边缘设备
→ 你的香橙派:rkllm-server 加载量化后的模型
5. 研究分析
→ 看权重分布、剪枝、蒸馏...
闭源模型(GPT-4)这些全做不了——你只能调 API。
严格来说,很多"开源模型"其实应该叫"开放权重(Open Weights)":
| 术语 | 含义 | 代表 |
|---|---|---|
| 真正的开源 | 权重 + 训练代码 + 训练数据全部公开 | OLMo(Allen AI) |
| 开放权重 | 只公开权重,不公开训练数据 | Qwen、Llama、DeepSeek |
| 闭源 | 什么都不公开,只提供 API | GPT-4、Claude |
业界习惯把"开放权重"也称为"开源",但严格意义上有区别。
MIT 许可证(DeepSeek):
→ 你可以做任何事,包括商用,几乎无限制
Apache 2.0(Qwen):
→ 你可以做任何事,包括商用,需保留版权声明
Llama 协议(Meta):
→ 大部分场景免费商用
→ 月活>7亿的公司必须单独申请
Qwen 协议(部分版本):
→ 月活>1亿的公司需要申请
开源模型 = 给你权重(那几十亿个数字)+ 配置 + 分词器
你能做的:
✅ 下载到本地
✅ 离线运行
✅ 用自己的数据微调
✅ 量化压缩
✅ 部署到任何硬件
你拿不到的:
❌ 训练数据(用什么教材训练的)
❌ RLHF 偏好数据(人类怎么教的)
❌ 训练基础设施(用了多少 GPU)
一句话:开源给你的是模型的"大脑"(权重),
但不告诉你"怎么长大的"(训练过程)。