Spaces:
Sleeping
Sleeping
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, pipeline | |
import torch | |
model_name = "mistralai/Mistral-7B-Instruct-v0.2" | |
bnb_config = BitsAndBytesConfig( | |
load_in_4bit=True, | |
bnb_4bit_quant_type="nf4", | |
bnb_4bit_use_double_quant=True, | |
) | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
model = AutoModelForCausalLM.from_pretrained( | |
model_name, | |
torch_dtype=torch.bfloat16, | |
trust_remote_code=True, | |
device_map="auto", | |
low_cpu_mem_usage=True, | |
# load_in_4bit = True, | |
quantization_config = bnb_config | |
) | |
def generate_text(messages): | |
encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt") | |
no_token_encodeds = tokenizer.apply_chat_template(messages, tokenize=False).replace('<s>', "").replace('</s>', "") | |
output = model.generate( | |
encodeds, | |
max_length=200, | |
do_sample=True, | |
top_k=10, | |
num_return_sequences=1, | |
eos_token_id=tokenizer.eos_token_id, | |
) | |
output_text = tokenizer.decode(output[0], skip_special_tokens=True) | |
return output_text[len(no_token_encodeds) + 2:] | |
# # Remove Prompt Echo from Generated Text | |
# cleaned_output_text = output_text.replace(input_text, "") | |
# return cleaned_output_text | |