day42部分题目

day42部分题目 z浙大疏锦行我的问题是从底层网络计算的机制来看BiLSTM 和 BERT也就是 Transformer 架构在处理这种长文本的‘长距离序列依赖’时它们的核心工作方式有什么本质区别为什么在这个任务上BERT 获取全局语义的能力会碾压 BiLSTM”首先是 BiLSTM它的本质依然是串行计算。虽然它有输入、遗忘、输出三个门控机制能极大地缓解梯度消失问题但它依然需要‘一个词一个词’地按顺序读。如果一篇文章有 500 个词第 1 个词的信息要经过 500 步才能传递到最后。在这个漫长的传递过程中信息必然会发生严重的衰减和丢失。而 BERTTransformer 架构则完全不同它使用的是Self-Attention自注意力机制。它抛弃了按顺序读的模式直接开启了**‘上帝视角’。在计算时句子里的任意两个词**无论隔得有多远它们之间都能直接进行一次矩阵乘法点积距离瞬间缩短为 1 步$O(1)$ 的复杂度。所以BERT 不仅自带强大的预训练迁移学习知识更因为这种一步到位的全局注意力机制让它在处理咱们项目里几百词的长文本时能够完美捕捉首尾的语义关联最终分类效果彻底碾压了受限于串行信息衰减的 BiLSTM。”“老师LSTM 就像串行传话相隔 100 个词就需要 100 步的传递极其容易造成长距离信息的遗忘。而 BERT 的 Self-Attention 相当于打破了时间序列的限制让所有的词同时在一个全连接的图里进行矩阵点积打分。它使得任意两个词语的语义交互距离强制缩短为 1 步这也是为什么在处理咱们天池那几十万条长文本新闻时BERT 能一眼看穿全局语义碾压了 BiLSTM。”导师提问“你的权重是怎么按 F1 分数分配的具体的计算策略是什么”为什么你要费劲捕获这种长距离依赖你把 TextCNN、BiLSTM 和 BERT 这种异构网络强行集成在一起理论上是不对的它们提取特征的空间都不一样你怎么能这样直接做模型预测呢”为什么一定要一样长显卡的“强迫症”如果你在写代码时偷了个懒没有用 pack_padded_sequence 把这些 0 给‘压缩/屏蔽’掉直接把带有大量 0 的矩阵强行喂给了 BiLSTM这会对你的模型训练、以及最终算出来的特征向量造成什么毁灭性的打击”“混合精度 FP16 中GradScaler 是干什么用的没有它行不行”(展示你的显存和精度管理能力)“不行。FP16 虽然能让训练吞吐量翻倍并节省显存但它的动态范围比 FP32 窄很多。在反向传播时很多极其微小的梯度在 FP16 下会被直接截断为 0引发‘梯度下溢’。GradScaler 的作用是在反向传播前将 Loss 乘上一个非常大的缩放因子把梯度放大等权重更新前再缩放回来从而完美兼顾了速度与精度。”所谓的“加权软投票”到底怎么用代码实现长尾优化与特征集成设计类别加权交叉熵提升少数类敏感度提取各模型在测试集输出的 Logits 矩阵采用基于验证集 F1 分数的加权软投票Soft Voting策略实现降维融合。 做这个的意义是什么同学你已经有了很强的 BERT为什么还要费力气把 CNN 和 RNN 融合进来”“你提到用了 Soft Voting软投票它比普通的‘少数服从多数’高级在哪里”“为什么说硬投票会丢失置信度信息你的加权软投票具体是怎么加权的”看你的代码只有单模型训练你这个融合在工程上是怎么落地的怎么微调的“你提到了用 Linear Warmup 保护底层预训练权重为什么要保护不加 Warmup 会发生什么”防止“新人的鲁莽”破坏“老兵的经验”BERT 微调属于迁移学习我们需要在保护‘预训练知识’和学习‘新任务特征’之间做平衡。你的数据既然是脱敏的数字 ID那你后面用的 BERT 预训练模型它自带的中文词表Vocab不就完全失效了吗你是怎么解决这个冲突的“CNN 通常用来处理二维图像比如花卉你是怎么用它来处理一维的文本数据的你的卷积核大小 [2, 3, 4] 到底代表什么物理含义”卷积之后你接了一个 Max Pooling最大池化而且窗口大小等于整个句子的长度。为什么要这么做这会不会丢掉很多信息BiLSTM Attention 的时序魔法新闻文本长短不一你在 Batch 训练时肯定要做 Padding补齐 0。这些 0 会对 LSTM 造成什么影响为什么用了 BiLSTM 还要加 Attention你的 Attention 在遇到刚才说的 Padding 0 时是怎么处理的”因为bilstm认为每个词的贡献是极其不合理的所以使用了注意力机制做了mask操作告诉模型哪些是真实词哪些是0送入softmax时候把补齐的0的分数换成极小的负数你说数据存在严重的‘长尾类别不平衡’你是怎么解决的为什么最后评估模型用的是 Macro-F1 而不是 Accuracy准确率pack__sequence与mask你具体是怎么在代码里部署 GradScaler 的加在哪个位置了”反向传播之前增大梯度更新参数之前再缩回去也就是说样本数越小猜错的惩罚就越大代价越高不用过采样有两个原因一是过采样少数类会引入重复样本增加过拟合风险尤其是在数据量已经有 20 万的情况下二是加权损失在实现上更简洁不改变数据分布训练流程更稳定。两者本质上都是在调整类别的梯度贡献比例但加权损失更优雅。Label Smoothing 的原理是什么在你的项目里解决了什么问题Label Smoothing 是把硬标签软化正确类从 1 变成 0.9其他类从 0 变成约 0.007。它在我的项目里解决两个问题第一是防止过拟合硬标签会驱动模型把 logit 推到极端值softmax 输出趋近 one-hot模型过度自信第二是配合类别不平衡少数类样本少模型容易在这些类上过度拟合几个训练样本的模式Label Smoothing 相当于正则化让模型保持适度的不确定性。考官心里很清楚原生的 BERT 最多只能处理 512 个词。 而新闻类文本尤其是咱们天池这个比赛通常都很长有的几千甚至上万个词。 他只要顺口问一句“BERT 只能处理 512 个词你的新闻那么长剩下的词你直接扔掉了吗”如果你答不上来他就会怀疑你的 0.94 分是不是真的。Logits原始得分直接相加你的硬件配置是怎样的BERT 这么大你是怎么跑通的”梯度累积解决了什么问题和直接用大 batch 有什么区别“Transformer 为什么用 LayerNorm 而不是 BatchNorm”BERT 和 GPT 的本质区别是什么CNN、RNN、Transformer 建模长距离依赖的能力有什么本质区别常用激活函数对比注意力机制softq*k的转置*v什么是 Embedding数据集处理