自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cyz0202的博客

转载如有侵权,告知即删;

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

原创 VAE的一种推导

介绍VAE的一种推导和实现方式

2023-03-29 19:09:48 472

原创 ​自定义卷积注意力算子的CUDA实现​

​自定义卷积注意力算子的CUDA实现​

2022-06-22 13:23:15 1039

原创 注意力机制的一种卷积替代方式

注意力的卷积替代

2022-06-22 09:35:32 898

原创 I-BERT

I-BERT

2022-06-20 16:18:37 632

原创 BN折叠及其量化

BN折叠及其量化

2022-06-16 09:01:13 673

原创 EM算法2

EM算法2

2022-06-15 10:35:18 78

原创 CUDA实现focal_loss

本文介绍如何用CUDA进行算子实现,以mmdetection的focal_loss实现为例

2022-06-06 19:02:16 1214 1

原创 Intel Distiller工具包-量化实现3

本系列文章Intel Distiller工具包-量化实现1Intel Distiller工具包-量化实现2Intel Distiller工具包-量化实现3回顾上一篇文章中介绍了Distiller及Quantizer基类,基类定义了重要的变量,如replacement_factory(dict,用于记录待量化module对应的wrapper);此外定义了量化流程,包括 预处理(BN折叠,激活优化等)、量化模块替换、后处理 等主要步骤; 本文介绍继承自Quantizer的子类量化...

2022-05-31 16:35:37 206

原创 Intel Distiller工具包-量化实现2

本系列文章Intel Distiller工具包-量化实现1https://blog.csdn.net/cyz0202/article/details/125030673回顾上一篇文章中介绍了Distiller及Quantizer基类,基类定义了重要的变量,如replacement_factory(dict,用于记录待量化module对应的wrapper);此外定义了量化流程,包括 预处理(BN折叠,激活优化等)、量化模块替换、后处理 等主要步骤; 本文介绍继承自Quantizer的子类量化..

2022-05-31 01:03:23 312 2

原创 Intel Distiller工具包-量化实现1

DistillerDistiller是Intel2019年左右开发的一个

2022-05-29 23:58:18 439 3

原创 C++_CUDA入门

NVIDIA CUDA入门blog-An Even Easier Introduction to CUDA

2022-05-29 13:51:16 2624

原创 BMINF的后训练量化实现

BMINFBMINF是清华大学开发的大模型推理工具,目前主要针对该团队的CPM系列模型做推断优化。该工具实现了内存/显存调度优化,利用cupy/cuda实现了后训练量化 等功能,本文记录分析该工具的后训练量化实现。主要关注cupy操作cuda实现量化的部分,涉及量化的原理可能不会做详细介绍,需要读者查阅其他资料;实现代码分析1量化部分的入口代码主要是在 tools/migrate_xxx.py,这里以 tools/migrate_cpm2.py为例;main函数build_mo

2022-05-27 15:52:48 644

原创 Transformer relative position的一种实现方式

参考自 GitHub BMINF项目直接上代码class PositionBias(Layer): def __init__(self, num_buckets, num_heads, is_decoder): self.num_buckets = num_buckets self.is_decoder = is_decoder self.num_heads = num_heads self.embedding = Embedd.

2022-05-23 20:36:23 262

原创 spark学习

Spark2.4.5RDD的转换操作学习mapPartitions例子:给定rdd1 = sc.makeRDD(1 to 10, 4),请输出各partition的"|“拼接结果;=> rdd1.mapPartitions(x => Iterator(x.mkString(”|"))).collectnote:要注意Iterator的使用是为了满足partition的要求;...

2022-05-23 15:58:38 139

原创 NLP-transformer部分知识点

1. Scaled Dot-Product Attention中为什么要除以-

2022-05-17 10:21:12 454

原创 空洞卷积+转置卷积+反卷积

1. 空洞卷积1.1 如上图所示,空洞卷积是为了增加感受野(pooling虽然能增加感受野,但是容易丢失原有信息);1.2 实现原理:图a为普通3*3卷积(注:该卷积也可视为空洞率=1的空洞卷积,见以下说明);图b是空洞率=2的空洞卷积,即向原有卷积核前中后都插入一个权重为0的格子;此时卷积核变为77,但是有值的格子还是只有原来的33;图c是空洞率=4的空洞卷积,情况如图b;1.3 空洞卷积的应用:如下是在语音里的应用(Dilation=2即空洞率为2)1.4 补充:pooling

2022-05-05 13:54:54 425

原创 nvidia混合精度训练原理

参考自 nvidia-mixed-precision-trainingMixed Precision Training背景:减少内存消耗、提高训练、推断速度基本思想:大部分相对不重要的计算使用FP16,少量重要的计算使用FP32实际实现主要考虑两大部分:哪些部分使用FP16针对FP16可能带来的性能衰退做相应优化,主要是添加 loss scale一个例子展示效果半精度格式IEEE754规定16bits半精度浮点数格式为:1 sign bit, 5 exponent bit.

2021-07-13 10:15:38 359

原创 label-bias-problem

参考自:label-bias-problem1label-bias-problem2B站白板推导MEMM-CRF现象描述该问题来自对局部转移概率的归一化;直观地想象状态S的向外转移分支较少时,各分支会得到更多的probability;状态S的向外转移分支虽多,但是其实真实数据中这些转移发生次数都比较少,因为归一化,S的转移概率分布也可能和其他状态的常见转移一样;上述两种现象针对的问题就是,本身从当前状态S向外转移 在数据中并不常见,但是由于S外转分支少,再加上做归一化,就会.

2021-07-02 15:10:50 375

原创 GCN理解

主要内容参考自该知乎高赞回答 @superbrother,加入个人理解,侵删;本文介绍GCN原理,不是科普入门,需要熟悉矩阵、高数、深度学习;对矩阵分解不熟悉的请先看最后的补充知识部分(注意不是从头讲解)背景介绍为什么研究GCN主要是有不规则图需要处理的场景,如社交网络等;处理拓扑图空间特征的两种方式具体分析1)图卷积理论图 拉普拉斯矩阵为什么使用L(拉普拉斯)矩阵L矩阵的谱分解:GCN的核心基于拉普拉斯矩阵的谱分解如[何从传统的傅里叶变换、卷积类比到.

2021-03-23 17:46:28 273 1

原创 linux-设置网络类型

内容来自itbaizhanNAT:网络地址转换模式Bridge:桥接/桥连模式区别:假设物理机U的局域网ip地址:192.168.1.5创建虚拟机V时(如下图图片示例),如果使用NAT网络类型,则V被分配的ip地址可能为192.168.203.5;V访问外网时,NAT技术会将V的ip地址转换成物理机U的公用IP地址,因此可以访问外网;NAT优点:NAT有点是节省ip,只要访问外网时进行一下转换即可;NAT缺点:V与物理机U的ip区别是 不在同一个网段,因此两者没法直接互相访问;桥连:.

2021-03-16 22:37:32 210

原创 mysql基本操作2

视图性质概念:利用已有数据构建出来的虚拟表特性:因为是虚拟的,所以真实数据变动,该表数据也会相应变动好处:子表查询较多时,可以用视图把常用子表创建出来保护机密数据:如student表涉及全校15个院系的学生数据,此时可以定义15个视图分别给相应院系的人使用和修改;可以适当修改实体表结构而不影响已有视图视图操作视图创建单表查询创建视图 select ename, sal, hiredate, job from emp create view emp_view a..

2021-03-09 22:25:26 99 1

原创 BERT-Whole Word Masked(WWM)

记录一下BERT的WWM实现和中文的WWM上代码: 英文 Bert-WWM数据创建方法def create_masked_lm_predictions(tokens, masked_lm_prob, max_predictions_per_seq, vocab_words, rng): """ Creates the predictions for the masked LM objective. para.

2021-03-02 18:19:24 1116

原创 mysql基本操作1

创建数据库create database dbname; # dbname为所创建数据库名称查看数据库show create database dbname;修改数据库编码alter database dbname character set “gbk”删除数据库drop databse dbname;创建表语法如下:create table 表名( 字段名1 字段类型1 [完整性约束], # 注意需要逗号,[]表示optional 字..

2021-02-19 00:24:26 350

原创 子集-组合问题

leetcode39-子集问题leetcode78-组合问题LC39子集问题题目一解法思想:迭代、递归/回溯迭代法:思想是,每增加一个数,新增加的子集跟已有子集关系密切,具体如下令nums=[0,1,2],观察[0,1]增加2后子集的变化nums的子集为[ [ ], [0], [1], [0, 1], [2], [0,2], [1,2], [0,1,2] ]令nums1=[0,1],子集为[ [ ], [0], [1], [0,1] ],与nums子集非黄色部分一样观察n.

2021-02-08 12:03:52 441 1

原创 RealFormer

1)本文参考自@苏剑林 RealFormer:把残差转移到Attention矩阵上面去,主要是做一些个人的注解2)以下阴影背景部分为引用上述文章,“注:”部分为本文添加背景Layer Normalization 是 Transformer 模型的重要组成之一,它的用法有 PostLN 和 PreLN 两种,论文 On Layer Normalization in the Transformer Architecture [1] 中有对两者比较详细的分析。简单来说,就是 PreLN 对梯度下降更加.

2021-01-26 14:30:51 611

原创 EM算法1

EM算法1

2021-01-24 01:16:32 133 2

原创 torch.tensor和torch.Tensor区别

部分参考该文章torch.tensor(实验使用pytorch1.7.1)torch.Tensor

2021-01-14 11:57:07 324

原创 python高级特性

生成器常用于遍历元素如果使用list,通常耗时多且内存消耗也多,举例如下import time, systime.clock()list1 = [x for x in range(2, 100000000, 2)]cost_time = time.cloce()print("创建list1耗时 %g" % cost_time) # %g 表示科学计数法print("创建list1内存开销 %d" % sys.getsizeof(list1)) # 获取字节数# ========..

2021-01-07 23:37:39 163 1

原创 字符串相乘

来自LeetCode43题目如下普通方法:基于竖式的计算(图片来自breezean答案)优化方法:对竖式计算进行优化,如图(图片来源同上)该方法说的是,num1和num2从左到右index,即左边第一位的index为0,依次类推;num1、num2设分别有N、M位,则乘积结果RES的位数最多是N+M位;如下图所示,如果num1的第i位(index i)乘以num2的第j位(index j),会得到一个至多两位的数,即为ab,a可能为0;而a在RES中的index是第i+j位,b在RES中.

2020-12-27 22:25:09 125

原创 python-网络编程-part4

IP地址一个IP地址包括两部分:网络号和主机号,网络号确定局域网,主机号确定局域网内具体某个主机;A-E类地址的固定前缀逐渐增加(0->10->110->1110->11110);C类地址最常见,主机0-255,其中0、255不用做主机号;如果需一个局域网内有很多主机,则可以利用B/A类地址;DE类地址不常用,基本上是保留地址;私有IP:本地局域网上的IP,内部使用10.0.0.0 - 10.255.255.255172.16.0.0 - 172.31.255.25.

2020-12-25 00:19:58 191

原创 接雨水

题目描述题目来自LeetCode解答双指针方法(动态规划方法具体请查看@windliang 这里)基本思想:基于列的计算,即计算所有列的可蓄水值,求和即可;说一下动态规划:每一列的蓄水情况,取决于自身高度,以及左边列最大高度和右边列最大高度(左右最大高度);举例来说,如下图,红色箭头列C3C_3C3​自身高度2,左右列最大高度分别是1、3,根据木桶理论,左边列最大高度为1,决定了C3C_3C3​可蓄水值;而C3C_3C3​本身高度2,比1大,因此C3C_3C3​列事实上无法蓄

2020-12-24 16:51:17 75

原创 python并发编程-part3

Greenlet/Gevent的使用前文(Python并发编程-part2)提到使用yield的生成器形成任务切换;缺点是如果单线程有20个任务,则yield方式很麻烦(需要初始化生成器,然后send内容进入生成器)真正的协程模块使用greenlet完成的多任务切换,很轻松Gevent 封装了Greenlet,可以不用一定程度减少手动切换的麻烦;from greenlet import greenletdef gf(name): print(f"{name}: 吃东西") g2.swit.

2020-12-13 22:22:00 126 1

原创 python-并发编程-part2

线程通信-队列队列的好处线程安全:python实现了内部锁解耦:用户只管输入,可以不知道后台多线程处理情况提高效率:后台多线程处理效率高举例: from queue import Queue mq = Queue() # 默认先进先出队列,FIFO # 存放数据 mq.put(1) mq.put(2) mq.put(3) # get() 队列是空时,会等待新数据 print(mq.get()) # 1 print(mq.get()) # 2 print(..

2020-12-12 10:31:36 136 2

原创 RAG小结

RAGRAG做知识问答,我们所使用的语料、索引建立方式、训练方式,大致的模型参数,以及满足以上我们对GPU运算资源的需求。需求总结-RetrieverGeneratorRAG使用模型DPR(Albert-small)mT5DPR+mT5(fix-ctx)相关参数单元格单元格单元格训练语料网上问诊12万单元格单元格实际占用GPU单元格单元格单元格注:fix-ctx指固定context encoder,不做更新RAG

2020-12-07 10:09:29 963

原创 python-并发编程-part1

资料例子来自尚学堂python创建线程的两种方式方法实现from threading import Threadfrom time import sleep, timeimport threadingdef fun(name): print(threading.currentThread()) print(f"Threading:{name} start") sleep(3) # 测试线程并发 print(f"Threading:{name} end") if __na.

2020-12-06 01:29:14 106

原创 软模板SoftProto框架

软模板SoftProto框架武汉大学的EMNLP2020文章,该工作提出基于软模板的 SoftProto 框架来增强方面词抽取任务,旨在解决评论文本中方面词和环境词具有长尾分布的问题。主要内容参见论文作者的文章-here简要介绍:问题与动机:由于缺少包含尾部词的样本,序列标注器可能会收敛到较差的状态。如图 1 所示,在常用的 SemEval 数据集中,大约 80% 的方面词和环境词(即非方面词)都出现不超过 5 次。方法:为了解决上述问题,我们的基本设想是将样本相互关联起来,从而帮助罕见词的抽

2020-12-03 18:43:52 329

原创 python模块导入

import abc本质是调用__import__(“abc”)如何查找abc module:一般按照如下顺序:内置模块当前目录程序的主目录pythonpath目录(如果设置了pythonpath环境变量)标准链接库目录第三方库目录(site-packages目录).pth文件的内容(如果存在)sys.path.appen()临时添加的目录...

2020-12-01 22:51:24 54

原创 git学习

本文主要总结自菜鸟教程,感谢Git安装配置linux系统安装git如下(图片来自菜鸟教程)Git配置git config命令: 用于配置或读取相应的工作环境变量如Git安装后,要配置用户名和电子邮件地址:$ git config --global user.name “your user name”$ git config --global user.email “your email”$ git config --global core.editor emacs (可选的-配置编.

2020-11-18 10:41:01 65

原创 json按格式逐行输出到文件

Dict/Json输出文件中逐行显示需要的效果如下图,我有一个list of dicts,它在json.cn中显示如下,我需要它输出到文件也显示同样的格式,而非整个list是一行:方法:# 写入json对象import jsondataset = [{"a":1, "b":2, "c":3}, {"d":[1,2,3], "e":[2,3,4], "f":[3,4,5]}]with open("your_file_path", "w", encoding="utf8") as wo: js

2020-11-15 10:19:32 1849

原创 Dense Passage Retrieval for Open-Domain Question Answering笔记

DPR笔记A-背景用于QA中的相关文档检索,改进传统检索方法BM25的部分缺点(如BM25比较依赖于token或者phrase的匹配,而DPR提高了基于语义的匹配能力),如以下QA,BM25较难找到这个answer(黄色部分):question:“Who is the bad guy in lord of the rings?”answer: "Sala Baker is best known for portraying the villain Sauron in the Lord of th

2020-10-29 17:16:28 1463

空空如也

空空如也

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

TA关注的人

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