Llama Models 完整指南:10分钟下载、量化并跑通 Llama 2–4 开源大模型
【免费下载链接】llama-modelsUtilities intended for use with Llama models.项目地址: https://gitcode.com/GitHub_Trending/ll/llama-models
拿到 Llama 4 的签名下载链接后,第一个卡住你的问题往往不是"怎么下载",而是"要几张卡才跑得动"。llama-models 是 Meta 官方的 Llama 模型工具包:一个llama-model命令搞定全部模型的检索与下载,多 GPU 跑 Llama 4 的 MoE 大模型,再用 FP8/Int4 量化把 80GB 模型压进单卡。本文带你 10 分钟看懂它、跑通它。
一图看懂 llama-models 能力全景:从下载权重到跑推理
这个仓库交付的东西分两层,很多人会看混:
llama_models/:可pip install的包(PyPI 包名llama_models,当前版本 0.2.0),核心是llama-model命令行工具,负责"找模型、下模型、验模型、删模型";models/:推理代码目录,models/llama4/scripts/ 和 models/llama3/scripts/ 里是可直接torchrun的推理脚本,跑模型时需要把仓库根目录加进PYTHONPATH。
整体能力地图如下:
覆盖的模型阵容来自 README 与 llama_models/sku_list.py,从 Llama 2 一路排到 Llama 4:
| 模型 | 发布日期 | 规格 | 上下文 | Tokenizer |
|---|---|---|---|---|
| Llama 2 | 2023-07-18 | 7B / 13B / 70B | 4K | Sentencepiece |
| Llama 3 | 2024-04-18 | 8B / 70B | 8K | TikToken-based |
| Llama 3.1 | 2024-07-23 | 8B / 70B / 405B | 128K | TikToken-based |
| Llama 3.2 | 2024-09-25 | 1B / 3B(另有 Vision 11B / 90B) | 128K | TikToken-based |
| Llama 3.3 | 2024-12-04 | 70B | 128K | TikToken-based |
| Llama 4 | 2025-04-05 | Scout-17B-16E / Maverick-17B-128E | 10M / 1M | TikToken-based |
发布节奏一目了然:
读完这一节你能带走一个结论:下载管理找 CLI,跑推理找models/目录,两者配套使用。
技术决策深挖:MoE、混合量化与视觉交叉注意力
亮点一:MoE 混合专家,Llama 4 如何用 17B 激活参数承载超大模型
大白话讲 MoE(Mixture of Experts,混合专家):它像一家有 16 位专科医生的医院,每个 token 只被分诊给其中几位专家看诊,所以"总编制"很大,但每次看病(每次推理)只动一小部分参数——容量大、计算省。Llama 4 Scout 有 16 个专家(17B-16E),Maverick 有 128 个(17B-128E)。
专家网络的路由和分发由 models/llama4/moe.py 实现,每个专家独立持有 SwiGLU 的三组权重:
# models/llama4/moe.py 中 Experts 的加载钩子(节选) def load_hook(self, state_dict, prefix, strict, missing_keys, unexpected_keys, error_msgs): self.prefix = prefix if prefix + "moe_w_in_eD_F" in state_dict: e = self.num_local_experts D = self.dim # 检查点里是融合命名,这里 reshape 成 w1/w2/w3 三组专家权重 state_dict[prefix + "w1"] = state_dict.pop(prefix + "moe_w_in_eD_F").view(e, D, -1) state_dict[prefix + "w2"] = state_dict.pop(prefix + "moe_w_out_eF_D").view(e, -1, D) state_dict[prefix + "w3"] = state_dict.pop(prefix + "moe_w_swiglu_eD_F").view(e, D, -1)注意专家权重会按 fairscale 的模型并行世界大小切分到各 GPU(divide_exact(hidden_dim, divide_factor)),这就是为什么 Llama 4 官方脚本用torchrun起多卡——专家天然可分摊。
亮点二:FP8/Int4 混合量化,把多卡模型压进一张卡
量化可以类比为照片有损压缩:用一点细节换更小体积。llama-models 的做法是混合精度——只把 MoE 专家层的权重压成 FP8 或 Int4,激活值保持 bfloat16,精度损失很小。
具体策略见 models/llama4/quantization/loader.py:
# models/llama4/quantization/loader.py(节选) def should_quantize_block(block: nn.Module) -> bool: is_moe = isinstance(block.feed_forward, MoE) if quantization_mode == QuantizationMode.fp8_mixed: # 只量化 MoE 专家层,且跳过首尾两层 return is_moe and not (block.layer_id == 0 or block.layer_id == (model.n_layers - 1)) return is_moe对 Llama-4-Scout-17B-16E-Instruct 而言,不同精度下需要的硬件差距巨大(数据来自 README):
| 推理模式 | 权重形态 | GPU 需求 |
|---|---|---|
| bf16 全精度 | 不压缩 | ≥ 4 × 80GB |
fp8_mixed | MoE 专家 FP8 + bf16 激活 | 2 × 80GB |
int4_mixed | MoE 专家 Int4 + bf16 激活 | 1 × 80GB |
一个参数--quantization-mode就能在三种档位之间切换,这是"资源有限但想用旗舰模型"的人最值钱的开关。
亮点三:视觉交叉注意力,Llama 3.2 Vision 如何"看图"
很多多模态模型把图片切成一堆 token 塞进序列,Llama 3.2 Vision 不是——models/llama3_2/vision_prompt_format.md 明确说明它不是 early fusion 模型:图片不进 token 序列,而是由独立的 Vision Encoder 提取特征,从"侧边"喂给文本层之间的 Cross Attention Layer(交叉注意力)。
对使用者的影响是提示词里只需一个占位标签:
<|begin_of_text|><|start_header_id|>user<|end_header_id|> <|image|>Describe this image in two sentences<|eot_id|><|start_header_id|>assistant<|end_header_id|>文档同时提醒:<|image|>标签只影响其后的文本 token,建议一个 prompt 里放一张图。
零基础上手:五步完成安装、下载、校验到首次推理
第一步:准备环境并安装 CLI
要求 Python ≥ 3.10(见 pyproject.toml 的requires-python)。基础依赖很轻:PyYAML、jinja2、tiktoken、pydantic、Pillow、rich、httpx 等,不装 PyTorch 也能用 CLI。
pip install llama-models llama-model --help # 验证:应打印 list/describe/download 等子命令 llama-model list # 验证:打印带模型 ID 和上下文长度的表格llama-model list能正常输出表格,说明 CLI 就位。想看含旧版本的全量清单,加--show-all。
第二步:检索并下载模型权重
官方下载流程(见 README):先到 Meta Llama 官网的下载页阅读并接受许可协议,审批通过后会收到一封带签名 URL的邮件,再用 CLI 拉取。链接 24 小时后过期,且下载次数有限,失效后重新申请即可。
llama-model list # 确认要下的模型 ID llama-model download --source meta \ --model-id Llama3.2-1B # ID 以 list 输出为准,支持逗号分隔多个 llama-model download --source huggingface \ --model-id Llama3.2-1B --hf-token YOUR_TOKEN # 备选:从 Hugging Face 拉取权重默认落在~/.llama/checkpoints/<模型目录>/,包含consolidated.00-07.pth、tokenizer.model、params.json等文件(文件清单由 llama_models/sku_list.py 的llama_meta_net_info生成)。
第三步:验证下载完整性
大文件下载最怕"看起来下了,其实坏了"。CLI 内置校验:
llama-model verify-download # 校验已下载模型的文件完整性 llama-model list --downloaded # 验证:列出本地模型、占用 GB 数和修改时间verify-download无报错、list --downloaded能看到带 GB 大小的模型行,即可进入推理。
第四步:跑通第一次 Llama 4 多 GPU 对话
先 clone 推理代码,再装 torch 扩展依赖:
git clone https://gitcode.com/GitHub_Trending/ll/llama-models cd llama-models pip install .[torch] # torch/torchvision/fairscale/fire/blobfile/fbgemm-gpu-genai然后按 README 的脚本跑 chat_completion(Llama 4 全精度需 4 卡):
NGPUS=4 CHECKPOINT_DIR=~/.llama/checkpoints/Llama-4-Scout-17B-16E-Instruct PYTHONPATH=$(git rev-parse --show-toplevel) \ torchrun --nproc_per_node=$NGPUS \ -m models.llama4.scripts.chat_completion $CHECKPOINT_DIR \ --world_size $NGPUS脚本内置了几组示例对话,包括用仓库自带的示例图片(models/resources/pasta.jpeg 等)做"看图写俳句"的多模态测试:
成功标志:终端依次打印每组对话的 User/Assistant 轮次,最后一条会输出结合两张图(狗和意大利面)的俳句。跑 Base(非 Instruct)模型时,把脚本换成-m models.llama4.scripts.completion并改CHECKPOINT_DIR。
第五步:用量化推理把卡数砍下来
如果卡不够,加一个参数即可(GPU 需求对照上节表格):
MODE=fp8_mixed # 或 int4_mixed;fp8 需 2×80GB,int4 需 1×80GB NGPUS=2 PYTHONPATH=$(git rev-parse --show-toplevel) \ torchrun --nproc_per_node=$NGPUS \ -m models.llama4.scripts.chat_completion $CHECKPOINT_DIR \ --world_size $NGPUS --quantization-mode $MODE装好 pip 包后,pyproject.toml注册的入口命令(如llama4_chat_completion、example_chat_completion)也可直接调用,无需手动拼torchrun参数。
选型建议与高频问题 FAQ:按场景挑对模型
先按场景对号入座:
| 你的场景 | 推荐模型 | 说明 |
|---|---|---|
| 边缘设备、快速实验 | Llama 3.2 1B / 3B | 单权重文件,还有 INT4 量化变体可选 |
| 单卡日常推理 | Llama 3.1 8B / 70B | 128K 上下文,生态最成熟 |
| 看图说话、多模态 | Llama 3.2 Vision 11B/90B、Llama 4 | 交叉注意力视觉架构 |
| 超长上下文(百万级) | Llama 4 Scout | 10M 上下文 |
| 最强综合能力、预算充足 | Llama 4 Maverick / 3.3 70B | MoE 128 专家 / 128K |
高频问题:
- 下载报
403: Forbidden?签名链接 24 小时过期且下载次数有限,回官网重新申请链接即可,不是模型文件问题。 - Llama 4 显存放不下?加
--quantization-mode fp8_mixed(2×80GB)或int4_mixed(1×80GB);官方只承诺 Scout 的这三档硬件需求。 llama-model和models/目录什么关系?前者是 pip 包里的下载管理 CLI,后者是torchrun -m models.xxx用的推理代码;跑推理必须设PYTHONPATH指向仓库根目录。- 能在 Hugging Face 上下载吗?能,
llama-model download --source huggingface --hf-token ...;README 也说明 HF 仓库提供 transformers 格式和 nativellama4格式两种权重。 - 提示词格式搞不定?用
llama-model prompt-format -m MODEL_ID直接查看该模型的官方提示词模板;各版本的格式文档在 models/llama3_2/text_prompt_format.md、models/llama4/prompt_format.md 等处。
收尾
llama-models 的价值在于:官方出品、权重下载有校验、Llama 4 的 MoE 与量化推理开箱即用。下一步就做一件事——pip install llama-models后跑llama-model list看清单,从 Llama 3.2 1B 起步把下载、校验、推理全流程走一遍,再升级到 FP8 量化跑 Llama 4。
【免费下载链接】llama-modelsUtilities intended for use with Llama models.项目地址: https://gitcode.com/GitHub_Trending/ll/llama-models
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考