0Pricing
AI Agents · Leçon

Filtrage des sorties (Llama Guard, NeMo)

Faites passer les sorties dans un modèle de contrôle plus petit pour détecter la toxicité, les fuites de PII et les violations de règles avant leur diffusion.

Filtrage des sorties (Llama Guard, NeMo) est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.

Pourquoi filtrer les sorties ?

Même avec des entrées sûres, les modèles peuvent produire :

  • Des fuites de données personnelles
  • Des discours haineux ou du harcèlement
  • Du contenu d’automutilation
  • Des appels d’outils qui violent l’intention de l’utilisateur

Un filtre de sortie est votre dernière ligne de défense avant que l’utilisateur ne voie quoi que ce soit.

Llama Guard

Le classificateur de sécurité de Meta — poids ouverts, très rapide :

from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-Guard-3-8B')
# Outputs 'safe' or 'unsafe' with category.

NeMo Guardrails

NVIDIA NeMo Guardrails — framework Python qui entoure les LLM de contrôles :

# pip install nemoguardrails
from nemoguardrails import RailsConfig, LLMRails

config = RailsConfig.from_path('./config')
rails = LLMRails(config)
response = rails.generate(messages=[{'role': 'user', 'content': '...'}])

Guardrails AI

guardrails-ai est la bibliothèque Python consacrée à la validation et aux protections. Elle prend en charge les « rails » fondés sur XML et les boucles de correction reAsk.

Classificateur constitutionnel d’Anthropic

Anthropic a publié un classificateur (en plus de l’entraînement de sécurité de Claude). Il est utile pour filtrer a posteriori les sorties de n’importe quel modèle.

Filtre personnalisé fondé sur un LLM

La solution la moins coûteuse : un LLM plus petit qui examine les sorties :

FILTER_PROMPT = '''
Analyse the output. Return JSON: {safe: true/false, reason: str, categories: list}

Unsafe categories: PII leak, harmful instructions, copyright violation, prompt-injection echo.

Output:
{output}
'''

result = guard_llm.invoke(FILTER_PROMPT.format(output=text))

Expressions régulières et filtres par règles

Pour des schémas précis, les expressions régulières sont rapides et fiables :

import re
EMAIL_RE = re.compile(r'[\w\.-]+@[\w\.-]+')
SSN_RE = re.compile(r'\b\d{3}-\d{2}-\d{4}\b')

def has_pii(text):
    return bool(EMAIL_RE.search(text) or SSN_RE.search(text))

# --- demo ---
samples = ['Contact me at jane@example.com', 'My SSN is 123-45-6789', 'No PII in this sentence']
for s in samples:
    print(f'{s!r} -> has_pii={has_pii(s)}')

Masquage des PII

Ne bloquez pas systématiquement — masquez parfois les données et laissez passer le reste :

def redact(text):
    text = EMAIL_RE.sub('[email]', text)
    text = SSN_RE.sub('[ssn]', text)
    return text

Filtre à deux couches

Règles rapides d’abord, LLM coûteux ensuite :

def filter_output(text):
    if has_obvious_pii(text):
        return BLOCKED
    result = guard_llm.invoke(...)
    return result

Sorties en diffusion continue

Pour les sorties diffusées en continu, filtrez SENTENCE-BY-SENTENCE :

buf = ''
for token in stream:
    buf += token
    if buf.endswith(('. ', '! ', '? ', '\n')):
        if not safe(buf):
            stream.close()
            emit_to_client('[content filtered]')
            break
        emit_to_client(buf)
        buf = ''

Faux positifs ou faux négatifs

Ajustez le système pour trouver le bon équilibre :

  • Domaines à forts enjeux (médical, financier) : privilégiez les faux positifs (bloquez davantage)
  • Création et divertissement : privilégiez les faux négatifs (bloquez moins)

Les journaux de filtrage sont sensibles

Les journaux de filtrage contiennent le contenu bloqué. Stockez-les de manière sécurisée avec des durées d’expiration courtes :

log.warning('Blocked output', extra={'reason': r, 'category': c}, sanitize_payload=True)

Informer l’utilisateur

Lorsque vous bloquez un contenu, expliquez pourquoi à l’utilisateur afin qu’il ne multiplie pas les nouvelles tentatives :

def handle_privacy_request():
    return 'I cannot share that information for privacy reasons.'

print(handle_privacy_request())

Filtre multicouche

Pourquoi combiner les expressions régulières avec un filtrage fondé sur un LLM ?

Récapitulatif

Llama Guard / NeMo / filtre LLM personnalisé + règles d’expressions régulières. Deux couches. Masquez lorsque c’est possible. Informez toujours l’utilisateur lorsqu’un contenu est bloqué.

Questions Fréquemment Posées

La leçon « Filtrage des sorties (Llama Guard, NeMo) » est-elle gratuite ?

Oui — le texte complet de « Filtrage des sorties (Llama Guard, NeMo) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Filtrage des sorties (Llama Guard, NeMo) » ?

Faites passer les sorties dans un modèle de contrôle plus petit pour détecter la toxicité, les fuites de PII et les violations de règles avant leur diffusion. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Agents ?

Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Filtrage des sorties (Llama Guard, NeMo) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?

Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Protections contre l’injection de prompt
  2. Filtrage des sorties (Llama Guard, NeMo)
  3. Exécution en bac à sable pour les agents de code
  4. Contrôle d’accès aux outils
← Retour à AI Agents