/ Модель

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

Контекст
512 токенов
Параметры
212 млн
Лицензия
Apache 2.0
Архитектура
deberta-v2 · dense
Базовая модель
deberta-v3-base
Опубликована
12 сен 2024

character-slop-classifier

Классификация текстаТекст → label3 профессии

Англоязычный классификатор выявляет шаблонные, низкокачественные описания ИИ-персонажей для ролевых игр.

17скачиваний за 30 дней9лайковвеса обновлены17 сен 2024

Бенчмарки

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

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

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

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

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

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

Slop Classifier for Roleplay Characters — англоязычный классификатор проекта CharGen для выявления низкокачественных персонажей для ролевых игр, созданных с помощью ИИ. Он обучен на синтетических персонажах, сгенерированных GPT-3.5 и GPT-4, а также на части набора данных CharGen.

Модель анализирует текст описания персонажа и предназначена для фильтрации шаблонных формулировок и избитых выражений, характерных для машинно созданных текстов. Это дообученная DeBERTa-v3-base для классификации последовательностей с 211,6 млн параметров и контекстом до 512 токенов. Репозиторий содержит веса в формате safetensors.

Модель ориентирована на английский язык и персонажей для ролевых игр. Лицензия — Apache-2.0. Карточка не приводит метрики качества или подробности о классах и пороге классификации.

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

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

Ограничения

Ограничена английскими текстами и контекстом до 512 токенов. В карточке не приведены метрики качества, подробности о классах классификации или пороге принятия решения.

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

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

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

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

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

Открыть на Hugging Face

Slop Classifier for Roleplay Characters

This model can detect characters that are created using AI.

Part of CharGen project - it is used to detect and filter out low-effort, LLM-made characters intended for role playing.

Slop refers to over-used phrases that models like GPT3.5 like to use very much and that do not add any value to the text. "Shivers down her spine", "enigma wrapped in mystery", "half-lidded eyes", etc. Classifier is trained on set of synthetic characters generated with GPT3.5 and GPT4, and a subset of CharGen dataset.

Usage

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
from litserve import LitAPI, LitServer

MODEL_NAME = "kubernetes-bad/character-slop-classifier"

class CHARLitAPI(LitAPI):
    def setup(self, device):
        self.tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
        self.model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME)
        self.model.to(device)
        self.model.eval()

    def decode_request(self, request):
        if "text" in request:
            inputs = self.tokenizer(request["text"], return_tensors="pt", padding=True, truncation=True, max_length=512)
        elif "texts" in request:
            inputs = self.tokenizer(request["texts"], return_tensors="pt", padding=True, truncation=True, max_length=512)
        else:
            raise ValueError("Invalid request format. Expected 'text' or 'texts' field.")
        return inputs

    def predict(self, inputs):
        with torch.no_grad():
            inputs = {k: v.to(self.model.device) for k, v in inputs.items()}
            outputs = self.model(**inputs)
        return outputs.logits

    def encode_response(self, logits):
        probabilities = torch.nn.functional.softmax(logits, dim=-1)
        if probabilities.shape[0] == 1:
            response = {
                "positive": probabilities[:, 1].item(),
                "negative": probabilities[:, 0].item()
            }
        else:
            response = [
                {
                    "positive": prob[1].item(),
                    "negative": prob[0].item()
                }
                for prob in probabilities
            ]
        return response


if __name__ == "__main__":
    api = CHARLitAPI()
    server = LitServer(api, accelerator='cuda')
    server.run(port=9000)
curl --location 'http://localhost:9000/predict' \
--header 'Content-Type: application/json' \
--data '{
    "text": "Hermione, the seductive intellectual enchantress, is the secret sin of Hogwarts. Beneath her seemingly innocent scholarly facade lies a tantalizing world of forbidden desires. In the hallowed halls of the wizarding world, she conceals her lewd nature from her peers, maintaining a pristine reputation as the most brilliant witch of her age."
}'

Example response:

{
    "positive": 0.9975564479827881,
    "negative": 0.0024435613304376602
}

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

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

GPU в ailist

Универсальный рантайм · text-classification

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

Подбираем GPU…

Класс архитектуры
DebertaV2ForSequenceClassification
Ревизия весов
6dffb4b

0 моделей