Spaces:
Runtime error
Runtime error
File size: 1,830 Bytes
2e03cda c440868 80ceb8c e474e6b d334b30 b10ba12 80ceb8c d334b30 9c601ea 9d9c29a d334b30 af5c917 d334b30 b10ba12 7cd7e31 d334b30 12dd231 9c601ea c263659 d334b30 c440868 d334b30 c263659 9d9c29a d334b30 80ceb8c d334b30 80ceb8c d334b30 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
import torch
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "openai-community/gpt2" # если нужен GPT-2 community версия
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
context = """
Университет Иннополис был основан в 2012 году. Это современный вуз в России,
специализирующийся на IT и робототехнике, расположенный в городе Иннополис, Татарстан.
"""
def respond(message, history=None):
if history is None:
history = []
# Формируем промпт — контекст + вопрос + "Ответ:"
prompt = (
f"Контекст: {context}\n"
f"Вопрос: {message}\n"
"Ответ:"
)
inputs = tokenizer(prompt, return_tensors="pt").to(device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=100,
do_sample=False,
eos_token_id=tokenizer.eos_token_id, # Может отсутствовать у GPT-2, можно убрать
pad_token_id=tokenizer.eos_token_id, # Чтобы избежать warning
)
# Декодируем срез outputs после длины входа — берем только сгенерированное продолжение
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
answer = generated_text[len(prompt):].strip()
history.append((message, answer))
return history
iface = gr.ChatInterface(fn=respond, title="Innopolis Q&A (GPT-2)")
iface.launch()
|