自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hanghanghang的博客

自用9成新

  • 博客(21)
  • 收藏
  • 关注

原创 spanBert 跟ernie类似又不是那么类似的span范围掩码

这篇论文的主要改进有三:首先什么是 Span Masking,和一般 BERT 训练有何不同。根据几何分布,先随机选择一段(span)的长度,之后再根据均匀分布随机选择这一段的起始位置,最后按照长度遮盖。文中使用几何分布取 p=0.2,最大长度只能是 10,利用此方案获得平均采样长度分布。通过采样,平均被遮盖长度是 3.8 个词的长度Span Boundary Objective 是该论文加入的新训练目标,希望被遮盖 Span 边界的词向量,能学习到 Span 的内容。或许作者想通过这个目标,让模型在一些需

2022-06-24 20:19:22 391 1

原创 初探百度ernie

写在前头:ernie有点长也有点复杂,分为百度,清华,1和2两个版本,加上2的中文至今没有开源,效果嘛也就那样,所以其实不如bert系列,本人看了半天,也没有理解特别深刻,故随手写一些,权当一点小小的总结,并不完整。ernie个人感觉一个比较不方便的地方在于,清华版本效果不佳,百度版本是基于百度自己的飞浆框架的,和主流的tf或者pt有所出入,使用来说相对没有那么方便,不知道有没有人基于tf或者pt实现了百度ernie,我还暂时没有去了解。首先 ernie也是堆叠的encoder结构组成的模型,这点和bert

2022-06-24 16:11:41 749

原创 Roberta 充分训练的bert模型

RoBERTa是在论文《RoBERTa: A Robustly Optimized BERT Pretraining Approach》中被提出的。此方法属于BERT的强化版本,也是BERT模型更为精细的调优版本。他改了优化器的参数,原始BERT优化函数采用的是Adam默认的参数,其中β1=0.9,β2=0.999,在RoBERTa模型中考虑采用了更大的batches,所以将β2改为了0.98。他把静态掩码改成了动态掩码,原始静态mask:BERT中是准备训练数据时,每个样本只会进行一次随机mask(因此每

2022-06-22 12:42:01 639

原创 GPT系列初探

GPT1其实出现在BERT前,也算是现在大规模预训练模型的开始,奈何效果没有bert好,所有反而没有bert出名,它用的是一个decoder的架构去做的预训练,是一个自回归的模型。gpt预训练的一个目标函数有两个,第一个是基础的下一个词预测任务,选择一个K窗口,将窗口中的K个词的embedding作为条件去预测下一个词第二个是一个分类任务,一段话给一个标签,然后去预测这标签他作为预训练微调时的目标函数是这两个函数的和他在下接下游任务的时候,是将输入放入到transformer的decoder中,跟bert一

2022-06-19 21:25:03 1013

原创 模型学习之T5模型初探

T5谷歌19年发布一个的一个模型,它也一度刷了榜,最主要的贡献是提出一个通用框架,接着进行了各种比对实验,获得一套建议参数,最后得到一个很强的 baseline。而我们之后做这方面实验就能参考它的一套参数。它最重要作用是给整个 NLP 预训练模型领域提供了一个通用框架,把所有任务都转化成一种形式。他让我们思考要怎么去构建一个输入的形式。首先为什么叫 T5 模型,因为是 Transfer Text-to-Text Transformer 的简写。什么是text to text,那就是作者在这提出的一个统一框架

2022-06-17 20:50:28 3218

原创 算法题复健之路 第21 22 23天 主要还是递归

21 22 23天啦

2022-06-17 18:16:53 69

原创 算法题复健之路 第19 20天

算法题冲

2022-06-13 19:43:18 176

原创 算法题复健之路16 17 18天

算法题冲冲冲

2022-06-13 19:18:29 85

原创 算法题复健之路 第13 14 15 天

算法题复健第三天啦

2022-06-13 18:51:59 931

原创 初探ALBERT:参数共享的改进bert

ALbert是bert的改进系列,在模型上基本没什么区别,结构上是差不多的,他改进的目的在于:想要精简bert的参数,希望bert能在更少的GPU上进行一个预训练,想方设法减少bert占用的显存,方便它的训练和部署,改进主要有以下几点:1. embedding层低秩分解2. 跨层参数共享3. 使用sop训练代替NSP1. embedding层低秩分解:这个是为了固定住embedding层的参数规模,让他不会一直随着模型增大而增大:具体做法思路简而言之就是,把原来一个很大的embedi

2022-05-29 11:33:26 655

原创 算法题复健之路 第12天 ex番外篇之美团笔试

实战第一战,中间遇到的最大的问题在于,被leetcode习惯了,我不会一片空白的怎么解题,也不知道这种一片空白,也不会自动读取函数return的情况下,要怎么把答案给他,甚至也不知道他要的输入我要怎么给进去,leetcode是自己给的。后面通过例子,明白了,输入用input 具体用法还是得多练,输出 我看他们 直接把答案print一下,好像res变量给到了,不输出也行,多做真题练练应该会懂第一题 打怪遍历数组,这玩意,挺简单 不难,排序后遍历第二题 没看懂 取球算颜色的 用动态规划应该好做

2022-05-29 11:12:15 66

原创 算法题复健之路 第十一天 二叉树递归 栈

二叉树最大路径 有效括号 分别对应124 20 题二叉树最大路径 124:这题是个困难题,但是代码不多,只要明白思路,还是容易做的,最大的收获还是一个题解里面写得好,做这种题,思路得清楚,首先是二叉树,二叉树一定会有一个核心代码,这代码一定会遍历完二叉树的所有节点。def dfs(root): if not root: return dfs(root.left) dfs(root.right)其他的不过是在这个代码上做操作罢了,对自己的操作和对上一层下一层的操作,然

2022-05-29 10:57:04 55

原创 模型蒸馏,Bert模型蒸馏之distilbert

因为现在用的模型越来越大,所以出现了模型蒸馏,模型蒸馏出现的意义在于,用更少的参数,继承模型里面的效果,现在用的模型蒸馏常用teacher-student模型的方式进行蒸馏,整个理念就是让teacher模型学习到模型的大参数,让student模型继承它。Distill的意思是蒸馏,我们可以从字面上猜测,我们要从一个很大的模型,蒸馏成比较小的模型,也可以用一种角度想,我们让大的模型当作小的模型的老师,而小模型这个学生,只会尽可能的学老师的每个输出。Bert是12层transformer encode,

2022-05-26 21:16:22 1374

原创 flat调研和ner调研

ex1:中间插入:flat调研:其实就是一个类似于LSTM层的东西,打个比方 原先是bert加lstm加crf 现在可以bert加flat加crf,他就是解决了一些过去的 没有引入词汇信息的痛点 词汇信息就是学到一个词 例如重庆 人和药店 之前的自注意力机制学不到这个,这玩意能学到,能并行计算什么什么的,接在bert后面效果好,结构就是一层transformer里面的encoder 还有改进了位置编码 把位置编码多了两个参数 某个实体的head和tail坐标 就这样。利用了词汇信息呗..

2022-05-26 21:03:12 276

原创 XLnet和tranformer-XL的双流注意力机制

最近想增加一下自己的知识宽度,所以在了解各种模型的原理,想在了解之后,对他们进行总结归纳,加宽见识的同时可以让自己有更多灵感XLnet是Auto-regressive model (自回归语言模型)transformers有一段对它的常用范围的描述是这样的:Note that this model is primarily aimed at being fine-tuned on tasks that use the whole sentence (potentially masked) to

2022-05-26 19:12:16 725

原创 jointbert读源码

1. 除了模型之外的代码:他的模型直接给出了intent和slots的联合loss,而且是一起放进去训练的,最后训练给出的loss也是一起的,这loss和训练的结果,在训练中直接把所有参数给到模型,然后后传进行调优,没有区别。在验证中也是,给了输入后会直接输出intent和slots的pred和logit,后面直接使用,后面一个计算计算mertric的函数中,有三个子函数,分别是独立计算intent和独立计算slots和一个联合计算,联合计算sementic_frame_acc的方法是分别计算出两个

2022-05-26 17:00:28 650

原创 算法题复健之路 第78910天 二叉树 递归 搜索专场

第七天:二叉树的中后 层序遍历 对应leetcode 145 102 94题二叉树专场:中后序遍历没啥问题,一个套路,递归就完事了:# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right

2022-05-26 16:07:46 88

原创 算法题复健之路 第四天 第五天 第六天

第四天:做了两题 零钱兑换1 2 分别对应了 322 518两题都是动态规划 背包问题, 要点还是跟前面的动态规划一样 建立一个dp矩阵,注意初始值的设定,之后维护这矩阵即可,注意转移条件,背包问题应该要不停的减少价值作为条件。class Solution: def coinChange(self, coins: List[int], amount: int) -> int: n = len(coins) dp = [[amount+1]*(amo

2022-05-21 21:00:10 135

原创 算法题复健之路 第三天 数和

两数之和和三数之和 对应leetcode 1 和15第一题简单,最容易想到的是暴力的检索遍历 这样时间复杂度是n^2,高级一点的做法也容易想到,字典,维护检索字典。class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: a = {} for i, num in enumerate(nums): if target-num in a:

2022-05-18 22:17:52 64

原创 算法题复健之路 第二天 动态规划

70 72 1143 动态规划题动态规划的重点在于分解,把大问题变成小问题,小问题解决后,加起来变成大问题,一共几步路非常重要,第一步,确定边界条件,第二步,创建一个空的矩阵 一般是要把问题分成两个部分长度M,N ,数组先确定0时的特殊边界值,后面分解问题,例如把i位置的问题分解成i-1或者i-2 ,j-1之类的等等,最后要达到的效果是把大问题变成几个他的子问题相加的和,至于子问题如何解,跟递归一样,不需要知道,先假设他已经解了,这样列出关系式子,再从1到n 从底到顶,开始几个for循环遍历,将子问

2022-05-17 23:01:25 99

原创 算法题复健之路 第一天

912.排序数组6种方法对数组进行排序,排序的思想重点在于对数组中数字进行遍历比较,最重要的是快排,快排的思想是取一个数,然后不停的比较后分出前一半后一半,其他的排序大同小异,取一个数字作为中间数比较,然后不停的遍历,改变位置。class Solution: def sortArray(self, nums: List[int]) -> List[int]: def qs(nums, left, right): temp = nums[(lef

2022-05-17 22:51:03 78 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除