LLM-TAP随笔——语言模型训练数据【深度学习】【PyTorch】【LLM】

news/2024/9/23 2:25:03/

文章目录

  • 3、语言模型训练数据
    • 3.1、词元切分
    • 3.2、词元分析算法

3、语言模型训练数据

  • 数据质量对模型影响非常大。

典型数据处理:质量过滤、冗余去除、隐私消除、词元切分等。

  • 训练数据的构建时间、噪音或有害信息情况、数据重复率等因素都对模型性能有较大影响。
  • 训练数据和测试数据的时间错配会一定程度上影响模型的的效果。

3.1、词元切分

构建词元表:覆盖绝大部分的输入词,并避免词表过大所造成的数据稀疏问题。
BPE
将字节视为合并的基本符号。
算法过程

  1. 词元词表的确定

统计每个相邻字节对的出现频率,合并出现频率最高的字节对,将其作为 新的词元加入词表。

在这里插入图片描述
2. 全词切分为词元以及词元合并为全词的方法

输入词序列全词切分,对照词表按词元从长到短顺序遍历匹配。

合成全词时,词元表示失败部分视作未登录词,赋予相同表示。

开源数据集合

  • Pile
  • ROOTS
  • RefinedWeb
  • SlimPajama

3.2、词元分析算法

WordPiece词元分析算法(BERT)

  • 先评分
  • 再合并,合并使得训练数据似然概率增加最高的词元对。

HuggingFace 提供的评分公式:
s c o r e = 词元对出现的频率 第一个词元出现的频率 × 第二个词元出现的频率 score = \frac{词元对出现的频率}{第一个词元出现的频率 × 第二个词元出现的频率} score=第一个词元出现的频率×第二个词元出现的频率词元对出现的频率

Unigram词元分析算法(T5,mBART)

  • 从一个足够大的可能词元集合开始,迭代的从当前列表中删除词元,直到达到预期的词汇表大小为止。
  • 删除标准:训练语料库似然性的增加量

"语料库的似然性"通常是指一个特定文本序列(通常是一段文本或一个句子)在语料库中出现的概率。

BPE词元分析算法(GPT-2,BART,LLaMA)
将字节视为合并的基本符号。

Tips:

R d R^d Rd:表示d维度张向量空间。

R d × m R^{d × m} Rd×m: d ×m 的实数矩阵的空间。
Hugging Face(Hugging Face Transformers)是一个面向自然语言处理(NLP)领域的开源社区和公司,它以构建和维护各种预训练模型以及提供与自然语言处理相关的工具和库而闻名。该社区和公司的名字“Hugging Face”来自于一个富有亲和力的面部照片,反映了他们的愿景,即使人工智能模型变得更加友好和可访问。

Hugging Face的主要贡献和活动包括:

  1. 预训练模型库:Hugging Face维护了一个大规模的预训练模型库,其中包括了许多流行的NLP模型,如BERT、GPT、RoBERTa、XLNet等。这些模型在各种NLP任务上表现出色,并且可以用于微调以适应特定任务。
  2. Transformers库:Hugging Face提供了名为Transformers的Python库,用于轻松加载、使用和微调各种预训练模型。这个库包含了丰富的示例代码和工具,使研究人员和开发者能够快速开始使用最先进的NLP模型。
  3. 模型卡片(Model Cards):Hugging Face提倡模型卡片的使用,这是一种文档形式,用于提供有关预训练模型的详细信息、使用案例、性能评估和注意事项。这有助于提高模型的透明度和可解释性。
  4. 社区贡献:Hugging Face的社区活跃,并且在GitHub上有大量的贡献者。他们分享了自己的模型、工具、代码和教程,使整个NLP社区受益。
  5. Hub:Hugging Face提供了一个模型和数据的中央存储库,称为Hugging Face Hub,允许用户共享、下载和管理NLP模型和数据集。

检查点是模型在训练或生成过程中的某个时间点的保存状态,通常包括模型的权重参数和其他相关信息,以便稍后能够重新加载模型并继续训练或进行推理。

消融实验(ablation experiment)是一种用于研究机器学习模型或深度学习模型的重要实验方法。在这种实验中,研究人员有目的地将模型的某些组件或特性删除或禁用,以评估这些组件对模型性能的影响。消融实验的主要目的是帮助理解模型的工作原理、识别关键组件,以及确定哪些因素对模型性能产生了最大的影响。

  1. Few-shot Learning(少样本学习):
    1. Few-shot learning 涉及到在训练数据非常有限的情况下,使模型能够有效地学习和泛化。通常,few-shot learning 指的是模型在少于常规训练所需数量的样本上进行训练。这可以包括几个样本(通常小于10个)或更多,但总体上比传统的大规模训练数据要少。
    2. Few-shot learning 的一个常见应用是在计算机视觉中,例如人脸识别任务中,通过提供只有少数几张示例图像,使模型能够识别和分类新的人脸。
  2. One-shot Learning(一样本学习):
    1. One-shot learning 是 few-shot learning 的一个特例,它更加极端。在 one-shot learning 中,模型只能在单个训练样本上学习,并且需要能够在测试时正确地识别或分类新的示例。
    2. One-shot learning 的一个例子是手写字符识别,其中模型需要从单个示例字符中学习如何识别该字符,然后用于识别其他类似字符。
  3. Zero-shot Learning(零样本学习):
    1. Zero-shot learning 是一种更具挑战性的任务。在 zero-shot learning 中,模型需要能够在测试时处理从未在训练中见过的类别或样本。它需要具有泛化到全新情况的能力。
    2. 通常,zero-shot learning 使用属性或特征的描述来帮助模型理解新类别。例如,给定一个包含动物的图像数据集,模型可能没有见过一种叫做"斑马"的类别,但可以使用属性信息(例如,“有条纹”)来理解并识别这个类别。
  • 思维树(Tree of Thoughts, ToT):ToT提示是一种允许复杂的、多步骤问题通过LLM来解决的方法。通过将问题的解决方案分解为个别的步骤或思维,ToT提示使得可以通过多个推理线支持策略性的前瞻、回溯等进行复杂的解决方案空间探索。然后,我们可以在这个框架内通过与已知的图形结构数据搜索算法的组合进行提示和自我评估来搜索问题的解决方案。
  • 思维链(Chain of Thoughts, ToT):CoT的本质是将复杂任务拆解为多个简单的子任务,它指的是一个思维过程中的连续逻辑推理步骤或关联的序列,是思维过程中一系列相互关联的想法、观点或概念的串联。思维链通常用于解决问题、做决策或进行推理。它可以按照逻辑顺序连接和组织思维,将复杂的问题分解为更简单的步骤或概念,从而更好地理解和解决问题。CoT通常只有一条解决问题的路径,ToT等于是CoT的一个拓展。
  • 人类反馈训练:人类反馈的强化学习(RLHF)

http://www.ppmy.cn/news/1124537.html

相关文章

苹果Vision Pro头显内置AI芯片

苹果首席执行官蒂姆库克近日在接受采访时确认,备受瞩目的Vision Pro头显将按计划于明年初在美国上市。这款头显被认为是苹果自iPhone以来最重要的产品之一,售价高达3499美元。 蒂姆库克在接受CBS Sunday Morning的采访时透露,他的团队对Visi…

vue安装依赖报错install i 报错提示npm audit fix --force,or `npm audit` for details

vue项目执行npm install初始化后报错 run npm audit fix to fix them, or npm audit for details 出现这类提醒,按照如下操作进行 1、首先安装模块依赖: npm install (npm audit fix 含义: 检测项目依赖中的漏洞并自动安装需要…

太阳能供电模块

基于Solar Cell的锂电池充放电模块 由于一些需求,最近做了一款基于太阳能的锂电池充放电模块。该模块能够利用太阳能为锂电池充电和为负载提供5V的电压,在太阳能不充足的条件下,由锂电池提供需要的能量。 主要思路是将太阳能板获得的能量存储…

Ubuntu 安装PostgreSQL

网上有各种版本的,也可以去官网看官方的文档。我是下载的PostgreSQL-11.4版本的。找到以后直接复制网上的压缩包链接就可以。 $ mkdir /opt/postgresql && cd /opt/postgresql $ wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz…

Linux 终端命令总结

一、常用的七条命令 命令 对应英文作用lslist查看当前文件夹下的内容pwdprint work directory查看当前所在文件夹cd [目录名]change directory切换文件夹 touch [文件名]touch如果文件不存在新建文件mkdir [目录名]make directory创建目录rm[文件名]remo…

面试必杀技:Jmeter性能测试攻略大全(第二弹)

1. JMeter介绍与安装 JMeter介绍 JMeter是Apache组织开发的基于Java的压力测试工具。具有开源免费、框架灵活、多平台支持等优势。除了压力测试外,JMeter也可以应用的接口测试上。JMeter下载、安装及启动 下载: 访问JMeter官网:https://j…

QML:拖动曲线坐标点修改曲线

通过移动坐标点上的滑块实现修改折线的坐标点的值。具体效果如下: 大体分为两点:1、实现可移动的滑块,并获取实时x,y坐标。 2、根据滑块的x,y坐标转换为折线图上的坐标点并实时更新折线。 一、可移动滑块的实现 完整代码&#x…

Flask配合Echarts写一个动态可视化大屏

ch 技术 后端:flask 可视化:echarts 前端:HTMLJavaScriptcss 大屏布局 大屏拆分 案例项目中大屏可按版块进行拆解,会发现这里大屏主要由标题、折线图、柱状图、地图、滚动图和词云等组成,整体可切分为8个版块&…