训练自己的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

文末

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

10.0自定义SystemUI下拉状态栏和通知栏视图(六)之监听系统通知

1.前言 在进行rom产品定制化开发中,在10.0中针对systemui下拉状态栏和通知栏的定制UI的工作开发中,原生系统的下拉状态栏和通知栏的视图UI在产品开发中会不太满足功能, 所以根据产品需要来自定义SystemUI的下拉状态栏和通知栏功能,首选实现的就是下拉通知栏左滑删除通知的部…

【12】SCI易中期刊推荐——计算机信息系统(中科院4区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…

SpringCloudAlibaba配置中心: nacos-config

nacos-config配置中心 本项目代码与笔记已存放在Gitee仓库 地址: 代码,笔记 文章目录nacos-config配置中心1.1 快速开始1.2 搭建nacos-config服务1.3 Config相关配置1.3.1 支持profile粒度的配置示例:1.3.2 支持命名空间分类配置(按环境规类…

【批处理】- 批处理自动安装Mysql与Redis

前言 在全新环境中安装MySQL与Redis操作是挺麻烦的,于是就想使用脚本来自动安装,使用批处理进行一步到位的安装,后面还能使用工具进行打包成exe可执行文件,一键安装,最后能够更好的部署项目到windows系统的服务器。 …

READ: Large-Scale Neural Scene Rendering for Autonomous Driving

READ: Large-Scale Neural Scene Rendering for Autonomous Driving :面向自动驾驶的大规模神经场景绘制 门卷积 https://www.jianshu.com/p/09fc8490104d https://blog.csdn.net/weixin_44996354/article/details/117409438摘要:论文提出了一种大规模神…

vue2前端实现html导出pdf功能

1. 功能实现方案 1.html转换成canvas后生成图片导出pdf(本文选用) html转canvas插件:html2canvas是一款将HTML代码转换成Canvas的插件;canvas生成pdf:jsPDF是一个使用Javascript语言生成PDF的开源库 2.HTML代码转出…

【剑指offer】10~11.斐波那契数列(C# 实现)

文章目录前言关于编译环境10- I. 斐波那契数列10- II. 青蛙跳台阶问题11. 旋转数组的最小数字结语前言 🍀 大家好,我是哈桑。这是自己的 C# 做题记录,方便自己学习的同时分享出来。 关于编译环境 注意,笔者使用的编译环境是 .NET …

Java学习星球,Java学习路线

目录一、Java学习路线二、学习计划三、为何会有Java学习星球?四、加入星球后,你可以得到什么?五、如何加入Java学习星球?六、打卡挑战大家好,我是哪吒,一个靠着热情攀登至C站巅峰的中年男子,CSD…

全网最火爆,Python接口自动化测试-接口数据 RSA 加密和签名实现(超详细)

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 在工作中&#xff0…

算法基础---数学知识

文章目录 质数 试除法判定质数试除法分解质因数朴素筛法求质数埃氏筛法求质数线性筛法求质数约数 试除法求所有约数试除法求所有约数之和约数个数和约数之和欧几里得算法一、质数 1.试除法判定质数--O(sqrt(N)) 原理:把从[2,n-1]中的每一个自然数作为除数来除n&a…

基于 Apache Flink 的实时计算数据流业务引擎在京东零售的实践和落地

摘要:本文整理自京东零售-技术研发与数据中心张颖&闫莉刚在 ApacheCon Asia 2022 的分享。内容主要包括五个方面: 京东零售实时计算的现状实时计算框架场景优化:TopN场景优化:动线分析场景优化:FLINK 一站式机器学…

【Linux】写一个基础的bash

头文件#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<sys/wait.h> #include<sys/stat.h> #include<string.h> #include<pwd.h> #include<dirent.h>分割输入的命令串字符串或参数内容为空则退出strtok( ,…

【MySQL】数据类型

目录 一、数据类型分类 二、数值类型 bit&#xff1a; tinyint&#xff1a; ​编辑 smallint&#xff1a; memdiumint&#xff1a; int&#xff1a; bigint&#xff1a; float&#xff1a; ​编辑 decimal&#xff1a; 三、文本类型 char&#xff1a; 字符的概念&a…

出入了解——Vue.js

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。座右铭&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石&#xff0c;故能成其高。个人主页&#xff1a;小李会科技的…

技术掉:PDF显示,使用pdf.js

PDF 显示 场景&#xff1a; 其实直接显示 pdf 可以用 iframe 标签&#xff0c;但产品觉得浏览器自带的 pdf 预览太丑了&#xff0c;而且无法去除那些操作栏。 解决方案&#xff1a;使用 pdf.js 进行显示 第一步&#xff1a;引入 pdf.js 去官网下载稳定版的 pdf.js 文件 然后…

ElasticSearch-第二天

目录 文档批量操作 批量获取文档数据 批量操作文档数据 DSL语言高级查询 DSL概述 无查询条件 叶子条件查询 模糊匹配 match的复杂用法 精确匹配 组合条件查询(多条件查询) 连接查询(多文档合并查询) 查询DSL和过滤DSL 区别 query DSL filter DSL Query方式查…

使用Python突破某网游游戏JS加密限制,进行逆向解密,实现自动登录

兄弟们天天看基础看腻了吧 今天来分享一下如何使用Python突破某网游游戏JS加密限制&#xff0c;进行逆向解密&#xff0c;实现自动登录。 逆向目标 目标&#xff1a;某 7 网游登录主页&#xff1a;aHR0cHM6Ly93d3cuMzcuY29tLw接口&#xff1a;aHR0cHM6Ly9teS4zNy5jb20vYXBpL…

Vue的命令式和声明式的概念

1.命令式框架(jQuery) 这里有个小例子&#xff1a; 1.获取id为app的div标签 2.设置他的文本内容是hello&#xff0c;world 3.为其绑定点击事件 4.当点击时候弹出提示ok 1.首先我们通过$来活动app的标签 $(#app)//获取id为app的标签 2.然后通过text来讲内容设置为hello&am…

Sentinel 授权规则规则持久化

本篇博客我们来学习授权规则&#xff0c;授权规则是对请求者的一种身份的判断。 1、授权规则 授权规则是对请求者的身份做一个判断。你有没有权限来访问我&#xff1f;那就有人可能会说这个功能&#xff0c;好像以前我们在学习微服务的时候讲过网关他不就是把门的吗&#xff1…

云上办公系统项目

云上办公系统项目1、云上办公系统1.1、介绍1.2、核心技术1.3、开发环境说明1.4、产品展示后台前台1.5、 个人总结2、后端环境搭建2.1、建库建表2.2、创建Maven项目pom文件guigu-oa-parentcommoncommon-utilservice-utilmodelservice-oa配置数据源、服务器端口号application.yml…