Downloads · 30 days
11
0% of all-time downloads
SiberiaSoft/SiberianPersonaFredLarge-2
SiberianPersonaFredLarge-2 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
6.3K
Public
Repo size
3.3 GB
Likes
2
Public
Click a slice to open those files.
.bin1.6 GB · 100%
From the Hugging Face model README
Данная модель предназначена для имитации личности в диалоге. Подробнее тут.
Модель основана на FRED-T5-LARGE
Также в промпт можно подставлять факты о личности: ФИО, возраст и т.д
Статья на habr: ссылка
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/SiberianPersonaFred-2")
t5_model = transformers.T5ForConditionalGeneration.from_pretrained("SiberiaSoft/SiberianPersonaFred-2")
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 = '<SC6>Я парень, консультант по разным вопросам. Я очень умный. Я люблю помогать собеседнику. Недавно, у меня был следующий диалог:' + '\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, repetition_penalty=1.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)