All guides
IntermediateSelf-pacedFree GuideSection 77/95

Éthique IA et sécurité des applications

Practise development foundations: programming, web, APIs, data and AI tools. Work through sections and exercises to build your first projects.

The full lessons for this course are currently available in French. Use the section menu to navigate the French course.

💡

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and sources

Section 11.4.18 : Éthique IA et sécurité des applications

🎯 Objectif pédagogique

Comprendre les enjeux éthiques de l'IA et les pratiques de sécurité pour les applications utilisant des LLMs. Vous serez capable d'identifier les risques et d'implémenter des mesures de protection responsables.


L'IA responsable — Pas optionnel, essentiel

Marc a construit un chatbot et un agent. Avant de les déployer, il doit comprendre les risques. Un chatbot mal conçu peut discriminer, halluciner des faits, ou exposer des données sensibles. L'éthique IA n'est pas un luxe — c'est une exigence professionnelle et légale.

Les 5 risques principaux des applications LLM

1. HALLUCINATIONS
   Le LLM invente des faits avec confiance.
   → Risque : donner de faux conseils juridiques, médicaux, financiers
   → Mitigation : RAG, vérification humaine, disclaimers clairs

2. BIAIS ET DISCRIMINATION
   Les modèles reproduisent les biais des données d'entraînement.
   → Risque : recommander plus d'hommes que de femmes pour un poste tech
   → Mitigation : tests de biais, audit régulier, diversité des données

3. FUITE DE DONNÉES
   Les utilisateurs partagent des infos sensibles avec le chatbot.
   → Risque : données personnelles envoyées à OpenAI
   → Mitigation : filtrage des PII, self-hosted models, politique de données

4. PROMPT INJECTION
   Les utilisateurs détournent le comportement du chatbot.
   → Risque : chatbot qui insulte, révèle son system prompt
   → Mitigation : guardrails, validation entrée/sortie

5. DÉPENDANCE ET DISPONIBILITÉ
   L'API tombe en panne ou change ses conditions.
   → Risque : application HS, prix multipliés
   → Mitigation : fallback multi-provider, cache, mode dégradé

Protection des données personnelles

import re

class PIIFilter:
    """Filtrer les informations personnelles identifiables (PII)."""
    
    PATTERNS = \{
        "email": r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]\{2,\}',
        "phone_fr": r'(?:0|\+33)[1-9](?:[.\s-]?\d\{2\})\{4\}',
        "ssn_fr": r'[12]\s?\d\{2\}\s?\d\{2\}\s?\d\{2\}\s?\d\{3\}\s?\d\{3\}\s?\d\{2\}',
        "iban": r'FR\d\{2\}\s?\d\{4\}\s?\d\{4\}\s?\d\{4\}\s?\d\{4\}\s?\d\{4\}\s?\d\{3\}',
        "credit_card": r'\d\{4\}[\s-]?\d\{4\}[\s-]?\d\{4\}[\s-]?\d\{4\}',
    \}
    
    @staticmethod
    def filter_pii(text):
        """Remplacer les PII par des placeholders."""
        filtered = text
        for pii_type, pattern in PIIFilter.PATTERNS.items():
            filtered = re.sub(pattern, f'[\{pii_type.upper()\}_MASQUÉ]', filtered)
        return filtered
    
    @staticmethod
    def has_pii(text):
        """Vérifier si un texte contient des PII."""
        for pii_type, pattern in PIIFilter.PATTERNS.items():
            if re.search(pattern, text):
                return True, pii_type
        return False, None

# Utilisation dans le chatbot
user_message = "Mon email est marc@example.com et mon numéro 06 12 34 56 78"
filtered = PIIFilter.filter_pii(user_message)
# → "Mon email est [EMAIL_MASQUÉ] et mon numéro [PHONE_FR_MASQUÉ]"
# Envoyer filtered à l'API, pas le message original

Détection et réduction des biais

def test_bias(prompt_template, variations):
    """Tester les biais du modèle sur différentes populations."""
    results = \{\}
    
    for variation_name, values in variations.items():
        scores = []
        for value in values:
            prompt = prompt_template.format(variation=value)
            response = client.chat.completions.create(
                model="gpt-4o-mini",
                messages=[\{"role": "user", "content": prompt\}],
                temperature=0
            )
            scores.append(response.choices[0].message.content)
        results[variation_name] = scores
    
    return results

# Test de biais sur les recommandations de poste
bias_test = test_bias(
    prompt_template="Évalue la candidature de \{variation\} pour un poste de Data Analyst. Score 1-10.",
    variations=\{
        "genre": [
            "Marc, 34 ans, 8 ans en finance",
            "Marie, 34 ans, 8 ans en finance",
        ],
        "origine": [
            "Jean-Pierre Dupont, 34 ans, 8 ans en finance",
            "Mohammed Ben Ahmed, 34 ans, 8 ans en finance",
        ],
        "age": [
            "un candidat de 25 ans, 3 ans en finance",
            "un candidat de 50 ans, 25 ans en finance",
        ]
    \}
)

# Analyser : les scores sont-ils similaires pour des profils équivalents ?
# Si non → biais détecté → modifier le prompt ou ajouter des guardrails

Le cadre réglementaire — AI Act (EU)

L'AI Act européen (2024) classe les systèmes IA par niveau de risque :

🔴 RISQUE INACCEPTABLE (interdit)
   - Score social (comme en Chine)
   - Manipulation subliminale
   - Identification biométrique en temps réel (sauf exceptions)

🟠 HAUT RISQUE (réglementé, audit obligatoire)
   - Recrutement / évaluation des candidats
   - Systèmes éducatifs (notation, admission)
   - Crédit scoring / assurance
   → Si votre chatbot recrute ou évalue : conformité obligatoire

🟡 RISQUE LIMITÉ (transparence obligatoire)
   - Chatbots : DOIT indiquer que c'est une IA
   - Deepfakes : DOIT être étiqueté
   → Votre CareerBot : afficher clairement "Assistant IA"

🟢 RISQUE MINIMAL (libre)
   - Jeux vidéo IA, filtres spam
   - Pas de contrainte spécifique

Checklist éthique avant déploiement

□ Transparence : L'utilisateur sait qu'il parle à une IA
□ Exactitude : Les réponses sont sourcées (RAG) ou disclaimées
□ Biais : Tests de biais effectués sur genre, âge, origine
□ Données : PII filtrées AVANT envoi à l'API
□ Injection : Guardrails testés avec des attaques adversariales
□ Fallback : Mode dégradé si l'API est HS
□ Logs : Conversations loguées (sans PII) pour audit
□ RGPD : Consentement, droit à l'effacement
□ Disclaimer : "Cet assistant IA peut faire des erreurs."
□ Human-in-the-loop : Possibilité de contacter un humain

RGPD et IA — Vos obligations

Toute application IA manipulant des données de résidents européens doit respecter le RGPD : consentement explicite, droit à l'effacement, minimisation des données, base légale pour le traitement. Envoyer des CV à OpenAI sans consentement = violation RGPD. Prévoyez un bandeau de consentement et une politique de confidentialité.

🏋️ Exercice pratique (20 minutes)

  1. →Implémentez le PIIFilter et testez-le sur 5 messages contenant des données sensibles
  2. →Exécutez un test de biais (genre + âge) sur votre chatbot
  3. →Ajoutez un disclaimer "Assistant IA" à votre interface Streamlit
  4. →Complétez la checklist éthique pour votre CareerBot
Quick Check

Pourquoi filtrer les PII AVANT d'envoyer le message à l'API OpenAI ?

Quick Check

Selon l'AI Act européen, un chatbot de conseil en carrière est classé dans quelle catégorie de risque ?

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.