0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用PaddleNLP在4060单卡上实践大模型预训练技术

jf_23871869 来源:刘力 作者:刘力 2025-02-19 16:10 次阅读

作者:算力魔方创始人/英特尔创新大使刘力

之前我们分享了《从零开始训练一个大语言模型需要投资多少钱》,其中高昂的预训练费用让许多对大模型预训练技术感兴趣的朋友望而却步。

应广大读者的需求,本文将手把手教您如何在单张消费级显卡上,利用PaddleNLP实践OpenAI的GPT-2模型的预训练。GPT-2的预训练关键技术与流程与GPT-4等大参数模型如出一辙,通过亲手实践GPT-2的预训练过程,您就能对GPT-4的预训练技术有更深入的了解。

视频链接如下:

[零基础]:用PaddleNLP在4060单卡上实践大模型预训练技术 (qq.com)

一,GPT-2模型简介


GPT-2(Generative Pre-trained Transformer 2)是由OpenAI在2019年发布的第二代生成式预训练语言模型,通过无监督学习的方式进行预训练,能够在多个自然语言处理任务上取得显著的效果,如文本生成、阅读理解、机器翻译等。

GPT-2 奠定的技术基础为 GPT-3、GPT-4 的发展提供了方向,后续版本在此基础上不断改进和创新。

GPT-2有4个参数版本:124M、355M、774M和1.5B。为方便大家使用单卡实践预训练技术,本文选用124M版本。

二,PaddleNLP简介


PaddleNLP是一款基于飞桨的开源大语言模型(LLM)开发套件,支持在多种硬件上进行高效的大模型训练、无损压缩以及高性能推理。PaddleNLP具备简单易用和性能极致的特点,致力于助力开发者实现高效的大模型产业级应用。

代码仓:https://github.com/PaddlePaddle/PaddleNLP
wKgZO2e1kPqAYtDlAACYY_YXiIU051.png


三,预训练环境准备


本文的软硬件环境如下:

操作系统:Ubuntu 24.04 LTS

CPU: Intel® Core™ i5-10210U

GPU:NVIDIA RTX-4060

代码编辑器:VS Code

Python虚拟环境管理器:Anaconda

大语言模型训练工具:PaddleNLP

大语言模型:GPT-2

在Ubuntu 24.04上安装RTX-4060驱动和Anaconda请参见这里;若您习惯在Windows上从事日常工作,请先配置《在Windows用远程桌面访问Ubuntu 24.04.1 LTS》。

四,安装PaddleNLP


首先,请用Anaconda创建虚拟环境“gpt2”:

# 创建名为my_paddlenlp的环境,指定Python版本为3.9或3.10
conda create -n gpt2 python=3.10
# 激活环境
conda activate gpt2


然后,克隆PaddleNLP代码仓到本地,切换到“develop”分支后安装PaddleNLP。

# 克隆PaddleNLP代码仓到本地
git clone https://github.com/PaddlePaddle/PaddleNLP.git
cd PaddleNLP
# 切换到”develop”分支
git checkout develop
# 安装飞桨框架
pip install paddlepaddle-gpu
# 安装PaddleNLP
pip setup.py install


输入命令:“paddlenlp --help”,出现下图,说明PaddleNLP安装成功!

wKgZPGe1kVeAGZYFAATRUecYhYM554.png

五,下载预训练数据集


为了方便读者运行快速体验预训练过程,PaddleNLP提供了处理好的100K条openweb数据集的训练样本。该训练数据集虽然不够预训练的数据量要求(模型参数量的十倍以上),但足够让读者观察到启动预训练后,随机初始化权重的GPT-2模型的Loss值从11.x左右下降到5.x左右。

用命令将100K条openweb数据集的训练样本下载到PaddleNLP/llm/data文件夹:​​​​​​​

cd PaddleNLP/llm
mkdir data
wget https://bj.bcebos.com/paddlenlp/models/transformers/gpt/data/gpt2_openwebtext_100k.bin
wget https://bj.bcebos.com/paddlenlp/models/transformers/gpt/data/gpt2_openwebtext_100k.idx
mv gpt2_openwebtext_100k.bin ./data
mv gpt2_openwebtext_100k.idx ./data

wKgZO2e1kV2AL1PZAAaEK7aJ8Q0657.png

六,下载GPT-2模型和分词器到本地


在/llm路径下,输入命令下载GPT-2模型和分词器到本地:

paddlenlp download --cache-dir ./pretrained_models gpt2
wKgZPGe1kXuAMOkoAAVtO6OEAGc390.png


然后,打开llm/config/gpt3/pretrain_argument.json文件,按照下图修改:

"model_name_or_path": "./pretrained_models/gpt2"

"tokenizer_name_or_path": "./pretrained_models/gpt2"

七,启动GPT-2模型的预训练


在/llm路径下,输入命令:​​​​​​​

python -u -m paddle.distributed.launch --gpus "0" run_pretrain.py 
                                       ./config/gpt-3/pretrain_argument.json 
                                      --use_flash_attention False 
                                      --continue_training 0

训练结果如下图所示:

八,总结


使用PaddleNLP,可以在单张4060显卡上实践OpenAI的GPT-2模型的预训练,让自己对GPT-4的预训练技术有更深入的了解!

更多大模型训练技术,

请参看:https://paddlenlp.readthedocs.io/

如果你有更好的文章,欢迎投稿!

稿件接收邮箱:nami.liu@pasuntech.com

更多精彩内容请关注“算力魔方®”!

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据集
    +关注

    关注

    4

    文章

    1215

    浏览量

    25028
  • 大模型
    +关注

    关注

    2

    文章

    2824

    浏览量

    3467
  • LLM
    LLM
    +关注

    关注

    1

    文章

    313

    浏览量

    530
收藏 人收藏

    评论

    相关推荐

    【大语言模型:原理与工程实践】核心技术综述

    的具体需求,这通常需要较少量的标注数据。 多任务学习和迁移学习: LLMs利用在训练中积累的知识,可以通过迁移学习相关任务快速适应,有时还可以
    发表于 05-05 10:56

    【大语言模型:原理与工程实践】大语言模型的基础技术

    全面剖析大语言模型的核心技术与基础知识。首先,概述自然语言的基本表示,这是理解大语言模型技术的前提。接着,详细介绍自然语言处理
    发表于 05-05 12:17

    【大语言模型:原理与工程实践】大语言模型训练

    增长。DeepMind相关论文中指出,模型大小和训练Token数应以相似速率增长,以确保最佳性能。因此,构建与模型规模相匹配的
    发表于 05-07 17:10

    为什么要使用训练模型?8种优秀训练模型大盘点

    正如我们本文中所述,ULMFiT使用新颖的NLP技术取得了令人瞩目的成果。该方法对训练语言模型进行微调,将其
    的头像 发表于 04-04 11:26 2.4w次阅读
    为什么要使用<b class='flag-5'>预</b><b class='flag-5'>训练</b><b class='flag-5'>模型</b>?8种优秀<b class='flag-5'>预</b><b class='flag-5'>训练</b><b class='flag-5'>模型</b>大盘点

    小米训练模型的探索与优化

    导读:训练模型NLP大放异彩,并开启了训练-微调的NLP范式时代。由于工业领域相关业务的复
    的头像 发表于 12-31 10:17 2738次阅读
    小米<b class='flag-5'>在</b><b class='flag-5'>预</b><b class='flag-5'>训练</b><b class='flag-5'>模型</b>的探索与优化

    如何实现更绿色、经济的NLP训练模型迁移

    NLP中,训练模型Finetune是一种非常常见的解决问题的范式。利用在海量文本训练得到
    的头像 发表于 03-21 15:33 2331次阅读

    Multilingual多语言训练语言模型的套路

    FacebookCrosslingual language model pretraining(NIPS 2019)一文中提出XLM训练多语言模型,整体思路基于BERT,并提出了针
    的头像 发表于 05-05 15:23 3159次阅读

    如何更高效地使用训练语言模型

    基本的假设:训练模型不同下游任务上学习的过程,可以被重新参数化(reparameterized)为同一个低维本征子空间
    的头像 发表于 07-08 11:28 1390次阅读

    利用视觉语言模型对检测器进行训练

    训练通常被用于自然语言处理以及计算机视觉领域,以增强主干网络的特征提取能力,达到加速训练和提高模型泛化性能的目的。该方法亦可以用于场景文本检测当中,如最早的使用ImageNet
    的头像 发表于 08-08 15:33 1526次阅读

    训练数据大小对于训练模型的影响

    BERT类模型的工作模式简单,但取得的效果也是极佳的,其各项任务的良好表现主要得益于其大量无监督文本上学习到的文本表征能力。那么如何从语言学的特征角度来衡量一个
    的头像 发表于 03-03 11:20 1636次阅读

    什么是训练 AI 模型

    训练 AI 模型是为了完成特定任务而在大型数据集训练的深度学习模型。这些
    的头像 发表于 04-04 01:45 1662次阅读

    什么是训练AI模型

    训练 AI 模型是为了完成特定任务而在大型数据集训练的深度学习模型。这些
    的头像 发表于 05-25 17:10 1245次阅读

    训练模型的基本原理和应用

    训练模型(Pre-trained Model)是深度学习和机器学习领域中的一个重要概念,尤其是自然语言处理(NLP)和计算机视觉(CV)等领域中得到了广泛应用。
    的头像 发表于 07-03 18:20 3607次阅读

    大语言模型训练

    能力,逐渐成为NLP领域的研究热点。大语言模型训练是这一技术发展的关键步骤,它通过海量无标签数据上进行
    的头像 发表于 07-11 10:11 713次阅读

    PaddleNLP为GPT-2模型制作FineWeb二进制训练数据集

    作者:算力魔方创始人/英特尔创新大使刘力 《PaddleNLP4060单卡
    的头像 发表于 03-21 18:24 68次阅读
    <b class='flag-5'>用</b><b class='flag-5'>PaddleNLP</b>为GPT-2<b class='flag-5'>模型</b>制作FineWeb二进制<b class='flag-5'>预</b><b class='flag-5'>训练</b>数据集