一 [简话语音识别] ngram基础 语言模型

admin 2024-11-19 51 0

本文目录导航:

[简话语音识别] 语言模型(一)ngram基础

语言模型(一):ngram基础与理解

一 [简话语音识别] ngram基础 语言模型

背景介绍

语音识别技术的核心在于将语音信号转换为文本序列,主要框架包括HMM-DNN声学模型、语言模型和基于WFST的BeamSearch解码算法。

语言模型在语音识别流程中,通过引入领域内语言表达习惯,对解码搜索空间进行约束,以在合理计算时间内获得有意义的文字序列。

引入语言模型后,解码搜索空间显著减小,大大提升了语音识别的效率。

ngram理论知识

在早期,科学家尝试使用句法模板来表示语言表达习惯,但随着语言的不断演变,新的词汇和句式持续出现。

如何跟上语言变化节奏,利用统计语言模型(Statistical Language Model)成为可能,ngram技术应运而生。

统计语言模型通过计算词序列的概率来衡量与语言习惯的匹配程度,从而指导解码过程,剔除不符合语言习惯的路径。

ngram语言模型通过引入n-1阶段马尔科夫假设,假设词出现概率依赖于部分历史信息,而非全部历史信息,有效解决了词序列概率估计问题。

ngram模型的质量评估

评估ngram模型好坏的指标主要有混淆度ppl和交叉熵。

ppl描述的是从测试文本任意位置预测下一个词时的复杂程度,通过比较训练语料中的实际概率分布p和一个均匀分布q,ppl反映了模型对搜索空间的有效约束。

直观理解,ppl反映了模型在预测未知词汇时的平均不确定性,它越小,模型越能准确预测。

ngram概率计算与平滑技术

ngram概率计算通常采用最大似然估计方法。

对于未在训练语料中出现过的ngram,需要通过平滑技术进行概率估计,以避免模型的过拟合问题。

平滑技术主要包括“政府补贴”方式,如additive平滑,以及“劫富济贫”方式,如Good-Turing平滑。

为了解决“一视同仁”分配概率的问题,引入了低阶grammar信息,通过插值和回退技术重新分配概率。

其中,改进的Kneser-Ney算法是结合了这两种技术的优化版本,旨在更准确地估计概率分布。

训练工具与实践示例

srilm是一个C++工具库,提供ngram相关算法的实现,包括ngram-count、ngram等基本工具。

语音识别中的ngram语言模型训练通常包含准备词表、文本分词、ngram模型训练、保存为arpa格式、使用arap2fst生成以及可视化等步骤。

实际应用中,ngram语言模型还涉及更多高级技术,如class ngram、cache ngram、ngram2vec、ngram蒸馏压缩和联邦学习等。

参考资料

为了深入理解ngram语言模型,推荐参考以下资源:

1. 台湾大学李琳山教授的数位语音处理概论 - 台大开放式课程 (NTU OpenCourseWare)

2. srilm 初始版本发布论文

3. srilm 改进版本发布论文

4. CMU语音识别2011课程class17 ngram课件

5. 比较各种平滑方法的经典论文A n Empirical Study of Smoothing Techniques for Language Modeling

通过上述内容,我们不仅了解了ngram基础与应用,还探索了语言模型评估与概率计算的细节,以及如何利用工具库进行模型训练和实践操作。

大语言模型(LLM)训练的方法

自2017年Transformer的问世,语言模型领域迎来爆发式增长,GPT3.5与GPT4.0的出现为智能革命的下一次飞跃带来了希望。

开源大语言模型的涌现,让研究者们得以探索模型训练的内部机制。

训练大语言模型并非易事,近五年来,研究者们探索了多种训练方式以提升效果,包括无监督学习、监督学习与强化学习等。

这些方法各具特点,为模型训练提供了多样化的路径。

1. **无监督预训练**大语言模型训练的开端是进行无监督预训练,利用海量未标记文本数据,使模型捕获语言中的基本特征。

模型参数与预训练数据量间呈现线性关系,参数越多,所需数据量越大,性能越佳。

实践已验证此现象,数据量是模型训练成功的关键。

1. **监督微调 (Supervised Fine Tuning, SFT)**监督微调是通过使用有标注的特定任务数据对预训练模型进行进一步微调,以增强模型对人类指令的响应能力。

此阶段的核心关注点在于高效微调方法、指令数据构造以及如何扩大模型上下文范围。

2. **Lora技术**LoRA技术是一种参数高效适应技术,允许大型预训练模型在微调过程中减少参数学习量,显著节省内存和加速训练。

该技术已被集成到多种训练库中,如PEFT,通过简单配置即可实现。

2. **P-Tuning技术**P-Tuning技术通过优化输入部分提高模型在特定任务上的表现。

此技术可自动调整输入提示以优化模型表现,为模型应用提供了便利。

2. **Prefix-Tuning**Prefix-Tuning技术依赖于模型通过阅读和分析给定上下文生成响应的能力,特别适用于少样本或零样本学习场景,允许模型在不显式训练的情况下适应新任务。

3. **强化学习**强化学习将模型输出文本视为整体,优化目标为生成高质量回复。

此方法不依赖于人工编写的高质量回复,模型根据指令生成回复,并通过奖励机制学习优化。

强化学习尤其适用于生成式任务。

强化学习相较于监督微调的好处在于能够从整体上评估模型输出质量,不依赖于预定义的答案,更适用于生成多样性和敏感性变化的场景。

基于人类反馈的强化学习(RLHF)通过人类调整/评判,确保模型输出与人类意图对齐,实现3H原则:帮助性、真实性与无害性。

通过上述方法,大语言模型训练实现了从无监督预训练到有监督微调、Lora等优化技术的不断进化,以及强化学习在提升模型应用灵活性与质量方面的关键作用。

未来,随着技术的进一步发展,大语言模型将在更多领域展现出其潜力与价值。

大型语言模型(LLM)训练指南🚀

近年来,大型语言模型的训练规模日益增长,以悟道 2.0 模型为例,其参数量达到 1.75T,是 GPT-3 的 10 倍。

然而,对于如何高效训练大型语言模型的信息却相对较少。

本文将整理出简单的训练指南,以助于深入了解这一过程。

以 BLOOM-175B 的训练为例,本文将分阶段介绍训练过程中的关键要素。

首先,硬件设施的选择至关重要。

BLOOM 的训练采用了一套硬件配置,具体细节可参考相关文档。

其次,模型训练涉及多个并行技术,包括数据并行、张量并行以及管道并行等。

在数据并行中,模型被复制到多个 GPU 上,并在每次迭代后同步状态。

通过在 N 台机器上复制模型,数据拆分以减少每台机器的工作量,并提高训练速度,前提是模型能够适应单个 GPU。

对于大规模模型,ZeRO 数据并行技术尤为有效,它通过优化器状态、梯度和参数的划分,显著减少显存冗余,使集群显存容量得到充分利用。

此技术在训练万亿参数模型时,仅需约 16GB 内存,大幅降低了内存需求。

张量并行则关注于权重矩阵的分割,以实现跨 GPU 的并行计算。

通过 Megatron-LM 论文中的实现,大型模型的并行计算得以高效进行,尤其是在 Transformer 架构中。

管道并行则通过将模型层分布在多个 GPU 上,实现数据的高效传输和计算,有效解决了 GPU 闲置问题。

通过调整超参数,如块大小,以实现 GPU 利用的最大化,从而减少通信开销。

将数据并行、张量并行和管道并行结合,形成 3D 并行,即在硬件层面实现三维的并行化,以达到更高的训练效率。

NCCL 库提供了高性能的多 GPU 通信支持,通过优化多 GPU 间的集体通信,如广播、聚合等操作,显著提升了训练速度。

在实际应用中,大型语言模型训练面临着 FP16 的局限性,特别是数值稳定性和精度问题。

BF16 格式被引入以解决这些挑战,它具有与 FP32 相同的指数位,能够避免溢出问题,同时保持较高的计算效率。

BF16Optimizer 的使用确保了在管道并行训练中的梯度累积能够保持精确性,从而实现高效的混合精度训练。

综上所述,本文整理了大型语言模型训练的关键步骤和策略,包括硬件设施的选择、并行技术的应用、通信库的优化等,为训练大规模模型提供了实用的指南。

通过采用这些方法,可以有效提高训练效率,降低资源消耗,实现高效、稳定的大型语言模型训练过程。

评论(0)