随笔分类 - nlp
摘要:Self-Supervised Learning 的核心思想 Unsupervised Pre-train, Supervised Fine-tune. 两大主流方法 基于 Generative 的方法 基于 Contrative 的方法 基于 Generative 的方法主要关注的重建误差,还原原
阅读全文
摘要:GPT系列 GPT2 The GPT-2 is built using transformer decoder blocks. BERT, on the other hand, uses transformer encoder blocks. auto-regressive: outputs one
阅读全文
摘要:假设通过用户 - 物品相似度进行个性化推荐 用户和物品的 Embedding 都在一个 \(k\) 维的 Embedding 空间中,物品总数为 \(n\),计算一个用户和所有物品向量相似度的时间复杂度是$ O(k*n)$ 直觉的解决方案 基于聚类 基于索引 基于聚类的思想 优点: 离线计算好每个
阅读全文
摘要:模型压缩 网络剪枝 Netwrok pruning 剪掉网络中无用的参数。 有意思的图,连接先增加后减少。 train large model 评估重要性 参数重要性(以参数为剪枝单位) 比如根据权重的绝对值 神经元重要性(以神经元为剪枝单位) 比如 神经元是否为0 剪掉不重要的 微调小模型,重复执
阅读全文
摘要:模型层间差分学习率 一般在微调Bert等预训练模型时使用,可以配合warmup,见warmup小记。 tensorflow 几行搞定,参考官方文档[1] import tensorflow_addons as tfa optimizers = [ tf.keras.optimizers.Adam(l
阅读全文
摘要:什么是warmup 热身,在刚刚开始训练时以很小的学习率进行训练,使得网络熟悉数据,随着训练的进行学习率慢慢变大,到了一定程度,以设置的初始学习率进行训练,接着过了一些inter后,学习率再慢慢变小; 学习率变化:上升——平稳——下降 为什么用warmup 有助于减缓模型在初始阶段对mini-bat
阅读全文
摘要:模型召回之SimCSE dataset unsuper import numpy as np import math class UnsuperviseData(tf.keras.utils.Sequence): def __init__(self, x_set, batch_size): self
阅读全文
摘要:模型召回之DSSM 双塔模型 负样本构造:训练前构造或训练时批内构造 实现 model from transformers import AutoConfig,AutoTokenizer,TFAutoModel MODEL_NAME = "hfl/chinese-roberta-wwm-ext" t
阅读全文
摘要:综述: 万字综述!命名实体识别(NER)的过去和现在. https://mp.weixin.qq.com/s/sNXG-K5aPRFFQ3F373-e0A brat工具标注 LSTM_CRF https://zhuanlan.zhihu.com/p/44042528 https://github.c
阅读全文
摘要:方案: https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/neural_search 模型召回:双塔模型 DSSM、sentence-bert、simcse 向量检索利器:ANN [1] 最近邻搜索 (Neares
阅读全文
摘要:对比学习的核心就是loss的编写,记录下loss的tensorflow实现 def unsupervise_loss(y_pred, alpha=0.05): idxs = tf.range(y_pred.shape[0]) y_true = idxs + 1 - idxs % 2 * 2 y_pr
阅读全文
摘要:本文简述对抗训练在图像的的实践方法,关于对抗训练的理论和NLP应用请参阅参考文献【1】。 可以采用两种方法: 在原始样本训练模型,在对抗样本微调 混合正常样本和对抗样本一起训练 完成模型训练后,构造对抗样本 from tensorflow.keras.losses import MSE import
阅读全文
摘要:技术架构 整体可以分为 检索召回、排序 搜索相关的策略大体分为如下: query 理解->分词,纠错,意图识别,term weight 等 召回-> bool检索,倒排索引, bm25, tf-idf, 语义相似度 等 排序-> learning to ranking,深度模型 等 尽快划分为不同阶
阅读全文
摘要:CBOW v.s. skip-gram CBOW 上下文预测中心词,出现次数少的词会被平滑,对出现频繁的词有更高的准确率 skip-gram 中心词预测上下文,训练次数比CBOW多,表示罕见词更好 例如给定上下文 yesterday was a really [...] day ,CBOW可能会输出
阅读全文
摘要:动手实现Transformer,所有代码基于tensorflow2.0,配合illustrated-transformer更香。 模型架构 Encoder+Decoder Encoder Decoder Attention Add&Norm FeedForward Embedding Positio
阅读全文
摘要:"上节课" 学习了seq2seq模型如何用于语音识别,这节课我们将学习如何将语言模型加入到模型中 为什么需要语言模型 token sequence 的概率 token sequence: $Y=y_1,y_2,...,y_n$ $P(y_1,y_2,...,y_n)$ token 可以是字符、词等等
阅读全文
摘要:[TOC] 讲个段子 下面我们一起来学习分词算法吧 中文分词简介 什么是分词 借用百度百科定义:分词就是将连续的字序列按照一定的规范重新组合成词序列的过程 分词算法有哪些 这里按照分词的方法大致分为两类:基于规则的分词和基于统计的分词 基于规则的分词 前向最大匹配 后向最大匹配 最少切分(使每一句中
阅读全文
摘要:上节回顾 "深度学习与人类语言处理 语音识别(part2)" ,这节课我们接着看seq2seq模型怎么做语音识别 上节课我们知道LAS做语音识别需要看完一个完整的序列才能输出,把我们希望语音识别模型可以在听到声音的时候就进行输出,一个直观的想法就是用单向的RNN,我们来看看CTC是怎么做的 CTC
阅读全文
摘要:上节回顾 "深度学习与人类语言处理 语音识别(part1)" ,这节课我们将学习如何将seq2seq模型用在语音识别 LAS 那我们来看看LAS的Encoder,Attend,Decoder分别是什么 Listen Listen是一个典型的Encoder结构,输入为声学特征${x^1,x^2,...
阅读全文
摘要:深度学习与人类语言处理课程笔记,上节回顾 "深度学习与人类语言处理 introduction" 。这节课将会简单介绍语音识别的最新研究方法,请看正文 语音识别该何去何从? 1969年,J.R. PIERCE:“语音识别就像把水变成汽油、从大海中淘金、治疗癌症、人类登陆月球” 当然,这是50年前的想法
阅读全文