Llama 概念介绍
概念介绍
Llama 是 Meta 发布的一系列开源权重大语言模型(open-weight large language model)。所谓「开源权重」,指的是 Meta 把训练完成的模型参数文件放到网上供人下载,任何人都可以把它跑在自己的机器上,不需要调用任何云端 API。这一点和 GPT 系列形成最直接的对照:GPT 只提供 API,权重不公开,你只能通过网络把数据送到对方的服务器上推理;而 Llama 下载下来就是一个几十 GB 的文件,装到本地显卡或服务器上,数据一步都不出内网。对数据合规敏感、对调用成本敏感、或者需要离线运行的场景,这是根本性的差别。
Llama 和同代开源模型的定位差异,可以从三个维度看。第一是生态成熟度:Llama 发布最早、社区最大,几乎所有推理引擎(llama.cpp、Ollama、vLLM、TGI、TensorRT-LLM)都会在第一时间适配它的权重格式和 chat template,遇到问题能搜到的答案也最多,这在实际工程里价值很大。第二是尺寸梯度:Meta 同时放出小尺寸(如 1B、3B 级别,适合端侧和低显存机器)和大尺寸(如 8B、70B、以及更大规模的 MoE 版本,适合服务器推理)两种路线,同一套工具链可以从小到大平滑迁移。第三是许可条款:这是最容易被忽略、也最容易踩坑的一点。
Llama 使用的是 Llama Community License(Llama 社区许可),它不是 OSI 定义的标准开源许可证,而是一份自定义的商业友好型协议。使用前必须确认几件事:一是月活跃用户规模超过一定门槛(官方文档中定义了具体数值,以 Meta 官方许可原文为准)时需要单独向 Meta 申请商业授权;二是许可里附带可接受使用政策(Acceptable Use Policy),禁止把模型用于生成违法内容、恶意软件、欺诈等用途,商用产品需要做相应的内容治理;三是如果你基于 Llama 训练出了衍生模型,分发时通常需要在名称中保留「Llama」标识并附带许可副本。相比之下,Qwen 的部分尺寸使用 Apache 2.0、Mistral 的部分版本使用 Apache 2.0,条款更宽松。结论:技术选型阶段就要把许可读完,不要等产品上线才回头补授权。具体条款以 Meta 官方发布的许可文件为准,本文不复述数字。
动手之前,先把这几个高频术语弄清楚,后面所有命令和配置都围绕它们展开。
| 术语 | 含义 | 实际影响 |
|---|---|---|
| checkpoint | 训练保存下来的模型权重文件集合(含权重、config、tokenizer 文件) | Hugging Face 上原始格式通常是 safetensors,体积大、精度高,适合微调和转换 |
| GGUF | llama.cpp 主导的单文件模型格式,权重与元数据打包在一起 | 适合 CPU / 混合推理,Ollama 与 llama.cpp 都吃这个格式 |
| quantization(量化) | 把权重从 16 位浮点压缩到更低比特(如 4 位、5 位、8 位) | 显存占用和文件体积大幅下降,代价是精度有损,档位越高越接近原始效果 |
| LoRA | Low-Rank Adaptation,冻结原权重、只训练一小部分低秩矩阵的微调方法 | 训练显存需求远低于全参微调,产出的适配器文件只有几十到几百 MB |
| chat template | 把 system / user / assistant 多轮对话拼成模型训练时见过的字符串格式的规则 | 用错模板模型输出会乱码或不停复读,是本地部署最常见的坑 |
| tokenizer | 把文本切成 token 的分词器,附带词表和切分规则 | 决定「一个字算几个 token」,直接影响上下文长度预算和计费换算 |
| context length | 模型单次能处理的最大 token 数(上下文窗口) | 超长会被截断;开得越大 KV cache 占的显存越多 |
还有一个概念要建立直觉:显存占用不是只有权重。推理时的显存大致由三部分组成——权重(参数量乘以每权重字节数)、KV cache(随上下文长度和并发数线性增长)、运行时开销(CUDA 上下文、框架缓冲)。粗算公式是:权重显存 ≈ 参数量 × 每权重比特数 ÷ 8;KV cache ≈ 2 × 层数 × KV 头数 × 头维度 × 序列长度 × 并发数 × 精度字节数。这两个式子决定了你「能不能跑起来」和「能跑多长」。工程上先把权重压进去,再给 KV cache 留足余量,否则一并发就 OOM。
