习题

  1. from gensim.models import word2vec
    sentences = ...
    model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
    上述代码中size代表什么?A. 目标词的最远距离 B. 词向量的长度 C. 训练时的线程数 D. 参与训练词的最小出现频率
  2. 查看相应文档可知
    def attention(a,b,c, mask=None, dropout=None):
     d_k = c.size(-1)
     scores = torch.matmul(c, a.transpose(-2, -1)) / math.sqrt(d_k)
     if mask is not None:
     scores = scores.masked_fill(mask == 0, -1e9)
     p_attn = F.softmax(scores, dim = -1)
     if dropout is not None:
     p_attn = dropout(p_attn)
     return torch.matmul(p_attn, b), p_attn

    上述关于self-attention的代码中 a和c分别指代什么?
    A.key, query B.key, value C.query, value

  3. class Layer(nn.Module):
     def __init__(self, features, eps=1e-6):
     super(Layer, self).__init__()
     self.a_2 = nn.Parameter(torch.ones(features))
     self.b_2 = nn.Parameter(torch.zeros(features))
     self.eps = eps
     
    def forward(self, x):
     mean = x.mean(-1, keepdim=True)
     std = x.std(-1, keepdim=True)
     return self.a_2 * (x - mean) / (std + self.eps) + self.b_2

    上面代码实现了什么功能?A. Batch Norm B. Layer Norm C.self-attention D.positional embedding

  4. class BertConfig(object):
     """BERT模型的配置类."""
     def __init__(self,
     vocab_size,
     hidden_size=768,
     num_hidden_layers=12,
      num_attention_heads=12,
     intermediate_size=3072,
     hidden_act="gelu",
     hidden_dropout_prob=0.1,
     attention_probs_dropout_prob=0.1,
     max_position_embeddings=512,
     type_vocab_size=16,
     initializer_range=0.02):

    self.vocab_size = vocab_size
     self.hidden_size = hidden_size
     self.num_hidden_layers = num_hidden_layers
     self.num_attention_heads = num_attention_heads
     self.hidden_act = hidden_act
     self.intermediate_size = intermediate_size
     self.hidden_dropout_prob = hidden_dropout_prob
     self.attention_probs_dropout_prob = attention_probs_dropout_prob
     self.max_position_embeddings = max_position_embeddings
     self.type_vocab_size = type_vocab_size
     self.initializer_range = initializer_range

    在上述Bert的配置文件中,intermediate_size指代什么?
    A.feed-forward输入的大小 B.Bert最终输出的大小 C. Self-attention隐藏层的神经元数 D.feed-forward中间层的大小

  5. 为什么BERT在第一句前会加一个[CLS]标志?[CLS]可以加到其他位置么?

答案与解析

  1. 答案:B 该问题就是api参数,大家可直接查看官方文档。解析:https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec
  2. 答案:A 对比理论和代码,观察score那一行,对比q*k.T所以a是key,b是value
  3. 答案:B forward函数里很显然在减均值除以标准差,是一个norm操作,又因为transformer里使用的是LayerNorm不是batchNorm,所以这里选 B
  4. 答案:D 这个大家可以根据理论猜测,然后查看源码验证,这里的源码片段是 huggingface的 transformers 框架里的,在类BertIntermediate里。源码虽然很庞大,很多时候并不需要读懂所有的部分,只需要着眼于跟问题有关的部分,并延伸即可。https://huggingface.co/transformers/
  5. 答案:解析:[CLS]用来表征整个输入,可以将其输入到全连接层做分类任务,[CLS]放到末尾应该也可以,但是放在中间可能不太好,会打断文本的连续性影响特征学习。

本部分习题都是参考开课吧NLP训练营的,欢迎大家讨论哟

词向量到Bert代码——部分习题相关推荐

  1. NLP【05】pytorch实现glove词向量(附代码详解)

    上一篇:NLP[04]tensorflow 实现Wordvec(附代码详解) 下一篇:NLP[06]RCNN原理及文本分类实战(附代码详解) 完整代码下载:https://github.com/ttj ...

  2. 企业隐患排查文本挖掘比赛(二):算法篇(从词向量到BERT)

    1.文本挖掘的历程 对于NLP问题,首先要解决的是文本表示的问题.虽然人能够清楚地了解文本的含义,但是计算机只能处理数值运算,因此首先要考虑如何将文本转化为数值. 1.1 向量表示 1.1.1 词袋模 ...

  3. 初次遇见NLP:从词向量到BERT

    目录 一.词向量Word2vector 二.Transformer 三.Bert 一.词向量Word2vector 语言的表达形式有两种:一种是离散的符号,一种是基于上下文的.eg.我 爱 你 我 1 ...

  4. ALBERT第一作者亲自讲解:词向量、BERT、ALBERT、XLNet全面解析

    现在是国家的非常时期,由于疫情各地陆续延迟复工,以及各大院校延期开学.作为一家AI教育领域的创业公司,我们希望在这个非常时期做点有价值的事情,并携手共渡难关.在疫情期间,我们决定联合国内外顶尖AI专家 ...

  5. NLP入门之——Word2Vec词向量Skip-Gram模型代码实现(Pytorch版)

    代码地址:https://github.com/liangyming/NLP-Word2Vec.git 1. 什么是Word2Vec Word2vec是Google开源的将词表征为实数值向量的高效工具 ...

  6. 从词向量到Bert——简单作业题+讲解

    习题 1.关于Word2vec,下列哪些说法是正确的() (A) Word2vec是有监督学习 (B)Word2vec利用当前特征词的上下文信息实现词向量编码,是语言模型的副产品 (C)Word2ve ...

  7. 机器学习之自然语言处理——基于TfidfVectorizer和CountVectorizer及word2vec构建词向量矩阵(代码+原理)

    目录 理论知识准备 构造文本特征向量 TF-IDF 值 sklearn中TfidfVectorizer 代码实例 CountVectorizer() 代码实操 Word2Vec 代码案例 总结 每文一 ...

  8. 词向量之BERT 结构

    QNLI:用于判断文本是否包含问题的答案,类似于我们做阅读理解定位问题所在的段落. (d)命名实体识别 CoNLL-2003 NER:判断一个句子中的单词是不是Person,Organization, ...

  9. 使用pytorch获取bert词向量

    本文主要为如何使用pytorch来获取bert词向量. 首先安装pytorch-pretrained-bert包: pip install pytorch-pretrained-bert 然后加载预训 ...

最新文章

  1. 使用NVIDIA GRID vPC支持视频会议和算力工具
  2. Python 进程之间共享数据(全局变量)
  3. python绘图实例-Python使用matplotlib简单绘图示例
  4. 笔记-信息系统开发基础-软件测试-软件测试的类型
  5. 实验五 数据库完整性技术
  6. 如何查看服务器数据库修改密码,如何查看服务器数据库密码
  7. 【DP】【Uva437】UVA437 The Tower of Babylon
  8. java字符串替换 数组,Java工具类-拆分字符串组装数组,替换字符
  9. 时间变为.05PU sql长度写法
  10. 翻译:swift 5初始化 被忽略的Convenience便捷初始化、Required和继承
  11. LaTeX使用--基本语法
  12. vscode SVN not found
  13. Codeforces 592 A. PawnChess 【Codeforces Round #328 (Div. 2)】
  14. poi操作PPT读取模板流,生成新PPT文件
  15. Java游戏吉他英雄_《吉他英雄:世界巡演》游戏秘技
  16. 实例:下载所有XKCD漫画
  17. vue 实现无限轮播_vue图片无限轮播
  18. 苦练基本功-计算机网络基础-TCP建立连接
  19. 电脑CapsLock大小写切换不回来?
  20. FAST-LIVO论文翻译

热门文章

  1. ImageNet时代将终结?何恺明新作:Rethinking ImageNet Pre-training
  2. 如何用Python处理分类和回归问题?附方法和代码
  3. AI一分钟 | “钢铁侠”马斯克冒冷汗直面跳票尴尬;Apollo2.0确定下个月初出征美国,李彦宏发力全球梦
  4. 记一次Quartz重复调度(任务重复执行)的问题排查
  5. 彻底理解HashMap及LinkedHashMap
  6. 最牛逼的性能监控系统!集强大功能于一身
  7. 帅气逼人的Redis可视化工具
  8. Java项目构建基础:统一结果,统一异常,统一日志(好文推荐)
  9. ThreadLocal原理分析与使用场景
  10. 阿里规范不建议多表join,可这SQL要怎么写啊?