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

从零构建属于自己的GPT系列2:预训练中文模型加载、中文语言模型训练、逐行代码解读

🚩🚩🚩Hugging Face 实战系列 总目录

有任何问题欢迎在下面留言
本篇文章的代码运行界面均在PyCharm中进行
本篇文章配套的代码资源已经上传

从零构建属于自己的GPT系列1:文本数据预处理
从零构建属于自己的GPT系列2:语言模型训练

1 参数设置

def set_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('--device', default='0,1', type=str, required=False, help='设置使用哪些显卡')
    parser.add_argument('--no_cuda', action='store_true', help='不使用GPU进行训练')
    parser.add_argument('--vocab_path', default='vocab/chinese_vocab.model', type=str, required=False,
                        help='sp模型路径')
    parser.add_argument('--model_config', default='config/cpm-small.json', type=str, required=False,
                        help='需要从头训练一个模型时,模型参数的配置文件')
    parser.add_argument('--train_path', default='data/train.pkl', type=str, required=False, help='经过预处理之后的数据存放路径')
    parser.add_argument('--max_len', default=200, type=int, required=False, help='训练时,输入数据的最大长度')

    parser.add_argument('--log_path', default='log/train.log', type=str, required=False, help='训练日志存放位置')
    parser.add_argument('--ignore_index', default=-100, type=int, required=False, help='对于ignore_index的label token不计算梯度')
    parser.add_argument('--epochs', default=100, type=int, required=False, help='训练的最大轮次')
    parser.add_argument('--batch_size', default=16, type=int, required=False, help='训练的batch size')
    parser.add_argument('--gpu0_bsz', default=6, type=int, required=False, help='0号卡的batch size')
    parser.add_argument('--lr', default=1.5e-4, type=float, required=False, help='学习率')
    parser.add_argument('--eps', default=1.0e-09, type=float, required=False, help='AdamW优化器的衰减率')
    parser.add_argument('--log_step', default=10, type=int, required=False, help='多少步汇报一次loss')
    parser.add_argument('--gradient_accumulation_steps', default=6, type=int, required=False, help='梯度积累的步数')
    parser.add_argument('--max_grad_norm', default=1.0, type=float, required=False)
    parser.add_argument('--save_model_path', default='model', type=str, required=False,
                        help='模型输出路径')
    parser.add_argument('--pretrained_model', default='model/zuowen_epoch40', type=str, required=False,
                        help='预训练的模型的路径')
    parser.add_argument('--seed', type=int, default=1234, help='设置随机种子')
    parser.add_argument('--num_workers', type=int, default=0, help="dataloader加载数据时使用的线程数量")
    # parser.add_argument('--patience', type=int, default=0, help="用于early stopping,设为0时,不进行early stopping.early stop得到的模型的生成效果不一定会更好。")
    # warmup 预热,一开始慢慢的学,慢慢学习率增大,最后再慢慢减小
    parser.add_argument('--warmup_steps', type=int, default=4000, help='warm up步数')
    # parser.add_argument('--label_smoothing', default=True, action='store_true', help='是否进行标签平滑')
    args = parser.parse_args()
    return args

从零构建属于自己的GPT系列1:文本数据预处理
从零构建属于自己的GPT系列2:语言模型训练


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

相关文章:

  • 如何在Puppeteer中实现表单自动填写与提交:问卷调查
  • 第二节 OSI-物理层
  • 【项目开发 | 跨域认证】JSON Web Token(JWT)
  • MySQL远程连接错误解决:Host is not allowed to connect to this MySQL server
  • Flink API 的层次结构
  • Rust:GUI 开源框架
  • During handling of the above exception, another exception occurred解决方案
  • vue项目实现生成一个简单二维码
  • 前端面试灵魂提问
  • 浅析智慧社区建设趋势及AI大数据监管平台方案设计
  • wsj0数据集原始文件.wv1.wv2转换成wav文件
  • Kanna库编写数据抓取代码示例
  • C# 线程(1)
  • 分布式运用之ELK企业级日志分析系统
  • 【C 语言经典100例】C 练习实例14 - 将一个正整数分解质因数
  • java基础之集合概览
  • 模拟退火算法应用——求解TSP问题
  • Django回顾2
  • 流畅的Python (节选)
  • VC++、MFC中操作excel时,Rang和Rangs的区别是什么?
  • 贪心算法(新坑)
  • 数据收集和准备:打造高质量的数据集
  • 【SpringBoot篇】登录校验 — JWT令牌
  • Go 从编译到执行
  • ubuntu22.04新机使用(换源,下载软件,安装显卡驱动,锁屏长亮)
  • 5、基础入门——资产架构端口应用WAF站库分离负载均衡