/ Модель

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

Контекст
514 токенов
Параметры
152 млн
Лицензия
MIT
Архитектура
roberta · dense
Базовая модель
codebert-base
Библиотека
transformers
Опубликована
2 мар 2025

codebert-devign-code-vulnerability-detector

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

Дообученная CodeBERT классифицирует код C и C++ как безопасный или потенциально уязвимый для автоматизированного анализа безопасности.

91скачиваний за 30 дней1лайквеса обновлены2 мар 2025

Бенчмарки

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

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

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

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

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

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

Модель Мукита Махдина — дообученная версия microsoft/codebert-base для классификации фрагментов кода на безопасные и потенциально уязвимые. Она основана на RoBERTa, содержит 151,8 млн параметров и принимает последовательности длиной до 514 токенов.

Модель предназначена для поиска уязвимостей в коде C и C++ и может применяться при статическом анализе, проверках репозиториев, в плагинах IDE и конвейерах CI/CD. Результат классификации: безопасный код (0) или уязвимый (1). В качестве обучающего набора использовался DetectVul/devign.

В README приведена точность 64,09% на оценивании. Возможны ложные срабатывания и пропуски уязвимостей; обучение на ограниченном наборе данных может снижать качество на иных типах кода и языках программирования. Модель не заменяет экспертный аудит и другие средства анализа безопасности. Лицензия — MIT.

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

  • поиск потенциальных уязвимостей в коде C и C++
  • предварительная проверка репозитория перед аудитом безопасности
  • классификация фрагментов кода в статическом анализе
  • добавление проверки уязвимостей в конвейер CI/CD
  • подсказки о потенциальных проблемах безопасности в IDE

Ограничения

На наборе оценивания указана точность 64,09%; возможны ложные срабатывания и пропуски уязвимостей. Модель обучена преимущественно на коде C и C++ и не должна быть единственным средством проверки безопасности.

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

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

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

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

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

Открыть на Hugging Face

CodeBERT for Code Vulnerability Detection

Model Summary

This model is a fine-tuned version of microsoft/codebert-base, optimized for detecting vulnerabilities in code. It is trained on the DetectVul/devign dataset. The model takes in a code snippet and classifies it as either safe (0) or vulnerable (1).

Model Details

  • Developed by: Mukit Mahdin
  • Finetuned from: microsoft/codebert-base
  • Language(s): English (for code comments & metadata), C/C++
  • License: MIT
  • Task: Code vulnerability detection
  • Dataset Used: DetectVul/devign
  • Architecture: Transformer-based sequence classification

Uses

Direct Use

This model can be used for static code analysis, security audits, and automatic vulnerability detection in software repositories. It is useful for:

  • Developers: To analyze their code for potential security flaws.
  • Security Teams: To scan repositories for known vulnerabilities.
  • Researchers: To study vulnerability detection in AI-powered systems.

Downstream Use

This model can be integrated into IDE plugins, CI/CD pipelines, or security scanners to provide real-time vulnerability detection.

Out-of-Scope Use

  • The model is not meant to replace human security experts.
  • It may not generalize well to languages other than C/C++.
  • False positives/negatives may occur due to dataset limitations.

Bias, Risks, and Limitations

  • False Positives & False Negatives: The model may flag safe code as vulnerable or miss actual vulnerabilities.
  • Limited to C/C++: The model was trained on a dataset primarily composed of C and C++ code. It may not perform well on other languages.
  • Dataset Bias: The training data may not cover all possible vulnerabilities.

Recommendations

Users should not rely solely on the model for security assessments. Instead, it should be used alongside manual code review and static analysis tools.

How to Get Started with the Model

Use the code below to load the model and run inference on a sample code snippet:

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

# Load the fine-tuned model
tokenizer = AutoTokenizer.from_pretrained("microsoft/codebert-base")
model = AutoModelForSequenceClassification.from_pretrained("mahdin70/codebert-devign-code-vulnerability-detector")

# Sample code snippet
code_snippet = '''
void process(char *input) {
    char buffer[50];
    strcpy(buffer, input); // Potential buffer overflow
}
'''

# Tokenize the input
inputs = tokenizer(code_snippet, return_tensors="pt", truncation=True, padding="max_length", max_length=512)

# Run inference
with torch.no_grad():
    outputs = model(**inputs)
    predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
    predicted_label = torch.argmax(predictions, dim=1).item()

# Output the result
print("Vulnerable Code" if predicted_label == 1 else "Safe Code")

Training Details

Training Data

  • Dataset: DetectVul/devign
  • Classes: 0 (Safe), 1 (Vulnerable)
  • Size: 21800 Code Snippets

Training Procedure

  • Optimizer: AdamW
  • Loss Function: CrossEntropyLoss
  • Batch Size: 8
  • Learning Rate: 2e-05
  • Epochs: 3
  • Hardware Used: 2x T4 GPU

Metrics

MetricScore
Train Loss0.5898
Evaluation Loss0.6153
Accuracy64.09%
F1 Score46.42%
Precision73.78%
Recall33.86%

Environmental Impact

FactorValue
GPU UsedT4 GPU
Training Time~1 hour

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
RobertaForSequenceClassification
Ревизия весов
7c73292

0 моделей