IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于 global pointer 实体抽取。 -> 正文阅读

[人工智能]基于 global pointer 实体抽取。

长度为n的序列 有n/2(1+n)个 子序列 ??刚好是 文本长度*文本长度 的正方形 从对角线开始向上全部的格子数量

1? 2??? 3?????? 4????????? n

1 1+2 1+2+3 1+2+3+4 …. n/2(1+n)

上图。每个格子代表一种可能都是把实体当作一个整体的可能,北京为一个地名 竖边列为起始坐标 横列为结束坐标。

代码部分简化预处理逻辑

model_state_dict_dir = os.path.join(./outputs,cluener,2022-03-15_02:47:49)

ent2id = load_data(./datasets/cluener/ent2id.json)?? = {'address': 0, 'book': 1, 'company': 2, 'game': 3, 'government': 4, 'movie': 5, 'name': 6, 'organization': 7, 'position': 8, 'scene': 9} 全部类别

ent_type_size = 10? 类别个数

model = GlobalPointer(encoder, ent_type_size, 64)

encoder得到bert输出,ent_type_size 10类,每个位置q,k 64维。

加载数据? 全部文本长度必须 小于预设的? 128 , 假如全部文本最长是52,那么全部长度设为52

浙商银行企业信贷部叶老桂博士则从另一个角度对五道门槛进行了解读。叶老桂认为,对目前国内商业银行而言,

转换为一下:

ent2token_spans? [(10, 12, 'name'), (1, 4, 'company')]

labels.shape = 10,128,128 ->name的平面 10,12 =1 和 company的平面 1,4 =1

inpus_id = tensor([ 101, 3851, 1555, 7213, ..., 6241, 8024,? 102])? len 52

attention_mask = tensor([1, 1, 1,....1, 1])???? len 52

token_type_ids = tensor([0, 0, 0,.....0, 0, 0]) ?len 52

# 了解

model.train() 启用 Batch Normalization 和 Dropout

model.eval()? 不启用 Batch Normalization 和 Dropout

train_dataloader : len = 79??? 79*64 =5000 条数据

一个批次推理:

1、

context_outputs = self.encoder(input_ids, attention_mask, token_type_ids)

context_outputs[0]????? [64, 52, 768]

context_outputs[1]????? [64, 768]

2、

self.dense = nn.Linear(self.hidden_size, self.ent_type_size * self.inner_dim * 2) = (768,10*64*2)

outputs = self.dense(context_outputs[0]) 得到 torch.Size([64, 52, 1280])

3、

生成 qw, kw =torch.Size([64, 52, 10, 64]),torch.Size([64, 52, 10, 64])

(qRm).T(Rnk) =q.T (Rn-m)k 具有相对位置关系

矩阵转置 公式( AB)^T = B^T*A^T

由于Rm的稀疏性,所以直接用矩阵乘法来实现会很浪费算力,推荐通过下述方式来实现RoPE

此处置讨论 批量1,当前类(0或者1,2,,9其中一类)时:

其中m为当前字符位置比如,0,1,2,3,4,….51

上述公式只是 一个位置的64维度向量q所需的操作,同理k向量一样

实际上:

句子长度(52,64) 52个64维q向量 做上面公式操作 ??????①

句子长度(52,64) 52个64维k向量 做上面公式操作 ??????②

然后①、②向量求内积就是得分 52*52个得分

10个类别,相当于(10,52,52)矩阵的得分。

其中θi=10000^?2(i/d),可以带来一定的远程衰减性

θ代码实现

indices = torch.arange(0, 64 // 2, dtype=torch.float)

indices = torch.pow(10000, -2 * indices / 64)

多标签分类

公式解释

代码解释

y_true = [0,1,0,1,0,1]

y_pred = [0,0.32,0,0.24,0,0.44]

处理后为这样

y_pred_neg = [ 0.e+00 -1.e+12? 0.e+00 -1.e+12? 0.e+00 -1.e+12,0]??????????????????

y_pred_pos = [-1.0e+12 -3.2e-01 -1.0e+12 -2.4e-01 -1.0e+12 -4.4e-01,0]

最后多加了一个0 是因为公式里面log(1+sumexp)中的1对应即e^0

exp^(很大的负数为0),即exp(-1.e+12) = 0

对应log(1+sumexp(负样本集合时)) 对应正样本置0

对应log(1+sumexp(正样本集合时)) 对应负样本置0

其中 0.32变成-0.32,对应公式里面的-sj ,同理

0.24变为-0.24 ,0.44变为-0.44

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:08:21  更:2022-03-17 22:10:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:48:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码