大语言模型 11 - 从0开始训练GPT 0.25B参数量 MiniMind2 准备数据与训练模型 DPO直接偏好优化

news2025/5/18 6:22:52

写在前面

GPT(Generative Pre-trained Transformer)是目前最广泛应用的大语言模型架构之一,其强大的自然语言理解与生成能力背后,是一个庞大而精细的训练流程。本文将从宏观到微观,系统讲解GPT的训练过程,包括数据收集、预处理、模型设计、训练策略、优化技巧以及后训练阶段(微调、对齐)等环节。

我们将先对 GPT 的训练方案进行一个简述,接着我们将借助 MiniMind 的项目,来完成我们自己的 GPT 的训练。

训练阶段概览

GPT 的训练过程大致分为以下几个阶段:

  • 数据准备(Data Preparation)
  • 预训练(Pretraining)
  • 指令微调(Instruction Tuning)
  • 对齐阶段(Alignment via RLHF 或 DPO)
  • 推理部署(Inference & Serving)

在这里插入图片描述

准备数据

这里我们选择 MiniMind2:104M参数量的,0.1B。
使用数据集如下:
● pretrain_hq
● sft_512
● sft_2048
● dpo

我们对数据进行下载

wget -c 'https://huggingface.co/datasets/jingyaogong/minimind_dataset/resolve/main/dpo.jsonl?download=true'
wget -c 'https://huggingface.co/datasets/jingyaogong/minimind_dataset/resolve/main/sft_2048.jsonl?download=true'
wget -c 'https://huggingface.co/datasets/jingyaogong/minimind_dataset/resolve/main/sft_512.jsonl?download=true'

对应的内容如下:
在这里插入图片描述
下载完毕后如下所示:
在这里插入图片描述

预训练

torchrun --nproc_per_node 2 train_pretrain.py --n_layers 16 --dim 768 --use_wandb

继续双卡训练:
在这里插入图片描述
可以看到 LLM总参数量:104.031 百万,最终为 0.1B 模型。

开始预训练,两张卡,各15GB显存。
在这里插入图片描述

sft_512

训练模型

torchrun --nproc_per_node 2 train_full_sft.py --data_path "./dataset/sft_512.jsonl" --n_layers 16 --dim 768 --use_wandb

开始训练:
在这里插入图片描述
占用情况如下所示:
在这里插入图片描述

测试模型

python eval_model.py --model_mode 1 --n_layers 16 --dim 768

对应的内容如下所示:
在这里插入图片描述

sft_1024

训练模型

训练之前,我们需要将之前的 pretrained 模型备份一下(防止以后弄错了),然后把刚才训练好的模型修改为 pretrained 的名字。
简言之:在刚才sft_512上训练出来的模型上进行sft_1024的训练

mv full_sft_768.pth pretrain_768.pth

当前模型的列表如下所示:
在这里插入图片描述
此时的 pretrain_768.pth 模型就是刚才在 sft_512 上训练出来的

torchrun --nproc_per_node 2 train_full_sft.py --data_path="./dataset/sft_1024.jsonl" --n_layers 16 --dim 768 --use_wandb

我们继续进行训练,这次任务估计要更久了,需要耐心的等待。
在这里插入图片描述

测试模型

python eval_model.py --model_mode 1 --n_layers 16 --dim 768

测试的执行结果如下所示:
在这里插入图片描述

dpo

在大模型训练中,“DPO” 通常指的是 Direct Preference Optimization(直接偏好优化),这是一种新兴的 对齐技术,用于更高效、直接地将大语言模型(LLM)对齐为更符合人类偏好的行为输出方式。它是近年来在 人类反馈强化学习(RLHF) 之后提出的一种新思路。

DPO 是不使用强化学习(如PPO)的方法,直接用“人类偏好对比数据”来优化语言模型的输出行为,使它更贴合用户期望。

大模型对齐,主要解决两个问题:

  • 输出内容可控、有用、无害;
  • 更符合人类用户的喜好或选择。

RLHF 是当前最流行的对齐技术,如 OpenAI 的 InstructGPT 和 ChatGPT 都用了这一方式。但 RLHF 存在如下问题:

  • 实现复杂(需要 reward model、策略优化器等);
  • 训练不稳定;
  • PPO 的超参数难调;
  • 训练代价大。

DPO 的目标:

  • 用一种更简单的方式,实现类似甚至超过 RLHF 的对齐效果。

它解决了什么?

  • 不用再引入复杂的 reward model + PPO;
  • 直接在原始语言模型架构基础上,做最小改动即可实现。

为什么 DPO 有用?

  • ✅ 不需要 reward model;
  • ✅ 不使用强化学习;
  • ✅ 易于实现、可以用常规优化器训练(如 Adam);
  • ✅ 效果与 PPO 相当或更优;
  • ✅ 可直接用于 decoder-only 架构(如 GPT);

训练模型

我们训练完了 sft_1024 的数据,接着进行下面的训练即可:

torchrun --nproc_per_node 2 train_dpo.py --n_layers 16 --dim 768 ----batch_size 4 --use_wandb

这里我们需要控制一下 batch_size 的大小,不然会OOM。
在这里插入图片描述
可以看到调整了 batch_size(代码里默认是8),此时调整为4,GPU也基本是要吃满的状态了:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2378299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

USRP 射频信号 采集 回放 系统

USRP 射频信号采集回放系统 也可以叫做: 利用宽带RF录制和回放系统实现6G技术研究超宽带射频信号采集回放系统使用NI USRP平台实现射频信号录制和回放操作演示USRP也能实现多通道宽带信号流盘回放了! 对于最简单的实现方法就是使用LabVIEW进行实现 采…

【skywalking】index“:“skywalking_metrics-all“},“status“:404}

skywalking 启动报错 java.lang.RuntimeException: {"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [skywalking_metrics-all]","resource.t ype":"inde…

【C++详解】string各种接口如何使用保姆级攻略

文章目录 一、string介绍二、string使用构造函数析构函数赋值运算符重载string的遍历修改方法1、下标[]2、迭代器3、范围for 迭代器使用详解const迭代器反向迭代器(reverse) Capacity(容量相关)size/lengthmax_sizecapacityclear/emptyshrink_to_fit(缩容)reserve(扩…

2025深圳杯D题法医物证多人身份鉴定问题四万字思路

Word版论文思路和千行Python代码下载:https://www.jdmm.cc/file/2712074/ 引言 法医遗传学中的混合生物样本分析,特别是短串联重复序列(Short Tandem Repeat, STR)分型结果的解读,是现代刑事侦查和身份鉴定领域的核心…

【时时三省】(C语言基础)字符数组应用举例2

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 例题: 有3个字符串,要求找出其中“最大”者。 解题思路: 可以设一个二维的字符数组str,大小为320,即有3行20列(每一…

Mysql触发器(附案例)

文章目录 触发器简介1、insert类型2、update类型3、delete类型总结 触发器简介 触发器是与表有关的数据库对象,指定在 insert/update/delete 之前或之后,触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性…

使用DDR4控制器实现多通道数据读写(十二)

一、章节概括 这一节使用interconnect RTL ip核将DDR4与四个读写通道级联,在测试工程中,将四个通道同时写入/读出地址与数据,并使用modelsim仿真器仿真,四个通道同时发送写请求或读请求后,经过interconnect后&#xff…

Kafka 生产者工作流程详解

以下是 Kafka 生产者工作流程的清晰分步解释,结合关键机制与用户数据: 1. 生产者初始化与数据发送 主线程创建生产者对象,调用 send(ProducerRecord) 发送消息。 拦截器(可选):可添加自定义逻辑&#xff08…

完整卸载 Fabric Manager 的方法

目录 ✅ 完整卸载 Fabric Manager 的方法 1️⃣ 停止并禁用服务 2️⃣ 卸载 Fabric Manager 软件包 3️⃣ 自动清理无用依赖(可选) 4️⃣ 检查是否卸载成功 ✅ 补充(仅清除服务,不删包) ✅ 完整卸载 Fabric Mana…

地下停车场调频广播无线覆盖系统:融合精准选频光纤传输均匀覆盖于一体的创新型地下车库广播无线覆盖平台

地下停车场调频广播无线覆盖系统:融合精准选频光纤传输均匀覆盖于一体的创新型地下车库广播无线覆盖平台 北京海特伟业科技有限公司任洪卓发布于2025年5月16日 在现代城市建设中,地下停车场已成为商业综合体、写字楼、住宅区及交通枢纽的标配设施。然而…

【Linux】进程间通信(一):认识管道

📝前言: 这篇文章我们来讲讲进程间通信——认识管道 🎬个人简介:努力学习ing 📋个人专栏:Linux 🎀CSDN主页 愚润求学 🌄其他专栏:C学习笔记,C语言入门基础&a…

中大型水闸安全监测系统解决方案

一、方案概述 中大型水闸作为水利工程的重要组成部分,承担着调节水位、控制水流、防洪排涝等多重功能,在防洪减灾、水资源配置、生态环境改善等方面发挥着巨大作用。然而,由于历史原因,许多水闸存在建设标准偏低、质量较差、配套设…

蓝桥杯12届国B 123

题目描述 小蓝发现了一个有趣的数列,这个数列的前几项如下: 1,1,2,1,2,3,1,2,3,4,⋯ 小蓝发现,这个数列前 1 项是整数 1,接下来 2 项是整数 1 至 2,接下来 3 项是整数 1 至 3,接下来 4 项是整数 1 至 4&…

Harmony开发 List、Grid拖动自定义排序实现

1. Harmony开发 List、Grid拖动自定义排序实现 1.1. List拖动功能 本示例基于显式动画、List组件实现了ListItem的上下拖动、ListItem切换以及ListItem插入的效果。   实现思路:List手势拖动 @Entry @Component struct ListDragPage {@State private arr: string[] = [0, …

迅龙3号基于兆讯MH22D3适配CST328多点触摸驱动开发笔记

MH22D3芯片是兆讯公司新推出的基于cortex-M3内核的新一代芯片,专注于显示应用,其主频高达216Mhz,64KB SRAM,512KB Flash,开发UI应用游刃有余。详细介绍请看:MH22D3新一代显控应用性价比之王 新龙微基于MH22…

QT之LayOut布局

文章目录 QFormLayoutQGridLayoutQFormLayout、QGridLayout、QHBoxLayout、QVBoxLayout综合案例用QFormLayout 代替 界面左边部分的QGridLayout QFormLayout #include "widget.h"#include <QFormLayout> #include <QLineEdit>Widget::Widget(QWidget *p…

无需配置光猫,使用网管交换机配合路由器的IPTV功能实现单线复用

一、背景 弱电箱和电视柜只预留了一根网线&#xff0c;路由器放在电视柜&#xff0c;想实现既可以上网又可以正常观看iptv&#xff0c;本文提供了一种方法。 二、准备工作 1、带iptv功能的路由器&#xff1b;2、水星sg105pro网管交换机&#xff1b;3、网线若干&#xff1b; …

Linux:计算机的层状结构

1.冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本、台式机。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系结构。 CPU&#xff1a;运算器和控制器组成。运算器主要工作是做算术运算和逻辑运算。控制器主要工作是协调设备之间信息流动的…

【SpringBoot】关于MP使用中配置了数据库表前缀的问题

problem 使用MP时&#xff0c;在application.yml配置文件中配置了MP匹配数据库表中的表名时的前缀作了规定&#xff0c;如下&#xff1a; 那么当我运行时报错了错误&#xff0c;报错信息如下&#xff1a; 因为我数据库表的书类表名是book&#xff0c;MP在匹配时使用了表名前…

AI 赋能防艾宣传:从创意到实践,我的 IP 形象设计之旅

在数字技术飞速发展的今天&#xff0c;如何让严肃的健康传播变得更有温度、更具吸引力&#xff1f;作为一名参与防艾宣传实践的学生&#xff0c;我尝试通过 AI 工具构建专属 IP 形象&#xff0c;让防艾知识从 "被动接受" 转化为 "主动探索"。这篇文章将分享…