| import gradio as gr |
| import torch |
| from transformers import AutoTokenizer, GenerationConfig |
| from peft import AutoPeftModelForCausalLM |
| tokenizer = AutoTokenizer.from_pretrained("izh97/zephyr-beta-climate-change-assistant") |
| model = AutoPeftModelForCausalLM.from_pretrained( |
| "izh97/zephyr-beta-climate-change-assistant", |
| low_cpu_mem_usage=True, |
| return_dict=True, |
| torch_dtype=torch.float16, |
| device_map="cuda") |
| model = model.to('cuda:0') |
| generation_config = GenerationConfig( |
| do_sample=True, |
| top_k=10, |
| temperature=0.2, |
| max_new_tokens=256, |
| pad_token_id=tokenizer.unk_token_id |
| ) |
| def ask(text): |
| messages = [ |
| { |
| "role": "user", |
| "content": str(text), |
| }, |
| ] |
| inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to("cuda") |
| inputs_length = inputs.shape[1] |
| outputs = model.generate(inputs, generation_config=generation_config, |
| return_dict_in_generate=True) |
| outputs = outputs.sequences[0, inputs_length:] |
| return tokenizer.decode(outputs, skip_special_tokens=True) |
| iface = gr.Interface(fn=ask, inputs="text", outputs="text") |
| iface.launch() |