led网站制作,wordpress熊掌号主题,广告优化师怎么学,气象网站建设目录 预训练#xff08;Pretraining#xff09;与微调#xff08;SFT, Supervised Fine-Tuning#xff09;的区别
训练方式
数据组成
特殊标记#xff08;Special Tokens#xff09;
Prompt处理
Session数据处理
训练目的
小结
LLM大模型预测耗时的粗略估计
1. …目录 预训练Pretraining与微调SFT, Supervised Fine-Tuning的区别
训练方式
数据组成
特殊标记Special Tokens
Prompt处理
Session数据处理
训练目的
小结
LLM大模型预测耗时的粗略估计
1. 首个 Token 的生成耗时b
2. 后续 Token 的生成耗时k
详细过程
近似估算公式的应用 预训练Pretraining与微调SFT, Supervised Fine-Tuning的区别
训练方式
相同点预训练和微调在训练方式上没有任何区别都是通过梯度下降等优化算法来调整模型参数。不同点主要区别在于数据的组成形式和训练目标。
数据组成 预训练Pretraining 每条数据通常是满编的例如4K或8K长度的文本。数据来源广泛通常是无标签的海量文本数据。主要目的是让模型学习语言的基本结构和广泛知识。 微调SFT, Supervised Fine-Tuning 每条数据的长度根据原始数据的实际长度决定不一定是满编的。数据通常是有标签的并且包含特定任务的标注信息。引入预训练阶段未见过的特殊标记special_token如system、user、assistant等以帮助模型学习新的语义和角色。微调数据中会包含最重要的eos_token以便模型在生成时知道何时停止。
特殊标记Special Tokens 预训练Pretraining 通常不包含特殊标记模型主要学习通用的语言模式。 微调SFT, Supervised Fine-Tuning 引入特殊标记special_token如system、user、assistant等根据业务需求也可以有“背景”、“旁白”、“事件”等。这些标记帮助模型理解和区分不同的角色和语境。
Prompt处理 预训练Pretraining 通常不涉及prompt模型学习的是通用的语言知识。 微调SFT, Supervised Fine-Tuning Prompt的同质化比较严重所以通常不计算prompt的loss但如果确保每条prompt都是独一无二的可以省去prompt的loss_mask环节。
Session数据处理
在微调过程中需要明确是每一个answer都算loss还是只对最后一轮的answer算loss。
训练目的 预训练Pretraining 主要是让模型背书纯粹学习语言的广泛知识和结构。 微调SFT, Supervised Fine-Tuning 主要是让模型做题学习指令跟随能力instruction-following ability。不建议在微调阶段进行知识注入因为这会显著降低模型的通用能力。知识注入工作应该采用继续预训练continue-pretraining的思路进行控制在10%20%的比例而不是100%某个知识。
小结
预训练使用大量无标签数据进行训练主要学习语言的基本结构和广泛知识。微调使用有标签数据进行训练主要学习特定任务的指令跟随能力和语义理解。
通过预训练和微调的结合LLM能够在广泛的语言理解和生成任务中表现出色同时也能在特定任务中达到高水平的性能。 LLM大模型预测耗时的粗略估计
在自然语言处理模型特别是生成式模型如GPT系列中预测时间的近似估算可以表示为
ykxb
其中
y 是总预测时间。x 是生成的 token 总数量。k 是生成每个 token 的平均耗时。b 是生成首个 token 的耗时。
这个公式中的 b 和 k 主要受到以下几个因素的影响
1. 首个 Token 的生成耗时b
首个 token 的生成耗时较长主要原因如下
1.1 编码阶段
在生成第一个 token 时模型需要对输入的 prompt 进行编码。这涉及到将输入序列通过多层 Transformer 编码器进行处理以生成上下文向量。
1.2 KV Cache 初始化
在生成第一个 token 时模型需要初始化 Key-Value (KV) 缓存。KV 缓存用于存储每一层 Transformer 的键和值以便在生成后续 token 时可以快速访问这些缓存减少重复计算。初始化 KV 缓存的过程较为耗时因为需要对整个输入序列进行计算。
1.3 长度相关性
首个 token 的生成耗时与输入 prompt 的长度呈正相关因为较长的输入序列需要更多的计算资源和时间来进行编码和初始化缓存。
2. 后续 Token 的生成耗时k
生成后续 token 的耗时较短主要原因如下
2.1 KV Cache 利用
在生成后续 token 时模型可以利用之前生成的 KV 缓存从而避免对整个输入序列进行重复计算。这样生成每个新 token 只需要在现有缓存的基础上进行增量计算大大减少了计算量和时间。
2.2 自回归生成
生成每个新 token 时模型会将前一个 token 的输出作为输入结合 KV 缓存快速生成下一个 token。这种自回归生成方式在时间复杂度上相对较低。
详细过程
输入编码模型首先对输入 prompt 进行编码生成上下文向量。这一步包括嵌入层和多层 Transformer 编码器的计算。KV 缓存初始化在生成第一个 token 时模型会初始化 KV 缓存用于存储每一层 Transformer 的键和值。首个 token 生成利用上下文向量和初始化的 KV 缓存生成第一个 token。后续 token 生成在生成每个新 token 时模型利用之前的 KV 缓存和前一个 token 的输出进行增量计算快速生成下一个 token。
近似估算公式的应用
通过公式 ykxb我们可以近似估算模型的预测时间
首个 token 的耗时 b与 prompt 的长度和 KV 缓存的初始化有关通常是生成每个 token 耗时 k 的十几倍或更多。每个 token 的平均耗时 k由于利用了 KV 缓存生成每个新 token 的耗时较短且相对稳定。