Edit model card

Introduction

Qwen1.5 is the beta version of Qwen2, a transformer-based decoder-only language model pretrained on a large amount of data. In comparison with the previous released Qwen, the improvements include:

8 model sizes, including 0.5B, 1.8B, 4B, 7B, 14B, 32B and 72B dense models, and an MoE model of 14B with 2.7B activated;
Significant performance improvement in Chat models;
Multilingual support of both base and chat models;
Stable support of 32K context length for models of all sizes
No need of trust_remote_code.

For more details, please refer to our blog post and GitHub repo. Model Details

Qwen1.5 is a language model series including decoder language models of different model sizes. For each size, we release the base language model and the aligned chat model. It is based on the Transformer architecture with SwiGLU activation, attention QKV bias, group query attention, mixture of sliding window attention and full attention, etc. Additionally, we have an improved tokenizer adaptive to multiple natural languages and codes. For the beta version, temporarily we did not include GQA (except for 32B) and the mixture of SWA and full attention. Requirements

The code of Qwen1.5 has been in the latest Hugging face transformers and we advise you to install transformers>=4.37.0, or you might encounter the following error:

from transformers import AutoTokenizer, TextGenerationPipeline from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig import logging

logging.basicConfig( format="%(asctime)s %(levelname)s [%(name)s] %(message)s", level=logging.INFO, datefmt="%Y-%m-%d %H:%M:%S" )

pretrained_model_dir = "Qwen/Qwen1.5-1.8B" quantized_model_dir = "local "

tokenizer = AutoTokenizer.from_pretrained(pretrained_model_dir, use_fast=True) examples = [ tokenizer( "auto-gptq is an easy-to-use model quantization library with user-friendly apis, based on GPTQ algorithm." ) ]

quantize_config = BaseQuantizeConfig( bits=4, # quantize model to 4-bit group_size=128, # it is recommended to set the value to 128 desc_act=False, # set to False can significantly speed up inference but the perplexity may slightly bad )

load un-quantized model, by default, the model will always be loaded into CPU memory

model = AutoGPTQForCausalLM.from_pretrained(pretrained_model_dir, quantize_config)

quantize model, the examples should be list of dict whose keys can only be "input_ids" and "attention_mask"

model.quantize(examples)

save quantized model

model.save_quantized(quantized_model_dir)

save quantized model using safetensors

model.save_quantized(quantized_model_dir, use_safetensors=True)

push quantized model to Hugging Face Hub.

to use use_auth_token=True, Login first via huggingface-cli login.

or pass explcit token with: use_auth_token="hf_xxxxxxx"

(uncomment the following three lines to enable this feature)

repo_id = f"YourUserName/{quantized_model_dir}"

commit_message = f"AutoGPTQ model for {pretrained_model_dir}: {quantize_config.bits}bits, gr{quantize_config.group_size}, desc_act={quantize_config.desc_act}"

model.push_to_hub(repo_id, commit_message=commit_message, use_auth_token=True)

alternatively you can save and push at the same time

(uncomment the following three lines to enable this feature)

repo_id = f"YourUserName/{quantized_model_dir}"

commit_message = f"AutoGPTQ model for {pretrained_model_dir}: {quantize_config.bits}bits, gr{quantize_config.group_size}, desc_act={quantize_config.desc_act}"

model.push_to_hub(repo_id, save_dir=quantized_model_dir, use_safetensors=True, commit_message=commit_message, use_auth_token=True)

load quantized model to the first GPU

model = AutoGPTQForCausalLM.from_quantized(quantized_model_dir, device="cuda:0")

download quantized model from Hugging Face Hub and load to the first GPU

model = AutoGPTQForCausalLM.from_quantized(repo_id, device="cuda:0", use_safetensors=True, use_triton=False)

inference with model.generate

print(tokenizer.decode(model.generate(**tokenizer("auto_gptq is", return_tensors="pt").to(model.device))[0]))

or you can also use pipeline

pipeline = TextGenerationPipeline(model=model, tokenizer=tokenizer) print(pipeline("auto-gptq is")[0]["generated_text"])

Downloads last month
1
Unable to determine this model’s pipeline type. Check the docs .