Skip to content

Hiraev/llm-pi-protection

Repository files navigation

Моделирование и предотвращение атак на искусственный интеллект (adversarial attacks)

Запуск проекта

Инициализация python окружения

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Базовые LLM модели

Модели скачиваем в папку models

Модели second-state https://huggingface.co/second-state/collections

Некоторые LLM модели в формате GGUF

Llama 3.2-1B-Instruct-Q4.0 (771Mb)

wget https://huggingface.co/second-state/Llama-3.2-1B-Instruct-GGUF/resolve/main/Llama-3.2-1B-Instruct-Q4_0.gguf

Llama-3.2-1B-Instruct-Q8_0 (1.32Gb)

wget https://huggingface.co/second-state/Llama-3.2-1B-Instruct-GGUF/resolve/main/Llama-3.2-1B-Instruct-Q8_0.gguf

Qwen3-4B-Q8_0 (4.28Gb)

wget https://huggingface.co/second-state/Qwen3-4B-GGUF/resolve/main/Qwen3-4B-Q8_0.gguf

deepseek-llm-7b-chat-Q6_K (5.67Gb)

wget https://huggingface.co/second-state/Deepseek-LLM-7B-Chat-GGUF/resolve/main/deepseek-llm-7b-chat-Q6_K.gguf

DeepSeek-V2-Lite-Chat-Q2_K.gguf (6.43Gb)

wget https://huggingface.co/second-state/DeepSeek-V2-Lite-Chat-GGUF/resolve/main/DeepSeek-V2-Lite-Chat-Q2_K.gguf

LLama Server

Локальный LLM сервер для запуска скаченных ранее моделей.

Если сабмодуль не был скачен, то необходимо добавить его с помощью git submodule update --recursive.

Сборка.

Сборка достаточно долгая, поэтому придется подождать. Если не установлен cuda toolkit, то читай llama.cpp/docs/build.md. Если нет GPU c cuda ядрами, то не выполняй cmake -B build -DGGML_CUDA=ON.

При сборке с CUDA потребуется перемeнная окружения CUDACXX. Установи в нее путь к nvcc, например export CUDACXX=/usr/local/cuda-13.0/bin/nvcc.

Если при сборке будет ошибка что нет папки build, то просто создай ее mkdir build.

cd llama.cpp

cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

# Вернись в корень проекта
cd ..

Запуск

Для запуска потребуется llama-cpp-python.

  • --model - какую именно модель запускаем
  • --port - на каком порту будет доступен сервер
  • --ctx-size - размер контекста
  • --gpu-layers - сколько слоем отправляем на GPU (указываем много)
./llama.cpp/build/bin/llama-server \
--model models/Llama-3.2-1B-Instruct-Q8_0.gguf \ 
--port 8080 \
--ctx-size 4096 \
--gpu-layers 999

При запуске обращай внимание на логи, чтобы понять используется ли GPU и не возникло ли какие-то еще проблем.

Проверка запущенной модели

curl http://localhost:8080/v1/models

Модели для детектрования Prompt Injection

https://huggingface.co/qualifire/prompt-injection-jailbreak-sentinel-v2-GGUF

prompt-injection-jailbreak-sentinel-v2.f32.gguf (2.39Gb)

# Требуется авторизация, поэтому нужно получить токен на HuggingFace
wget --header "Authorization: Bearer ${HF_TOKEN}" https://huggingface.co/qualifire/prompt-injection-jailbreak-sentinel-v2-GGUF/resolve/main/prompt-injection-jailbreak-sentinel-v2.f32.gguf

Qwen3-1.7B-jailbreak-finetuned.Q8_0 (1.83Gb)

wget https://huggingface.co/mradermacher/Qwen3-1.7B-jailbreak-finetuned-GGUF/resolve/main/Qwen3-1.7B-jailbreak-finetuned.Q8_0.gguf

Qwen3-1.7B-jailbreak-finetuned.f16 (3.45Gb)

wget https://huggingface.co/mradermacher/Qwen3-1.7B-jailbreak-finetuned-GGUF/resolve/main/Qwen3-1.7B-jailbreak-finetuned.f16.gguf

Чтиво

Prompt Injection | Jairbraiking. OWASP | Prompt Injection.

Описание системы

  1. Input фильтры.
  • отдельная модель проверяет входные данные на предмет инъекций, может быть использовано несколько небольших моделей, заточенных на нахождение инъекцией определенного типа.
  1. Output фильтры.
  • система проверяет ответ модели. Если input фильтры не смогли найти угрозу, то можно поискать еще в ответе модели признаки того, что она подверглась атака.
  1. Разделение ролей,

  2. Red teaming.

  • специальная
  1. Sanitizing prompt.
  • Чистка входных данных от потенциально опасных инструкций.

About

LLM protection from Prompt Injection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages