小飞侠 - 七、总结
type: channel
link: http://www.kexue.love/index.php/category/zj/
items: A100，A800，H100，H800GPU的区别
items: 论文写作要点
items: cuda版本在nvcc -V和nvidia-smi中显示不同
items: 数据不均衡解决方法
items: nlp数据增强的方法
items: 机器学习深度学习常见问题

A100，A800，H100，H800GPU的区别
type: item
date: 2023-09-13T10:57:00+00:00
description: 一、查看GPU型号查看GPU型号：lspci | grep -i nvidia10:00.0 3D controller: NVIDIA Corporation Device 20f3 (rev a1) 16:00.0 3D controller: NVIDIA Corporation Device 20f3 (rev a1) 49:00.0 3D controller: NVIDIA Corporation Device 20f3 (rev a1) 4d:00.0 3D controller: NVIDIA Corporation Device 20f3 (rev a1) 54:00.0 Bridge: NVIDIA Corporation Device 1af1 (rev a1) 55:00.0 Bridge: NVIDIA Corporation Device 1af1 (rev a1) 56:00.0 Bridge: NVIDIA Corporation Device 1af1 (rev a1) 57:00.0 Bridge: NVIDIA Corporation Device 1af1 (rev a1) 58:00.0 Bridge: NVIDIA Corporation Device 1af1 (rev a1) 59:00.0 Bridge: NVIDIA Corporation Device 1af1 (rev a1) 89:00.0 3D controller: NVIDIA Corporation Device 20f3 (rev a1) 8e:00.0 3D controller: NVIDIA Corporation Device 20f3 (rev a1) c5:00.0 3D controller: NVIDIA Corporation Device 20f3 (rev a1) c9:00.0 3D controller: NVIDIA Corporation Device 20f3 (rev a1) 通过网址：https://admin.pci-ids.ucw.cz/read/PC/10de/20f3 查看具体型号2.A100，A800，H100，H800GPU的区别参考1.https://www.zhihu.com/question/618932114/answer/3192465335

论文写作要点
type: item
date: 2022-12-01T02:53:00+00:00
description: 一、abstractIn order to make full use of medical knowledge graph in medical dialogue systemsolve the problems of effective medical knowledge missing and medical dialogue generation uncontrollable, we propose a sentiment

cuda版本在nvcc -V和nvidia-smi中显示不同
type: item
date: 2022-07-20T07:55:36+00:00
description: cuda两个apiCUDA 有两种API，分别是 运行时 API 和 驱动API，即所谓的 Runtime API 与 Driver API。CUDA有两个主要的API，runtime API(nvcc -V 显示的cuda)和driver API(nivdia-smi中显示的cuda)，两者都有相应的版本(例如8.0、9.0等)。对driver API的必要支持(e.g. libcuda.so on linux)，是由GPU驱动安装程序安装的。对runtime API(e.g. libcudart.so on linux, and also nvcc)的必要支持，是由CUDA工具包安装程序安装的(如cuda toolkit可能也捆绑安装GPU驱动程序，如下图)。nvidia-smi 的结果除了有 GPU 驱动版本型号，还有 CUDA Driver API的型号，而nvcc的结果是对应 CUDA Runtime API一般情况下，driver API版本与runtime API版本不相同。特别是GPU驱动程序是独立于CUDA工具包(i.e. the CUDA toolkit)下安装的。这样nvidia-smi中的cuda是由NVIDIA GPU 驱动包安装的，而不是由CUDA toolkit安装的。driver API版本的cuda，就与runtime API版本的cuda没有联系了。因为由CUDA toolkit安装的cuda编译-驱动工具nvcc，总是会报告cuda运行时版本。nvcc不知道系统安装了什么驱动版本，甚至不知道系统是否安装了GPU驱动。所以，这两个版本不必完全相同，因为它们反映了两种不同的cuda API。而且在大多数情况下，nvidia-smi报告的cuda版本在数值上等于或高于nvcc -V报告的cuda版本。2、在安装CUDA 时候会安装3大组件，分别是 NVIDIA 驱动、toolkit 和 samples。NVIDIA 驱动是用来控制 GPU 硬件，toolkit 里面包括nvcc编译器等，samples或者说SDK 里面包括很多样例程序包括查询设备、带宽测试等等。上面说的 CUDA Driver API是依赖于 NVIDIA 驱动 安装的，而CUDA Runtime API 是通过CUDA toolkit 安装的。

数据不均衡解决方法
type: item
date: 2020-10-20T12:17:56+00:00
description: 数据不均衡解决方法

nlp数据增强的方法
type: item
date: 2020-09-23T11:46:00+00:00
description: 一、EDA方法1.同义词替换(Synonym Replacement, SR)：从句子中随机选取n个不属于停用词集的单词，并随机选择其同义词替换它们；2.随机插入(Random Insertion, RI)：随机的找出句中某个不属于停用词集的词，并求出其随机的同义词，将该同义词插入句子的一个随机位置。重复n次；3.随机交换(Random Swap, RS)：随机的选择句中两个单词并交换它们的位置。重复n次；4.随机删除(Random Deletion, RD)：以 $p$ 的概率，随机的移除句中的每个单词。第一种方式主要是利用同义替换的思想。 文中介绍了几个相关的方法，主要还是在于字、词、和句子结构层面上做数据增强。除了传统的字典、词向量相似度替换的方法，我觉得用mlm的方式去做数据增强这个点更加新颖和符合intuition。样本生成模型预测5、第二种就是通过“回译”的方法，这在阅读理解领域的榜单中一度有人使用过，比如说《attention is all you need》中在squad数据集上就使用了这个trick。6、句法级别的改写，生成句法树然后利用规则替换7.通过上述两个图，能很容易理解，就是预测mask位置的token，本身模型输出的是概率值，所以可以进行一个有效排序，而生成top k个近似的结果。8、第三种方式， Text Surface Transformation，主要是对句子进行一定规则的扩张和缩写，比如it is可以改写为it's9、随机噪声插入，这在addsent数据集的论文中使用过，可以使用随机插入、拼写错误插入、句子级别的打乱10、可以认为是一种句子之间相互增强，本质来将就是找到一个和原始句子相似的句子来替代，类似句子改写？但这句子是真实的？

机器学习深度学习常见问题
type: item
date: 2020-09-23T05:54:00+00:00
description: 一、bert1.为什么用layer normal 不用btach nomal这是一个仁者见仁智者见智的问题，这个问题没有标准的答案，2020年3月份的一片论文专门讨论了这问题《Rethinking Batch Normalization in Transformers》。1.主要问题是在前向传播和反向传播中，batch统计量和其贡献的梯度都会呈现一定的不稳定性，在使用BN的Transformer训练过程中，每个batch的均值与方差一直震荡。2.layer normalization 有助于得到一个球体空间中符合0均值1方差高斯分布的 embedding， batch normalization不具备这个功能。3.NLP中不同batch样本的信息关联性不大，而且由于不同的句子长度不同，强行归一化会损失不同样本间的差异信息，所以就没在batch维度进行归一化，而是选择LN2、HMM和CRF的区别，实体识别中为什么用CRF不用HMM1.HMM求解过程可能是局部最优，CRF可以全局最优2.HMM是生成模型，CRF是判别模型3.HMM是概率有向图，CRF是概率无向图HMM用在了 分词，CRF用在了 词性标注。3.NER的时候为什么要接入CRF，如何接入，原理是什么CRF是主流但是不是必需1.之所以在序列标注模型中引入CRF，是为了建模标注序列内部的依赖或约束，也就是套用一个可学习的CRF层来获得整个序列上最大似然的结果（与之相对的是为每个单词独立作决策）3.lstm如何缓解梯度消失梯度爆炸这个问题就在理论上，lstm如果你还记得公式，你就会发现，它所谓的门机制，也就是个sigmod，tanh函数处理了一下，由原来的累乘，变成了累加和累乘来解决梯度消失的问题。4.xgboost相比gbdt的优点1.第一，GBDT将目标函数泰勒展开到一阶，而xgboost将目标函数泰勒展开到了二阶。2.第二，GBDT是给新的基模型寻找新的拟合标签（前面加法模型的负梯度），而xgboost是给新的基模型寻找新的目标函数（目标函数关于新的基模型的二阶泰勒展开）3.。第三，xgboost加入了和叶子权重的L2正则化项，因而有利于模型获得更低的方差。4.第四，xgboost增加了自动处理缺失值特征的策略。通过把带缺失值样本分别划分到左子树或者右子树，比较两种方案下目标函数的优劣，从而自动对有缺失值的样本进行划分，无需对缺失特征进行填充预处理。5.xgboost自持并行化