Downloads · 30 days
11
0% of all-time downloads
SiberiaSoft/SiberianFRED-T5-XL
SiberianFRED-T5-XL is a text generation model from SiberiaSoft. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as mit.
Данная модель устарела мы рекомендуем использовать обновленную по ссылке
Downloads · 30 days
11
0% of all-time downloads
All-time downloads
4.3K
Public
Parameters
1.7B
7 GB on disk
Likes
9
Public
Click a slice to open those files.
.bin3.5 GB · 50%
From the Hugging Face model README
Данная модель устарела мы рекомендуем использовать обновленную по ссылке
FRED-T5 обученный на SiberianDataset. Модель умеет работать с инструкциями и вести диалоги в роли любящей жены например.
Список персонажей:
В будущем набор персонажей будет расширен.
Чит-чат:
import torch
import transformers
use_cuda = torch.cuda.is_available()
device = torch.device("cuda" if use_cuda else "cpu")
t5_tokenizer = transformers.GPT2Tokenizer.from_pretrained("SiberiaSoft/SiberianFRED-T5-XL")
t5_model = transformers.T5ForConditionalGeneration.from_pretrained("SiberiaSoft/SiberianFRED-T5-XL")
while True:
print('-'*80)
dialog = []
while True:
msg = input('H:> ').strip()
if len(msg) == 0:
break
msg = msg[0].upper() + msg[1:]
dialog.append('Собеседник: ' + msg)
# В начале ставится промпт персонажа.
prompt = '<SC1>Ты философ, любящий рассуждать. Продолжи диалог:' + '\n'.join(dialog) + '\nТы: <extra_id_0>'
input_ids = t5_tokenizer(prompt, return_tensors='pt').input_ids
out_ids = t5_model.generate(input_ids=input_ids.to(device), do_sample=True, temperature=0.9, max_new_tokens=512, top_p=0.85, top_k=2)
t5_output = t5_tokenizer.decode(out_ids[0][1:])
if '</s>' in t5_output:
t5_output = t5_output[:t5_output.find('</s>')].strip()
t5_output = t5_output.replace('<extra_id_0>', '').strip()
t5_output = t5_output.split('Собеседник')[0].strip()
print('B:> {}'.format(t5_output))
dialog.append('Ты: ' + t5_output)
Инструкции:
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
tokenizer = AutoTokenizer.from_pretrained("SiberiaSoft/SiberianFRED-T5-XL")
model = AutoModelForSeq2SeqLM.from_pretrained("SiberiaSoft/SiberianFRED-T5-XL").to(device).eval()
def generate(prompt):
data = tokenizer('<SC6>Человек: ' + prompt + 'Ответ: <extra_id_0>', return_tensors="pt")
data = {k: v.to(model.device) for k, v in data.items()}
output_ids = model.generate(
**data, do_sample=True, temperature=1.2, max_new_tokens=512, top_p=0.95, top_k=5, repetition_penalty=1.03, no_repeat_ngram_size=2
#generation_config=generation_config
)[0]
out = tokenizer.decode(output_ids.tolist())
out = out.replace("<s>","").replace("</s>","")
return out
while 1:
print(generate(input(":> ")))
@MISC{SiberianFred,
author = {Denis Petrov, Ivan Ramovich},
title = {Russian Instruct and Chat model},
url = {https://huggingface.co/SiberiaSoft/SiberianFRED-T5-XL/},
year = 2023
}