佛山如何建立网站,网站开发运行环境论文,网站建设主机端口,文案交流网站文章目录 统计语言模型和神经网络语言模型注意力机制和Bert实战Bert 统计语言模型和神经网络语言模型
区别#xff1a;统计语言模型的本质是基于词与词共现频次的统计#xff0c;而神经网络语言模型则是给每个词赋予了向量空间的位置作为表征#xff0c;从而计算它们在高维… 文章目录 统计语言模型和神经网络语言模型注意力机制和Bert实战Bert 统计语言模型和神经网络语言模型
区别统计语言模型的本质是基于词与词共现频次的统计而神经网络语言模型则是给每个词赋予了向量空间的位置作为表征从而计算它们在高维连续空间中的依赖关系。 相对来说神经网络的表示以及非线性映射更加适合对自然语言进行建模。 注意力机制和Bert
Attention is all you need 是关于注意力机制最经典的论文它是机制准确来说不是一个算法而是一个构建网络的思路。 其实 Attention 机制要做找到最重要的关键内容。它对网络中的输入或者中间层的不同位置给予了不同的注意力或者权重然后再通过学习网络就可以逐渐知道哪些是重点哪些是可以舍弃的内容了。
BERT 的全称是 Bidirectional Encoder Representation from Transformers即双向 Transformer 的 Encoder。作为一种基于 Attention 方法的模型它最开始出现的时候可以说是抢尽了风头在文本分类、自动对话、语义理解等十几项 NLP 任务上拿到了历史最好成绩。BERT 的理论框架主要是基于论文《Attention is all you need》中提出的 Transformer而后者的原理则是刚才提到的 Attention。 结合上图我们要注意的是BERT 采用了基于 MLM 的模型训练方式即 Mask Language Model。因为 BERT 是 Transformer 的一部分即 encoder 环节所以没有 decoder 的部分其实就是 GPT。
用过 Word2Vec 的小伙伴应该比较清楚在 Word2Vec 中对于同一个词语它的向量表示是固定的这也就是为什么会有那个经典的“国王-男人女人皇后”的计算式了但有个问题“苹果”可能是水果也可能是手机品牌。如果还是用同一个向量表示就有偏差了而BERT可以根据上下文的不同对同一个token给出的词向量是动态变化的很灵活。
实战Bert
安装hugging face的Pytorch版本的Transformers包
pip install Transformersref:https://github.com/huggingface/transformers 找到这里面很重要的两个文件 convert_BERT_original_tf_checkpoint_to_PyTorch.py 和 modeling_BERT.py 第一个是将tf2的模型转成pytorch版的 第二个是给咱一个BERT的使用案例
选一个预训练模型Pre-trained Models ref:https://github.com/google-research/bert 102 languages, 12-layer, 768-hidden, 12-heads, 110M parameters
模型转换
python convert_tf_checkpoint_to_pytorch.py --tf_checkpoint_path D:\code\python_project\01mlforeveryone\multilingual_L-12_H-768_A-12\multilingual_L-12_H-768_A-12\bert_model.ckpt --bert_config_file D:\code\python_project\01mlforeveryone\multilingual_L-12_H-768_A-12\multilingual_L-12_H-768_A-12\bert_config.json --pytorch_dump_path bert/pytorch_model.bin转换成功