AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化

这篇具有很好参考价值的文章主要介绍了AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录🚩

AI大模型探索之路-训练篇1:大语言模型微调基础认知
AI大模型探索之路-训练篇2:大语言模型预训练基础认知
AI大模型探索之路-训练篇3:大语言模型全景解读
AI大模型探索之路-训练篇4:大语言模型训练数据集概览



前言

在自然语言处理领域,大语言模型预训练数据准备是一个重要的环节。其中,词元化(Tokenization)作为预训练前期的关键步骤,旨在将原始文本分割成模型可识别和建模的词元序列,为大语言模型提供输入数据。本文将对词元化技术进行详细介绍,包括分词的粒度、分词器的类型以及各大模型的分词效果等内容。

一、概述

分词(词元化):词元化(Tokenization)是数据预处理中的一个关键步骤,旨在将原始文本分割成模型可识别和建模的词元序列,作为大语言模型的输入数据;形成一个词汇表。
传统自然语言处理研究(如基于条件随机场的序列标注)主要使用基于词汇的分词方法,这种方法更符合人类的语言认知。然而,基于词汇的分词在某些语言(如中文分词)中可能对于相同的输入产生不同的分词结果,导致生成包含海量低频词的庞大词表,还可能存在未登录词(Out-of-vocabulary, OOV)等问题。因此,一些语言模型开始采用字符作为最小单位来分词。其中子词分词器(Subword Tokenizer)被广泛应用于基于 Transformer 的语言模型中,包括 BPE 分词、WordPiece 分词和 Unigram 分词三种常见方法。

二、分词的粒度

从分词的粒度区分,主要包括3种类型,Word 、Subword、Char
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化,AIGC-AI大模型探索之路,AIGC,人工智能,语言模型,自然语言处理,python,AI编程,agi

1)Word分词粒度以完整的单词为单位进行分词,能够很好地保留每个词的语义,适合上下文理解和语义分析。然而,它面临着长尾效应和稀有词问题,可能导致词汇表庞大并且出现OOV(Out-of-Vocabulary)问题。

OOV是“Out-Of-Vocabulary”的缩写,直译为“词汇表外的”,在自然语言处理中,表示的是那些在词汇表中没有的单词

2)Char分词粒度则是将文本拆分为字符级别,这样可以解决OOV问题,因为可以处理任何字符,但缺点是可能缺乏明确的语义信息,并且由于粒度过细,会增加后续处理的计算成本和时间。
3)Subword分词粒度介于Word和Char之间,旨在克服两者的缺点,同时保留语义信息并减少OOV问题的发生。Subword分词方法如BPE(Byte Pair Encoding)或WordPiece通过统计学方法切分单词为更小的有意义的单元,这使得它们在处理生僻词和缩写时更为有效。(目前使用比较广泛)

三、分词器的类型

针对Subword常用的分词器有3种:BPE 分词、WordPiece 分词和 Unigram 分词。
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化,AIGC-AI大模型探索之路,AIGC,人工智能,语言模型,自然语言处理,python,AI编程,agi

SentencePiece 是一个开源的分词器工具;是由谷歌开发的,旨在提供一种高效的方式来对文本进行分词,尤其适用于处理变长和不规则的文本数据。它通过训练特定领域的模型来代替预训练模型中的词表,从而更有效地处理词汇。常用的BPE、WordPiece、 Unigram分词器都支持。

四、BPE/BBPE分词

1)BPE:从字符级别开始,逐步合并最频繁连续出现的字符或字符组合,形成新的词汇单元。
2)BBPE:字节级别的 BPE(Byte-level BPE, B-BPE)是 BPE 算法的一种拓展。它将字节视为合并操作的基本符号,从而可以实现更细粒度的分割,且解决了未登录词问题。采用这种词元化方法的代表性语言模型包括 GPT-2 、BART 和 LLaMA 。
3)对于英文、拉美体系的语言来说使用BPE分词足以在可接受的词表大小下解决OOV的问题,但面对中文、日文等语言时,其稀有的字符可能会不必要的占用词汇表(词汇表要么巨大要么会OOV),因此考虑使用字节级别byte-level解决不同语言进行分词时OOV的问题。具体的,BBPE将一段文本的UTF-8编码(UTF-8保证任何语言都可以通用)中的一个字节256位不同的编码作为词表的初始化基础Subword。

例如,GPT-2 的词表大小为 50,257 ,包括 256 个字节的基本词元、一个特殊的文末词元以及通过 50,000 次合并学习到的词元。(相当于既有了BPE特性,又兼容了中文)
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化,AIGC-AI大模型探索之路,AIGC,人工智能,语言模型,自然语言处理,python,AI编程,agi

BBPE的优点:不会出现 OOV 的情况。不管是怎样的汉字,只要可以用字节表示,就都会存在于初始词表中。
BBPE的缺点:一个汉字由3个字节组成,一个汉字就会被切成多个token,但实际上这多个token没必要进行训练。

BPE词表构建整体流程如下:
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化,AIGC-AI大模型探索之路,AIGC,人工智能,语言模型,自然语言处理,python,AI编程,agi

五、WordPiece分词

1)WordPiece 分词和 BPE 分词的想法非常相似,都是通过迭代合并连续的词元,但是合并的选择标准略有不同WordPiece 分词算法并不选择最频繁的词对,而是使用下面的公式为每个词对计算分数
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化,AIGC-AI大模型探索之路,AIGC,人工智能,语言模型,自然语言处理,python,AI编程,agi

比如unable,BPE 只关心 token pair 的出现频率,即 freq_of_pair;WordPiece 还考虑了每个 token 的出现频率。即使 unable 出现频率很高,但如果 un 和 able 单个 token 的出现频率都很高,也不会合并它们。

2)WordPiece:就是将所有的「常用字」和「常用词」都存到词表中,当需要切词的时候就从词表里面查找即可。
WordPiece 的方式很有效,但当字词数目过于庞大时这个方式就有点难以实现了。对于一些多语言模型来讲,要想穷举所有语言中的常用词,这个量会非常大(穷举不全会造成 OOV)
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化,AIGC-AI大模型探索之路,AIGC,人工智能,语言模型,自然语言处理,python,AI编程,agi

六、Unigram 分词

Unigram分词器与BPE和WordPiece的不同在于它的构建过程。Unigram初始化时会创建一个非常大的词汇表,然后根据一定的标准逐步丢弃较不常用的词汇单元,直到满足限定的词汇表大小(比较适合处理生僻词)

七、分词器的选择

大语言模型通常使用 SentencePiece 代码库为预训练语料训练定制化的分词器(也可以自定义);
这一代码库支持字节级别的 BPE 、 Unigram 、WordPiece分词。为了训练出高效的分词器,通常主要关注以下几个因素。首先,分词器必须具备无损重构的特性,即其分词结果能够准确无误地还原为原始输入文本。其次,分词器应具有高压缩率,即在给定文本数据的情况下,经过分词处理后的词元数量应尽可能少,从而实现更为高效的文本编码和存储。具体来说,压缩比可以通过将原始文本的 UTF-8 字节数除以分词器生成的词元数(即每个词元的平均字节数)来计算:
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化,AIGC-AI大模型探索之路,AIGC,人工智能,语言模型,自然语言处理,python,AI编程,agi

例如,给定一段大小为 1MB(1,048,576 字节)的文本,如果它被分词为 200,000
个词元,其压缩率即为 1,048,576/200,000=5.24

八、各大模型的分词效果

分词效果:男儿何不带吴钩,收取关山五十州
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化,AIGC-AI大模型探索之路,AIGC,人工智能,语言模型,自然语言处理,python,AI编程,agi

1、LLaMA 词表是最小的,LLaMA 在中英文上的平均 token 数都是最多的,意味 LLaMA 对中英文分词都会比较碎,比较细粒度。
尤其在中文上平均 token 数高达1.45,这意味着 LLaMA 大概率会将中文字符切分为2个以上的 token。
2、Chinese LLaMA 扩展词表后,中文平均 token 数显著降低,会将一个汉字或两个汉字切分为一个 token,提高了中文编码效率。
3、ChatGLM-6B 是平衡中英文分词效果最好的 tokenizer。由于词表比较大,中文处理时间也有增加。
4、BLOOM 虽然是词表最大的,但由于是多语种的,在中英文上分词效率与 ChatGLM-6B 基本相当。
AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化,AIGC-AI大模型探索之路,AIGC,人工智能,语言模型,自然语言处理,python,AI编程,agi

九、SentencePiece分词器使用

SentencePiece地址:https://github.com/google/sentencepiece
1)安装相关依赖

pip install sentencepiece

2)分词器使用

% spm_train --input=<input> --model_prefix=<model_name> --vocab_size=8000 --character_coverage=1.0 --model_type=<type>

参数说明:

--input:原始语料库文件,可以传递以逗号分隔的文件列表。
--model_prefix:输出的词表名称; 文件格式:<model_name>.model 、 <model_name>.vocab
--vocab_size:设置词表大小,例如 8000、16000 或 32000
--character_coverage:词表对语料库的覆盖率,默认:0.9995 对于具有丰富字符集的语言(如日语或中文)和其他具有小字符集的语言可以设置为1.0 (即对原料库的覆盖率为100%,包含语料库所有的单词)
--model_type:模型类型。unigram (default), bpe, char, or word

🔖更多专栏系列文章:🚩🚩🚩AIGC-AI大模型探索之路

文章若有瑕疵,恳请不吝赐教;若有所触动或助益,还望各位老铁多多关注并给予支持。文章来源地址https://www.toymoban.com/news/detail-860713.html

到了这里,关于AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AI大模型探索之路-应用篇2:Langchain框架ModelIO模块—数据交互的秘密武器

    目录 前言 一、概述 二、Model 三、Prompt 五、Output Parsers 总结 随着人工智能技术的不断进步,大模型的应用场景越来越广泛。LangChain框架作为一个创新的解决方案,专为处理大型语言模型的输入输出而设计。其中,Model IO(输入输出)模块扮演着至关重要的角色,负责构建和管

    2024年04月13日
    浏览(40)
  • 使用数据预训练一个AI语言模型

    目录 收集或制造数据集 下载并解压 安装python依赖 编写训练脚本 执行训练脚本开始训练 编写推理脚本 启动推理脚本 测试 注意 我们之前讲过了如何部署一个别人已经训练好的AI模型、也学会了如何微调一个AI模型,也讲了预训练模型和微调模型的区别,那本文就聊聊如何从

    2024年02月17日
    浏览(44)
  • AI大模型探索之路-应用篇13:企业AI大模型选型指南

    目录 前言 一、概述 二、有哪些主流模型? 三、模型参数怎么选? 四、参数有什么作用? 五、CPU和GPU怎么选? 六、GPU和显卡有什么关系? 七、GPU主流厂商有哪些? 1、NVIDIA芯片怎么选? 2、CUDA是什么? 3、AMD芯片怎么选? 4、NVIDIA和AMD两者有什么区别? 八、GPU显存怎么选?

    2024年04月17日
    浏览(68)
  • PaddleOCR训练自己模型(1)----数据准备

    PaddleOCR开源代码(下载的是2.6RC版本的,可以根据自己需求下载) 具体环境安装就不详细介绍了, 挺简单的,也挺多教程的。 二、数据集准备及制作 (1)下载完代码及配置完环境之后,运行PPOCRLabel.py文件,打开标注软件( 2.7版本的会运行报错,解决方案如下 )解决PPOCR

    2024年04月16日
    浏览(47)
  • AI大模型探索之路-提升篇2:一文掌握AI大模型的核心-注意力机制

    目录 前言 一、注意力机制简介 二、注意力机制的工作原理 三、注意力机制的变体 1、自注意力(Self-Attention) 2、双向注意力(Bidirectional Attention) 3、多头注意力(Multi-Head Attention) ​4、无限注意力机制(Infini-attention) 四、注意力机制在自然语言理解中的应用 五、未来展

    2024年04月15日
    浏览(44)
  • [玩转AIGC]LLaMA2训练中文文章撰写神器(数据准备,数据处理,模型训练,模型推理)

    好久没更新这个专栏的文章了,今天抽空写了一篇。————2023.12.28 摘要:文体包括新闻,法律文书,公告,广告等,每种文体的书写风格不一样,如果拥有自己的数据集,想针对特定文体来训练一个内容生成的工具,来帮助自己写点文章,如果没接触过AIGC,可能一开始会

    2024年01月17日
    浏览(55)
  • AI大模型探索之路-实战篇1:基于OpenAI智能翻译助手实战落地

    在全球化的浪潮中,语言翻译需求日益增长。市场上涌现出各式各样的翻译工具和平台,然而,免费的解决方案往往局限于简短文本的翻译。面对长篇文档,用户通常不得不转向付费服务。鉴于大型预训练语言模型(LLMs)在自然语言翻译上的显著优势,利用这些模型打造一款

    2024年04月26日
    浏览(41)
  • AI大模型探索之路-应用篇16:GLM大模型-ChatGLM3 API开发实践

    目录 一、ChatGLM3-6B模型API调用 1. 导入相关的库 2. 加载tokenizer 3. 加载预训练模型 4. 实例化模型 5.调用模型并获取结果 二、OpenAI风格的代码调用 1. Openai api 启动 2. 使用curl命令测试返回 3. 使用Python发送POST请求测试返回 4. 采用GLM提供的chat对话方式 5. Embedding处理 三、Functio

    2024年04月23日
    浏览(45)
  • AI大模型探索之路-实战篇3:基于私有模型GLM-企业级知识库开发实战

    在当今信息时代,数据已经成为企业的核心资产之一。对于许多企业而言,信息安全和私密性是至关重要的,因此对外部服务提供的数据接口存在天然的警惕性。因此常规的基于在线大模型接口落地企业知识库项目,很难满足这些企业的安全需求。面对这样的挑战,只有私有

    2024年04月23日
    浏览(56)
  • 探索大语言模型垂直化训练技术和应用-陈运文

    内容来源:ChatGPT 及大模型专题研讨会  分享嘉宾:达观数据董事长兼CEO 陈运文博士 分享主题:《探索大语言模型垂直化训练技术和应用》  转载自CSDN稿件 本文整理自 3月11日 《ChatGPT 及大规模专题研讨会》上,达观数据董事长兼CEO 陈运文博士关于《探索大语言模型垂直化

    2024年02月10日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包