news 2026/9/20 4:31:09

Meta Llama Models:Llama 4 单卡量化推理与选型指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Meta Llama Models:Llama 4 单卡量化推理与选型指南

Meta Llama Models:Llama 4 单卡量化推理与选型指南

【免费下载链接】llama-modelsUtilities intended for use with Llama models.项目地址: https://gitcode.com/GitHub_Trending/ll/llama-models

显存只有 1 张 80GB,却要跑 Llama-4-Scout-17B:Meta 官方参考仓库llama-models,从 checkpoint 到输出 token 的完整推理实现,让你不依赖第三方框架跑通官方模型。

80GB 显存部署 Llama 4 的参考实现:项目全景

llama-models 解决什么问题:拿到.pth权重后,从格式化成 prompt、tokenize、进模型、采样到流式吐字,一条链路全在仓库内闭环,llama-model命令负责权重的 list/download/verify。

核心组成:llama-modelCLI 管权重与校验;llama_models/llama4/generation.py 做批量推理与采样;quantize_impls.py实现 FP8/Int4 混精;chat_format.py套官方 prompt 模板;checkpoint.py负责按 GPU 数重切分权重。

与同类最大的差异:它是官方参考实现而非推理引擎——官方 benchmark 即由此代码跑出,prompt 格式、分词、量化行为与 Meta 评测完全一致。

数据流:从量化加载到 top-p 采样的 5 个环节

一条 chat 请求的完整路径:ChatFormat把对话编码成 token;若含图片,占位符<|patch|>位置在首步被视觉编码器输出替换;token 经并行嵌入进入 N 层 Transformer,KV 缓存只追加不重算,注意力按层在 RoPE/NoPE 间切换(iRoPE 设计);logits 经温度缩放做 top-p 采样;每步yield一个 token,天然流式。

采样环节,做了什么:裁剪概率质量到 p 再重归一化抽样,并判断 stop token。为什么:nucleus 采样控制生成多样性,stop 位掩码保证不覆盖 prompt。

# llama_models/llama4/generation.py if temperature > 0: probs = torch.softmax(logits[:, -1] / temperature, dim=-1) # 温度缩放 next_token = sample_top_p(probs, top_p) # nucleus 采样 else: next_token = torch.argmax(logits[:, -1], dim=-1) ... eos_reached |= (~input_text_mask[:, cur_pos]) & (torch.isin(next_token, stop_tokens))

量化环节,做了什么:BF16 权重在模型构建时加载,随后被原地替换为 FBGEMM 的 FP8 行级或 Int4 分组(128 一组)权重。为什么:激活保持 BF16 计算,权重减半到四分之,精度损失换显存。

# llama_models/quantize_impls.py def bmm_nt(x, w, num_tokens=None): if isinstance(w, Fp8ScaledWeights): xq, x_scale = torch.ops.fbgemm.quantize_fp8_per_row(x, num_tokens, w.activation_scale_ub) return torch.ops.fbgemm.f8f8bf16_rowwise_batched(xq, w.weight, x_scale, w.scale) elif isinstance(w, Int4ScaledWeights): return torch.ops.fbgemm.bf16i4bf16_rowwise_batched(x, w.weight, w.scale, torch.zeros_like(w.scale))

三条推理路径差异(以 Scout-17B-16E 为准,README 实测配置):

路径权重精度最低配置特点
纯 BF16bf164×80GB精度基准
fp8_mixedFP8 行级2×80GB激活保持 BF16
int4_mixedInt4 分组1×80GBgroup_size=128
视觉输入bf164×80GB<\|patch\|>占位换图像嵌入

Llama 2 到 Llama 4 演进:能力矩阵与 2 个转折点

能力233.13.2-V4
上下文4K8K128K128K1M/10M
MoE✅16E/128E
图像理解✅原生
FP8/Int4 推理
iRoPE/NoPE 层

转折点在 2024-09:3.2-Vision 把视觉编码器内置进官方参考实现,而不是外挂;2025-04:Llama 4 用 MoE 加 iRoPE 把上下文从 128K 推到 10M,同时把单专家压到 17B 让量化部署可行。下图是仓库自带的视觉示例:两张图输入,模型输出融合两图内容的俳句。

最少 GPU 数量跑通 Llama 4 的最短路径

环境要求:

要求
Python3.10+
GPUNVIDIA;int4 单张 80GB,bf16 需 4×80GB
存储≥120GB(Scout 权重)
依赖torch + fbgemm-gpu-genai(量化必装)
# 1. 克隆并装 torch 依赖(含 fairscale/fbgemm) git clone https://gitcode.com/GitHub_Trending/ll/llama-models && cd llama-models pip install .[torch] # 2. 在官方站点接受协议后,用 CLI 下载权重 llama-model list --show-all # 查看模型 ID llama-model download --source meta --model-id Llama-4-Scout-17B-16E-Instruct # 3. 四卡 int4 混合精度跑 chat 示例 NGPUS=4 PYTHONPATH=$(git rev-parse --show-toplevel) torchrun --nproc_per_node=$NGPUS \ -m models.llama4.scripts.chat_completion ~/.llama/checkpoints/Llama-4-Scout-17B-16E-Instruct \ --world_size $NGPUS --quantization-mode int4_mixed

看到 "Loaded in X seconds" 后模型流式打印示例回答即成功。

现象原因解法
下载报 403 Forbidden签名链接 24 小时过期重新申请新链接
量化模式报错fbgemm-gpu-genai 未装或架构不支持改跑 bf16 或换 CUDA 环境
vocab_size 断言失败权重目录不完整llama-model verify-download校验后重下

llama-models vs Transformers vs vLLM 开源选型对比

维度llama-modelsHugging Face TransformersvLLM
模型覆盖Llama 2/3 全系Llama 2/3 全系+社区以 Llama 为主
量化FP8/Int4 原生需 bitsandbytes 等外挂内建多档
上下文官方上限(10M)受社区实现限制视版本
服务框架无(纯推理脚本)内建高并发引擎
行为一致性与官方评测一致prompt 需手动对齐采样/模板可能漂移

如果你要复现官方 benchmark 或核对量化行为,选 llama-models;如果你要在 5 分钟内跑通验证想法,选 Transformers;如果你要上生产扛并发,选 vLLM,llama-models 只用来当正确性基准。

边界与下一步:llama-models 目前不做什么

不擅长三点:仓库只有推理,没有任何训练与微调代码;Llama 4 全精度推理硬性要求 4×80GB,小显存只能走量化;FP8/Int4 依赖 fbgemm-gpu-genai,非 NVIDIA 平台基本跑不了量化路径。维护状态:包版本 0.2.0,Llama 4 于 2025-04-05 上架后仓库仍在滚动合入量化加载与 iRoPE 相关代码。按 models/llama4/USE_POLICY.md 的更新节奏与量化方案(Int4 已落地、FP8 已可用)推断,下一步大概率是更小的 group_size 量化与更多 3.2 视觉能力回填,而非训练侧。

【免费下载链接】llama-modelsUtilities intended for use with Llama models.项目地址: https://gitcode.com/GitHub_Trending/ll/llama-models

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 4:30:09

Origin 2025b注册表语言切换原理与实战脚本

1. 项目概述&#xff1a;为什么一个界面语言切换要动注册表&#xff1f;OriginLab 的 Origin 软件从 2022 版起&#xff0c;就彻底取消了安装时选择语言包的选项&#xff0c;也不再提供界面上的“语言偏好设置”菜单。你装的是哪个语言版本&#xff0c;启动后就是哪个语言——这…

作者头像 李华
网站建设 2026/9/20 4:28:22

GD32F47x/42x实战评测:从选型到电机控制与RTOS迁移

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 4:28:16

基于Python的预测性维护系统落地指南:从数据采集到模型部署

1. 从“坏了再修”到“提前预知”&#xff1a;预测性维护到底解决了什么问题做工业自动化和设备管理这些年&#xff0c;我最常听到的一句话是&#xff1a;“设备没坏就不要动它。”这个逻辑在过去确实成立&#xff0c;因为产线停机一次的成本实在太高&#xff0c;备件、人工、停…

作者头像 李华
网站建设 2026/9/20 4:28:14

开源研究框架OpenResearch:本地部署RAG流水线的完整实践

最近圈子里的朋友聊到一个项目 OpenResearch&#xff0c;我第一时间就去摸了源码。它在本地跑起来之后&#xff0c;给我的感觉是&#xff1a;终于有一个工具愿意把“研究”这件事从头到尾管到底了。说它是又一个套壳搜索也好&#xff0c;说它是个人知识库也好&#xff0c;都不太…

作者头像 李华
网站建设 2026/9/20 4:27:14

粉料包装机单片机称重闭环:选型、滤波与两级给料实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 4:24:27

STM32 FreeRTOS实战:舵机与激光测距多任务开发指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华