Создание гибридной системы на основе правил и машинного обучения для обнаружения и защиты от попыток взлома в системах больших языковых моделей

В этом руководстве мы пошагово создаём систему защиты от взлома, которая позволяет обнаруживать и безопасно обрабатывать запросы, направленные на обход политик. Мы генерируем реалистичные примеры атак и доброкачественные примеры, создаём сигналы на основе правил и объединяем их с функциями TF-IDF в компактный интерпретируемый классификатор, чтобы ловить обходные запросы, не блокируя при этом легитимные запросы.

Этапы работы:

1. Генерация реалистичных примеров атак и доброкачественных примеров.
2. Создание сигналов на основе правил.
3. Объединение сигналов с функциями TF-IDF в компактный интерпретируемый классификатор.
4. Демонстрация метрик оценки, объяснение логики смешанной оценки рисков и предоставление защищённой оболочки, которая показывает, как интегрировать детектор перед любым конвейером LLM.

Используемые библиотеки:

  • `re` для работы с регулярными выражениями;

  • `random` для генерации случайных чисел;

  • `math` для математических операций;

  • `textwrap` для форматирования текста;

  • `json` для работы с JSON;

  • `numpy` и `pandas` для работы с массивами и таблицами;

  • `sklearn` для машинного обучения.

Определение шаблонов для обнаружения попыток взлома:

“`python
JAILBREAK_PATTERNS = [
r”bignore (all|previous|above) (instructions|rules)b”,
r”bas (dan|do anything now)b”,
r”bwithout (any )?(limits|restrictions|filter|guardrails)b”,
r”bbypass (the )?(safety|content|policy|filters?)b”,
r”b(jailbreak|override|exploit)b”,
r”bpretend to beb”,
r”bthis is (for|just) (a game|roleplay)b”,
r”b(opsec|blackhat|zero[- ]day|0day|malware)b”,
r”b(instructions|steps) to (hack|attack|poison)b”,
r”(^|s)system:s”,
]
“`

Определение доброкачественных шаблонов:

“`python
BENIGN_HOOKS = [
r”bresumeb”, r”bcvb”, r”brecipeb”, r”bmathb”, r”bexplainb”,
r”btranslateb”, r”bsummar(y|ise|ize)b”, r”bgrammarb”,
]
“`

Генерация синтетических данных:

“`python
def synthexamples(nattack=400, n_benign=600) -> Tuple[List[str], List[int]]:
# …
return X, y
“`

Создание класса для извлечения признаков на основе правил:

“`python
class RuleFeatures(BaseEstimator, TransformerMixin):
# …
def transform(self, X):
# …
return np.array(feats, dtype=float)
“`

Создание гибридной системы:

“`python
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import FeatureUnion

class TextSelector(BaseEstimator, TransformerMixin):
# …
def transform(self, X): return X

tfidf = TfidfVectorizer(
ngramrange=(1,2), mindf=2, maxdf=0.9, sublineartf=True, strip_accents=’unicode’
)

model = Pipeline([
(“features”, FeatureUnion([
(“rules”, RuleFeatures()),
(“tfidf”, Pipeline([(“sel”, TextSelector()), (“vec”, tfidf)]))
])),
(“clf”, LogisticRegression(maxiter=200, classweight=”balanced”))
])
“`

Оценка системы:

“`python
X, y = synth_examples()
Xtrn, Xtest, ytrn, ytest = traintestsplit(X, y, testsize=0.25, stratify=y, randomstate=42)
model.fit(Xtrain, ytrain)
probs = model.predictproba(Xtest)[:,1]
preds = (probs >= 0.5).astype(int)
print(“AUC:”, round(rocaucscore(y_test, probs), 4))
print(classificationreport(ytest, preds, digits=3))
“`

Определение класса для результатов обнаружения:

“`python
@dataclass
class DetectionResult:
risk: float
verdict: str
rationale: Dict[str, float]
actions: List[str]
“`

Определение функции для обнаружения:

“`python
def detect(prompt: str, pblock: float = 0.80, preview: float = 0.50) -> DetectionResult:
# …
return DetectionResult(risk=blended, verdict=verdict, rationale={…}, actions=actions)
“`

Создание защищённой оболочки:

“`python
def guardedanswer(userprompt: str) -> Dict[str, str]:
“””Placeholder LLM wrapper. Replace `safe_reply` with your model call.”””
# …
return {
“verdict”: assessment.verdict,
“risk”: str(round(assessment.risk,3)),
“actions”: “; “.join(assessment.actions),
“reply”: safe_reply
}
“`

Мы запускаем небольшой набор примеров через функцию `detect()`, чтобы распечатать оценки рисков, вердикты и краткие обоснования, чтобы проверить поведение на возможных атаках и доброкачественных случаях. Затем мы оборачиваем детектор в защищённую оболочку `guarded_answer()`, которая выбирает блокировку, эскалацию или безопасный ответ на основе смешанного риска, и возвращает структурированный ответ (вердикт, риск, действия и безопасный ответ).

В заключение мы суммируем, демонстрируя, как эта лёгкая система защиты позволяет нам уменьшить количество вредоносных выходных данных, сохраняя при этом полезную помощь. Гибридный подход на основе правил и машинного обучения обеспечивает как объяснимость, так и адаптивность. Мы рекомендуем заменить синтетические данные помеченными примерами из красной команды, добавить эскалацию с участием человека и сериализовать конвейер для развёртывания, что позволит постоянно совершенствовать обнаружение по мере развития злоумышленников.

Вопросы по SEO и продвижению в ИИ:

1. Какие методы и инструменты используются для генерации реалистичных примеров атак и доброкачественных примеров в системах больших языковых моделей?

Ответ:

В статье описывается использование библиотеки `random` для генерации случайных чисел и создания разнообразных примеров. Также упоминаются библиотеки `re` для работы с регулярными выражениями и `textwrap` для форматирования текста. Для работы с массивами и таблицами используются `numpy` и `pandas`, а для машинного обучения — `sklearn`.

2. Какие метрики оценки используются для демонстрации эффективности системы защиты от взлома в системах больших языковых моделей?

Ответ:

В статье упоминается использование ROC AUC (Area Under Curve) для оценки качества модели. Также приводится отчёт о классификации, который включает в себя точность, полноту и F1-меру. Эти метрики помогают оценить эффективность системы на основе синтетических данных.

3. Какие библиотеки и инструменты используются для создания сигналов на основе правил и объединения их с функциями TF-IDF в компактный интерпретируемый классификатор?

Ответ:

Для создания сигналов на основе правил используется класс `RuleFeatures`, который объединяет `BaseEstimator` и `TransformerMixin`. Для работы с TF-IDF применяется `TfidfVectorizer` из библиотеки `sklearn`. Также используются `ColumnTransformer` и `FeatureUnion` для объединения различных признаков.

4. Какие этапы работы включает в себя создание системы защиты от взлома в системах больших языковых моделей?

Ответ:

Создание системы защиты включает в себя несколько этапов:

– Генерация реалистичных примеров атак и доброкачественных примеров.
– Создание сигналов на основе правил.
– Объединение сигналов с функциями TF-IDF в компактный интерпретируемый классификатор.
– Демонстрация метрик оценки, объяснение логики смешанной оценки рисков и предоставление защищённой оболочки, которая показывает, как интегрировать детектор перед любым конвейером LLM.

5. Какие классы и функции используются для определения шаблонов для обнаружения попыток взлома и доброкачественных шаблонов в системах больших языковых моделей?

Ответ:

Для определения шаблонов используются классы и функции, такие как `JAILBREAKPATTERNS` и `BENIGNHOOKS`, которые содержат регулярные выражения для поиска определённых шаблонов в тексте. Также используется функция `synth_examples` для генерации синтетических данных и класс `RuleFeatures` для извлечения признаков на основе правил.

Источник