DeepSeek-OCR-4bit-Quantized / check_layers.py
WHY2001's picture
Upload folder using huggingface_hub
0695d0b verified
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}")