Tous les guides
IntermédiaireÀ votre rythmeGuide gratuitSection 77/95

Éthique IA et sécurité des applications

Pratiquez les fondations du développement : programmation, web, API, données et usages de l’IA. Des sections et exercices pour construire vos premiers projets.

💡

Contenu gratuit, accessible sans compte. Les outils et modèles évoluent : consultez le dossier actuel pour vérifier leurs versions. Modèles et 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
Vérification rapide

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

Vérification rapide

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

Votre progression

Cette progression est déclarative et conservée dans votre navigateur. L’attestation finale ne constitue pas un diplôme ni une évaluation indépendante.

Voir ma progression et mon attestation

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Un cas pratique IA dans votre boîte mail

Méthodes, ressources et nouveaux exercices. Gratuit, avec désinscription à tout moment.