[CLIP-VIT-L + Qwen] 多模态大模型学习笔记 - 5
参考repo:WatchTower-Liu/VLM-learning; url: VLLM-BASE
前情提要
有关多模态大模型架构中的语言模型部分(MQwen.py)的代码请看(多模态大模型源码阅读 - 1、 多模态大模型源码阅读 - 2, 多模态大模型源码阅读 - 3,多模态大模型源码阅读 - 4)
本节中将阅读视觉模型部分,即重构后的visual-encoder的源码,位于文件夹visual下的CLIP_VIT.py文件,模型选择的是clip-vit-large-patch14。
源码解读(visualModel类)
init函数
class visualModel(CLIPModel):
def __init__(self, config: CLIPConfig):
super().__init__(config)
整体含义
利用传入的通用配置模型参数初始化父类。
逐行解读
class visualModel(CLIPModel):
def __init__(self, config: CLIPConfig):
super().__init__(config)
定义一个继承CLIPModel成员变量和成员方法的visualModel类,在python3.5之后,可以对传递参数的类型进行注解,这里的CLIPModel是一个特定的自定义参数类型,用于指定传入的config参数是CLIPConfig类型,并使用传递的一般配置参数初始化父类。
get_image_features函数(重构)
@add_start_docstrings_to_model_forward(CLIP_VISION_INPUTS_DOCSTRING)
def get_image_features(
self,
pixel_values: Optional