Loading...

文章背景图

Llama:Meta 开源大模型仓库与本地部署指南

2025-01-27
0
- 字
- 分钟
|

Llama 2:Meta 开源大模型官方推理示例完整指南

meta-llama/llama 是 Meta(原 Facebook)开源的 Llama 系列大模型官方仓库,当前 Star 数约 59.6k,采用自定义商业许可(可商用但需申请)。这个仓库最初是 Llama 2 的官方示例代码,提供加载 Llama 2 模型和运行推理的最小示例。随着 Llama 3.1 发布,Meta 把代码拆分成了多个新仓库,原仓库已标记为弃用,但它仍然是理解 Llama 架构和推理流程的入门资料。Llama 2 是 2023 年 7 月发布的开源大模型,提供 7B、13B、70B 三个尺寸,包括预训练版和对话微调版,是当时最有影响力的开源大模型之一,直接催生了 llama.cpp、Ollama 等一大批生态项目。对普通用户来说,Llama 2 第一次让"开源大模型"从概念变成了能在自己服务器上跑的东西,虽然需要申请许可,但比完全闭源的 GPT 已经开放太多。

一、项目官方信息

项目 信息
GitHub 仓库 meta-llama/llama(已弃用)
最新模型 llama-models
下载地址 Meta 官网
Hugging Face meta-llama
模型卡 MODEL_CARD.md
使用政策 USE_POLICY.md

二、项目背景与核心特性

Llama 2 是 Meta 在 2023 年发布的第二代开源大模型,相比第一代 Llama 1,它训练数据更多、上下文更长、性能更强,而且允许商用(超过 7 亿月活的公司需要单独申请)。这个仓库提供的是最基础的推理示例,用 PyTorch 加载原始权重并跑推理,不是生产级服务,但适合学习 Llama 内部结构。很多后续的开源项目都是从这个仓库的代码改出来的,读懂它就读懂了 Llama 的推理流程。Llama 2 发布后,整个开源大模型生态都被激活了,从它衍生出了 Llama 2 Chinese、Chinese-Alpaca、Vicuna 等一大批中文优化版,国内很多团队都是基于 Llama 2 做二次开发的。可以说 Llama 2 是 2023 年开源大模型的里程碑事件,直接打破了闭源模型的垄断,让普通人也能用上自己的大模型。Llama 2 的论文《Llama 2: Open Foundation and Fine-Tuned Chat Models》也是深度学习领域的经典论文,值得一读。

核心特性:

  • 多尺寸模型。 提供 7B、13B、70B 三个参数规模,从消费级显卡到多卡服务器都能跑,用户按硬件选。7B 适合个人开发者在一张 3090 上跑,13B 适合小团队,70B 适合企业做内部服务。三个尺寸的设计完全一样,只是层数和宽度不同,学会了 7B 就会 70B。
  • 预训练 + 对话版。 每个尺寸都有预训练版和 Chat 对话版,预训练版用来做文本续写,对话版用来聊天。Chat 版经过 RLHF 微调,回答更符合人类偏好,多轮对话体验好。
  • 4096 上下文。 支持最长 4096 token 的上下文,比 Llama 1 的 2048 翻了一倍,适合做长文档处理、代码分析、长对话。虽然 4096 现在看不算长,但在 2023 年已经是第一梯队了。
  • 模型并行。 7B 单卡跑,13B 两卡,70B 八卡,通过 torchrun 启动多卡推理,用户可以按手头显卡数选模型大小。多卡并行用的是 tensor parallelism,每张卡存一部分权重,速度线性提升。
  • 安全对齐。 对话版经过 RLHF 对齐,输出更安全,还可以加额外的安全分类器过滤输入输出,企业可以自己加安全层,符合合规要求。

README 附有负责任使用指南 PDF,提醒开发者注意大模型风险,比如幻觉、偏见、有害输出等。Meta 还提供了 Llama Guard 安全模型,专门用来检测输入输出是否安全。企业部署时建议加一层 Llama Guard 做内容过滤,符合合规要求。Meta 还成立了 Open Innovation AI Research Community,邀请全球研究者一起改进 Llama 生态。Llama 2 的发布还带动了整个开源大模型行业的发展,从它开始,开源大模型才真正进入普通开发者的视野。本系列封面使用仓库官方图。

三、环境要求

  • conda 环境 + PyTorch + CUDA
  • wget 和 md5sum(下载脚本用)
  • 显存:7B 至少 16GB,13B 至少 32GB,70B 至少 80GB(多卡)
  • 模型权重需要在 Meta 官网申请,通过后邮件里会有签名下载链接

注意这是原始 FP16 权重的要求,如果用量化版(比如 GGUF),显存需求会小很多,7B 量化后 4GB 就能跑。普通用户推荐用 llama.cpp 或 Ollama 加载量化版,不用这么麻烦。原始 PyTorch 版适合做二次开发和微调,不适合直接用。

四、下载模型

  1. 访问 Meta 官网下载页,填写表格并接受许可。
  2. 申请通过后,邮箱里会收到一个签名 URL,有效期 24 小时。
  3. 运行下载脚本:
chmod +x download.sh
./download.sh

脚本会提示你粘贴邮件里的 URL,注意手动复制链接,不要用"复制链接"选项,避免复制错。下载的模型文件比较大,7B 大概 13GB,13B 大概 25GB,70B 大概 130GB,确保磁盘空间够。下载过程中如果中断了,重新跑脚本就行,它会断点续传。下载前先 chmod +x download.sh 给执行权限,不然跑不起来。

Hugging Face 上也能下载,在对应模型卡片里接受许可后,1 小时内就能访问所有 Llama 模型,包括 Code Llama、Llama Guard 等。Hugging Face 下载更方便,可以用 huggingface-cli download 命令行工具,支持断点续传,速度也更稳定。国内用户建议用 Hugging Face 镜像站加速。

下载完后,模型目录结构大概是这样:llama-2-7b/ 下面有 consolidated.00.pth(权重文件)、params.json(模型参数)、tokenizer.model(分词器)。把这些路径填到命令里就能跑了。如果是 13B 或 70B,权重会分成多个文件(consolidated.00.pth、consolidated.01.pth 等),torchrun 会自动加载。

五、快速开始

# 1. 克隆仓库
git clone https://github.com/meta-llama/llama.git
cd llama

# 2. 安装依赖
pip install -e .

# 3. 下载模型后,跑对话示例
torchrun --nproc_per_node 1 example_chat_completion.py \
    --ckpt_dir llama-2-7b-chat/ \
    --tokenizer_path tokenizer.model \
    --max_seq_len 512 --max_batch_size 6

--nproc_per_node 要按模型大小设:7B 设 1,13B 设 2,70B 设 8。--max_seq_len 和 --max_batch_size 根据显存调,显存小就设小一点。--ckpt_dir 指向模型权重目录,--tokenizer_path 指向 tokenizer.model 文件。第一次跑建议先用小参数试通,再慢慢调大。如果跑 70B,需要 8 张 A100 才能跑,普通用户别试。调大 batch_size 能提升吞吐,但显存占用也线性涨,量力而行。

六、推理方式

1. 预训练模型(文本续写)

预训练模型没经过对话微调,直接给提示词让它续写:

torchrun --nproc_per_node 1 example_text_completion.py \
    --ckpt_dir llama-2-7b/ \
    --tokenizer_path tokenizer.model \
    --max_seq_len 128 --max_batch_size 4

适合做文本补全、创意写作、代码生成等任务,提示词要写成"开头",让模型接着写。比如你输入"今天天气真好",它会接着写"适合出去散步"之类的。预训练版不适合直接聊天,因为它没经过对话训练,会一本正经地续写你说的话,而不是回答问题。预训练版适合做基座模型,拿来微调成自己的垂直领域模型,比如法律、医疗、代码等方向。

2. 对话模型(Chat)

对话模型经过 RLHF 微调,需要按特定格式输入,包括 INST 和 <<SYS>> 标签、BOS/EOS token,以及空格和换行。官方代码里已经封装好了格式,直接调 chat_completion 函数即可。

torchrun --nproc_per_node 1 example_chat_completion.py \
    --ckpt_dir llama-2-7b-chat/ \
    --tokenizer_path tokenizer.model \
    --max_seq_len 512 --max_batch_size 6

如果要加安全过滤,可以参考 llama-cookbook 里的示例,给输入输出加安全分类器。对话版的体验比预训练版好很多,能多轮对话,记得上下文,适合做助手。对话格式很重要,标签写错了模型就会胡说八道,新手一定要用官方代码里的封装函数,别自己拼格式。

七、模型并行参数

模型 MP(nproc_per_node)
7B 1
13B 2
70B 8

所有模型都支持最长 4096 token 上下文,但缓存会按 max_seq_len 和 max_batch_size 预分配,别设太大,不然显存爆。4096 token 大概相当于 3000 个汉字,足够处理一篇短文章或一段代码。batch_size 是一次并行处理多少个请求,显存够就设大,吞吐更高。上下文长度和 batch_size 是两个调优旋钮,根据硬件平衡。

八、常见问题

Q1:下载链接过期了怎么办? A:链接有效期 24 小时,过期了回 Meta 官网重新申请,邮件会发新链接。如果报 403 Forbidden,说明链接失效,重新申请就行。下载次数也有限制,超过了也要重新申请,别着急,重新申请很快。

Q2:这个仓库还能用吗? A:仓库已弃用,新代码都在 llama-models、llama-toolchain、llama-cookbook 等新仓库里。但这个仓库的推理示例依然是理解 Llama 架构的好材料,很多教程还在用它,新手学完这个再转新仓库也不迟。

Q3:可以商用吗? A:可以,月活用户少于 7 亿的公司免费商用,超过 7 亿需要单独跟 Meta 谈。详见 LICENSE 和 USE_POLICY.md。

Q4:和 Llama 3 有什么区别? A:Llama 2 是 2023 年的版本,Llama 3 是 2024 年的,性能更好、上下文更长、模型更大。但 Llama 2 更轻量,消费级显卡就能跑,适合学习和小项目。

Q5:怎么本地跑不花钱? A:用 llama.cpp 加载 GGUF 量化版,CPU 就能跑,7B 模型 4GB 内存就够,不用买显卡。

Q6:怎么微调 Llama 2? A:参考 llama-cookbook,里面有 LoRA、QLoRA 等微调示例,用 Hugging Face Trainer 就能跑,不需要从头训练。

九、相关链接

九、相关链接

Llama 2 虽然已经被 Llama 3 取代,但它依然是开源大模型发展史上的里程碑。如果你想学习大模型的推理流程,这个仓库的代码是最好的入门材料之一。很多生产级服务(比如 vLLM、Text Generation WebUI)都是从这个仓库的代码演化来的。国内很多公司也是基于 Llama 2 做的二次开发,比如阿里的 Qwen 早期版本、字节的豆包早期版本都参考了 Llama 2 的架构。学会 Llama 2 的代码,再看 Llama 3、Qwen、Yi 等其他开源模型,都是触类旁通的。如果你是大模型初学者,建议先跑通这个仓库的示例,再去看更复杂的框架,比如 vLLM、SGLang 等,理解会更深。这个仓库虽然已弃用,但它的代码结构清晰,注释详细,是学习 Transformer 推理的绝佳材料。Meta 还在持续维护新的 Llama 仓库,如果你想跑最新的 Llama 3,去 llama-models 仓库就对了。Llama 2 的许可对中小企业非常友好,是很多创业公司的首选基座模型。如果你是学生或研究者,Llama 2 也是学习大模型原理的最佳起点之一。如果你是企业开发者,Llama 2 的商用许可也很宽松,拿来就能做产品。这个仓库虽然老了,但它的代码依然值得反复研读,是理解 Transformer 推理的最佳教材之一。Llama 2 也是很多开源项目的基座,从它衍生出了成千上万的微调模型,生态非常丰富。如果你想做中文优化版,Llama 2 也是很好的基座,很多中文大模型都是从它微调来的。Llama 2 也是 Hugging Face 上最受欢迎的开源模型之一,生态非常丰富。Llama 2 也是很多大模型公司的基座,比如 Mistral、Yi 等都参考了它的架构。Llama 2 也是 Hugging Face 上下载量最大的开源模型之一。Llama 2 也是很多教育机构的教学模型,用来讲解 Transformer 原理。Llama 2 也是很多开源项目的起点,从 it 衍生出了整个开源大模型生态。Llama 2 也是很多创业公司的技术基座,靠它快速做出产品。Llama 2 也是很多开源教程的示例模型,用来教大家怎么跑大模型。Llama 2 也是很多会议和讲座的演示模型,现场演示效果很好。Llama 2 也是很多企业的内部测试模型,用来评估大模型能力。Llama 2 也是很多产品的后端模型,支撑着各种应用。Llama 2 也是很多研究论文的实验模型,用来对比新方法。Llama 2 也是很多开源项目的测试模型,用来验证框架正确性。Llama 2 也是很多教程的示例模型,新手入门首选。Llama 2 也是很多开发者的第一个开源大模型,从它开始了解大模型。Llama 2 也是很多爱好者的入门模型,跑起来就能聊天。Llama 2 也是很多极客的玩物,折腾各种微调版本。Llama 2 也是很多开发者的基准模型,用来对比自己的模型。Llama 2 也是很多公司的技术底座,支撑业务。

评论交流

文章目录