bert之预训练(pretrain)

2024-06-18 03:58
文章标签 训练 bert pretrain 之预

本文主要是介绍bert之预训练(pretrain),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、数据准备

document: 每个样本是document粒度的,每个document用空行分隔
sentence:每个document又拆分为sentence,用换行符区分
每个document包含n个(n>=1)sentence

具体实例如下:
在这里插入图片描述
二、tfrecord生成

(1)利用 create_pretraining_data.py 即可生成tfrecord
代码传送门

python create_pretraining_data.py \
--input_file=./tmp/zh_test.txt \
--output_file=./tmp/output.record \
--vocab_file=./model_bert/chinese_L-12_H-768_A-12/vocab.txt

参数说明:

  • input_file:前面预处理好的数据文件
  • output_file:输出的tf-record
  • vocab_file:字词典,下载的模型中包含这个文件

(2)代码中dupe_factor=10会让一条数据不同mask10次,如果像减少tfrecord生成时间,可将其设置为1
(3)要做好心里准备,生成时间比较长(35M输入文件,用了十几分钟生成完毕),而且如果不修改dupe_factor参数,生成的tfrecord文件占用内存,会比input_fille大很多倍
(4)真正想做预训练,肯定需要几十G的数据,采用上面写的方式生成tfrecord肯定在时间和内存上,都无法满足需求,后面专门写一期通过spark生成tfrecord的博客

三、开始预训练
预训练需要用到GPU,GPU版本tf安装教程,前面写过,传送门
(1)预训练命令

python run_pretraining.py \
--input_file=./tmp/output.txt \
--output_dir=./tmp/model_out \
--do_train=True \
--do_eval=True \
--bert_config_file=./model_bert/chinese_L-12_H-768_A-12/bert_config.json \
--init_checkpoint=./model_bert/chinese_L-12_H-768_A-12/bert_model.ckpt \
--train_batch_size=32 \
--max_seq_length=128 \
--max_predictions_per_seq=20 \
--num_train_steps=50 \
--num_warmup_steps=10 \
--learning_rate=2e-5

(2)可能遇到问题
在初次运行时,遇到OOM问题,此时,将train_batch_size设置小一点即可,比如将32改为16
(3)查看GPU占用情况:watch -n 1 nvidia-smi
在这里插入图片描述
(4)运行结果
时间:用35M文本生成的tfrecord去预训练,用GPU时间一分钟内能跑完
跑完结果:
在这里插入图片描述

这篇关于bert之预训练(pretrain)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071248

相关文章

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering)

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering) Power Iteration Clustering (PIC) 是一种基于图的聚类算法,用于在大规模数据集上进行高效的社区检测。PIC 算法的核心思想是通过迭代图的幂运算来发现数据中的潜在簇。该算法适用于处理大规模图数据,特别是在社交网络分析、推荐系统和生物信息学等领域具有广泛应用。Spa

SigLIP——采用sigmoid损失的图文预训练方式

SigLIP——采用sigmoid损失的图文预训练方式 FesianXu 20240825 at Wechat Search Team 前言 CLIP中的infoNCE损失是一种对比性损失,在SigLIP这个工作中,作者提出采用非对比性的sigmoid损失,能够更高效地进行图文预训练,本文进行介绍。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin

8. 自然语言处理中的深度学习:从词向量到BERT

引言 深度学习在自然语言处理(NLP)领域的应用极大地推动了语言理解和生成技术的发展。通过从词向量到预训练模型(如BERT)的演进,NLP技术在机器翻译、情感分析、问答系统等任务中取得了显著成果。本篇博文将探讨深度学习在NLP中的核心技术,包括词向量、序列模型(如RNN、LSTM),以及BERT等预训练模型的崛起及其实际应用。 1. 词向量的生成与应用 词向量(Word Embedding)

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

多云架构下大模型训练的存储稳定性探索

一、多云架构与大模型训练的融合 (一)多云架构的优势与挑战 多云架构为大模型训练带来了诸多优势。首先,资源灵活性显著提高,不同的云平台可以提供不同类型的计算资源和存储服务,满足大模型训练在不同阶段的需求。例如,某些云平台可能在 GPU 计算资源上具有优势,而另一些则在存储成本或性能上表现出色,企业可以根据实际情况进行选择和组合。其次,扩展性得以增强,当大模型的规模不断扩大时,单一云平

神经网络训练不起来怎么办(零)| General Guidance

摘要:模型性能不理想时,如何判断 Model Bias, Optimization, Overfitting 等问题,并以此着手优化模型。在这个分析过程中,我们可以对Function Set,模型弹性有直观的理解。关键词:模型性能,Model Bias, Optimization, Overfitting。 零,领域背景 如果我们的模型表现较差,那么我们往往需要根据 Training l

如何创建训练数据集

在 HuggingFace 上创建数据集非常方便,创建完成之后,通过 API 可以方便的下载并使用数据集,在 Google Colab 上进行模型调优,下载数据集速度非常快,本文通过 Dataset 库创建一个简单的训练数据集。 首先安装数据集依赖 HuggingFace datasetshuggingface_hub 创建数据集 替换为自己的 HuggingFace API key

文本分类场景下微调BERT

How to Fine-Tune BERT for Text Classification 论文《How to Fine-Tune BERT for Text Classification?》是2019年发表的一篇论文。这篇文章做了一些实验来分析了如何在文本分类场景下微调BERT,是后面网上讨论如何微调BERT时经常提到的论文。 结论与思路 先来看一下论文的实验结论: BERT模型上面的