official.nlp.transformer调研

背景

知识追踪方向涉及NLP的知识不多,涉及Transform的模型就更少了。

而现在bert和Transformer发展太快,有很多应用在不同应用的预训练模型,所以需要调用别人写好的库。加上框架不同,TensorFlow、keras、pytorch都分别有不同出名的库。要真的研究具体某一方向时,比如文本分析,语音识别、机器翻译,才需要熟练地调用别人已经写好的模型库,加载别人训练好的参数。

确实知识追踪也用Transformer,不过只需要一层,如SAKT、AKT,都是作者自己手写encoder结构,不需要调用。莫烦的nlp教程也是手写bert、Transformer结构。所以这样就会有狭隘:

  1. Transformer结构的优化
  2. Transformer不断新增的trick
  3. bert的变体,不过这个用不到

正文

在阅读论文代码时,该作者就调用到库,借机会学习一下:
Deep Knowledge Tracing with Transformers,根据requirement了解到第三方库
tf-models-official==2.4.0 and tensorflow==2.4.1

what need to solve?

from official.nlp.modeling import layers
from official.nlp.modeling import layers
from official.nlp.transformer import ffn_layer
from official.nlp.transformer.model_utils import get_padding_bias, get_decoder_self_attention_bias, _NEG_INF_FP32, _NEG_INF_FP16

调研

1)https://github.com/tensorflow/models/tree/master/official

The TensorFlow official models are a collection of models that use TensorFlow’s high-level APIs. They are intended to be well-maintained, tested, and kept up to date with the latest TensorFlow API.

方向
在这里插入图片描述
2)https://github.com/tensorflow/models/tree/master/official/nlp/modeling

This library provides a set of Keras primitives (tf.keras.Layer and tf.keras.Model) that can be assembled into transformer-based models. They are flexible, validated, interoperable, and both TF1 and TF2 compatible.

layers.py are the fundamental building blocks for NLP models. They can be used to assemble new tf.keras layers or models.

(https://colab.sandbox.google.com/github/tensorflow/models/blob/master/official/colab/nlp/nlp_modeling_library_intro.ipynb) for how to build transformer-based NLP models using above primitives.

you don’t need to fork a whole Transformer object to try a different kind of attention , for instance.
primitive(https://colab.sandbox.google.com/github/tensorflow/models/blob/master/official/colab/nlp/customize_encoder.ipynb) for how to use scaffold classes to build noval achitectures.

3)https://github.com/tensorflow/models/tree/v2.2.0/official/nlp/transformer

The implementation leverages tf.keras and makes sure it is compatible with TF 2.x.

在这里插入图片描述
此时的我十分懊恼

  1. 为啥我要花那么多时间看基于RNN的机器翻译,而不是直接上手基于Transformer的。无论是pytorch还是TensorFlow,直接看他们官网的Transformer教程就好。可惜现在没这个时间乱学了。
  2. 李宏毅的基于RNN的机器翻译,也没有beamsearch和衡量指标的代码,这里TensorFlow官方直接给出。所以一心想入门Transformer的同学就避坑吧。

博客

1)https://blog.csdn.net/u013546508/category_9209236.html 参考价值不大,只是百度的第一条。他也是基于官方教程剪辑出来的。
TensorFlow官方教程

在这里插入图片描述

2)google到一位比较厉害的人,主页

在这里插入图片描述
在这里插入图片描述
不过莫烦的bert也是比较清晰的,不是一定跟着作者学。
在这里插入图片描述

结尾

本文主要进行调查,对于文中提到的第三方库中的函数怎么使用(代码层面),我觉得不要太期待网络上有人会逐个函数解释。直接看代码,所以GAN吧

最后segmentfault社区:https://segmentfault.com/u/makechang_e/articles?page=1
这人有我影子,从目标检测到Transformer的,不过你只给模型,不给怎么训练怎么测试,人家怎么会看呢,都跑不起来。

因为我的TensorFlow为2.2.0
所以>pip install tf-models-official==2.2.0
不设定版本会帮你install2.4.0
在这里插入图片描述
具体文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值