Spaces:
Sleeping
Sleeping
| import os | |
| from huggingface_hub import login | |
| import torch | |
| from transformers import AutoTokenizer, AutoModelForCausalLM | |
| import gradio as gr | |
| # Авторизация через токен | |
| hf_token = os.environ.get("HF_TOKEN") | |
| if hf_token: | |
| login(token=hf_token) | |
| model_path = "inceptionai/Llama-3.1-Sherkala-8B-Chat" | |
| tokenizer = AutoTokenizer.from_pretrained(model_path, token=hf_token) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| model_path, torch_dtype=torch.bfloat16, device_map="auto", token=hf_token | |
| ) | |
| tokenizer.chat_template = "{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n' + message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %}{% endif %}{{ content }}{% endfor %}{% if add_generation_prompt %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}{% endif %}" | |
| def chat_fn(user_input): | |
| conversation = [{"role": "user", "content": user_input}] | |
| input_ids = tokenizer.apply_chat_template( | |
| conversation=conversation, | |
| tokenize=True, | |
| add_generation_prompt=True, | |
| return_tensors="pt" | |
| ).to(model.device) | |
| output_ids = model.generate( | |
| input_ids, | |
| max_new_tokens=512, | |
| do_sample=True, | |
| temperature=0.7 | |
| ) | |
| response = tokenizer.decode(output_ids[0][input_ids.shape[-1]:], skip_special_tokens=True) | |
| return response | |
| gr.Interface( | |
| fn=chat_fn, | |
| inputs="text", | |
| outputs="text", | |
| title="Sherkala-8B Chat", | |
| description="Kazakh-Russian-English multilingual chat model", | |
| ).launch() | |