栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Bert 代码笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Bert 代码笔记

1 huggingface是什么

是一个平台,上面有各种模型,特别是transformers,里面提供了很多state-of-art的预训练模型。

“Transformers是一个用于自然语言处理(NLP)的Python第三方库,实现Bert、GPT-2和XLNET等比较新的模型,支持TensorFlow和PyTorch。”

2 pytorch是什么

PyTorch 是一个基于 Python 的科学计算包,主要定位两类人群:NumPy 的替代品,可以利用 GPU 的性能进行计算。

3 Bert fine-tune

bert有很多预训练好了的模型,比如谷歌、科大讯飞、百度等等,用大量数据预训练好后开源,可以直接用他们预训练好的模型做自己的下游任务。

【训练过程】:

修改我们自己的输入,然后得到输出,计算loss反传优化参数。
参数一开始都是随机初始化的,这样就很慢很慢,所以使用预训练模型微调,这样训练几个epoch效果就可以很不错了,并且收敛的效果很好。

4 概念与参数 【batch size】:

可以理解为一次输入的数据量,例如:
batch size = 1,也就是输入一条数据,得到一个loss然后反传,但这样读取速度很慢,相当于是串行的,并且随机性很大,模型很难稳定收敛。
但batch size也不能太大,太大会导致反传时“步子”太大,很难优化到最优
因此要多个数据一起塞入,并行计算,代价则是需要更多的内存(显存)

【step】:

定义:按照batch size进行计算,得到多个loss反传更新模型的过程称为一个step
eg:
一般来说,Bert的batch size是8/16,也就是一次计算8个数据,得到8个loss然后一起反传更新模型,这也算一个step

【epoch】:

训练完一次所有的数据,称为一个epoch

【关系】:

b a t c h s i z e × s t e p = n u m ( d a t a ) 【 数 据 总 量 】 batch size × step = num(data)【数据总量】 batchsize×step=num(data)【数据总量】
训练完一次num(data)即为一个epoch

【loss】:
在每个step计算之后就会清零,也就是每个step有一个自己的loss。
在验证集中loss可能会先下降再上升,上升的阶段就叫过拟合。

5 训练过程详解 loss tokenizer

【待写】

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675188.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号