本文目录导航:
- 大语言模型(LLM)训练的方法
- [简话语音识别] 语言模型(一)ngram基础
- 背景介绍
- ngram理论知识
- ngram模型的质量评估
- ngram概率计算与平滑技术
- 训练工具与实践示例
- 参考资料
- Ollama教程——入门:开启本地大型语言模型开发之旅
- 安装ollama
- 库和工具
- 快速开始
- 自定义和扩展
- 命令行界面
- 总结
大语言模型(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等优化技术的不断进化,以及强化学习在提升模型应用灵活性与质量方面的关键作用。
未来,随着技术的进一步发展,大语言模型将在更多领域展现出其潜力与价值。
[简话语音识别] 语言模型(一)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基础与应用,还探索了语言模型评估与概率计算的细节,以及如何利用工具库进行模型训练和实践操作。
Ollama教程——入门:开启本地大型语言模型开发之旅
在技术领域,大型语言模型(LLMs)已成为不可或缺的工具,展现出与人类媲美的性能,涵盖文本生成、代码编写和翻译等任务。
然而,部署和本地运行这些模型往往需要复杂的技术知识和资源。
这时,ollama这个工具应运而生,旨在简化这一过程。
ollama是一款轻量级框架,专为简化LLM本地部署和操作而设计。
它允许开发者在本地机器上便捷地构建和管理模型,无论是预构建的还是自定义的,无需过分关注底层实现。
本文将指导您如何安装ollama,了解其关键功能和使用方法。
安装ollama
ollama支持多种操作系统,包括macOS、Windows和Linux,并可适用于Docker环境,确保跨平台的兼容性。以下是安装步骤:
库和工具
安装完成后,ollama提供Python和JavaScript库,分别为ollama-python和ollama-js,帮助开发者在对应环境中无缝集成和利用模型。例如,Python开发者只需使用pip安装ollama-python:
JavaScript开发者则通过npm或yarn安装ollama-js。
快速开始
ollama的入门指南教您使用命令行操作模型,从选择模型到交互都相当直接。比如,启动Llama 2模型只需一个命令:
访问模型库,您可以找到并下载适用的模型,如7B参数量的模型。
自定义和扩展
ollama不仅支持预构建模型,还支持导入和自定义模型,包括GGUF格式导入和个性化提示设置。
通过这些工具,您可以根据需求定制模型行为。
命令行界面
ollama的命令行工具提供丰富选项,如创建、拉取、删除模型,以及通过REST API进行交互。例如,创建新模型的命令如下:
这些命令为开发者提供了灵活的管理和控制。
总结
ollama为本地大型语言模型开发提供了一个易于使用且功能强大的平台。
无论是新手还是经验丰富的开发者,都可以通过本文提供的指导开始探索和开发,开启本地LLM的使用之旅。
评论(0)