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

В этом руководстве мы пошагово создаём систему защиты от взлома, которая позволяет обнаруживать и безопасно обрабатывать запросы, направленные на обход политик. Мы генерируем реалистичные примеры атак и доброкачественные примеры, создаём сигналы на основе правил и объединяем их с функциями 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` для извлечения признаков на основе правил.

Источник