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 :

Texte
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 :

Texte
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 :

Python
query = f"SELECT * FROM users WHERE email = '{email}'"

Le code peut marcher. Mais il est vulnérable aux injections SQL.

Meilleure version :

Python
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 :

Texte
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 :

Texte
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 :

Python
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 :

HTML
<button onclick="submitForm()">OK</button>

Version plus responsable :

HTML
<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 :

Texte
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 :

Texte
Explain this function step by step and identify any security risks.

Puis :

Texte
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 :

Texte
Copilot generated a code snippet that caused a production incident.
Who is responsible for reviewing and validating the code before deployment?

Réponse attendue :

Texte
The developer/team/organization using the generated code.

Pas :

Texte
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.

D1 · Utiliser GitHub Copilot de façon responsable · 15–20 %