Hugging News #0814: Llama 2 学习资源大汇总
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「Hugging News」。本期 Hugging News 有哪些有趣的消息,快来看看吧!🎉😍
重磅更新
Llama 2 学习资源大汇总!🔥🦙

🦙 Llama 2 是由 Meta 推出的新型开放式大型语言模型。我们很高兴能够将其全面集成入 Hugging Face,并全力支持其发布。通过 Hugging Face,它可以免费用于研究和商业用途。预训练模型基于 2 万亿令牌进行训练,上下文长度是 Llama 1 的两倍!你可以在 Hugging Face 上找到具有 70 亿、130 亿和 700 亿参数的模型 🌐🧑💻
通过与 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。在第一篇文章中,我们讨论了以下几点:
为什么选择 Llama 2?Demo 演示 使用 Transformers 进行推理 使用推理终端(Inference Endpoints)进行推理 使用 PEFT 进行微调 如何提示(prompt) Llama 2
👉https://hf.co/blog/zh/llama2
在第二篇文章中,我们对 Llama 2 进行了如下的讨论:
Llama 2 是什么?你可以用来测试 Llama 2 的不同的 playgrounds Llama 2 模型背后的研究 Llama 2 的性能如何,基准测试 如何正确设置对话模型的提示 如何使用 PEFT 对 Llama 2 进行训练 如何部署 Llama 2 以进行推断
👉https://www.philschmid.de/llama-2
Llama 2 现已登陆 Hugging Chat 🤗🦙

现在在 Hugging Chat 可以尝试免费使用 Llama 2 70B 聊天模型(在页面右上角选择模型 Llama-2-70b-chat-hf 即可),享受超快的推断速度、网络搜索功能!
👉http://hf.co/chat
这个项目由以下技术支持:
文本生成推理(Text-generation-inference),用于生产环境的大型语言模型服务工具:
https://github.com/huggingface/text-generation-inference
Hugging Face 的开源的大型语言模型用户界面 Chat UI:
https://github.com/huggingface/chat-ui Llama 2
模型:
https://huggingface.co/meta-llama
使用 Autotrain 对 Llama 2 进行微调

这个视频讲述了如何使用 Hugging Face 的 Autotrain 在 Google Colab 的免费版本上对 Llama 2 进行训练。这是在 Google Colab 的免费版本或者在本地计算机上使用自定义数据集进行 llama-v2 微调的简单的方法,这个方法也适用于任何其他 LLM。AutoTrain 是自动训练和部署机器学习模型的一种方式,可以与 Hugging Face 的生态系统无缝集成。
👉https://youtube.com/watch?v=3fsn19OI_C8&ab_channel=AbhishekThakur
用几行代码就可使用自己的数据训练 Llama 2!

你可以在短短几行代码中对所有 Llama-2 模型使用自己的数据进行训练!通过使用 4-bit 和 PEFT,即使在单个 A100 GPU 上,这个脚本也可以用于 70B 模型的训练。你可以在 T4 GPU 上进行 7B 的训练(即在 Colab 上可以免费获取的资源),或者在 A100 GPU 上进行 70B 的训练。
4-bit 在这里指的是四位量化(4-bit quantization),是一种将模型的权重量化为更低比特数的技术。在深度学习中,通常模型的权重会以较高的浮点数表示,这需要更大的存储和计算资源。通过量化,可以将权重表示为更短的二进制位数,从而减小模型的存储需求和计算成本。四位量化意味着权重将被表示为只有 4 个二进制位的数字,这样可以大幅减小权重的表示大小。然而,量化也会引入一定的信息损失,因为权重的精度被降低了。为了缓解这种损失,通常会使用特殊的量化技术,如对称量化或非对称量化,以尽量保留模型的性能。
PEFT(Parameter Efficient Fine-Tuning)是一种用于微调神经网络模型的技术,旨在在保持模型性能的同时,显著减少微调所需的计算资源和时间。这对于在资源有限的环境下进行模型微调非常有用。PEFT 的主要思想是通过使用较小的学习率来微调模型的一部分参数,而不是对整个模型的所有参数进行微调。具体来说,PEFT 将模型的参数分为不同的组,然后在每个组上应用不同的学习率。这样可以将微调的计算开销分布到多个小批次中,从而减少了每个小批次的计算负担,使得模型可以在较小的设备上进行高效微调。
你可以轻松地使用 SFTTrainer 和官方脚本对 Llama2 模型进行微调。例如,要对 llama2-7b 在 Guanaco 数据集上进行微调,请运行以下命令(已在单个 NVIDIA T4-16GB 上进行了测试):
''' python 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 '''
了解更多:https://hf.co/docs/trl/main/en/lora_tuning_peft#finetuning-llama2-model完整脚本:https://github.com/lvwerra/trl/blob/main/examples/scripts/sft_trainer.py
以上就是本期的 Hugging News,新的一周开始了,我们一起加油!💪🎉
额外内容:
Hugging Face 加入 PyTorch 基金会并成为首要成员

本周,作为一个深度学习社区的中立家园,PyTorch 基金会宣布 Hugging Face 已加入为首要成员。✨
Hugging Face 一直是 PyTorch 生态系统的长期支持者和贡献者,通过提供强大的模型和资源加速了 AI 技术的研究、开发和应用,特别是在自然语言处理领域。
🚀 “我们的使命一直是民主化 AI,使之可供所有人使用。我们与 PyTorch 的目标实现从业者减少进入门槛的目标是真正一致的。通过加入 PyTorch 基金会,我们可以进一步放大这种影响,并支持生态系统中非常重要的 PyTorch 框架。”Hugging Face 开源负责人 Lysandre Debut 表示。“我们相信这两个生态系统有很大的重叠,与基金会合作将使我们能够弥合差距,向机器学习社区提供最好的软件和最好的工具。”
Hugging Face 的模型中心和开源库促进了 AI 开源社区内的协作和知识共享,使 Hugging Face 与不断壮大的 PyTorch 基金会非常匹配。他们继续通过创建用户友好的工具和资源以及提供易于使用和有文档记录的库来推动行业的采用和协作。
作为首要成员,Hugging Face 获得了一席 PyTorch 基金会治理委员会的席位。该委员会通过我们的章程、使命和愿景声明制定政策,描述基金会倡议的总体范围、技术愿景和方向。🤝
TRL 正式推出,来训练你的首个 RLHF 模型吧

正式向大家介绍 TRL——Transformer Reinforcement Learning。这是一个超全面的全栈库,包含了一整套工具用于使用强化学习 (Reinforcement Learning) 训练 transformer 语言模型。从监督调优 (Supervised Fine-tuning step, SFT),到训练奖励模型 (Reward Modeling),再到近端策略优化 (Proximal Policy Optimization),实现了全面覆盖!并且 TRL 库已经与 🤗 transformers 集成,方便你直接使用!
👉 文档地址在这里https://hf.co/docs/trl/
小编带大家简单看看 API 文档里各个部分对应了什么需求:
Model Class: 涵盖了每个公开模型各自用途的概述 SFTTrainer: 帮助你使用 SFTTrainer 实现模型监督调优 RewardTrainer: 帮助你使用 RewardTrainer 训练奖励模型 PPOTrainer: 使用 PPO 算法进一步对经过监督调优的模型再调优 Best-of-N Samppling: 将“拔萃法”作为从模型的预测中采样的替代方法 DPOTrainer: 帮助你使用 DPOTrainer 完成直接偏好优化
文档中还给出了几个例子供 🤗 宝子们参考:
Sentiment Tuning: 调优模型以生成更积极的电影内容\
Training with PEFT: 执行由 PEFT 适配器优化内存效率的 RLHF 训练
Detoxifying LLMs: 通过 RLHF 为模型解毒,使其更符合人类的价值观
StackLlama: 在 Stack exchange 数据集上实现端到端 RLHF 训练一个 Llama 模型
Multi-Adapter Training: 使用单一模型和多适配器实现优化内存效率的端到端训练
👉 宝子们快行动起来,训练你的第一个 RLHF 模型吧!
相关文章:

Hugging News #0814: Llama 2 学习资源大汇总
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「Hugging News」。本期 Hugging News 有哪些有趣的消息࿰…...
可视化绘图技巧100篇进阶篇(五)-阶梯线图(Step Chart)
目录 前言 图表类型特征 适用场景 图例 绘图工具及代码实现 ECharts SMARTBI...
GPT带我学-设计模式-命令模式
1 你知道设计模式的命令模式吗 是的,我知道设计模式中的命令模式。命令模式是一种行为型设计模式,它将请求封装成一个对象,从而允许使用不同的请求、队列或日志来参数化其他对象。命令模式还支持撤销操作,并且可以提供事务的实现…...

互联网发展历程:跨越远方,路由器的启示
互联网的蓬勃发展,一直在追求更广阔的连接,更遥远的距离。然而,在早期的网络中,人们面临着连接距离有限的问题。一项重要的技术应运而生,那就是“路由器”。 连接受限的问题:距离有限 早期的网络受限于直接…...

postman入门基础 —— 接口测试流程
一、编写接口测试计划 接口测试计划和功能测试计划目标一致,都是为了确认需求、确定测试环境、确定测试方法,为设计测试用例做准备,初步制定接口测试进度方案。一般来说,接口测试计划包括概述、测试资源、测试功能、测试重点、测试…...
springcloud+nacos实现灰度发布
灰度发布 gateway网关实现灰度路由 灰度发布实体 package com.scm.boss.common.bean;import lombok.Data; import lombok.experimental.Accessors;import java.io.Serializable;/*** 灰度发布实体*/ Data Accessors(chain true) public class GrayBean implements Serializ…...

【C++笔记】C++之类与对象(上)
【C笔记】C之类与对象(上) 1、类是结构体的升级2、类中可以定义的东西3、类访问限定符4、类的声明5、类的实例化(定义)6、类的大小的计算7、this指针 1、类是结构体的升级 C的一个显著特征就是兼容C语言,所以C把结构体“升级”成了“类”&am…...

ebay灯串UL报告 UL588检测标准
季节性和装饰性照明用品即灯串以及配件都是便携式插头连接的临时性商品,最大额定输入电压为 120 伏。 由 ILAC ISO 17025 认证的实验室出具的检测报告,确认每件商品均已经过检测,符合下列要求: 季节性和装饰性照明用品(灯串&…...

TCP/IP协议追层分析物理层(第三十九课)
TCP/IP协议追层分析物理层(第三十九课) 1 物理层:建立、维护、断开物理连接,定义了接口及介质,实现了比特流的传输。 1、传输介质分类 有线介质:网线(双绞线)、光纤 无线介质:无线电 微波 激光 红外线 2、双绞线分类: 五类cat5: 适用于100Mbps 超五类cat5e:适用于…...

Kotlin优点及为什么使用Kotlin
文章目录 一 Hello Kotlin二 Kotlin优点三 团队为什么采用 Kotlin 一 Hello Kotlin Kotlin和Andriod 二 Kotlin优点 三 团队为什么采用 Kotlin...

ES 概念
es 概念 Elasticsearch是分布式实时搜索、实时分析、实时存储引擎,简称(ES)成立于2012年,是一家来自荷兰的、开源的大数据搜索、分析服务提供商,为企业提供实时搜索、数据分析服务,支持PB级的大数据。 -- …...

Fairy下载和使用
写在最前:本系列中将会涉及到 Unity,C#,Lua和FairyGUI(FGUI)。 FairyGUI介绍 官网: FairyGUI 编辑器下载: FairyGUI 截至文档记录最新版: https://res.fairygui.com/FairyGUI-Ed…...

隧道HTTP优化程序示例
作为专业爬虫程序员,我们经常需要使用代理服务器处理大量的请求。但是,单一服务器往往无法承担高并发请求和HTTPS加密的压力,这时候我们可以利用CDN来优化性能,并实现反向代理和HTTPS加速。下面,让我们一步步来了解。 …...
Flink源码之State创建流程
StreamOperatorStateHandler 在StreamTask启动初始化时通过StreamTaskStateInitializerImpl::streamOperatorStateContext会为每个StreamOperator 创建keyedStatedBackend和operatorStateBackend,在AbstractStreamOperator中有个StreamOperatorStateHandler成员变量…...

selenium常见等待机制及其特点和使用方法
目录 1、强制等待 2、隐式等待 3、显示等待 1、强制等待 强制等待是在程序中直接调用Thread.sleep(timeout) ,来完成的,该用法的优点是使用起来方便,语法也比较简单,缺点就是需要强制等待固定的时间,可能会造成测试的时间过…...
C++物件数组的常用方法介绍
以下代码建立了一个物件数组Student,并展示了如何计算物件数组的长度,如何从物件数组中找到特定的对象,如何根据数组的不同参数进行排序,以及如何找到最大和最小值。 #include <iostream> #include <algorithm>using…...
云计算:新一代的技术革命
云计算,作为21世纪的一项重要技术革命,已在全球范围内引发了深远的影响。它改变了我们存储和处理数据的方式,使得企业无需再建设和维护昂贵的本地服务器和数据中心。本文将深入探讨云计算的基本概念,类型,主要优点&…...

数据结构—图的应用
6.4图的应用 概念回顾—生成树 生成树:所有顶点均由边连接在一起,但不存在回路的图。 一个图可以有许多棵不同的生成树、含有n个顶点 n-1 条边的图不一定是生成树所有生成树具有以下共同特点 生成树的顶点个数与图的顶点个数相同;生成树是图的…...

Unity 鼠标控制 UI 放大、缩小、拖拽
文章目录 1. 代码2. 测试场景 1. 代码 using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems;public class UIDragZoom : MonoBehaviour, IDragHandler, IScrollHandler {private Vector2 originalSize;private Vector2 originalPosition;private RectTr…...
tensorflow 模型计算中,预测错误;权重参数加载
tensorflow 模型计算中,预测错误;权重参数加载 tensorflow 模型计算主要代码(正确代码) linear1_kernel_initializer tf.constant_initializer(numpy.transpose(data["linear1.weight"])) linear1_bias_initializer …...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...

【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架
文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理:检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目:RankRAG:Unifying Context Ranking…...