Llama 2 来袭 - 在 Hugging Face 上玩转它

虚树潮涌
• 阅读 575

引言

今天,Meta 发布了 Llama 2,其包含了一系列最先进的开放大语言模型,我们很高兴能够将其全面集成入 Hugging Face,并全力支持其发布。 Llama 2 的社区许可证相当宽松,且可商用。其代码、预训练模型和微调模型均于今天发布了🔥。

通过与 Meta 合作,我们已经顺利地完成了对 Llama 2 的集成,你可以在 Hub 上找到 12 个开放模型 (3 个基础模型以及 3 个微调模型,每个模型都有 2 种 checkpoint: 一个是 Meta 的原始 checkpoint,一个是 transformers 格式的 checkpoint)。以下列出了 Hugging Face 支持 Llama 2 的主要工作:

目录

何以 Llama 2?

Llama 2 引入了一系列预训练和微调 LLM,参数量范围从 7B 到 70B (7B、13B、70B)。其预训练模型比 Llama 1 模型有了显著改进,包括训练数据的总词元数增加了 40%、上下文长度更长 (4k 词元🤯),以及利用了分组查询注意力机制来加速 70B 模型的推理🔥!

但最令人兴奋的还是其发布的微调模型 (Llama 2-Chat),该模型已使用 基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback,RLHF) 技术针对对话场景进行了优化。在相当广泛的有用性和安全性测试基准中,Llama 2-Chat 模型的表现优于大多数开放模型,且其在人类评估中表现出与 ChatGPT 相当的性能。更多详情,可参阅其 论文

Llama 2 来袭 - 在 Hugging Face 上玩转它

图来自 Llama 2: Open Foundation and Fine-Tuned Chat Models 一文

如果你一直在等一个闭源聊天机器人的开源替代,那你算是等着了!Llama 2-Chat 将是你的最佳选择!

模型许可证可否商用?预训练词元数排行榜得分
Falcon-7BApache 2.01,500B47.01
MPT-7BApache 2.01,000B48.7
Llama-7BLlama 许可证1,000B49.71
Llama-2-7BLlama 2 许可证2,000B54.32
Llama-33BLlama 许可证1,500B*
Llama-2-13BLlama 2 许可证2,000B58.67
mpt-30BApache 2.01,000B55.7
Falcon-40BApache 2.01,000B61.5
Llama-65BLlama 许可证1,500B62.1
Llama-2-70BLlama 2 许可证2,000B*
Llama-2-70B-chat*Llama 2 许可证2,000B66.8

*目前,我们正在对 Llama 2 70B (非聊天版) 进行评测。评测结果后续将更新至此表。

演示

你可以通过 这个空间 或下面的应用轻松试用 Llama 2 大模型 (700 亿参数!):

Llama 2 来袭 - 在 Hugging Face 上玩转它

它们背后都是基于 Hugging Face 的 TGI 框架,该框架也支撑了 HuggingChat,我们会在下文分享更多相关内容。

推理

本节,我们主要介绍可用于对 Llama 2 模型进行推理的两种不同方法。在使用这些模型之前,请确保你已在 Meta Llama 2 存储库页面申请了模型访问权限。

**注意: 请务必按照页面上的指示填写 Meta 官方表格。填完两个表格数小时后,用户就可以访问模型存储库。

使用 transformers

从 transformers 4.31 版本开始,HF 生态中的所有工具和机制都可以适用于 Llama 2,如:

  • 训练、推理脚本及其示例
  • 安全文件格式 (safetensors )
  • 与 bitsandbytes (4 比特量化) 和 PEFT 等工具
  • 帮助模型进行文本生成的辅助工具
  • 导出模型以进行部署的机制

你只需确保使用最新的 transformers 版本并登录你的 Hugging Face 帐户。

pip install transformers
huggingface-cli login

下面是如何使用 transformers 进行推理的代码片段:

from transformers import AutoTokenizer
import transformers
import torch

model = "meta-llama/Llama-2-7b-chat-hf"

tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    torch_dtype=torch.float16,
    device_map="auto",
)

sequences = pipeline(
    'I liked "Breaking Bad" and "Band of Brothers". Do you have any recommendations of other shows I might like?\n',
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
    max_length=200,
)
for seq in sequences:
    print(f"Result: {seq['generated_text']}")
Result: I liked "Breaking Bad" and "Band of Brothers". Do you have any recommendations of other shows I might like?
Answer:
Of course! If you enjoyed "Breaking Bad" and "Band of Brothers," here are some other TV shows you might enjoy:
1. "The Sopranos" - This HBO series is a crime drama that explores the life of a New Jersey mob boss, Tony Soprano, as he navigates the criminal underworld and deals with personal and family issues.
2. "The Wire" - This HBO series is a gritty and realistic portrayal of the drug trade in Baltimore, exploring the impact of drugs on individuals, communities, and the criminal justice system.
3. "Mad Men" - Set in the 1960s, this AMC series follows the lives of advertising executives on Madison Avenue, expl

另外,尽管模型本身的上下文长度 4k 词元,但你可以使用 transformers 支持的技术,如旋转位置嵌入缩放 (rotary position embedding scaling) (推特),进一步把它变长!

使用 TGI 和推理终端

Text Generation Inference (TGI) 是 Hugging Face 开发的生产级推理容器,可用于轻松部署大语言模型。它支持流式组批、流式输出、基于张量并行的多 GPU 快速推理,并支持生产级的日志记录和跟踪等功能。

你可以在自己的基础设施上部署并尝试 TGI,也可以直接使用 Hugging Face 的 推理终端。如果要用推理终端部署 Llama 2 模型,请登陆 模型页面 并单击 Deploy -> Inference Endpoints 菜单。

  • 要推理 7B 模型,我们建议你选择 “GPU [medium] - 1x Nvidia A10G”。
  • 要推理 13B 模型,我们建议你选择 “GPU [xlarge] - 1x Nvidia A100”。
  • 要推理 70B 模型,我们建议你选择 “GPU [xxxlarge] - 8x Nvidia A100”。

注意: 如果你配额不够,请发送邮件至 api-enterprise@huggingface.co 申请升级配额,通过后你就可以访问 A100 了。

你还可以从我们的另一篇博文中了解更多有关 如何使用 Hugging Face 推理终端部署 LLM 的知识 , 文中包含了推理终端支持的超参以及如何使用其 Python 和 Javascript API 实现流式输出等信息。

用 PEFT 微调

训练 LLM 在技术和计算上都有一定的挑战。本节,我们将介绍 Hugging Face 生态中有哪些工具可以帮助开发者在简单的硬件上高效训练 Llama 2,我们还将展示如何在单张 NVIDIA T4 (16GB - Google Colab) 上微调 Llama 2 7B 模型。你可以通过 让 LLM 更可得 这篇博文了解更多信息。

我们构建了一个 脚本,其中使用了 QLoRA 和 trl 中的 SFTTrainer) 来对 Llama 2 进行指令微调。

下面的命令给出了在 timdettmers/openassistant-guanaco 数据集上微调 Llama 2 7B 的一个示例。该脚本可以通过 merge_and_push 参数将 LoRA 权重合并到模型权重中,并将其保存为 safetensor 格式。这样,我们就能使用 TGI 和推理终端部署微调后的模型。

首先安装 trl 包并下载脚本:

pip install trl
git clone https://github.com/lvwerra/trl

然后,你就可以运行脚本了:

python trl/examples/scripts/sft_trainer.py \
    --model_name meta-llama/Llama-2-7b-hf \
    --dataset_name timdettmers/openassistant-guanaco \
    --load_in_4bit \
    --use_peft \
    --batch_size 4 \
    --gradient_accumulation_steps 2

其他资源

总结

Llama 2 的推出让我们非常兴奋!后面我们会围绕它陆陆续续推出更多内容,包括如何微调一个自己的模型,如何在设备侧运行 Llama 2 小模型等,敬请期待!


英文原文: https://huggingface.co/blog/llama2

原文作者: Philipp Schmid,Omar Sanseviero,Pedro Cuenca,Lewis Tunstall

译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的应用及大规模模型的训练推理。

审校/排版: zhongdongy (阿东)

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
PaddlePaddle预训练模型大合集,还有官方使用说明书
PaddlePaddle在不断增加官方支持的模型的同时,也在关注预训练模型的丰富度。在过去的版本中,我们已经发布了目标检测FasterRCNN、MobileNetSSD、PyramidBox和场景文字识别CRNNCTC、OCRAttention共计5个预训练模型。近期,在图像分类领域我们一口气发布了四个系列共十个预训练模型,丰富扩充了预训练模
记录TritonServer部署多模型到多GPU踩坑 | 京东云技术团队
一、问题是怎么发现的部署chatglm2和llama2到一个4V100的GPU机器上遇到问题config.pbtxt中设置模型分别在指定gpu上部署实例配置不生效如以下配置为在gpu0上部署本模型,部署count1个实例,在gpu1上部署本模型,部署cou
数据堂 数据堂
1年前
大模型数据集:构建、挑战与未来发展
一、引言随着深度学习技术的迅速发展,大型预训练模型如GPT4、BERT等在自然语言处理领域取得了显著的成果。这些大模型的表现得益于其背后庞大的数据集,这些数据集为模型提供了丰富的知识和信息。本文将探讨大模型数据集的构建、面临的挑战以及未来的发展趋势。二、大
数据堂 数据堂
1年前
大模型数据集:揭秘AI背后的魔法世界
一、引言在人工智能的奇幻世界中,大模型数据集如同神秘的魔法书,蕴藏着无尽的智慧与力量。它们为AI注入了生命,使其具备了理解和改变世界的能力。今天,就让我们一起揭开大模型数据集的神秘面纱,探索其背后的魔法世界吧!二、大模型数据集:智慧的宝库大模型数据集就如同
什么? 20分钟,构建你自己的LLaMA3应用程序| 京东云技术团队
4月19日,Meta发布了最新的大语言模型LLaMA3,具体包括一个8B模型和一个70B模型,上下文长度支持8K,被誉为史上最强开源大语言模型,开源社区的“重磅炸弹”,效果直指GTP4。在诸多评测任务上,LLaMA3都有非常炸裂的效果。8B模型在多项指标中
什么? 20分钟,构建你自己的LLaMA3应用程序! | 京东云技术团队
4月19日,Meta发布了最新的大语言模型LLaMA3,具体包括一个8B模型和一个70B模型,上下文长度支持8K,被誉为史上最强开源大语言模型,开源社区的“重磅炸弹”,效果直指GTP4。在诸多评测任务上,LLaMA3都有非常炸裂的效果。8B模型在多项指标中
魔乐社区体验:探索Llama 3.1模型微调之旅
在2024年的AI领域,Meta发布的Llama3.1模型无疑成为了研究者和开发者的新宠。我有幸通过魔乐社区提供的资源,对这一模型进行了深入的学习和实践。在这个过程中,魔乐社区的资源和支持给我留下了深刻的印象。
天翼云完成首个国产化万卡训练,MFU达到国内领先水平!
天翼云自研国内首个单集群万卡国产化全功能预训练云服务平台发布上线,并完成万卡规模Llama3.1405B大模型训练。Llama3.1405B作为4000亿参数的模型,在息壤训推服务平台的支持下经过多轮优化,MFU达到国内领先水平;另外,700亿参数模型Llama270B在万卡规模下完成训练,MFU也处于业界领先水平。
近屿智能 近屿智能
4个月前
Meta 发布最新AI大模型Llama 4 ,近屿智能带你入门AI大模型
近日,Meta发布旗下最新Llama4系列AI模型,包含Llama4Scout、Llama4Maverick和Llama4Behemoth,Meta称相应模型都经过了“大量未标注的文本、图像和视频数据”的训练,具备“广泛的视觉理解能力”。Llama4是Ll
近屿智能 近屿智能
4个月前
昆仑万维开源SkyReels-V2,近屿智能紧跟AI技术趋势
昆仑万维SkyReels团队正式发布并开源全球首个采用扩散强迫框架的无限时长电影生成模型SkyReelsV2,其通过融合多模态大语言模型、多阶段预训练、强化学习与扩散强迫框架实现协同优化,推动视频生成技术进入新阶段。该模型聚焦解决现有技术在提示词遵循、视觉
近屿智能 近屿智能
3个月前
超越 DeepSeek-R1,英伟达新模型登顶,近屿智能专注大模型人才培养
近日,英伟达发布全新开源模型系列LlamaNemotron,凭借卓越性能引发业界关注,有望重塑开源AI格局。该系列在推理能力上超越DeepSeekR1,内存效率与吞吐量显著提升。其创新采用合成数据监督微调与强化学习训练,全方位增强模型推理能力。系列包含LN