当前位置: 首页 > article >正文

训练自己的GPT2-Chinese模型

文章目录

    • 效果抢先看
    • 准备工作
    • 环境搭建
    • 创建虚拟环境
    • 训练&预测
      • 项目结构
      • 模型预测续写
    • 训练模型
    • 遇到的问题及解决办法
      • 显存不足
      • 生成的内容一样
    • 文末

效果抢先看

通用中文模型1
通用中文模型2
通用中文模型3
通用中文模型4

准备工作

从GitHub上拉去项目到本地,准备已训练好的模型百度网盘:提取码【9dvu】。

  • gpt2对联训练模型
  • gpt2古诗词训练模型
  • gpt2通用中文模型
  • gpt2通用中文小模型
  • gpt2文学散文训练模型
  • gpt2中文歌词模型

环境搭建

  1. 配置好GPU的pytorch环境
    a. 安装Anaconda环境
    b. NIVIDA配置流程
    桌面右键鼠标,找到NVIDIA控制面板,在左边找到开发者管理GPU性能计数器,导航栏点击桌面选择启用开发者设置,弹出的系统信息中找到组件,找到产品名前缀为NVIDIA CUDA的那一条,记住其后面的版本号。
    c. 进入NVIDIA官网下载CUDA,找到上一步记录的NVIDIA CUDA后的版本号相对应的链接。如版本信息为11.4就选择11.4
    在这里插入图片描述
    在这里插入图片描述
    d. 下载完点击安装就行了
    e. 安装cuDNN,选择相应的版本。这个地方要登录账号,没有账号可以注册,也可以选择QQ或微信登录,选择刚才的CUDA版本,下载压缩包
    在这里插入图片描述
    f. 下载完成后解压缩,并修改根目录名为cudnn
    在这里插入图片描述
    在这里插入图片描述
    g. 将整个文件复制到xxx\NVIDIA GPU Computing Toolkit\CUDA\v11.4目录下
    在这里插入图片描述
    h. 设置变量环境,添加两个环境变量路径,根据自己的实际情况目录修改

在这里插入图片描述

  1. pytorch配置
    a. 去pytorch官网找到相应的gpu版本或cpu版本,找到后安装命令会出现在command
    在这里插入图片描述
    找不到自己的版本点击previous version链接
    在这里插入图片描述
    b. 使用管理员身份执行cmd,否则会安装失败

    conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

    安装完成之后执行命令conda list查看是否安装成功

    打开终端输入python,使用以下代码查看torch显示GPU不可用状态

    >>>import torch
    >>>torch.cuda.is_available()
    False
    

    c. 标准查看torch版本

    >>>import torch
    >>>torch.__version__
    1.10.2 
    
  2. pytorch轮子配置
    a. whl轮子配置,根据CUDA版本选择相应的版本。其中cu表示GPU版本cpu表示CPU版本
    在这里插入图片描述在这里插入图片描述
    b. 下载完成之后本地使用pip install 安装

    pip install .\torchvision-0.13.1+cpu-cp39-cp39-win_amd64.whl
    pip install .\torch-1.10.2+cu113-cp39-cp39-win_amd64.whl
    

    c. 安装完成之后验证torch

    >>>import torch
    >>>torch.cuda.is_available()
    True
    

创建虚拟环境

  1. 为了能够顺利使用环境,推荐使用python3.7.1版本
    conda create -n venv_name python=3.7.1
    
  2. 激活 虚拟环境
    conda activate venv_name
    
  3. pip安装所需库
    pip install transformers==2.1.1
    pip install tensorflow==2.0.0 
    pip install numpy
    pip install tqdm
    pip install sklearn
    pip install keras
    pip install tb-nightly
    pip install future
    pip install thulac
    pip install setuptools==59.5.0
    
    pip install torch==1.10.2+cu113 torchvision==0.3.0 --extra-index-url 
    

训练&预测

项目结构

  • config: 存放模型的配置文件
  • data: 存放训练数据
  • model: 存放模型
  • cache: 用于模型训练之前的数据预处理
  • sample: 用于存放生成样本的目录
  • generate.py: 生成代码
  • train.py: 训练多文本启动代码
  • train_single.py: 训练但文本启动代码
  • tokenizations: 用于文本数据转换tokenizations的脚本

模型预测续写

参数说明:

  • length: 生成的最长长度
  • prefix: 文章开头
  • fast_pattern: 快速生成模式
  • save_samples: 保存生成文本结果的位置
  • temperature: 越小越遵循训练样本,续写的内容的思维越发散
    # 通用模型预测文本
    python ./generate.py --length=100 --nsamples=4 --prefix=天津是一座美丽的城市。 --fast_pattern --save_samples ----model_path=model/use_model --model_config=config/model_config_small.json --topk=8 --temperature=0.8 --batch_size=2
    
    # 制定模型输出
    python ./generate.py --length=300 --nsamples=4 --prefix=萧炎,斗之力。 --fast_pattern --save_samples --model_path=model/model_epoch18 --model_config=model/model_epoch18/config.json --topk=8 --temperature=1 --batch_size=1
    
    

其他参数参考:
在这里插入图片描述

训练模型

将训练语料以train.json的格式放入data目录中

如果文件格式为train.json格式,那么将train.py文件中的读取方式为:lines = json.load(f)
如果文件格式为train.txt格式,即数据格式为[”正文1“, ”正文2“, ”正文3“],那么将train.py文件中的读取方式为:lines = f.readlines()

运行train.py文件并设定--raw参数,会自动预处理数据,预处理完成之后,会自动执行训练。

python train.py --raw

遇到的问题及解决办法

显存不足

  • 语料太大:在config文件中选择小一点的json文件
  • batch_size过大:默认训练是8,可以改成4或者6尝试

生成的内容一样

  • 修改generate.py中的batch_size=1

文末

此训练结果生成比较简单的文章还可以,但是需要达到理想的效果,还需要更大的数据体系和语料以及长期的模型训练,基于原有的算法二次开发,门槛也比较高,而且这种业务比较吃硬件资源。


http://www.kler.cn/a/1521.html

相关文章:

  • Jenkins-持续集成、交付、构建、部署、测试
  • Leecode刷题C语言之字符串中最大的3位相同数字
  • 25年01月HarmonyOS应用基础认证最新题库
  • 《Opencv》信用卡信息识别项目
  • Leffa 虚拟试衣论文笔记
  • 代码随想录day38 动态规划6
  • Android 进程间通信机制(三) 系统进程与应用进程通信
  • 【华为OD机试真题2023 JAVA】单核CPU任务调度
  • MySQL8 双主(主主)架构部署实战
  • GO语言--反射
  • 初识Linux
  • 机器学习---聚类算法
  • Keil5安装和使用小记
  • string的模拟实现
  • 第一次认真周赛总结
  • 【RabbitMQ笔记10】消息队列RabbitMQ之死信队列的介绍
  • 宝塔控制面板常用Linux命令大全
  • IntelliJIDEA 常用快捷键
  • 2023年Android现代开发
  • 用Java解决华为OD机试考题,目标300+真题,清单奉上,祝你上岸
  • oracle 删除表空间(tablespace)及数据文件的方法
  • 基于Vue+Vue-cli+webpack搭建渐进式高可维护性前端实战项目
  • 【C++】智能指针
  • OpenHarmony之cJSON库使用介绍
  • 蓝桥杯C++组怒刷50道真题(填空题)
  • ElasticSearch-第二天