论文阅读_BERT知识蒸馏
英文题目:Distilling Task-Specific Knowledge from BERT into Simple
Neural Networks
中文题目:从 BERT 中蒸馏指定任务知识到简单网络
论文地址:https://arxiv.org/pdf/1903.12136.pdf
领域:自然语言,深度学习
发表时间:2019
作者:Raphael Tang, 滑铁卢大学
被引量:226
代码和数据:https://github.com/qiangsiwei/bert_distill
阅读时间:2022.09.11
读后感
第一次对大型自然语言模型的蒸馏:将 BERT 模型蒸馏成 BiLSTM 模型。
介绍
在自然语言处理方面,随着 BERT,GPT
等大规模预训练模型的发展,浅层的深度学习模型似乎已经过时了。但由于资源的限制,又需要使用小而快的模型。
文章的动机是讨论:浅层模型是否真的不具备对文本的表示能力?并展示了针对于具体的任务,将
BERT 蒸馏成单层 BiLSTM
模型的方法和效果。也通过大模型(起初训练的复杂的模型,后称
Teacher/T)和小模型(蒸馏后的模型 ...
论文阅读_知识蒸馏_Meta-KD
英文题目:Meta-KD: A Meta Knowledge Distillation Framework for
Language Model Compression across Domains
中文题目:Meta-KD: 跨领域语言模型压缩的元知识蒸馏框架
论文地址:http://export.arxiv.org/pdf/2012.01266v1.pdf
领域:自然语言处理, 知识蒸馏
发表时间:2020.12
作者:Haojie Pan,阿里团队
出处:ACL
被引量:1
代码和数据:https://github.com/alibaba/EasyNLP(集成于 EasyNLP)
阅读时间:2022-09-17
读后感
结合元学习和蒸馏学习:元学习使得模型获取调整超参数的能力,使其可以在已有知识的基础上快速学习新任务。
介绍
预训练的自然语言模型虽然效果好,但占空间大,预测时间长,使模型不能应用于实时预测任务。典型的方法是使用基于老师/学生模型的知识蒸馏。而模型一般面向单一领域,忽略了不同领域知识的知识转移。本文提出元蒸馏算法,致力于基于元学习的理论,让老师模型具有更大的转移能力 ...
论文阅读_知识蒸馏_MobileBERT
英文题目:MobileBERT: a Compact Task-Agnostic BERT for
Resource-Limited Devices
中文题目:MobileBERT:面向资源有限设备的任务无关的压缩模型
论文地址:https://arxiv.org/pdf/2004.02984
领域:自然语言处理,模型蒸馏
发表时间:2020
作者:Zhiqing Sun,卡内基梅隆大学,谷歌
出处:ACL
被引量:162
代码和数据:https://github.com/google-research/google-research/tree/master/mobilebert
阅读时间:22.06.16
读后感
使用了瓶颈结构,同时微调模型实现加速,最终实现了任务无关的蒸馏 BERT
模型。
介绍
大模型效果好,但受资源限制。文中提出了 MobileBERT 模型对 BERT
模型进行压缩和加速,它和原始 BERT
一样,是任务无关的,可以泛化到不同下游任务。MobileBERT
是对 BERT LARGE
的优化,使用瓶颈结构。具体实现分两步:先训练一个倒瓶颈的特殊的老师模型,然 ...
论文阅读_神经网络知识蒸馏_DK
英文题目:Distilling the Knowledge in a Neural Network
中文题目:神经网络知识蒸馏
论文地址:https://arxiv.org/pdf/1503.02531.pdf
领域:深度学习
发表时间:2015
作者:Geoffrey Hinton,谷歌
出处:NIPS
被引量:6972
阅读时间:2022.09.21
读后感
这是最早提出蒸馏模型的文章,它训练老师 Teacher/学生 Student
两个模型,首先训练大而全的 Teacher,然后用 Teacher 蒸馏出小而精的
Student,S 不仅学习 T
的对错判断,还学到更多细节,比如为什么错(错的离不离谱)。
介绍
作者提出训练和部署的模型未必是同一模型。大而复杂的模型效果
(后简称 Teacher/T)
好,但相对复杂,预测时间长,占空间更大。作者提出如何把集成模型或大模型用一个小模型
(后简称 Student/S)
实现。训练阶段产出大而全的模型,然后用蒸馏技术提炼小模型,以便部署。
和压缩参数相比,在输入输出之间建立新的映射可能是更好的模型瘦身方法。一般建模方法是:模型主要学 ...
论文阅读_自然语言模型加知识图谱_DKPLM
英文题目:DKPLM: Decomposable Knowledge-enhanced Pre-trained Language
Model for Natural Language Understanding
中文题目:DKPLM: 可分解的利用知识增强的预训练语言模型
论文地址:https://arxiv.org/abs/2112.01047
领域:自然语言处理, 知识图谱
发表时间:2021.12
作者:Taolin Zhang 等,华东师范大学,阿里团队
出处:AAAI-2022
代码和数据:https://github.com/alibaba/EasyNLP(集成于 EasyNLP)
阅读时间:2022.09.11
读后感
自然语言和知识图结合的一种新尝试,几种优化方法比较有意思。尤其是他对长尾信息的分析,很有启发性:即使在无监督学习的情况下,也要尽量使用重要的数据训练模型。另外,还给出了具体方法,比如实体出现频率高于均值,则忽略它…
介绍
加入知识增强的自然语言模型简称 KEPLM,它将知识图中的三元组注入 NLP
模型,以提升模型对语言的理解能力。在模型使用时需要知识搜索 ...
ubuntu更新
ubuntu 更新
情况
今天忽然发现自己用的 Ubuntu 21.10 停止支持了,用 apt-get
安装软件都提示找不到软件源,所以更新到了 Ubuntu 22.04
LTS。因为笔记本比较新,之前电源管理一直都不能挂起,换到 22.04
后也完美解决,一些软件更新到最新版本后,也更好使了。
建议安装 LTS(long term support)版本,比如:16.04, 18.04, 20.04,
22.04,一般大版本为双数,小版本为 04。
规划
我安装 Ubuntu 系统一般规划如下:
总预留一个 50G
左右的分区,以备安装新操作系统与当前系统并存(配置可以直接从旧系统拷过来)
数据放在独立的分区
使用虚拟机,如用 Virtualbox 安装 Windows,用 Docker 安装 Linux
方法
升级 Ubuntu 系统一般可在 2 小时左右即可完成,具体工作包含:
安装系统
更换软件源
123$ cp /etc/apt/sources.list /etc/apt/sources.list_bak$ sudo vi /etc/apt/sources.list$ ...
设置Ubuntu软件源
1 设置 Ubuntu 软件源
1 查看当前系统版本
1$ lsb_release -a
2 查看是否存在该版本的源
http://mirrors.163.com/ubuntu/dists/
http://mirrors.aliyun.com/ubuntu/dists/
3 sources.list 模板
(将 TODO 改为版本代号)
12345678910deb http://mirrors.163.com/ubuntu/ TODO main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ TODO-security main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ TODO-updates main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ TODO-proposed main restricted universe mul ...
设置wifi连接优先级
查看当前可用 wifi
1$ nmcli dev wifi list
连接 wifi
1$ sudo nmcli dev wifi connect xxx password xxx
管理网络
1$ nmcli con show
关闭某连接
1$ nmcli con down xxx
启动某连接
1$ nmcli con up xxx
设置连接优先级
1$ nmcli connection modify xxx connection.autoconnect-priority 20
优先级默认为 0,正数优先级高,负数低
查看优先级
1$ nmcli connection show xxx|grep priority
设置电脑休眠
不允许休眠
1$ systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
查看状态
1$ systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target
允许休眠
1$ systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
参考:
https://zhuanlan.zhihu.com/p/468870436
https://blog.csdn.net/weixin_44120025/article/details/123184263
SHAP解释模型二
SHAP 解释模型(二)
本文在 SHAP解析模型
之后,又尝试了一些 SHAP 新版本的进阶用法,整理并与大家分享.
1 环境配置
以下实验使用当前最新版本 shap:0.41.0,同时安装 xgboost
作为预测模型,并使用较高版本的 matplotlib(低版本有时画图报错).
123$ pip install shap==0.41.0$ pip install xgboost==0.82$ pip install matplotlib==3.5.2
2 实验数据
仍延用波士顿房价数据集,由于有些方法需要 explainer 对象,因此构造了
shap_value_obj
12345678import shapimport xgboostX,y = shap.datasets.boston()model = xgboost.train({"learning_rate": 0.01}, xgboost.DMatrix(X, label=y), 100)explainer = shap.TreeExplainer(model) shap_va ...