训个LLM:开源LLM Tokenizer比较
最近在训练LLM,发现不同tokenizer的分词结果和效率都不太一样,因此做实验探究一下,顺便把结果在这里做一个记录。
实验是使用各tokenizer在NewsCommentary的中英平行语料(各25w条)上进行处理,记录处理出的token长度以及处理时间等,结果如下:
名称
词表长度↑
中文平均长度↓
英文平均长度↓
中文处理时间↓
英文处理时间↓
LLaMA
32000
62.8
32.8
02:09
01:37
BELLE
79458
24.3
32.1
00:52
01:27
MOSS
106072
24.8
28.3
07:08
00:49
GPT4
50281
49.9
27.1
00:07
00:08
BLOOM/Z
250680
23.4
27.6
00:46
01:00
ChatGLM
130344
23.6
28.7
00:26
00:39
实验结果
LLaMA的词表长度是最短的,其在中英文的平均长度上效果都不佳,同时处理时间也较长。
BELLE的词表是在LLaMA基础上进行扩增的,通过观察可以发现,扩增的主要是中文的t ...
Learning Transferable Visual Models From Natural Language Supervision
CLIP 是由 OpenAI 提出的一种多模态神经网络,它能有效地借助自然语言的监督来学习视觉的概念。典型的视觉数据集是劳动密集型的,创建成本很高,且使用它们训练得到的标准视觉模型只擅长一项任务,导致适应新的任务并不容易。而 CLIP 在各种各样的图像上进行训练,同时依赖于互联网上大量自然语言的监督。CLIP 可以用自然语言指示进行大量的分类基准:我们只需要提供要识别的视觉类别的名称,无需再在目标基准上面进行专门的训练,这有点类似于 GPT-2 和 GPT-3 的 “Zero-Shot” 的能力。比如,CLIP 在 ImageNet-1K 上的性能与专门有监督训练的 ResNet-50 相当,但是却没有使用 1.28M 的 ImageNet-1K 训练数据集。事实上,CLIP 也可以 “Zero-Shot” 地有效转移到大多数任务上面,并且能获得与完全监督的基线相竞争的性能。
论文地址: https://arxiv.org/pdf/2103.00020.pdf
CLIP 的预训练方法
本文采取基于对比学习的高效预训练方法。作者的思路是这样的:一开始的方法是联合训练了一个处理图像的 C ...
A Survey of Large Language Models
近期,ChatGPT成为了全网热议的话题。ChatGPT是一种基于大规模语言模型技术(LLM, large language model)实现的人机对话工具。现在主流的大规模语言模型都采用Transformer网络,通过极大规模的数据进行自监督训练。但是,如何构建自监督训练数据?在基础的Transformer结构上,大家又做了哪些创新呢?为了保证训练过程高效且稳定,又有哪些黑科技呢?今天给大家介绍一篇来自人民大学的综述论文,为大家解密这些大模型的训练技巧。
论文地址: http://arxiv.org/abs/2303.18223
相关资源参考: https://github.com/RUCAIBox/LLMSurvey
训练数据的收集与处理
大规模语言模型对训练数据的规模与质量都有更高的要求。那现在的大模型都用了什么语料?这些语料都发挥着怎样的作用?如何对语料做清洗和预处理?大模型还有什么特殊的细节需要我们去处理?
数据来源
数据来源上,大规模语言模型的训练数据可以一般性语料与特殊语料。一般性语料,如网页、书籍、对话文本,占比较大,可以在各种话题上为模型提供语言知识;而特殊语料, ...
大语言模型的涌现能力:现象与解释
注1:本文整理自我在今年3 月 11 日 “中国人工智能学会”主办的「ChatGPT 及大模型专题研讨会」上《大型语言模型的涌现能力:现象与解释》的现场分享,介绍了大语言模型中的涌现现象,以及关于涌现能力背后原因的相关猜想。感谢CSDN帮助整理的文字稿。
注2:另,有人问了,既然很多自然现象也体现出涌现能力,那么大语言模型的涌现现象需要解释吗?我个人认为是需要的。毕竟,说大语言模型的某个特殊现象属于“涌现现象”,也是被个别研究提出来,未有确切证明或证据,是否它和自然现象中出现的涌现现象内在机制是类似或一样的,其实可以存疑。而且我认为大模型的这个现象,背后应该有些我们可以理解的原因。如果我们不追求现象背后的解释,仅仅把目前解释不了的现象统一归类为涌现或者其它什么概念,就此了之。那么,其实我们也可以把大模型的目前理解不了的很多现象,统一归类为这是一种“神迹”,那世界上很多事情就简单多了。另另,用Grokking解释涌现现象,尽管我把它称为”用玄学解释玄学“,但是觉得还是值得深入探索的方向,也许可以把上面的说法,优化为”用含玄量较低的玄学解释另外一个含玄量较高的玄学“。
注3:如果仔细分析的 ...
Prompts技巧工程完全指南
博客内容来自于最新书籍《The Art of Asking ChatGPT for High-Quality Answers: A complete Guide to Prompt Engineering Techniques》。本书是一本综合性的指南,目的是帮助您理解和利用各种提示技术,以便从ChatGPT中获得高质量的答案。
最新可参考: https://github.com/f/awesome-chatgpt-prompts
接下来我们将探索如何用不同的提示技术去完成不同的目的。ChatGPT 是目前最先进的、能够生成类似人类文本的语言模型。然而,了解向ChatGPT提问的正确方式,以获得我们所期望的高质量答案,是至关重要的。
这就是本书的目的:无论你是一个普通人、研究员、开发者,或者是仅仅想把ChatGPT当成自己工作的个人助理,这本书都适合你。书中使用通俗易懂的语言解释,并且辅以实例和提问技巧的公式。通过这本书,你将学会如何使用提示技巧来控制ChatGPT的输出,让其按照你的需求生成文本。
在本书中,我还提供了一些如何综合利用不同提示技巧,以达到特定目的的例子。希望这本书能 ...
从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
介绍
信息抽取目标是从无结构文本中抽取结构化信息,包括实体- ...