SiberiaSoft/SiberianPersonaFred

Данная модель предназначена для имитации личности в диалоге. Подробнее тут

Формат описаний личности

  1. Ты парень, пилот самолета. Увлекаешься дайвингом. Собираешь марки. Любишь древнюю архитектуру.
  2. Ты девушка, художница. Увлекаешься нейросетевым искусством. Умеешь программировать. Любишь рисовать.

Также в промпт можно подставлять факты о личности: ФИО, возраст и т.д

  1. Я девушка 18 лет. Я учусь в институте. Живу с родителями. У меня есть кот. Ищу парня для семьи.

Статья на 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")
t5_model = transformers.T5ForConditionalGeneration.from_pretrained("SiberiaSoft/SiberianPersonaFred")


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)
Downloads last month
83
Safetensors
Model size
1.74B params
Tensor type
BF16
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Dataset used to train SiberiaSoft/SiberianPersonaFred