知识蒸馏
是什么?




疑问1
蒸馏为什么能降低显存等一系列代价,提高速度?就是说模型推理本身就是一堆线性与非线性的含参节点,只要填上合理的参数,就能达到很好的效果,即填上的参数越好,那效果越好;所以小模型虽然参数数量小,但是如果参考大模型的输出,使自己整体的参数填得更好,效果就更好,然后显存等资源本身就是小模型的红利;
那能否认为,对于给定参数量的模型,对某类或通用任务,都有最优的参数填法,然后优秀的数据集,微调,蒸馏等,都是让每个模型更好地去逼近这个参数填法的方式?

蒸馏为什么能降低推理代价



蒸馏不是把大模型参数直接复制给小模型


"参数填得越好,效果越好"基本正确,但模型结构也决定上限

疑问1.1
从宏观整体地讲,就是给定任务A,给定模型m,参数量为B,就是去寻找一种架构C和所有参数B的填法,使m能对任务A达到最优效果;每个参数量下的模型都有其最优效果,如何寻找其最优架构与填法,是否有研究?

如何描述和评价模型的泛化性能?
模型下载
当在下载模型时,比如是2B大小的模型,是在下载模型的这2B参数的填法,那这2B参数的架构,即是如何组织的,是否在下载内容当中?下载完后,又该如何感知和利用模型的参数与架构?



疑问1
相关运行库如何依据下载的内容,来构建起真正可运行,可计算的结构,并开始进行运算的?详细过程是怎样的?

from_pretrained() 大致做了什么
