Can't use bnb 4bit to load your model.

#11
by Gavin-chen - opened

I only add BitsAndBytesConfig, torch and quantization_config in your code

from transformers import AutoModelForCausalLM, AutoTokenizer,BitsAndBytesConfig
import torch
model_id = "Nanbeige/Nanbeige4.2-3B"

tokenizer = AutoTokenizer.from_pretrained(
  model_id,
  use_fast=False,
  trust_remote_code=True
)
quantization_config = BitsAndBytesConfig(
        load_in_4bit=True,
        bnb_4bit_compute_dtype=torch.bfloat16,
        bnb_4bit_quant_type="nf4"
    )
model = AutoModelForCausalLM.from_pretrained(
  model_id,
  torch_dtype="auto",
  device_map="auto",
  trust_remote_code=True,
  quantization_config=quantization_config
)

messages = [
  {"role": "user", "content": "Which number is bigger, 9.11 or 9.8?"}
]
prompt = tokenizer.apply_chat_template(
  messages,
  add_generation_prompt=True,
  tokenize=False
)
input_ids = tokenizer(
  prompt,
  add_special_tokens=False,
  return_tensors="pt"
).input_ids
output_ids = model.generate(
  input_ids.to("cuda"),
  max_new_tokens=131072,
  temperature=0.6,
  top_p=0.95,
  top_k=20,
  eos_token_id=166101
)
response = tokenizer.decode(
  output_ids[0][len(input_ids[0]):],
  skip_special_tokens=True
)
print(response)

But I got this:

Traceback (most recent call last):
  File "/root/llm/nanbaige4_2.py", line 15, in <module>
    model = AutoModelForCausalLM.from_pretrained(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/envs/RWKV/lib/python3.12/site-packages/transformers/models/auto/auto_factory.py", line 559, in from_pretrained
    return model_class.from_pretrained(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/envs/RWKV/lib/python3.12/site-packages/transformers/modeling_utils.py", line 3904, in from_pretrained
    dispatch_model(model, **device_map_kwargs)
  File "/root/miniconda3/envs/RWKV/lib/python3.12/site-packages/accelerate/big_modeling.py", line 512, in dispatch_model
    model.to(device)
  File "/root/miniconda3/envs/RWKV/lib/python3.12/site-packages/transformers/modeling_utils.py", line 2774, in to
    raise ValueError(
ValueError: `.to` is not supported for `4-bit` or `8-bit` bitsandbytes models. Please use the model as it is, since the model has already been set to the correct devices and casted to the correct `dtype`.

Sign up or log in to comment