LLM学习-day04

如何训练一个LLM

数据准备

高质量数据是训练LLM的基础。

Pretrain阶段需要海量文本数据,通常来自公开数据集如Common Crawl、Wikipedia、BooksCorpus等。数据需经过清洗、去重、过滤有害内容等预处理步骤。

SFT阶段需要人工标注的高质量对话或指令数据。数据规模较小但质量要求极高,通常由专业人员编写或筛选。

RLHF阶段需要人类反馈数据,包括排序或评分形式的偏好标注。

Pretrain训练

Pretrain采用自监督学习,通过预测下一个词的任务训练模型。使用Transformer架构,在分布式计算集群上运行。关键参数包括batch size、learning rate、dropout等,需根据硬件条件调整。

训练目标是最小化交叉熵损失函数:

其中表示第i个词,表示前文。

SFT微调

SFT阶段使用监督学习微调Pretrain模型。输入是指令或问题,输出是期望的回答。训练数据形式为对,x是输入文本,y是目标输出。

损失函数与Pretrain类似,但只计算y部分的损失: M是y的长度。

RLHF优化

RLHF分为奖励模型训练和策略优化两步。奖励模型训练使用人类偏好数据,学习一个映射的函数,r表示回答质量。

策略优化通过PPO算法微调SFT模型,最大化奖励同时限制与SFT模型的KL散度: 其中是归一化后的奖励,是调节系数。

评估与迭代

每个阶段都需要严格评估。Pretrain评估困惑度(perplexity),SFT评估任务完成率,RLHF评估人类偏好得分。根据评估结果调整数据、模型架构或训练策略,形成迭代优化闭环。

训练过程需大量计算资源,建议使用分布式训练框架如Megatron-LM或DeepSpeed。注意监控训练动态,防止过拟合或退化。

相关推荐
~kiss~几秒前
CrossFlowDG 跨域泛化学习二
学习
.千余8 分钟前
【Linux】Socket编程UDP
linux·运维·服务器·开发语言·网络协议·学习·udp
Shadow(⊙o⊙)11 分钟前
qt信号和槽链接的接入与断开
开发语言·前端·c++·qt·学习
想你依然心痛13 分钟前
HarmonyOS 6 悬浮导航 + 沉浸光感:打造鸿蒙智能体驱动的沉浸式编程学习伴侣
学习·华为·ar·harmonyos·智能体
Harm灬小海19 分钟前
【云计算学习之路】企业常用服务搭建:构建Apache WEB服务器
运维·服务器·学习·云计算·apache
灰灰勇闯IT21 分钟前
TorchAir:PyTorch 跑在昇腾NPU上的桥梁
学习·aigc
Lucky_ldy22 分钟前
C语言学习:编译和链接
学习
chimchim6627 分钟前
Azure ADF(Azure Data Factory 数据工厂)学习
学习·microsoft·azure
小新同学^O^27 分钟前
简单学习 --> Transformer架构
学习·架构·transformer
他们叫我阿冠31 分钟前
Docker的基础学习
学习·docker·容器