from transformers import AutoModel import torch # 你的模型路径 MODEL_PATH = "/home/nashen/deepseek-ocr/DeepSeek-OCR-master/DeepSeek-OCR-vllm/model/" print(f"⏳ 正在加载模型结构 (不加载权重,速度很快)...") # 技巧:使用 meta device 或只加载 config,避免消耗显存 try: # 尝试加载到 CPU,不进行量化,只为了看名字 model = AutoModel.from_pretrained( MODEL_PATH, trust_remote_code=True, device_map="cpu", # 强制 CPU,不占显存 torch_dtype=torch.float16 ) except Exception as e: print(f"❌ 加载出错: {e}") exit() print(f"\n{'='*20} 模型层级结构 {'='*20}") print("🔍 正在寻找可能的视觉层 (Vision) 和投影层 (Projector)...") print(f"{'='*60}") # 遍历所有层 vision_candidates = [] for name, module in model.named_modules(): # 只打印顶级和二级模块,防止刷屏 depth = name.count(".") if depth <= 2: # 获取类名,帮助判断它是干嘛的 class_name = module.__class__.__name__ print(f"🔹 层名: {name:<40} | 类型: {class_name}") # 智能识别可能的视觉层 lower_name = name.lower() if "vision" in lower_name or "img" in lower_name or "encoder" in lower_name or "proj" in lower_name or "align" in lower_name: vision_candidates.append(name) print(f"\n{'='*20} 🎯 建议加入白名单的层 {'='*20}") print("请把以下名字加入 test_benchmark.py 的 llm_int8_skip_modules 列表中:") for cand in vision_candidates: print(f' "{cand}",') print(f"{'='*60}")