/ Модель

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

Контекст
512 токенов
Параметры
137 млн
Архитектура
bert · dense
Базовая модель
bert-base-uncased
Библиотека
transformers
Опубликована
27 мая 2024

SQLPromptShield

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

SQLPromptShield — дообученная BERT-модель для выявления потенциально уязвимых запросов на естественном языке в приложениях Text-to-SQL.

23скачиваний за 30 дней0лайковвеса обновлены10 июл 2025

Бенчмарки

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

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

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

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

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

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

SQLPromptShield — модель классификации текста, разработанная salmane11 на основе google-bert/bert-base-uncased и дообученная на наборе SQLShield. Она относит запросы на естественном языке для преобразования в SQL к уязвимым или безопасным.

Модель предназначена для предварительной фильтрации NLQ в приложениях с интерфейсом к базам данных: она помогает выявлять потенциально вредоносные запросы до передачи их генератору SQL или базе данных. Архитектура — BERT для классификации последовательностей; в метаданных указано 136,7 млн параметров и контекст 512 токенов. При обучении использовались только тексты NLQ, с ограничением длины до 128 токенов. Указанный язык — английский.

Фильтр может быть полезен как один из уровней защиты, но его метка не заменяет проверку сгенерированного SQL и защиту базы данных. Качество зависит от соответствия входных запросов данным SQLShield; сведения о лицензии в предоставленных данных отсутствуют.

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

  • фильтрация вредоносных NLQ перед генерацией SQL
  • проверка пользовательских запросов в интерфейсе к базе данных
  • классификация запросов Text-to-SQL как безопасных или уязвимых

Ограничения

Модель классифицирует только текст естественного языкового запроса, а не соответствующий SQL; её вывод не заменяет проверку SQL и другие меры защиты. При обучении длина входа ограничивалась 128 токенами, поэтому более длинные запросы могут обрезаться.

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

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

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

Также подходит для

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

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

Открыть на Hugging Face

SQLPromptShield

Model Description

SQLPromptShield is a vulnerable prompt detection model. It classifies text-to-SQL prompts as either vulnerable or benign.

The checkpoint included in this repository is based on google-bert/bert-base-uncased and further finetuned on SQLShield, a dataset dedicated to text-to-SQL vulnerability detection composed of vulnerable and safe NLQs and their related SQL queries.

Finetuning Procedure

The model was fine-tuned using the Hugging Face Transformers library. The following steps were used:

  1. Dataset: SQLShield dataset, which consists of labeled pairs of (natural language query, SQL query) with binary classification labels: vulnerable or benign.

  2. Preprocessing:

    • Input Format: Only the natural language query (NLQ) was used as input for classification.

    • Tokenization: Tokenized using bert-base-uncased tokenizer.

    • Max Length: 128 tokens.

    • Padding and truncation applied.

Intended Use and Limitations

SQLPromptShield is intended to be used as a pre-processing filter in applications where natural language queries are converted to SQL. Its main goal is to detect potentially malicious or unsafe inputs before they are passed to SQL generation models or database systems.

Ideal use cases : Natural language interfaces for databases (Text-to-SQL integrated applications)

How to Use

Example 1: Malicious

from transformers import pipeline

sql_prompt_shield = pipeline("text-classification", model="salmane11/SQLPromptShield")

# For the following Table schema
# CREATE TABLE campuses
#   (
#      campus   VARCHAR,
#      location VARCHAR
#   )

input_text = "What are the names of all campuses located at ' UNION SELECT database() #?"

# Text-to-SQL models will generate : SELECT campus FROM campuses WHERE LOCATION = '' UNION SELECT database() #'
# This query when executed will display the database sensitive information like db name and DBMS version

predicted_label = sql_prompt_shield(input_text)
print(predicted_label)
#[{'label': 'MALICIOUS', 'score': 0.9995930790901184}]

Example 2: Safe

from transformers import pipeline

sql_prompt_shield = pipeline("text-classification", model="salmane11/SQLPromptShield")

# For the following Table schema
# CREATE TABLE tv_channel
#   (
#      package_option VARCHAR,
#      series_name    VARCHAR
#   ) 

input_text = "What is the Package Option of TV Channel with serial name 'Sky Radio'?"

# Text-to-SQL models will generate : SELECT Package_Option FROM TV_Channel WHERE series_name = "Sky Radio"
# Which is a safe query.

predicted_label = sql_prompt_shield(input_text)
print(predicted_label)
#[{'label': 'SAFE', 'score': 0.998808741569519}]

Cite our work

Citation

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
BertForSequenceClassification
Ревизия весов
693c0e0

0 моделей