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

🤗 宝子们可以戳 阅读原文 查看文中所有的外部链接哟!

引言

今天,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 已入驻 Hub: 包括模型卡及相应的许可证。

  • 支持 Llama 2 的 transformers 库

  • 使用单 GPU 微调 Llama 2 小模型的示例

  • Text Generation Inference (TGI)  已集成 Llama 2,以实现快速高效的生产化推理

  • 推理终端 (Inference Endpoints) 已集成 Llama 2

目录

  • 何以 Llama 2?

  • 演示

  • 推理

    • 使用 transformers

    • 使用 TGI 和推理终端

  • 用 PEFT 微调

  • 其他资源

  • 总结

何以 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 相当的性能。更多详情,可参阅其 论文。

7886b4727fb90044b952e738130bb614.png

模型训练与微调工作流

图来自 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 亿参数!):

1e026e2d3cfa113382f195c248e061bb.png

它们背后都是基于 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 torchmodel = "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

其他资源

  • 论文

  • Hub 上的模型

  • Open LLM 排行榜

  • Meta 提供的 Llama 2 模型使用大全

总结

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

🤗 宝子们可以戳 阅读原文 查看文中所有的外部链接哟!


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

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

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

审校/排版: zhongdongy (阿东)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将AWS S3大文件文件上传相关的API集成为js文件,功能包括 多文件并行上传、文件分片上传、断点续传、文件分片合成、上传暂停、取消上传、文件上传进度条显示

地址 https://github.com/gk-1213/easy-s3/tree/main easy-s3 将AWS S3大文件文件上传相关的API集成为js文件,功能包括多文件并行上传、文件分片上传、断点续传、文件分片合成、上传暂停、取消上传、文件上传进度条显示。 暂时不包括文件分片下载相关功能&#…

linux下用docker安装mysql

1.mysql Docker镜像 docker pull mysql:[版本号 或 latest]例:docker pull mysql:5.7 2.查看拉取的docker镜像 docker images3.设置 Docker 卷 docker volume create mysql-data列出 Docker 已知的所有卷 docker volume ls4.运行一个 MySQL Docker 容器 docke…

2018年全国硕士研究生入学统一考试管理类专业学位联考写作试题——解析版

2018年1月真题 四、写作:第56~57小题,共65分。其中论证有效性分析30 分,论说文35分。 56.论证有效性分析: 分析下述论证中存在的缺陷和漏洞,选择若干要点,写一篇600字左右的文章,对该论证的有…

乐维监控 | 如何快速关闭网络设备所有端口

在运维监控实践中,由于不同的运维人员可能会关注不同的监控指标,因此乐维监控在监控网络设备时,会默认开启所有的端口,尽可能多的覆盖监控指标,避免遗漏重要指标。但是,这样又会带来新的问题,在…

golang,gin框架的请求参数(一)--推荐

golang,gin框架的请求参数(一) gin框架的重要性不过多的强调,重点就gin使用中的参数传递,获取进行梳理文件,满足使用需求。 获取前端请求参数的几种方法: 一、获取参数【浏览器地址获取参数】…

【论文阅读】定制化diffusion微调: DreamBooth原理

论文:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 项目:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 代码:Dreambooth-Stable-Diffusion 1. 任务简…

Kotlin基础(八):泛型

前言 本文主要讲解kotlin泛型,主要包括泛型基础,类型变异,类型投射,星号投射,泛型函数,泛型约束,泛型在Android中的使用。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 泛型基…

Unity XML1——XML基本语法

一、XML 概述 ​ 全称:可拓展标记语言(EXtensible Markup Language) ​ XML 是国际通用的,它是被设计来用于传输和存储数据的一种文本特殊格式,文件后缀一般为 .xml ​ 我们在游戏中可以把游戏数据按照 XML 的格式标…

JAVA线上问题排查降龙十八掌

现场问题一般有以下几种问题 CPU,磁盘,内存,GC问题,网络 同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。 …

windows中文界面乱码问题

我的便携是内部返修机,买来时就是英文版,在设置中改成简体中文就可以了,与中文版没有什么区别,已经升级成win11。windows自身的应用、360之类的界面都能正常显示,但是个别应用总是乱码,根据客服的提示设置一…

非线性质量弹簧阻尼器的神经网络仿真研究(Matlab代码Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

关于在虚拟机CentOS7的Docker下安装Oracle

这不三阶段了,要上Oracle了,感觉这个班卷的程度到位。二阶段我就上了ElementUI和MyBatis,项目也是用这些技术写的,整体钻研程度还行。于是布置了两个任务:在windows下安一下Oracle,在windows下安装Oracle那…

python安装第三方包的两种方式

最近研究QQ空间、微博的(爬虫)模拟登录,发现都涉及RSA算法。于是需要下一个RSA包(第三方包)。折腾了很久,主要是感觉网上很多文章对具体要在哪里操作写得不清楚。这里做个总结,以免自己哪天又忘…

GRE TAP的工作原理与5G工业物联网中的应用

随着互联网新技术的发展以及智能化水平的提高,各企业对实时数据传输的需求也在不断提升,企业愈发重视数据中心的建设,以保障企业内网数据安全。 GRE(Generic Routing Encapsulation,通用路由封装)协议属于…

作为一名程序员,IVX你值得拥有

目录 一、IVX是什么 二、IVX编程盒子——低代码平台的首个硬件产品 iVX做硬件的原因 iVX自身特点——安全、方便、高效、低耗 三、IVX编程盒子自带的Demo系统 1. 问题反馈、在线沟通和工单处理系统 2. 大屏幕监管平台 四、IVX和其他代码平台的区别 五、低代码未来的发展…

使用sftp

一、背景 新项目组前端部署方式是Build打包生成dist文件,交由后端部署。后来知道了vscode安装sftp前端可以自行部署。 二、实操 1、vscode安装sftp 2、 配置 ①F1 / ctrlshiftp ②命令行输入sftp -> 选择 sftp: Config ③配置信息介绍 {"name"…

Qt5.14.2+VS2019配置MSVC2017

问题: The compiler " Microsoft Visual C Compiler 16 . 11 . 32106 . 194 ( amd64 x86 )( x86-windows-msvc2019-pe-32bit ) cannot produce code for the Qt version " Qt5.14.2 MSVC2017 64bit " ( x86-windows-msvc2017-pe-64bit 编译器“…

钉钉和金蝶云星空接口打通对接实战

钉钉和金蝶云星空接口打通对接实战 对接系统:钉钉 钉钉是阿里巴巴集团打造的企业级智能移动办公平台,是数字经济时代的企业组织协同办公和应用开发平台。钉钉将IM即时沟通、钉钉文档、钉闪会、钉盘、Teambition、OA审批、智能人事、钉工牌、工作台深度整…

制定机器学习规划路线:从入门到专业

文章目录 🍀第一阶段:入门基础🍀了解机器学习概念🍀学习编程和数学基础🍀探索经典机器学习算法🍀完成实践项目 🍀第二阶段:深入学习🍀 掌握深度学习基础🍀学习…

ceph-mon运行原理分析

一、流程:ceph-deploy部署ceph-mon组建集群 1.ceph-deploy部署ceph-mon的工作流程及首次启动 1)通过命令创建ceph-mon,命令为:ceph-deploy create mon keyring def mon(args):if args.subcommand create:mon_create(args)elif…