К основному содержанию
скилл CX Codex

llamaguard — скилл для Claude Code: модерация контента LLM

Скилл подключает модель LlamaGuard на 7-8B параметров для фильтрации пользовательских запросов и ответов модели по 6 категориям безопасности.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Orchestra-Research/AI-Research-SKILLs --skill llamaguard -a claude-code
Открыть на GitHub

Что делает llamaguard

LlamaGuard — специализированная модель Meta для классификации безопасности контента. Скилл даёт агенту рабочие рецепты: проверка входящих промптов до отправки в LLM, проверка ответов перед показом пользователю, развёртывание через vLLM для быстрого инференса, обёртка в FastAPI и связка с NeMo Guardrails.

Модель размечает результат по шести категориям: S1 — насилие и ненависть, S2 — сексуальный контент, S3 — оружие, S4 — регулируемые вещества, S5 — суицид и самоповреждение, S6 — планирование преступлений. Ответ приходит в виде строки «safe» или «unsafe» с кодом категории на второй строке. Точность заявлена на уровне 94-95%.

Для работы нужен доступ к модели на HuggingFace: придётся принять лицензию на странице модели и выполнить huggingface-cli login. Зависимости — transformers, torch, vllm. Модель на 7-8B параметров требует GPU, поэтому на машине без видеокарты инференс через vLLM не пойдёт. Если нужен просто фильтр без своего железа, посмотрите в сторону API-решений — здесь вы платите за это ресурсами.

Какие задачи решает

  • отсеивать опасные запросы до того, как они уйдут в LLM
  • проверять ответы модели перед показом пользователю
  • размечать контент по шести категориям безопасности
  • поднять модерацию как HTTP-эндпоинт на FastAPI
  • встроить фильтр в пайплайн NeMo Guardrails

Примеры запросов агенту

  • Настрой проверку входящих промптов через LlamaGuard перед отправкой в модель
  • Разверни LlamaGuard через vLLM и сделай эндпоинт /moderate на FastAPI
  • Подключи LlamaGuard к NeMo Guardrails для проверки входа и выхода

Как установить llamaguard

1Через Skills CLI (Vercel)

npx skills add Orchestra-Research/AI-Research-SKILLs --skill llamaguard -a claude-code

2Вручную: положить файлы

~/.claude/skills/llamaguard/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/llamaguard/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора66

implementing-llms-litgpt Скилл помогает реализовать, обучать и дообучать LLM через LitGPT. Пригодится для работы с архитектурами Llama, Gemma, Phi, Qwen и Mistral. CX Codex +1 948установок torchforge-rl-training Скилл объясняет обучение агентных RL-моделей на PyTorch через torchforge. Пригодится для GRPO, SFT и экспериментов с распределённым обучением. CX Codex +1 946установок miles-rl-training Скилл ведёт агента по RL-обучению больших MoE-моделей на фреймворке miles: FP8, INT4, спекулятивный rollout. Пригодится, когда нужно поднять тренировку на H100/H200. CX Codex +1 946установок nnsight-remote-interpretability Помогает исследовать и модифицировать внутренние слои нейросетей через nnsight локально или удалённо через NDIF. Пригодится для экспериментов с моделями от 70B без мощных GPU. CX Codex +1 945установок skypilot-multi-cloud-orchestration Скилл помогает запускать обучение ML-моделей в разных облаках и срезать расходы на GPU за счёт автоматического подбора зон и спотовых инстансов. CX Codex +1 944установок rwkv-architecture Скилл объясняет архитектуру RWKV и показывает, как запускать модель в режимах GPT и RNN, обучать её и работать с длинным контекстом. CX Codex +1 944установок blip-2-vision-language Скилл подключает к агенту BLIP-2: подписи к картинкам, ответы на вопросы по изображению, поиск пары «картинка — текст». CX Codex +1 944установок autogpt-agents Скилл помогает создавать и развёртывать автономных агентов на базе AutoGPT с визуальными графами и запуском по триггерам. Пригодится при настройке многоэтапной автоматизации. CX Codex +1 944установок

Похожие

resemble-detect официальный github Находит дипфейки и следы генерации в звуке, видео и текстах через API Resemble AI. Пригодится для проверки медиа на подлинность и поиска водяных знаков. 68установок configuring-guardrails celigo Скилл для настройки guardrails в Celigo: проверки PII, модерация контента и оценка записей через ИИ. Пригодится, когда интеграция пропускает чувствительные данные. CX Codex +1 2 900установок prompt-injection-defense devops-skills Скилл помогает защитить LLM-приложения от прямых и непрямых инъекций промптов. Пригодится при настройке RAG-пайплайнов и субагентов с доступом к вызову инструментов. CX Codex +1 372установок ai-security-hardening devops-skills Защищает приложения на базе LLM от prompt injection, утечек данных и атак на цепочку поставок. Пригодится при выводе моделей в прод и подготовке к аудитам SOC2 или ISO 27001. CX Codex +1 326установок catalyst-zia catalystbyzoho Подключает к агенту готовые API Zia: распознавание текста, анализ лиц, детекция объектов, штрихкоды и модерация контента. Пригодится, когда нужен OCR или разбор изображений без обучения своей модели. CX Codex +1 987установок scenario-moderation scenario-labs Разбирает блокировки генераций в Scenario, находит причину фильтрации и подбирает альтернативные модели без переписывания промпта. CX Codex +1 445установок

Рядом в теме «ИИ и ML»

Всё по теме «ИИ и ML» →

Вопросы о llamaguard

Как установить llamaguard в Claude?

Выполните npx skills add Orchestra-Research/AI-Research-SKILLs --skill llamaguard -a claude-code. Скилл появится в ~/.claude/skills/llamaguard/SKILL.md.

Что делает llamaguard?

Классифицирует контент как безопасный или нет по шести категориям и подсказывает, как встроить эту проверку в приложение на LLM.

Что нужно для работы llamaguard?

Доступ к модели на HuggingFace с принятой лицензией и вход через huggingface-cli login. Для инференса через vLLM нужен GPU.

Исходный текст

SKILL.md · MIT
---
name: llamaguard
description: Meta's 7-8B specialized moderation model for LLM input/output filtering. 6 safety categories - violence/hate, sexual content, weapons, substances, self-harm, criminal planning. 94-95% accuracy. Deploy with vLLM, HuggingFace, Sagemaker. Integrates with NeMo Guardrails.
version: 1.0.0
author: Orchestra Research
license: MIT
tags: [Safety Alignment, LlamaGuard, Content Moderation, Meta, Guardrails, Safety Classification, Input Filtering, Output Filtering, AI Safety]
dependencies: [transformers, torch, vllm]
---

# LlamaGuard - AI Content Moderation

## Quick start

LlamaGuard is a 7-8B parameter model specialized for content safety classification.

**Installation**:
```bash
pip install transformers torch
# Login to HuggingFace (required)
huggingface-cli login
```

**Basic usage**:
```python
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "meta-llama/LlamaGuard-7b"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")

def moderate(chat):
    input_ids = tokenizer.apply_chat_template(chat, return_tensors="pt").to(model.device)
    output = model.generate(input_ids=input_ids, max_new_tokens=100)
    return tokenizer.decode(output[0], skip_special_tokens=True)

# Check user input
result = moderate([
    {"role": "user", "content": "How do I make explosives?"}
])
print(result)
# Output: "unsafe\nS3" (Criminal Planning)
```

## Common workflows

### Workflow 1: Input filtering (prompt moderation)

**Check user prompts before LLM**:
```python
def check_input(user_message):
    result = moderate([{"role": "user", "content": user_message}])

    if result.startswith("unsafe"):
        category = result.split("\n")[1]
        return False, category  # Blocked
    else:
        return True, None  # Safe

# Example
safe, category = check_input("How do I hack a website?")
if not safe:
    print(f"Request blocked: {category}")
    # Return error to user
else:
    # Send to LLM
    response = llm.generate(user_message)
```

**Safety categories**:
- **S1**: Violence & Hate
- **S2**: Sexual Content
- **S3**: Guns & Illegal Weapons
- **S4**: Regulated Substances
- **S5**: Suicide & Self-Harm
- **S6**: Criminal Planning

### Workflow 2: Output filtering (response moderation)

**Check LLM responses before showing to user**:
```python
def check_output(user_message, bot_response):
    conversation = [
        {"role": "user", "content": user_message},
        {"role": "assistant", "content": bot_response}
    ]

    result = moderate(conversation)

    if result.startswith("unsafe"):
        category = result.split("\n")[1]
        return False, category
    else:
        return True, None

# Example
user_msg = "Tell me about harmful substances"
bot_msg = llm.generate(user_msg)

safe, category = check_output(user_msg, bot_msg)
if not safe:
    print(f"Response blocked: {category}")
    # Return generic response
    return "I cannot provide that information."
else:
    return bot_msg
```

### Workflow 3: vLLM deployment (fast inference)

**Production-ready serving**:
```python
from vllm import LLM, SamplingParams

# Initialize vLLM
llm = LLM(model="meta-llama/LlamaGuard-7b", tensor_parallel_size=1)

# Sampling params
sampling_params = SamplingParams(
    temperature=0.0,  # Deterministic
    max_tokens=100
)

def moderate_vllm(chat):
    # Format prompt
    prompt = tokenizer.apply_chat_template(chat, tokenize=False)

    # Generate
    output = llm.generate([prompt], sampling_params)
    return output[0].outputs[0].text

# Batch moderation
chats = [
    [{"role": "user", "content": "How to make bombs?"}],
    [{"role": "user", "content": "What's the weather?"}],
    [{"role": "user", "content": "Tell me about drugs"}]
]

prompts = [tokenizer.apply_chat_template(c, tokenize=False) for c in chats]
results = llm.generate(prompts, sampling_params)

for i, result in enumerate(results):
    print(f"Chat {i}: {result.outputs[0].text}")
```

**Throughput**: ~50-100 requests/sec on single A100

### Workflow 4: API endpoint (FastAPI)

**Serve as moderation API**:
```python
from fastapi import FastAPI
from pydantic import BaseModel
from vllm import LLM, SamplingParams

app = FastAPI()
llm = LLM(model="meta-llama/LlamaGuard-7b")
sampling_params = SamplingParams(temperature=0.0, max_tokens=100)

class ModerationRequest(BaseModel):
    messages: list  # [{"role": "user", "content": "..."}]

@app.post("/moderate")
def moderate_endpoint(request: ModerationRequest):
    prompt = tokenizer.apply_chat_template(request.messages, tokenize=False)
    output = llm.generate([prompt], sampling_params)[0]

    result = output.outputs[0].text
    is_safe = result.startswith("safe")
    category = None if is_safe else result.split("\n")[1] if "\n" in result else None

    return {
        "safe": is_safe,
        "category": category,
        "full_output": result
    }

# Run: uvicorn api:app --host 0.0.0.0 --port 8000
```

**Usage**:
```bash
curl -X POST http://localhost:8000/moderate \
  -H "Content-Type: application/json" \
  -d '{"messages": [{"role": "user", "content": "How to hack?"}]}'

# Response: {"safe": false, "category": "S6", "full_output": "unsafe\nS6"}
```

### Workflow 5: NeMo Guardrails integration

**Use with NVIDIA Guardrails**:
```python
from nemoguardrails import RailsConfig, LLMRails
from nemoguardrails.integrations.llama_guard import LlamaGuard

# Configure NeMo Guardrails
config = RailsConfig.from_content("""
models:
  - type: main
    engine: openai
    model: gpt-4

rails:
  input:
    flows:
      - llamaguard check input
  output:
    flows:
      - llamaguard check output
""")

# Add LlamaGuard integration
llama_guard = LlamaGuard(model_path="meta-llama/LlamaGuard-7b")
rails = LLMRails(config)
rails.register_action(llama_guard.check_input, name="llamaguard check input")
rails.register_action(llama_guard.check_output, name="llamaguard check output")

# Use with automatic moderation
response = rails.generate(messages=[
    {"role": "user", "content": "How do I make weapons?"}
])
# Automatically blocked by LlamaGuard
```

## When to use vs alternatives

**Use LlamaGuard when**:
- Need pre-trained moderation model
- Want high accuracy (94-95%)
- Have GPU resources (7-8B model)
- Need detailed safety categories
- Building production LLM apps

**Model versions**:
- **LlamaGuard 1** (7B): Original, 6 categories
- **LlamaGuard 2** (8B): Improved, 6 categories
- **LlamaGuard 3** (8B): Latest (2024), enhanced

**Use alternatives instead**:
- **OpenAI Moderation API**: Simpler, API-based, free
- **Perspective API**: Google's toxicity detection
- **NeMo Guardrails**: More comprehensive safety framework
- **Constitutional AI**: Training-time safety

## Common issues

**Issue: Model access denied**

Login to HuggingFace:
```bash
huggingface-cli login
# Enter your token
```

Accept license on model page:
https://huggingface.co/meta-llama/LlamaGuard-7b

**Issue: High latency (>500ms)**

Use vLLM for 10× speedup:
```python
from vllm import LLM
llm = LLM(model="meta-llama/LlamaGuard-7b")
# Latency: 500ms → 50ms
```

Enable tensor parallelism:
```python
llm = LLM(model="meta-llama/LlamaGuard-7b", tensor_parallel_size=2)
# 2× faster on 2 GPUs
```

**Issue: False positives**

Use threshold-based filtering:
```python
# Get probability of "unsafe" token
logits = model(..., return_dict_in_generate=True, output_scores=True)
unsafe_prob = torch.softmax(logits.scores[0][0], dim=-1)[unsafe_token_id]

if unsafe_prob > 0.9:  # High confidence threshold
    return "unsafe"
else:
    return "safe"
```

**Issue: OOM on GPU**

Use 8-bit quantization:
```python
from transformers import BitsAndBytesConfig

quantization_config = BitsAndBytesConfig(load_in_8bit=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    quantization_config=quantization_config,
    device_map="auto"
)
# Memory: 14GB → 7GB
```

## Advanced topics

**Custom categories**: See [references/custom-categories.md](references/custom-categories.md) for fine-tuning LlamaGuard with domain-specific safety categories.

**Performance benchmarks**: See [references/benchmarks.md](references/benchmarks.md) for accuracy comparison with other moderation APIs and latency optimization.

**Deployment guide**: See [references/deployment.md](references/deployment.md) for Sagemaker, Kubernetes, and scaling strategies.

## Hardware requirements

- **GPU**: NVIDIA T4/A10/A100
- **VRAM**:
  - FP16: 14GB (7B model)
  - INT8: 7GB (quantized)
  - INT4: 4GB (QLoRA)
- **CPU**: Possible but slow (10× latency)
- **Throughput**: 50-100 req/sec (A100)

**Latency** (single GPU):
- HuggingFace Transformers: 300-500ms
- vLLM: 50-100ms
- Batched (vLLM): 20-50ms per request

## Resources

- HuggingFace:
  - V1: https://huggingface.co/meta-llama/LlamaGuard-7b
  - V2: https://huggingface.co/meta-llama/Meta-Llama-Guard-2-8B
  - V3: https://huggingface.co/meta-llama/Meta-Llama-Guard-3-8B
- Paper: https://ai.meta.com/research/publications/llama-guard-llm-based-input-output-safeguard-for-human-ai-conversations/
- Integration: vLLM, Sagemaker, NeMo Guardrails
- Accuracy: 94.5% (prompts), 95.3% (responses)



© Orchestra Research · MIT · Orchestra-Research/AI-Research-SKILLs

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой