/ Модель

Характеристики

Контекст
2 048 токенов
Размер весов
11,1 ГБ
Лицензия
MIT
Архитектура
phi-msft · dense
Библиотека
transformers
Опубликована
2 апр 2024

phi-2-persona-chat

Генерация текстаТекст → текст3 профессии

LoRA-дообучение Phi-2 для генерации англоязычных диалоговых ответов с учётом заданных фактов о персоне.

27скачиваний за 30 дней5лайковвеса обновлены2 апр 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Phi 2 Persona-Chat — языковая модель на архитектуре Phi-2, созданная nazlicanto и дообученная методом LoRA на наборе nazlicanto/persona-based-chat. Набор содержит более 64 тысяч диалогов между двумя персонами с заданными фактами о них; при обучении целевыми ответами служили ответы reference. Репозиторий содержит веса в формате safetensors, а базовая модель использует контекст до 2048 токенов.

Модель предназначена для генерации ответов в диалоге с учётом заданной персоны. Для работы рекомендуется включать в запрос факты о персоне и как минимум один предыдущий ход диалога. Поддерживаемый язык — английский. Лицензия — MIT.

Для запуска базовой Phi-2 требуется включить trust_remote_code=True. Результаты зависят от полноты фактов о персоне и контекста диалога; README не приводит оценки качества.

Сценарии применения

  • генерация ответов от лица заданной персоны
  • диалоговый чат-бот с заданной биографией персонажа
  • продолжение беседы с учётом предыдущего хода и фактов о собеседнике

Ограничения

Для работы базовой Phi-2 требуется trust_remote_code=True. Рекомендуется передавать факты о персоне и хотя бы один предыдущий ход диалога; в карточке не приведены количественные оценки качества.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Phi 2 Persona-Chat

Phi 2 Persona-Chat is a LoRA fine-tuned version of the base Phi 2 model using the nazlicanto/persona-based-chat dataset. This dataset consists of over 64k conversations between Persona A and Persona B, for which a list of persona facts are provided.

The model is trained using Supervised Fine-tuning Trainer using the reference responses as target outputs. For the training and inference code and the full list of dependencies, you can refer to the Github repo.

Running the Model

Please note that, at the moment, trust_remote_code=True is required for running the Phi 2 model. For best results, use a prompt that includes the persona facts, followed by a minimum of one conversational turn.

from random import randrange

import torch
from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForCausalLM


prompt = f"""
Person B has the following Persona information.

Persona of Person B: My name is David and I'm a 35 year old math teacher.
Persona of Person B: I like to hike and spend time in the nature.
Persona of Person B: I'm married with two kids.

Instruct: Person A and Person B are now having a conversation.  Following the conversation below, write a response that Person B would say base on the above Persona information. Please carefully consider the flow and context of the conversation below, and use the Person B's Persona information appropriately to generate a response that you think are the most appropriate replying for Person B.

Persona A: Morning! I think I saw you at the parent meeting, what's your name?

Output:
"""

# load base LLM model, LoRA params and tokenizer
model = AutoModelForCausalLM.from_pretrained("nazlicanto/phi-2-persona-chat", trust_remote_code=True)
model.to("cuda")

tokenizer = AutoTokenizer.from_pretrained("nazlicanto/phi-2-persona-chat", trust_remote_code=True)

# tokenize input prompt
input_ids = tokenizer(prompt, return_tensors="pt", truncation=True).input_ids.cuda()

# inference
with torch.inference_mode():
    outputs = model.generate(
        input_ids=input_ids, 
        max_new_tokens=50, 
        do_sample=True, 
        top_p=0.1,
        temperature=0.7
    )

# decode output tokens
outputs = outputs.detach().cpu().numpy()
outputs = tokenizer.batch_decode(outputs, skip_special_tokens=True)
output = outputs[0][len(prompt):]
print(output)

This model is trained by nazlicanto and adirik.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
PhiForCausalLM
Ревизия весов
fbef05e

0 моделей