/ Модель

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

Контекст
1 024 токена
Архитектура
gpt2 · dense
Опубликована
15 июн 2023

passgpt-10characters

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

Модель PassGPT генерирует пароли, используя закономерности, усвоенные из паролей утечки RockYou.

709скачиваний за 30 дней5лайковвеса обновлены20 июл 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PassGPT — авторегрессионная языковая модель для генерации паролей, разработанная Javi Randor и представленная в исследовательской статье. Эта версия обучена с нуля на паролях из утечки RockYou после фильтрации строк длиной более 10 символов; словарь сокращён до наиболее значимых символов, а обучение немного оптимизировано по сравнению с вариантом из статьи.

Модель использует архитектуру GPT2LMHeadModel и токенизатор, который кодирует каждый символ пароля отдельным токеном. Контекст составляет 1024 токена. Модель предназначена для генерации паролей и исследований их структуры; обучение на утёкших паролях ограничивает её пригодность для оценки безопасности реальных паролей. Репозиторий содержит веса PyTorch и Safetensors. Условия лицензии в предоставленных данных не описаны.

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

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

Ограничения

Обучена на паролях из утечки RockYou с ограничением длины до 10 символов, поэтому распределение генераций отражает этот набор данных и не гарантирует безопасность паролей. Условия лицензии в предоставленных материалах не указаны.

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

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

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

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

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

Открыть на Hugging Face

PassGPT

PassGPT is a causal language model trained on password leaks. It was first introduced in this paper. This version of the model was trained on passwords from the RockYou leak, after filtering those that were at most 10 characters long. If you need access to PassGPT trained on passwords up to 16 characters long, you can apply here.

This is a curated version of the model reported in the paper. Vocabulary size was reduced to the most meaningful characters and training was slightly optimized. Results are slightly better with these architectures.

Usage and License Notices

License PassGPT is intended and licensed for research use only. The model and code are CC BY NC 4.0 (allowing only non-commercial use) and should not be used outside of research purposes. This model should never be used to attack real systems.

Model description

The model inherits the GPT2LMHeadModel architecture and implements a custom BertTokenizer that encodes each character in a password as a single token, avoiding merges. It was trained from a random initialization, and the code for training can be found in the official repository.

Password Generation

Passwords can be sampled from the model using the built-in generation methods provided by HuggingFace and using the "start of password token" as seed (i.e. <s>). This code can be used to generate one password with PassGPT.

from transformers import GPT2LMHeadModel
from transformers import RobertaTokenizerFast

tokenizer = RobertaTokenizerFast.from_pretrained("javirandor/passgpt-10characters",
                                                  max_len=12,
                                                  padding="max_length", 
                                                  truncation=True,
                                                  do_lower_case=False,
                                                  strip_accents=False,
                                                  mask_token="<mask>",
                                                  unk_token="<unk>",
                                                  pad_token="<pad>",
                                                  truncation_side="right")

model = GPT2LMHeadModel.from_pretrained("javirandor/passgpt-10characters").eval()

NUM_GENERATIONS = 1

# Generate passwords sampling from the beginning of password token
g = model.generate(torch.tensor([[tokenizer.bos_token_id]]),
                  do_sample=True,
                  num_return_sequences=NUM_GENERATIONS,
                  max_length=12,
                  pad_token_id=tokenizer.pad_token_id,
                  bad_words_ids=[[tokenizer.bos_token_id]])

# Remove start of sentence token
g = g[:, 1:]

decoded = tokenizer.batch_decode(g.tolist())
decoded_clean = [i.split("</s>")[0] for i in decoded] # Get content before end of password token

# Print your sampled passwords!
print(decoded_clean)

You can find a more flexible script for sampling here.

Cite our work

@article{rando2023passgpt,
  title={PassGPT: Password Modeling and (Guided) Generation with Large Language Models},
  author={Rando, Javier and Perez-Cruz, Fernando and Hitaj, Briland},
  journal={arXiv preprint arXiv:2306.01545},
  year={2023}
}

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей