AutoGPTQ: AssertionError

The code below throws an assertion error:

from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

#model_name_or_path = "TheBloke/Mixtral-8x7B-Instruct-v0.1-GPTQ"
model_name_or_path = "TheBlokeAI/Mixtral-tiny-GPTQ"
# To use a different branch, change revision
# For example: revision="gptq-4bit-128g-actorder_True"
model = AutoModelForCausalLM.from_pretrained(model_name_or_path,
                                             device_map="auto",
                                             trust_remote_code=False,
                                             revision="main")

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, use_fast=True)

prompt = "Write a story about llamas"
system_message = "You are a story writing assistant"
prompt_template=f'''{prompt}
'''

print("\n\n*** Generate:")

input_ids = tokenizer(prompt_template, return_tensors='pt').input_ids.cuda()
output = model.generate(inputs=input_ids, temperature=0.7, do_sample=True, top_p=0.95, top_k=40, max_new_tokens=512)
print(tokenizer.decode(output[0]))

# Inference can also be done using transformers' pipeline

print("*** Pipeline:")
pipe = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    max_new_tokens=512,
    do_sample=True,
    temperature=0.7,
    top_p=0.95,
    top_k=40,
    repetition_penalty=1.1
)

print(pipe(prompt_template)[0]['generated_text'])

Error:

Traceback (most recent call last):
  File "C:\Users\pikachu\Downloads\mixtral_1\test.py", line 7, in <module>
    model = AutoModelForCausalLM.from_pretrained(model_name_or_path,
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pikachu\.virtualenvs\mixtral_1-ye4B-JwT\Lib\site-packages\transformers\models\auto\auto_factory.py", line 566, in from_pretrained
    return model_class.from_pretrained(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pikachu\.virtualenvs\mixtral_1-ye4B-JwT\Lib\site-packages\transformers\modeling_utils.py", line 3523, in from_pretrained
    model = quantizer.convert_model(model)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pikachu\.virtualenvs\mixtral_1-ye4B-JwT\Lib\site-packages\optimum\gptq\quantizer.py", line 229, in convert_model
    self._replace_by_quant_layers(model, layers_to_be_replaced)
  File "C:\Users\pikachu\.virtualenvs\mixtral_1-ye4B-JwT\Lib\site-packages\optimum\gptq\quantizer.py", line 298, in _replace_by_quant_layers
    self._replace_by_quant_layers(child, names, name + "." + name1 if name != "" else name1)
  File "C:\Users\pikachu\.virtualenvs\mixtral_1-ye4B-JwT\Lib\site-packages\optimum\gptq\quantizer.py", line 298, in _replace_by_quant_layers
    self._replace_by_quant_layers(child, names, name + "." + name1 if name != "" else name1)
  File "C:\Users\pikachu\.virtualenvs\mixtral_1-ye4B-JwT\Lib\site-packages\optimum\gptq\quantizer.py", line 298, in _replace_by_quant_layers
    self._replace_by_quant_layers(child, names, name + "." + name1 if name != "" else name1)
  [Previous line repeated 1 more time]
  File "C:\Users\pikachu\.virtualenvs\mixtral_1-ye4B-JwT\Lib\site-packages\optimum\gptq\quantizer.py", line 292, in _replace_by_quant_layers
    new_layer = QuantLinear(
                ^^^^^^^^^^^^
  File "C:\Users\pikachu\.virtualenvs\mixtral_1-ye4B-JwT\Lib\site-packages\auto_gptq\nn_modules\qlinear\qlinear_exllama.py", line 68, in __init__
    assert outfeatures % 32 == 0
           ^^^^^^^^^^^^^^^^^^^^^
AssertionError

About this issue

  • Original URL
  • State: closed
  • Created 6 months ago
  • Comments: 20 (5 by maintainers)

Most upvoted comments

pip install -U git+https://github.com/huggingface/transformers.git

Oh, I though that was in 4.36.1 but it seems it just barely missed that version.