多模态学习笔记-语言模型篇(2)
参考repo:WatchTower-Liu/VLM-learning; url:vlm-learning
吐槽
今天的源码看的欲仙欲死,NTK(neural tangent kernel), rotary_position_embedding这些在之前的学习中完全闻所未闻,导致看的时候一脸懵逼,只能说不愧是Qwen大模型,各种sota的技术都用上了。就是看的有点费劲TAT~
学习心得
这次还是读源码,接着上一次的笔记(多模态源码阅读-1)接着讲,上一次讲了在第一次处理输入的序列数据时,去除掉序列数据input_ids中的image_token(也就是应当替换为图像数据的地方),并且将device设定为input_ids或者input_embeds挂载的设备(gpu or cpu),需要注意的是在前向传播时不能同时传入input_ids和input_embeds参数,只需传入其一即可。
下面来看看接下来的源码,还是前向传播部分(注意,这里的前向传播代码不是Qwen的原装代码,是为了多模态适配重写的代码)。
output_attentions = (
output_attentions
if output_attentions is not None
else self.config.output_attentions
)
output_hidden_states = (
output_hidden_states
if output_hidden_states is not None
else self.config.output_hidden_states
)
use_cache = use_cache if use_cache is not None else self.config.use_cache
return_dict = (
return_dict if return_dict is not None else self.config.use_return_dict
)
这段代码用来初始化output_attention, out