/ Модель

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

Контекст
1 024 токена
Лицензия
CC BY 4.0
Архитектура
gpt2 · dense
Опубликована
2 мар 2022

gpt2chatbotenglish

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

Англоязычный чат-бот на GPT-2 Small, который ведёт ролевые диалоги в образах персонажей кино.

122скачиваний за 30 дней17лайковвеса обновлены3 авг 2023

Бенчмарки

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

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

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

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

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

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

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

gorkemgoknar разработал GPT2 Persona Chatbot — англоязычный разговорный чат-бот на основе GPT-2 Small, обученный на киносценариях, преимущественно научно-фантастических. Он генерирует реплики в образах персонажей из фильмов: в README приведены, среди прочих, Нео, Морфеус, Питер Паркер и Спок. Имя выбранного персонажа задаётся в формате «My name is XXXX».

Модель предназначена для экспериментальных диалогов и ролевых бесед в стиле перечисленных персонажей. Это плотная авторегрессионная языковая модель с архитектурой GPT2LMHeadModel и контекстом до 1024 токенов. Репозиторий содержит веса PyTorch; автор отмечает, что стандартный интерфейс Hugging Face не подходит для этой модели, и направляет к демонстрации в HF Spaces и собственному способу вызова.

Модель ориентирована на английский язык и диалоги по мотивам кино; README также упоминает отдельную турецкую версию с ограниченным обучением. Качество реплик может зависеть от персонажа и обучающих сценариев, а переносить ответы на факты вне этого материала не следует. Лицензия — CC BY 4.0.

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

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

Ограничения

Контекст ограничен 1024 токенами; стандартный интерфейс Hugging Face для этой модели не подходит, поэтому требуется собственная обёртка или способ вызова из README. Обучение преимущественно на научно-фантастических киносценариях может ограничивать тематический охват и достоверность ответов.

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

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

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

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

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

Открыть на Hugging Face

GPT2 Persona Chatbot based on Movie Characters

Model used for https://www.metayazar.com/chatbot

GPT2 Small Trained on movie scripts (especially Sci-fi)

Usual HF api will not work see HF Spaces for demo usage https://huggingface.co/spaces/gorkemgoknar/moviechatbot

This work is based on Persona Chatbot originally done by Hugging Face team (https://medium.com/huggingface/how-to-build-a-state-of-the-art-conversational-ai-with-transfer-learning-2d818ac26313)

For cleaning movie scripts I also provide cleaner code https://github.com/gorkemgoknar/moviescriptcleaner

Example persona how to: https://gist.github.com/gorkemgoknar/ae29bf9d14fa814e6a64d0e57a4a4ed7

Tried a AI job interview over some characters here, details on this post https://www.linkedin.com/pulse/ai-goes-job-interview-g%C3%B6rkem-g%C3%B6knar/

For obvious reasons I cannot share raw personafile but you can check above gist for example how to create it.

A working "full" demo can be seen in https://www.metayazar.com/chatbot

For Turkish version (with limited training) https://www.metayazar.com/chatbot_tr

Due to double LM head standart hugging face interface will not work. But if you follow huggingface tutorial should be same. Except each persona is encoded as "My name is XXXX"

Use model, tokenizer and parameters within a class and call in below functions to trigger model. Some of the available personas:

| Macleod | Moran | Brenda | Ramirez | Peter Parker | Quentin Beck | Andy | Red | Norton | Willard | Chief | Chef | Kilgore | Kurtz | Westley | Buttercup | Vizzini | Fezzik | Inigo | Man In Black | Taylor | Zira | Zaius | Cornelius | Bud | Lindsey | Hippy | Erin | Ed | George | Donna | Trinity | Agent Smith | Morpheus | Neo | Tank | Meryl | Truman | Marlon | Christof | Stromboli | Bumstead | Schreber | Walker | Korben | Cornelius | Loc Rhod | Anakin | Obi-Wan | Palpatine | Padme | Superman | Luthor | Dude | Walter | Donny | Maude | General | Starkiller | Indiana | Willie | Short Round | John | Sarah | Terminator | Miller | Sarge | Reiben | Jackson | Upham | Chuckie | Will | Lambeau | Sean | Skylar | Saavik | Spock | Kirk | Bones | Khan | Kirk | Spock | Sybok | Scotty | Bourne | Pamela | Abbott

    def get_answer(self, input_text, personality, history, params=None):
        
        ##Check length of history (to save 1 computation!)
        if len(history)>0:
            #mostly it will be empty list so need a length check for performance
            #would do string check also but just assume it is list of list of strings, as not public
            
            new_hist = [] 
            for ele in history:
                new_hist.append( self.tokenizer.encode(ele) )
            history = new_hist.copy()

        history.append(self.tokenizer.encode(input_text))

        with torch.no_grad():
            out_ids = self.sample_sequence(personality, history, self.tokenizer, self.model, params=params)
        history.append(out_ids)
        history = history[-(2*self.parameters['max_history']+1):]
        out_text = self.tokenizer.decode(out_ids, skip_special_tokens=True)
        #print(out_text)


        history_decoded = []
        for ele in history:
            history_decoded.append(self.tokenizer.decode(ele))

        return out_text, history_decoded, self.parameters

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

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

GPU в ailist

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

Можно запустить

Подбираем GPU…

Класс архитектуры
GPT2LMHeadModel
Ревизия весов
6251a47

0 моделей