01 IA responsable
Les principes de l’IA responsable
1.1 Qu’est-ce que la Responsible AI ?
Définition simple
La Responsible AI, ou IA responsable, consiste à utiliser l’intelligence artificielle de manière :
- fiable ;
- sécurisée ;
- transparente ;
- contrôlée par l’humain ;
- respectueuse de la confidentialité ;
- conforme aux règles de l’entreprise ;
- alignée avec les bonnes pratiques éthiques.
En clair :
L’IA peut t’aider, mais elle ne doit pas décider à ta place sans validation.
GitHub Copilot est un assistant. Ce n’est pas un architecte senior infaillible, un expert sécurité garanti, ni un juriste open source.
Il peut accélérer ton travail, mais tu restes responsable du code final.
Exemple simple
Tu demandes à Copilot :
Generate a function to validate a JWT token in Node.js.Copilot te propose une fonction.
Mauvaise réaction :
Cool, je copie-colle en production.
Bonne réaction :
Je vérifie :
- l’algorithme utilisé ;
- la validation de la signature ;
- l’expiration du token ;
- la gestion des erreurs ;
- les dépendances ;
- les risques de sécurité.
Pourquoi ? Parce que Copilot peut générer du code qui a l’air correct, mais qui contient une faille.
1.3 Les grands principes de l’IA responsable
Pour l’examen, retiens surtout ces principes.
1. Fairness (Équité)
L’IA ne doit pas produire ou renforcer des résultats injustes, discriminatoires ou biaisés.
Exemple :
Tu demandes :
Generate a function to rank job candidates based on their profiles.Copilot propose un scoring qui utilise :
- l’âge ;
- le genre ;
- l’origine ;
- l’adresse ;
- l’école ;
- le prénom.
Même si techniquement le code fonctionne, ce serait problématique.
Pourquoi ? Parce que ces critères peuvent introduire des biais ou de la discrimination.
Bonne pratique :
Ne jamais utiliser Copilot aveuglément pour créer des systèmes qui prennent des décisions sensibles sur des personnes :
- recrutement ;
- crédit ;
- assurance ;
- santé ;
- justice ;
- notation d’employés ;
- scoring utilisateur sensible.
2. Reliability and Safety (Fiabilité et sécurité)
Le code généré doit être vérifié pour éviter les bugs, les comportements imprévus et les failles.
Exemple :
Copilot génère une requête SQL :
query = f"SELECT * FROM users WHERE email = '{email}'"Le code peut marcher. Mais il est vulnérable aux injections SQL.
Meilleure version :
cursor.execute(
"SELECT * FROM users WHERE email = %s",
(email,)
)Ce qu’il faut retenir :
Quand Copilot génère du code lié à :
- authentification ;
- autorisation ;
- chiffrement ;
- API publiques ;
- validation d’input ;
- base de données ;
- gestion de fichiers ;
- réseau ;
- secrets ;
- permissions cloud ;
tu dois redoubler de vigilance.
3. Privacy and Security (Confidentialité et sécurité)
Tu dois éviter d’exposer des données sensibles à Copilot ou dans les prompts.
Données sensibles typiques :
- mots de passe ;
- tokens ;
- clés API ;
- secrets cloud ;
- informations personnelles ;
- données client ;
- données financières ;
- données médicales ;
- code propriétaire critique ;
- logs contenant des identifiants.
Mauvais prompt :
Here is our production API key: sk-prod-xxxxx.
Can you write a script to call our internal payment API?C’est une très mauvaise idée : le prompt contient un secret réel.
Meilleur prompt :
Write a Python example showing how to call a REST API using a placeholder API key stored in an environment variable.Et dans le code :
import os
import requests
api_key = os.getenv("API_KEY")
response = requests.get(
"https://api.example.com/orders",
headers={"Authorization": f"Bearer {api_key}"}
)Le principe :
Ne donne pas à Copilot ce que tu ne mettrais pas dans un ticket public, une PR visible ou un canal non sécurisé.
4. Inclusiveness (Accessibilité et inclusion)
Les outils et contenus générés doivent être utilisables par le plus grand nombre.
Exemple :
Tu demandes à Copilot de générer une page HTML.
Version moyenne :
<button onclick="submitForm()">OK</button>Version plus responsable :
<button
type="submit"
aria-label="Submit the registration form">
Submit
</button>L’accessibilité fait partie de la qualité logicielle.
Copilot peut aider, mais il faut parfois lui demander explicitement :
Generate an accessible HTML form following WCAG best practices.5. Transparency (Transparence)
Tu dois comprendre ce que fait le code généré.
Mauvais comportement :
Copilot propose une fonction complexe de chiffrement. Tu ne comprends pas le code, mais tu l’acceptes quand même.
C’est risqué.
Bon comportement :
Tu demandes :
Explain this function step by step and identify any security risks.Puis :
Rewrite this function using a well-known cryptography library instead of custom crypto.Règle importante :
Si tu ne comprends pas le code généré, tu ne devrais pas le mettre en production.
6. Accountability (Responsabilité humaine)
La responsabilité finale appartient au développeur, à l’équipe ou à l’organisation. Pas à Copilot.
Même si Copilot génère 80 % du code, c’est toi qui :
- acceptes la suggestion ;
- fais la PR ;
- passes les tests ;
- déploies ;
- assumes le comportement du système.
Exemple examen :
Question possible :
Copilot generated a code snippet that caused a production incident.
Who is responsible for reviewing and validating the code before deployment?Réponse attendue :
The developer/team/organization using the generated code.Pas :
GitHub Copilot.À retenir pour le GH-300
- Copilot est un assistant : le développeur reste responsable du code qu’il accepte.
- Six principes à reconnaître : équité, fiabilité et sécurité, confidentialité et sécurité, inclusion, transparence, responsabilité.
- Un code qui fonctionne n’est pas forcément un code responsable.
- Devant une décision qui concerne des personnes, c’est le critère de décision qu’on examine, pas la syntaxe.
Questions de la leçon
Chargement de la question…
Pour finir
À retenir
- Copilot est un assistant : le développeur reste responsable du code qu’il accepte.
- Six principes à reconnaître : équité, fiabilité et sécurité, confidentialité et sécurité, inclusion, transparence, responsabilité.
- Un code qui fonctionne n’est pas forcément un code responsable.
- Devant une décision qui concerne des personnes, c’est le critère de décision qu’on examine, pas la syntaxe.
Objectif GH-300
- Éthique et IA responsable (Describe ethical and responsible AI usage)
Achèvement
Il reste à faire : .