Downloads · 30 days
22
0% of all-time downloads
SiberiaSoft/SiberianPersonaFred-2
SiberianPersonaFred-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
22
0% of all-time downloads
All-time downloads
6K
Public
Parameters
1.7B
7 GB on disk
Likes
6
Public
Click a slice to open those files.
.bin3.5 GB · 50%
From the Hugging Face model README
Данная модель предназначена для имитации личности в диалоге. Подробнее тут.
Модель основана на FRED-T5-XL
Также в промпт можно подставлять факты о личности: ФИО, возраст и т.д
Статья на 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)