from transformers import AutoTokenizer, AutoModelForCausalLM import torch import gradio as gr # Название модели model_name = "sberbank-ai/rugpt3medium_based_on_gpt2" # Загрузка модели и токенизатора tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) # Функция для генерации ответа def generate_response(prompt): instruction = f"Ответь кратко и по существу на вопрос:\n{prompt.strip()}\nОтвет:" input_ids = tokenizer.encode(instruction, return_tensors="pt") # Параметры генерации для уменьшения времени отклика output = model.generate( input_ids, max_new_tokens=50, # Уменьшение числа токенов для более короткого ответа do_sample=True, top_k=50, top_p=0.95, temperature=0.7, # Уменьшение случайности pad_token_id=tokenizer.eos_token_id, eos_token_id=tokenizer.eos_token_id ) # Декодирование ответа и удаление части промпта response = tokenizer.decode(output[0], skip_special_tokens=True) return response.replace(instruction, "").strip() # Интерфейс Gradio iface = gr.Interface( fn=generate_response, inputs=gr.Textbox(label="Введите ваш вопрос"), outputs=gr.Textbox(label="Ответ модели"), title="Ответ от ruGPT-3 Medium", description="Генерация ответа с помощью модели Sberbank ruGPT-3 Medium" ) # Запуск интерфейса iface.launch()