|
|
"""
|
|
|
Quick loader for NF4 quantized HunyuanImage-3.0-Instruct model.
|
|
|
Generated automatically by hunyuan_quantize_instruct_nf4.py
|
|
|
"""
|
|
|
|
|
|
import torch
|
|
|
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
|
|
|
|
|
|
def load_quantized_instruct_nf4(model_path="H:\Testing\HunyuanImage-3.0-Instruct-NF4"):
|
|
|
"""Load the NF4 quantized HunyuanImage-3.0-Instruct model."""
|
|
|
|
|
|
quant_config = BitsAndBytesConfig(
|
|
|
load_in_4bit=True,
|
|
|
bnb_4bit_quant_type="nf4",
|
|
|
bnb_4bit_use_double_quant=True,
|
|
|
bnb_4bit_compute_dtype=torch.bfloat16,
|
|
|
)
|
|
|
|
|
|
model = AutoModelForCausalLM.from_pretrained(
|
|
|
model_path,
|
|
|
quantization_config=quant_config,
|
|
|
device_map="auto",
|
|
|
trust_remote_code=True,
|
|
|
torch_dtype=torch.bfloat16,
|
|
|
attn_implementation="sdpa",
|
|
|
)
|
|
|
|
|
|
|
|
|
model.load_tokenizer(model_path)
|
|
|
|
|
|
return model
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
print("Loading NF4 quantized Instruct model...")
|
|
|
model = load_quantized_instruct_nf4()
|
|
|
print("Model loaded successfully!")
|
|
|
print(f"Device map: {model.hf_device_map}")
|
|
|
|
|
|
if torch.cuda.is_available():
|
|
|
print(f"GPU memory allocated: {torch.cuda.memory_allocated() / 1024**3:.2f} GB")
|
|
|
print(f"GPU memory reserved: {torch.cuda.memory_reserved() / 1024**3:.2f} GB")
|
|
|
|