算法 - LLM, NLP
2024-06-21 10:21:52 8 举报
AI智能生成
图谱算法主要涵盖:自然语言处理,语言模型,大模型 也聊聊语言发音技巧,词汇规律,工程调优。
作者其他创作
大纲/内容
Transformer
概念
Transformer是一种基于自注意力机制的深度学习模型,最初由Google提出用于自然语言处理任务。
结构
Transformer模型的结构主要包括编码器(Encoder)和解码器(Decoder)两部分。
在编码器和解码器中,都包含多层的注意力机制和前馈神经网络。
编码器(Encoder)
编码器由多个相同的层堆叠而成,每个层包括两个子层:
编码器用于将输入序列映射到隐藏表示空间
多头自注意力机制(Multi-Head Self-Attention):通过计算输入序列中每个位置的注意力权重,使模型能够关注输入序列中不同位置之间的依赖关系。
前馈神经网络(Feed-Forward Neural Network):对每个位置的隐藏表示进行线性变换和激活函数处理,从而学习位置之间的非线性关系。
解码器(Decoder)
解码器则根据编码器的输出和目标序列生成最终的预测结果。
多头自注意力机制(Multi-Head Self-Attention):与编码器中的自注意力机制类似,但在解码器中需要避免未来信息泄露
编码器-解码器注意力机制(Encoder-Decoder Attention):将编码器的输出作为查询向量,解码器的自注意力输出作为键值对,计算解码器每个位置对编码器输出的注意力权重。
前馈神经网络(Feed-Forward Neural Network):与编码器中的前馈神经网络相同。
原理
Transformer的核心思想是将输入序列中的每个词向量进行自注意力计算,得到每个词向量对于整个序列的重要性权重。
然后将这些权重与对应的词向量相乘并相加,得到每个词向量的上下文表示。
这种自注意力机制使得模型能够同时考虑到输入序列中的所有词,而不像RNN模型一样需要按顺序逐个处理。
然后将这些权重与对应的词向量相乘并相加,得到每个词向量的上下文表示。
这种自注意力机制使得模型能够同时考虑到输入序列中的所有词,而不像RNN模型一样需要按顺序逐个处理。
在Transformer模型中,自注意力机制是实现序列建模的关键组件。它能够根据输入序列中不同位置的信息来计算每个位置的表示。具体来说,给定一个输入序列X={x1, x2, ..., xn},自注意力机制会计算每个位置xi与其他位置的关联程度,并将这些关联程度作为权重来加权求和,从而得到每个位置的表示。
自注意力机制的计算过程可以分为三个步骤:计算注意力权重、加权求和和线性变换。首先,通过计算查询(query)、键(key)和数值(value)的内积,得到每个位置与其他位置的注意力权重。然后,将注意力权重与数值相乘并加权求和,得到每个位置的加权表示。最后,通过线性变换将加权表示映射到更高维的空间,以便后续的神经网络层进行处理。
Transformer模型还包括前馈神经网络层。前馈神经网络层由两个全连接层和一个激活函数组成,用于对每个位置的表示进行非线性变换。通过堆叠多层自注意力机制和前馈神经网络层,Transformer模型能够学习到更复杂的序列特征表示,从而提高模型的性能。
在Transformer中,除了自注意力层和前馈神经网络层,还包括了Layer Normalization和残差连接。Layer Normalization用于对每层的输入进行归一化处理,有助于加快训练速度和提高模型性能。残差连接则是将输入与输出相加,使得模型更容易学习残差信息,有助于避免梯度消失和加速训练过程。
Transformer模型通常采用基于注意力机制的损失函数进行优化,如交叉熵损失函数。通过最小化损失函数,模型可以学习到输入序列与目标序列之间的对应关系,从而实现序列到序列的映射。总的来说,Transformer模型通过引入自注意力机制和并行计算的方式,实现了对序列数据的高效建模和学习。
应用
Transformer框架可以用于生成下一个单词或字符的概率分布。通过将前面的单词或字符作为输入,模型可以预测下一个单词或字符的概率。
并根据概率进行采样。这种方法可以用于生成文本、机器翻译、语音识别等任务。
参考文献: "Attention is All You Need",https://arxiv.org/abs/1706.03762
分析介绍
ELOM
概念
结构
原理
BERT
概念
BERT(Bidirectional Encoder Representations from Transformers)是一种基于 Transformer架构 双向encoder的预训练 语言模型
特点
双向性:BERT是一种双向的语言模型,能够同时考虑上下文信息,从而更好地理解句子的语义和上下语境。
预训练:BERT是通过大规模的无监督预训练来学习语言表示,可以在各种自然语言处理任务上进行微调,从而提高模型的性能。
多任务学习:BERT可以同时处理多个自然语言处理任务,如文本分类、命名实体识别、问答等,具有很强的泛化能力。
可解释性:由于BERT是基于Transformer模型的,可以通过注意力机制来解释模型的预测结果,帮助理解模型的决策过程。
架构
BERT的原理主要包括两个关键点:Transformer架构下预训练-微调策略。Transformer是一种基于自注意力机制的深度学习模型,能够捕捉输入序列中的全局依赖关系,同时避免了传统的循环神经网络和卷积神经网络中存在的长距离依赖问题。
在预训练阶段,BERT使用大规模的未标记文本数据进行自监督学习,通过遮蔽语言模型(Masked Language Model,MLM)和下一句预测(Next Sentence Prediction,NSP)任务来学习文本表示。
在微调阶段,BERT将预训练好的模型参数Fine-tuning到特定的下游任务上,通过少量标记数据进行有监督学习,从而适应不同的NLP任务。
模型
Bert-Base
OPAI GPT
特点
主要api
AZURE GPT
特点
主要api的变化
LangChain
概念
特点
多种llm库桥梁
发音,词汇
弱读
介词
to
I want to go to swimming today.
We need to give our love and time to our lover.
in
on
代词
it
I remenber you like it very much.
item
...
连接词
and
we need to cut our hair and take a shower tonight.
or
强读
重读
Amazon
400,000 square kilometres of the Amazon basin have already been deforested.
amazing
That is a amazing job we done.
prevent
They took active steps to prevent the spread of the disease.
possibility, opportunity, congratulation
Using this opportunity, we congratulation to you.
爆破音
[p]
project
Sometimes i find i have interest in building project.
[b]
background
a person's family/social/cultural/educational/class background
[t]
taking
the amount of money that a shop, theatre, etc. receives from selling goods or tickets over a particular period of time
[d]
[j]
[k]
active, blackbord
Please write your activity in front blackbord.
摩擦音
[θ]
thinking
What is the current thinking on this question?
[θ][ ð]
[θ][ ð][s]
[ ʃ]
[ ʒ ]
浊化
清辅音
浊辅音
连续
辅音元音
元音元音
n. adj.
end
tivity
activity
A situation in which sth is happening or a lot of things are being done
...
able
usable
bility
possibility
ment
middle
ity
ther
pre
annc
regu
v.
pre
前缀pro-向前
proceed v.前往;进行
progress v.进步 n.进步
前缀pre-悠闲
end
ceed, cess, gress - 走
exceed v.超越,超过
access v.到达,进入; n.通道
progress v.进步 n.进步
able
st
Prompt Engineering
让模型扮演一个角色,有一个方向
使用准确描述,步骤,换行,格式。
使用提示,注意,tips
使用正确案例,错误案例,甚至给出理由和分数(如有必要)
Fine Tuning
训练方案
在已经训练好的模型基础上,通过进一步训练来调整模型的参数,以适应特定的任务或数据集。
训练参数
常见数据集上的参数,准备
训练类别
Supervised Fine Tuning,有监督微调
使用已经标注的数据
普通案例
{"messages": [{"role": "user", "content": "孤灯照不寐,风雨满西林。下一句是?"}, {"role": "assistant", "content": "多少关心事,书灰到夜深。"}]}
问题回答
金融问答
日常问答
文案生成
电商文案
标题撰写
文案分类
{"messages": [{"role": "user", "content": "你是舆情分析师,请判断如下的内容,对公众产生的影响是正面、负面还是中性的。\n 新闻内容:2022 年 8 月 5 日,四川省乐山市发生了一起突发事件,一位年仅 21 岁的消防员为了救援一名被困在洪水中的老人,不幸牺牲。这起事件引起了社会的广泛关注和热议,许多人对这位消防员的英勇事迹表示敬意和赞扬。请回答:"}, {"role": "assistant", "content": "正面"}]}
{"messages": [{"role": "user", "content": "请你判断你是否需要借助搜索引擎回答用户问题,如果你可以直接回答,则不需要借助搜索引擎,否则需要借助搜索引擎。回答只能包含是或者否。\n 用户问题:今天的天气怎么样?\n 是否要借助搜索引擎:"}, {"role": "assistant", "content": "是"}]}
Continue Pretrain,继续训练
可以使用未标注数据
{"text":"支持运行超大规模的分布式任务,包含多种预置算法框架和自定义算法框架。提供稳定、灵活、高性能的机器学习训练环境。"}
{"text":"支持多种框架的模型在异构硬件上的一键部署,具有高吞吐、低延时、实时扩缩容等特点,使推理服务更具弹性和容错性。"}
{"text":"火山引擎机器学习平台是面向机器学习应用开发者,提供【开发机】和【自定义训练】等丰富建模工具、多框架高性能模型推理服务的企业级开发平台,支持从数据托管、代码开发、模型训练、模型部署的全生命周期工作流。"}
训练数量级
文案生成,剧本创作,小说续写等生成类任务:1~3k。
文本分类:1~5k,和类别数量以及任务难易度强相关。
参考问答:2k~10k。任务较难的场景可能需要 1w 条以上。
参数管理
epoch:模型训练轮数,通常选择 2~5,可以根据验证集 loss 曲线来判断:如果训练集 loss 曲线下降,验证集 loss 曲线上升,则说明模型已经过拟合,此刻应该停止训练;如果训练集和验证集 loss 曲线均在缓慢下降,则说明模型还未收敛,可以继续训练。此外,对于文案生成,小说创作等生成类任务,由于某些上下文逻辑及风格不能通过 loss 体现,所以不应仅看 loss 来决定模型何时停止训练,按经验来说,通常生成类任务 epoch 数可以略微设置大一点,如 5~10 范围内。
learning rate:学习率,设置较大时会加速模型迭代,但是模型可能无法收敛到最优点;设置过小时会使得模型迭代较慢,可能陷入局部最优。按照经验来讲,LORA 训练选择 learning rate在 1e-4 ~ 2e-4,全量 SFT 选择learning rate 在 1e-5 ~ 2e-5 即可。
lora alpha 和 lora rank:alpha 参数将模型权重进行放缩,rank 决定了 lora 训练参数量的大小,我们推荐二者参数设置为同一值。通常来讲,对于较简单的任务,推荐设置 lora alpha 和 lora rank 64;对于较复杂的任务,推荐设置 lora alpha 和 lora rank 为 128。
gradient_accumulation_steps:梯度累积是一种增大训练时batch size的技术,在本地使用 micro-batch 多次进行正向和反向传播积累梯度后,再进行梯度规约和优化器更新。当需要调大batch size时,可以调整该参数。
warmup step rate:通常不需要调整。当遇到模型在 SFT 训练开始时,loss 始终不降的问题时,可尝试调大 warmup step rate。
训练管理
模型基座,加载预训练模型
损失变化(训练集,测试集)
迭代日志,
0 条评论
下一页