Downloads · 30 days
10
1% of all-time downloads
SiberiaSoft/SiberianPersonaFred_large
SiberianPersonaFred_large 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
10
1% of all-time downloads
All-time downloads
1.8K
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
Данная модель предназначена для имитации личности в диалоге. Подробнее тут
Большая модель: ссылка
Также в промпт можно подставлять факты о личности: ФИО, возраст и т.д
Статья на 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_large")
t5_model = transformers.T5ForConditionalGeneration.from_pretrained("SiberiaSoft/SiberianPersonaFred_large")
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)