s_erotic_chat / README.md
zlsl's picture
Update README.md
c44b90c verified
metadata
license: cc-by-nc-sa-4.0
language:
  - ru
library_name: transformers
tags:
  - chat
  - porn
  - sex
  - erotic
  - roleplay
widget:
  - text: Офигеть
  - text: Ой, что это
  - text: Ложись
  - text: Отвали
  - text: Мяу!
  - text: В душев
  - text: Тентакли
pipeline_tag: text-generation

Small модель для эротического ролеплея.

К удивлению, работает приемлемо, чуть хуже medium модели, со своим "шармом", параметры для старта:

do_sample: true
top_p: 0.9
top_k: 20
temperature: 0.7 # При высоких значениях также работает неплохо
repetition_penalty: 1.15
encoder_repetition_penalty: 1.0-1.15
typical_p: 1.0

Оптимизированный фронтенд для данных моделей в режиме чата под Android - https://github.com/zlsl/pocketai

Для чата желательно останавливать после '\n', также ставьте более 5 попыток генерации и ожидаемое количество новых токенов > 350, тогда диалоги будут интереснее.

Очень желательно в контексте и во время диалога указывать действия и мысли в скобках. Например: Привет (вхожу в комнату, закрываю дверь)

Важно! В модели добавлен токен <char>, он указывает начало строки диалога, прямой речи:

Абзац ... контекста
Я: <char> (мысли, действия и прочее) Реплика персонажа (еще мысли, контекст)
Собеседник: <char> (мысли, действия и прочее) Реплика персонажа (еще мысли, контекст)

Также хорошие результаты в другом формате диалогов:

Абзац ... контекста
Я: <char> (мысли, действия и прочее) Реплика персонажа (еще мысли, контекст)
Еще действия, описание окружения.
Собеседник: <char> (мысли, действия и прочее) Реплика персонажа (еще мысли, контекст)
Еще действия, описание окружения.

Новый токен желательно использовать, но не обязательно. Также указывать имена персонажей - опционально.

Модель с удовольствием может "в мультичар", количество собеседников может быть более двух.

Для пользователей text-generation-webui

В инструменте поломана работа с GPT-2, GPTJ, GPT-NEO и аналогичными модлями, неверно загружается токенизер. Ошибка такая:

eos_token_id = eos_token_id[0] IndexError: list index out of range

Исправляется легко, в файл modules/models.py в функцию load_tokenizer() надо добавить строчку
tokenizer.eos_token_id = 2
перед
return tokenizer