yuanzhoulvpi2017 / zero_nlp

中文nlp解决方案(大模型、数据、模型、训练、推理)
MIT License
3.04k stars 369 forks source link

code03_build_model_show.ipynb #201

Closed Wfyikczy closed 3 days ago

Wfyikczy commented 4 days ago
```python
   from transformers import AutoModel, AutoModelForCausalLM, AutoTokenizer, AutoProcessor

   clip_model = AutoModel.from_pretrained(clip_model_name_or_path, device_map="cuda:0")
   llm_model = AutoModelForCausalLM.from_pretrained(
   qwen_model_name_or_path, device_map="cuda:1")
```

在运训完这样一段后,会出现很长一段警告,我询问GPT后大致意思是:日志中提到了两个不同的 tokenizer 类型,Qwen2Tokenizer 和 CLIPTokenizerFast,这可能会导致意外的分词结果。

Wfyikczy commented 4 days ago

这段日志信息来自于尝试加载一个预训练的CLIP(Contrastive Language-Image Pre-training)模型时的PyTorch操作。CLIP模型由两部分组成:一个文本编码器(text_model)和一个图像编码器(vision_model)。当你从一个预训练的模型checkpoint初始化一个新的CLIP模型时,可能会遇到两种情况:

  1. 权重未使用(Some weights of the model checkpoint were not used):这意味着checkpoint中有一些权重在你的新模型中没有对应的参数。这可能是因为新模型的架构与checkpoint中的模型架构不完全相同。例如,你可能正在尝试使用一个用于图像分类的预训练模型来初始化一个用于文本编码的新模型,或者相反。这种情况下,未使用的权重通常是与特定任务相关的层,比如最后的分类层。

  2. 权重未初始化(Some weights of CLIPModel were not initialized from the model checkpoint):这意味着新模型中有一些权重没有从checkpoint中加载,而是被新初始化了。这可能是因为新模型包含一些额外的层,这些层在预训练模型中不存在。

在这两种情况下,如果你的目的是使用一个与预训练模型完全相同的架构,那么你可能需要确保你的新模型与预训练模型的架构完全一致。如果你的目的是将预训练模型适配到一个新的任务上,那么你可能需要对模型进行微调(fine-tuning),即在新任务的数据上继续训练模型,以便模型能够学习到新任务相关的特征。

根据日志的最后一部分,建议对模型进行训练(TRAIN this model on a down-stream task),以便模型能够用于预测和推理。这意味着模型需要在特定的下游任务上进行训练,以便学习如何执行该任务。例如,如果你想要使用CLIP模型进行图像标注,你需要在标注任务的数据集上训练模型。

Wfyikczy commented 4 days ago

CLIP和QWen的版本均是是视频一致 QQ20241126-145223

Wfyikczy commented 4 days ago

QQ20241126-145223

yuanzhoulvpi2017 commented 3 days ago

啥意思? 我看截图里面写的是模型权重不一致,这个是不用管的。

可否辛苦补充一下tokenizer不一致的截图

Wfyikczy commented 3 days ago

035B3A87983ADDB732759CF91757B743 这个show/model001 我是按照视频一步一步来的,结果模型输出和视频不一致

yuanzhoulvpi2017 commented 3 days ago

这玩意不影响的,我还以为啥没对齐 🤣

Wfyikczy commented 3 days ago

哦哦,谢谢哥哥 :blush: