Views
No views yet
diffusers library, ComfyUI, or any other model), although models that use architectures which are unfamiliar to me might be more difficult.transformers1import torch
2from transformers import Qwen3_5ForConditionalGeneration, AutoProcessor
3from dfloat11 import DFloat11Model
4# default: Load the model on the available device(s)
5model = Qwen3VLForConditionalGeneration.from_pretrained(
6 "Qwen/Qwen3.5-9B", dtype=torch.bfloat16, device_map="cpu"
7)
8# We recommend enabling flash_attention_2 for better acceleration and memory saving, especially in multi-image and video scenarios.
9# model = Qwen3VLForConditionalGeneration.from_pretrained(
10# "Qwen/Qwen3.5-9B",
11# dtype=torch.bfloat16,
12# attn_implementation="flash_attention_2",
13# device_map="auto",
14# )
15DFloat11Model.from_pretrained("mingyi456/Qwen3.5-9B-DF11", device = "cpu", bfloat16_model = model)
16model.to("cuda")
17processor = AutoProcessor.from_pretrained("Qwen/Qwen3.5-9B")
18messages = [
19 {
20 "role": "user",
21 "content": [
22 {
23 "type": "image",
24 "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
25 },
26 {"type": "text", "text": "Describe this image."},
27 ],
28 }
29]
30# Preparation for inference
31inputs = processor.apply_chat_template(
32 messages,
33 tokenize=True,
34 add_generation_prompt=True,
35 return_dict=True,
36 return_tensors="pt"
37)
38inputs = inputs.to(model.device)
39# Inference: Generation of the output
40generated_ids = model.generate(**inputs, max_new_tokens=512)
41generated_ids_trimmed = [
42 out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
43]
44output_text = processor.batch_decode(
45 generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
46)
47print(output_text)pattern_dict for compression:1pattern_dict={
2 r"model\.visual\.blocks\.\d+": [
3 "attn.qkv",
4 "attn.proj",
5 "mlp.linear_fc1",
6 "mlp.linear_fc2"
7 ],
8 r"model\.visual\.merger": [
9 "linear_fc1",
10 "linear_fc2",
11 ],
12
13 r"model\.language_model\.embed_tokens": [],
14 r"model\.language_model\.layers\.[1,3][0,2-4,6-8]":[
15 "linear_attn.out_proj",
16 "linear_attn.in_proj_qkv",
17 "linear_attn.in_proj_z",
18 "linear_attn.in_proj_b",
19 "linear_attn.in_proj_a",
20 "mlp.gate_proj",
21 "mlp.up_proj",
22 "mlp.down_proj"
23 ],
24 r"model\.language_model\.layers\.2?[0-2,4-6,8,9]":[
25 "linear_attn.out_proj",
26 "linear_attn.in_proj_qkv",
27 "linear_attn.in_proj_z",
28 "linear_attn.in_proj_b",
29 "linear_attn.in_proj_a",
30 "mlp.gate_proj",
31 "mlp.up_proj",
32 "mlp.down_proj"
33 ],
34
35 r"model\.language_model\.layers\.[1,3][1,5,9]":[
36 "self_attn.q_proj",
37 "self_attn.k_proj",
38 "self_attn.v_proj",
39 "self_attn.o_proj",
40 "mlp.gate_proj",
41 "mlp.up_proj",
42 "mlp.down_proj"
43 ],
44 r"model\.language_model\.layers\.2?[3,7]":[
45 "self_attn.q_proj",
46 "self_attn.k_proj",
47 "self_attn.v_proj",
48 "self_attn.o_proj",
49 "mlp.gate_proj",
50 "mlp.up_proj",
51 "mlp.down_proj"
52 ],
53 r"lm_head": []
54}