Отличаются ли диалоги, написанные людьми, от сгенерированных ChatGPT?

Sep 26, 2023 11:12


Продолжаю погружение в TDA, а именно в тему "Artificial Text Detection" через расчеты топологических метрик.

После стихов появилась мысль попробовать применить эти топологические инструменты к диалогам.

В последний год массовой практикой стала генерация диалогов через апишку OpenAI и обучение моделей чатботов (и даже базовых моделей - см. статью Read more... )

диалоги, chatgpt

Leave a comment

Comments 9

p2004r September 26 2023, 19:41:51 UTC
Так а массивы самих эмбедингов готовые где взять посмотреть?

Reply

kelijah September 27 2023, 13:00:19 UTC
А нету их, получаются на лету из текстов. Берем энкодерную модельку (я брал ruRoberta), прогоняем текст, получаем список 1024-мерных векторов по токенам:

```
def embed_text(text):
encoded_input = tokenizer(['[CLS]'+preprocess_text(text)+'[SEP]'], padding=True, truncation=True, max_length=512, return_tensors='pt').to('cuda')

with torch.no_grad():
model_output = model(**encoded_input)

token_embeddings = model_output[0]

# We omit the first and last tokens ( and )
return token_embeddings[0, :, :].detach().cpu().numpy()[1:-1]
```

прогоняем через расчет размерности и благополучно забываем.

Reply

p2004r September 30 2023, 07:31:27 UTC

Как я понял оно сохраняет возможность прогнать словарь модели на конкретном тексте

# Выполняем предобработку текста
tokenizer = AutoTokenizer.from_pretrained(
'SkolkovoInstitute/russian_toxicity_classifier')

def tokenize_function(examples):
return tokenizer(examples['text'], padding='max_length', truncation=True)

tokenized_train = train.map(tokenize_function)

Пока непонятно что там внутри упакованной модели. Серилиаризованный кусок памяти с объектами что ли???

Reply

kelijah October 1 2023, 06:53:06 UTC
Там веса модели, т.е. матрицы, векторы и прочее. Плюс конфиги в виде json-файлов и т.д.

Можно увидеть все эти файлы тут https://huggingface.co/s-nlp/russian_toxicity_classifier/tree/main

Или скачать их локально через git clone https://huggingface.co/s-nlp/russian_toxicity_classifier

Reply


infist_xxi September 27 2023, 07:59:53 UTC

Очень интересный подход.

А так ведь можно посчитать "топологическую подпись" автора, наверное?

PS Особенно интересно на фоне сравнения с размерностью стихов - получается человек выбирает более заковыристые метафоры в стихах, но при этом в обычном диалоге машина оказывается разнообразнее?

Reply

kelijah September 27 2023, 12:57:03 UTC
>но при этом в обычном диалоге машина оказывается разнообразнее?

Тоже подумал о таком, но надо перепроверять, конечно.

Reply


imageman72 October 5 2023, 14:40:12 UTC
Ну и раз пошел в эту сторону, то не хочешь ли прогнать через алгоритмы детектирования аномалий (новизны)? Изолирующий лес, к примеру.

Reply

kelijah October 6 2023, 16:58:53 UTC
Хм, изолирующий лес поверх эмбеддингов... Можно будет при случае попробовать, да.

Reply


Leave a comment

Up