(args)
| 70 | |
| 71 | return model, tokenizer, new_token_ids , vit_image_transform, dino_transform |
| 72 | def load_model_and_tokenizer(args): |
| 73 | llm_config = Qwen2VLConfig.from_json_file(os.path.join(args.model_path, "text_config.json")) |
| 74 | |
| 75 | llm_config.qk_norm = True |
| 76 | llm_config.tie_word_embeddings = False |
| 77 | llm_config.layer_module = 'Qwen2VLMoTDecoderLayer' |
| 78 | |
| 79 | vit_config = Qwen2VLVisionConfig.from_json_file(os.path.join(args.model_path, "vit_config.json")) |
| 80 | vit_config.patch_size =14 |
| 81 | |
| 82 | dino_config = Dinov2WithRegistersConfig.from_json_file(os.path.join(args.model_path, "dino_config.json")) |
| 83 | |
| 84 | config = G2VLMConfig( |
| 85 | visual_und=True, |
| 86 | visual_recon=True, |
| 87 | llm_config=llm_config, |
| 88 | vit_config=vit_config, |
| 89 | dino_config=dino_config, |
| 90 | vit_max_num_patch_per_side=36, |
| 91 | ) |
| 92 | language_model = Qwen2VLForCausalLM(llm_config) |
| 93 | vit_model = Qwen2VisionTransformerPretrainedModel(vit_config) |
| 94 | dino_model = Dinov2WithRegistersModel(dino_config) |
| 95 | |
| 96 | model = G2VLM(language_model, vit_model, dino_model, config) |
| 97 | |
| 98 | tokenizer = Qwen2Tokenizer.from_pretrained(args.model_path) |
| 99 | tokenizer, new_token_ids, _ = add_special_tokens(tokenizer) |
| 100 | |
| 101 | vit_image_transform = QwenVL2ImageTransform(768, 768, 14) |
| 102 | dino_transform = DinoImageNormalizeTransform(target_size=518) |
| 103 | |
| 104 | model_state_dict_path = os.path.join(args.model_path, "model.safetensors") |
| 105 | model_state_dict = load_file(model_state_dict_path, device="cpu") |
| 106 | msg = model.load_state_dict(model_state_dict, strict=False) |
| 107 | print(msg) |
| 108 | del model_state_dict |
| 109 | model = model.cuda().eval() |
| 110 | |
| 111 | return model, tokenizer, new_token_ids , vit_image_transform, dino_transform |
| 112 | |
| 113 | def build_transform(pixel=224): |
| 114 | image_transform = QwenVL2ImageTransform(pixel, pixel, 14) |
no test coverage detected