从HuggingFace仓库中批量下载模型和数据
Hugging Face仓库中大模型包含文件不止一个,本文将会介绍如何使用git进行批量下载。
Hugging Face官网:https://huggingface.co
Hugging Face的基本操作:https://huggingface.co/welcome
环境配置
由于Hugging Face的部分模型和数据集在国外服务器,不使用代理比较慢,所以要先配置git代理。
代理配置
全局代理配置方式:
1git config --global https.proxy http://xxxxxx:xxxx
只对clone使用代理的配置方式:
1git clone XXX.git -c http.proxy="http://xxxxxx:xxxx"
lfs安装
如果想命令行快速下载模型,需要提前安装好git-lfs环境。Ubuntu环境安装命令如下:
1sudo apt-get install git-lfs
主要用法:
12git lfs installgit lfs clone https://huggingface.co/${userna ...
在一张 24 GB 的消费级显卡上用 RLHF 微调 20B LLMs
我们很高兴正式发布 trl 与 peft 的集成,使任何人都可以更轻松地使用强化学习进行大型语言模型 (LLM) 微调!在这篇文章中,我们解释了为什么这是现有微调方法的有竞争力的替代方案。
请注意, peft 是一种通用工具,可以应用于许多 ML 用例,但对于RLHF来说特别有趣,因为这种方法特别耗费内存!
如果你想直接深入研究代码,请直接在 TRL 的文档页面 直接查看示例脚本。
TRL 的文档页面
介绍
LLMs & RLHF
LLM 结合 RLHF (人类反馈强化学习) 似乎是构建非常强大的 AI 系统 (例如 ChatGPT) 的下一个首选方法。
使用 RLHF 训练语言模型通常包括以下三个步骤:
在特定领域或指令和人类示范语料库上微调预训练的 LLM;
收集人类标注的数据集,训练一个奖励模型;
使用 RL (例如 PPO),用此数据集和奖励模型进一步微调步骤 1 中的 LLM。
具体可详细了解OpenAI 的 ChatGPT 博文
OpenAI 的 ChatGPT 博文
基础 LLM 的选择在这里是至关重要的。在撰写本文时,可以“开箱即用”地用于许多任 ...
大语言模型BLOOM推理工具测试
BLOOM是由HuggingFace推出的大模型,其参数量达到176B(GPT-3是175B)。目前超过100B参数量且能够支持中文的开源大模型只有BLOOM和GLM-130B。由于HuggingFace是著名开源工具Transformers的开发公司,很多推理工具都会支持Transformers中的模型。
LLM(大语言模型)推理的两个问题:(1) 单张显卡无法容纳整个模型;(2) 推理速度太慢。本文初步整理了一些推理大模型的工具和代码,并简单测试了推理速度。下面是本文测试的一些背景:
目前是2023年2月
使用7B模型bloom-7b1-mt
4张3090(但在实际推理中仅使用2张3090)
依赖包的版本
transformers==4.26.0
tensor-parallel==1.0.24
deepspeed==0.7.7
bminf==2.0.1
辅助函数
12345678910111213141516171819202122232425262728# utils.pyimport numpy as npfrom time import perf_counter# per ...
BLOOM 训练背后的技术
假设你现在有了数据,也搞到了预算,一切就绪,准备开始训练一个大模型,一显身手了,“一朝看尽长安花”似乎近在眼前 …… 且慢!训练可不仅仅像这两个字的发音那么简单,看看 BLOOM 的训练或许对你有帮助。
近年来,语言模型越训越大已成为常态。大家通常会诟病这些大模型本身的信息未被公开以供研究,但很少关注大模型训练技术这种背后的知识。本文旨在以 1760 亿参数的语言模型 BLOOM 为例,阐明训练此类模型背后的软硬件工程和技术要点,以促进大家对大模型训练技术的讨论。
BLOOM 文档链接
首先,我们要感谢促成或赞助我们这个小组最终完成了训练 1760 亿参数模型这一惊人壮举的公司、个人和团体。
然后,我们开始讨论硬件配置和主要技术组件。以下是对本项目的简要总结:
硬件
384 张 80GB A100 GPU
软件
Megatron-DeepSpeed
模型架构
基于 GPT3
数据集
含 59 种语言,共 3500 亿词元
训练时长
3.5 个月
人员组成
该项目由 Thomas Wolf (Hugging Face 联合创始人兼 CSO) ...
Zero-Shot Information Extraction via Chatting with ChatGPT
零样本信息抽取(Information Extraction,IE)旨在从无标注文本中建立IE系统,因为很少涉及人为干预,该问题非常具有挑战性。但零样本IE不再需要标注数据时耗费的时间和人力,因此十分重要。近来的大规模语言模型(例如GPT-3,Chat GPT)在零样本情况下取得了很好的表现,这启发我们探索基于Prompt的方法来解决零样本IE任务。我们提出一个问题:不经过训练来实现零样本信息抽取是否可行?我们将零样本IE任务转变为一个两阶段框架的多轮问答问题(Chat IE),并在三个IE任务中广泛评估了该框架:实体关系三元组抽取、命名实体识别和事件抽取。在两个语言的6个数据集上的实验结果表明,Chat IE取得了非常好的效果,甚至在几个数据集上(例如NYT11-HRL)上超过了全监督模型的表现。我们的工作能够为有限资源下IE系统的建立奠定基础。
论文地址: https://arxiv.org/pdf/2302.10205.pdf
论文地址: https://github.com/cocacola-lab/ChatIE
介绍
信息抽取目标是从无结构文本中抽取结构化信息,包括实体- ...
ChatGPT 调研报告
本调研报告来源于哈尔滨工业大学自然语言处理研究所
Inverse scaling can become U-shaped
扩大语言模型的规模已被证明可以提高性能并释放出新的能力。或许,也存在某些任务的结果会因模型规模的增加反而变得糟糕。这类任务被称为 Inverse Scaling,它们可以指示出训练数据或优化目标是否存在某种缺陷。
本文着眼于这些Inverse Scaling任务。作者评估了多达540B参数的模型,其训练计算量是Inverse Scaling Prize中评估的五倍。通过增加模型大小和训练计算量的范围,只有11个任务中的4个仍然是反比例缩放。其中11项任务中有6项表现出我们所谓的“U形缩放”—性能先是随着模型规模增大降到一定程度,然后随着模型的增大性能再次上升(剩余一项任务显示正向缩放)。
论文地址: https://arxiv.org/pdf/2211.02011.pdf
方法
在论文中,作者对这11个任务的缩放表现进行了详细研究。结果如下:
所有11项任务的PaLM结果如上图所示,可以看到在PaLM 540B模型后,11项任务中的只有4项保持反比例缩放。其中6个任务从反比例缩放变为U形曲线,而一个任务(Repetitive Algebra)则显示出与PaLM正相关的趋势。这种广泛 ...
ChatGPT 标注指南来了!数据是关键
ChatGPT 刚刚出来时,业内人士一致认为高质量的数据是一个非常关键的因素。 且不论这个结论在 ChatGPT 这里是否正确,但高质量的数据对模型大有裨益却是公认的。而且,我们也可以从公开的 InstructGPT 标注指南中对此窥探一二。
本文主要就围绕这份指南进行介绍,主要包括以下几个方面内容:
我们首先会简单介绍 ChatGPT 训练过程中的几个涉及到标注的任务,清楚了任务才能更好地了解标注。然后从宏观角度统领几个方面的设计,包括 数据、人员、规范 等。
标注数据: 包括数据收集、数据分析、数据预处理等。
标注人员: 包括人员筛选、人员特征、满意度调查等。
标注规范: 包括关键指标、标注方法细则、标注示例、FAQ 等。
多想一点: 主要是个人的一些补充和思考。
总体介绍
根据 ChatGPT 博客(相关文献【1】)的介绍,主要是前两个步骤需要标注数据:第一步的有监督微调 SFT(supervised fine-tuning)和 第二步的 RM(Reward Model)。
第一步需要对样本中的 Prompt 编写人工答案,这是高度人工参与过程,而且对标注人员要求很高;
第 ...
Large Language Models Are Human-Level Prompt Engineers
近期在 NLP 领域风很大的话题莫过于 Prompt,尤其当大型语言模型(LLM)与其结合,更是拉近了我们与应用领域之间的距离,当 LLM 在包括小样本学习在内的各种任务中表现出非凡的效果和通用性时,也存在着一个问题亟待解决:如何让 LLM 按照我们的要求去做?这也是本篇论文的一个重要出发点。
本文作者将 LLM 视为执行由自然语言指令指定程序的黑盒计算机,并研究如何使用模型生成的指令来控制 LLM 的行为。受经典程序合成和人工提示工程方法的启发,作者提出了自动提示工程师 (Automatic Prompt Engineer, APE) 用于指令自动生成和选择,将指令视为“程序”,通过搜索由 LLM 提出的候选指令池来优化,以使所选的评分函数最大化。
作者通过对 24 个 NLP 任务的实验分析指出,自动生成的指令明显优于先前的 LLM Baseline,且 APE 设计的提示可以用于引导模型真实性和信息量,以及通过简单地将它们预设为标准上下文学习提示来提高小样本学习性能。
论文地址: https://arxiv.org/abs/2211.01910
代码地址: https://gi ...
用于大型Transformer的8-bit矩阵乘法介绍
语言模型正变的越来越大,PaLM有540B的参数量,OPT、GPT-3和BLOOM则大约有176B的参数量,而且我们正朝着更大的模型发展。下图是近些年语言模型的尺寸。
这些模型很难在常用设备上运行。例如,仅仅推理BLOOM-176B就需要8张A00 GPUs(每张80G显存,价格约15k美元)。而为了微调BLOOM-176B则需要72张GPU。PaLM则需要更多的资源。
这些巨型模型需要太多GPUs才能运行,因此需要寻找方法来减少资源需求并保证模型的性能。已经有各种技术用来减小模型尺寸,例如量化、蒸馏等。
在完成BLOOM-176B训练后,HuggingFace和BigScience逐步探索在少量GPU上运行大模型的方法。最终,设计出了Int8量化方法,该方法在不降低大模型性能的情况下,将显存占用降低了1至2倍,并且集成到了Transformers模块中。具体关于LLM.int8内容可参考余下论文:
LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale
常用类型
浮点数在机器学习中也被称为"精 ...










