/ Модель

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

Библиотека
sentence-transformers
Опубликована
25 сен 2024

CmdCaliper-base

ЭмбеддингиТекст → embedding3 профессии

Модель CyCraft AI Lab для построения эмбеддингов Windows-команд и поиска семантически похожих команд в задачах безопасности.

1 341скачиваний за 30 дней2лайкавеса обновлены6 ноя 2024

Бенчмарки

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

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

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

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

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

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

CmdCaliper-base — модель эмбеддингов командной строки, разработанная CyCraft AI Lab. Она предназначена для представления Windows-команд в виде векторов, отражающих их смысл, и для поиска семантически похожих команд в задачах исследования безопасности. Модель входит в семейство CmdCaliper из трёх вариантов размера; авторы сообщают, что семейство показывает сильные результаты на специализированных задачах сопоставления команд.

Модель принимает текст команд и выдаёт эмбеддинги для сравнения их семантической близости. Она доступна через Sentence Transformers и Transformers. Длинный текст обрезается до 512 токенов. Модель ориентирована исключительно на командные строки Windows; сведения о лицензии в предоставленных материалах отсутствуют.

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

  • поиск семантически похожих команд Windows
  • сопоставление командных строк по смыслу
  • поиск команд в наборах данных для исследования безопасности

Ограничения

Модель ориентирована только на командные строки Windows; входные тексты длиннее 512 токенов обрезаются. Лицензия в предоставленных материалах не указана.

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

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

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

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

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

Открыть на Hugging Face

CmdCaliper-base

[Dataset] [Code] [Paper]

The CmdCaliper models are the first embedding models specifically designed for command-line embeddings, developed by CyCraft AI Lab. Our evaluation results demonstrate that even the smallest version of CmdCaliper, with approximately 30 million parameters, can outperform state-of-the-art sentence embedding models that have over 10 times more parameters (335 million) across various command-line-specific tasks.

CmdCaliper offers three models of different sizes: CmdCaliper-large, CmdCaliper-base, and CmdCaliper-small. This provides flexible options to accommodate various hardware resource constraints.

CmdCaliper was introduced in the EMNLP 2024 paper titled "CmdCaliper: A Semantic-Aware Command-Line Embedding Model and Dataset for Security Research".

Metric

MethodsModel ParametersMRR @3MRR @10Top @3Top @10
Levenshtein distance-71.2372.4574.9981.83
Word2Vec-45.8346.9348.4954.86
E5-smallSmall (0.03B)81.5982.684.9790.59
GTE-smallSmall (0.03B)82.3583.2885.3990.84
CmdCaliper-smallSmall (0.03B)86.8187.7889.2194.76
BGE-en-baseBase (0.11B)79.4980.4182.3387.39
E5-baseBase (0.11B)83.1684.0786.1491.56
GTR-baseBase (0.11B)81.5582.5184.5490.1
GTE-baseBase (0.11B)78.279.0781.2286.14
CmdCaliper-baseBase (0.11B)87.5688.4790.2795.26
BGE-en-largeLarge (0.34B)84.1184.9286.6491.09
E5-largeLarge (0.34B)84.1285.0487.3292.59
GTR-largeLarge (0.34B)88.0988.6891.2794.58
GTE-largeLarge (0.34B)84.2685.0387.1491.41
CmdCaliper-largeLarge (0.34B)89.1289.9191.4595.65

Usage

HuggingFace Transformers

import torch.nn.functional as F
from torch import Tensor
from transformers import AutoTokenizer, AutoModel

def average_pool(last_hidden_states: Tensor,
                 attention_mask: Tensor) -> Tensor:
    last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
    return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]

input_texts = [
    'cronjob schedule daily 00:00 ./program.exe',
    'schtasks /create /tn "TaskName" /tr "C:\program.exe" /sc daily /st 00:00',
    'xcopy C:\Program Files (x86) E:\Program Files /E /H /K /O /X'
]

tokenizer = AutoTokenizer.from_pretrained("CyCraftAI/CmdCaliper-base")
model = AutoModel.from_pretrained("CyCraftAI/CmdCaliper-base")

# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')

outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])

# (Optionally) normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:1] @ embeddings[1:].T) * 100
print(scores.tolist())

Sentence Transformers

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("CyCraftAI/CmdCaliper-base")
# Run inference
sentences = [
    'cronjob schedule daily 00:00 ./program.exe',
    'schtasks /create /tn "TaskName" /tr "C:\program.exe" /sc daily /st 00:00',
    'xcopy C:\Program Files (x86) E:\Program Files /E /H /K /O /X'
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Limitation

This model focuses exclusively on Windows command lines. Additionally, any lengthy texts will be truncated to a maximum of 512 tokens.

Citation

@inproceedings{huang2024cmdcaliper,
  title={CmdCaliper: A Semantic-Aware Command-Line Embedding Model and Dataset for Security Research},
  author={SianYao Huang, ChengLin Yang, CheYu Lin, and ChunYing Huang},
  booktitle={Proceedings of the 2024 Conference on Empirical Methods in Natural Language Processing,
  year={2024}
} 

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

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

GPU в ailist

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

Нельзя запустить

Доступ к модели ограничен автором; у платформы нет доступа к весам.

Ревизия весов
ea7539a

0 моделей