Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Évaluer le risque d’une fonction IA

Après cette leçon: Je peux évaluer le risque d’une fonction IA et dire qui en est responsable.

Leçon de 60 min6 commandesLab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Quelle fonction demande le plus de soin

Une évaluation du risque dit quel tort une fonction IA peut causer, donc quel soin elle exige avant sa mise en service. Elle compte, car un planificateur de menus et un tri de CV peuvent utiliser le même modèle sans présenter le même risque.

Cette leçon donne des informations générales et non un conseil juridique. Vérifiez les règles qui vous concernent, et demandez l’avis d’un juriste quand une décision touche une personne.

À la fin de cette leçon

Remarque

Je peux évaluer le risque d’une fonction IA et dire qui en est responsable.

Mots clés

MotCe que ça veut dire
Niveau de risqueun niveau qui dit quel soin la fonction exige
Décision automatiqueun résultat qu’aucune personne ne relit avant qu’il agisse
Réversibleun mauvais résultat peut être corrigé
Responsablela personne nommée qui répond de la fonction
Redevabletenu de rendre des comptes : expliquer et réparer

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Quatre questions donnent un niveau

Posez quatre questions sur une fonction. Agit-elle sur des personnes ? Une personne relit-elle chaque résultat avant qu’il agisse ? Peut-on corriger un mauvais résultat ? Combien de personnes touche-t-elle ?

Quatre réponses ajoutent des points. La fonction agit sur des personnes. Personne ne relit les résultats. On ne peut pas les annuler. Elle touche plus de mille personnes. Le total donne un niveau. Le niveau lance la discussion, il ne la clôt pas.

Exemple détaillé : deux fonctions

FonctionPersonnesAutomatiqueNon annulablePlus de 1000Score et niveau
Suivi de commandenonoui : 2nonnon2, faible
Tri des CVoui : 2oui : 2oui : 2non6, élevé

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Chaque fonction a un responsable nommé

Un rôle comme « l’équipe données » n’est pas un responsable. Un responsable est une personne que l’on interroge quand la fonction fait du tort, et qui peut l’arrêter.

Certains pays ont des règles sur les décisions prises seulement par un système au sujet de personnes. Elles demandent souvent qu’un humain puisse les revoir. C’est un résumé, pas un conseil juridique : cherchez les règles qui vous concernent.

Une erreur courante

Attention

Beaucoup pensent que le modèle décide du risque, donc qu’un modèle sûr donne une fonction sûre. Le risque vient de ce que la fonction fait, à qui, et de la possibilité de revenir en arrière. Évaluez la fonction, jamais le modèle.

Écrire l’assistant du modèle, partie 1

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const base = process.env.AI_URL || \"http://ai:4000\";' '// Les jetons d’une réponse, ou null si elle n’en donne pas.' 'function compter(donnees, nom) {' '  return donnees.usage && typeof donnees.usage[nom] === \"number\" ? donnees.usage[nom] : null;' '}' > model.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire l’assistant du modèle, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function demander(messages, echantillon, max) {' '  try {' '    const res = await fetch(base + \"/v1/chat/completions\", {' '      method: \"POST\",' '      headers: { \"content-type\": \"application/json\", authorization: \"Bearer lab\" },' '      body: JSON.stringify({ model: \"lab\", messages: messages, max_tokens: max || 100 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"statut \" + res.status);' '    const d = await res.json();' '    return { texte: d.choices[0].message.content, entree: compter(d, \"prompt_tokens\"), sortie: compter(d, \"completion_tokens\"), enregistre: false };' '  } catch (erreur) {' '    console.log(\"Échantillon enregistré : aucun modèle n’a répondu (\" + erreur.message + \").\");' '    return { texte: echantillon, entree: null, sortie: null, enregistre: true };' '  }' '}' 'module.exports = { demander };' >> model.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire l’évaluateur de risque, partie 1

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { demander } = require(\"./model\");' '' '// Des fonctions inventées : ce qu’elles font, à qui, et si l’on peut revenir en arrière.' 'const fonctions = [' '  { nom: \"Suivi de commande\", personnes: false, automatique: true, annulable: true, utilisateurs: 500 },' '  { nom: \"Tri des CV\", personnes: true, automatique: true, annulable: false, utilisateurs: 300 },' '  { nom: \"Aide aux devoirs\", personnes: true, automatique: false, annulable: true, utilisateurs: 2000 },' '  { nom: \"Robot de remboursement\", personnes: true, automatique: true, annulable: true, utilisateurs: 800 },' '];' 'const responsables = { \"Tri des CV\": \"Camille Roux\", \"Robot de remboursement\": \"\" };' > risque.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire l’évaluateur de risque, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function score(f) {' '  let s = 0;' '  if (f.personnes) s = s + 2;' '  if (f.automatique) s = s + 2;' '  if (f.annulable === false) s = s + 2;' '  if (f.utilisateurs > 1000) s = s + 1;' '  return s;' '}' 'function niveau(s) {' '  if (s >= 5) return \"élevé\";' '  if (s >= 3) return \"moyen\";' '  return \"faible\";' '}' >> risque.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire l’évaluateur de risque, partie 3

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  fonctions.forEach(function (f) {' '    const s = score(f);' '    const qui = responsables[f.nom] || \"personne\";' '    console.log(f.nom + \" : score \" + s + \", \" + niveau(s) + \", responsable : \" + qui);' '  });' '  const q = \"En deux phrases : un tort qu’une fonction de tri de CV peut causer à une personne, et qui doit en répondre.\";' '  const r = await demander([{ role: \"user\", content: q }], \"Elle peut écarter par erreur un bon candidat sans que personne le voie. Une personne nommée dans l’entreprise doit en répondre.\", 80);' '  console.log(\"Une réponse possible : \" + r.texte);' '}' 'main();' >> risque.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lancer l’évaluateur de risque

Commande
docker exec -w /home/node/project agent node risque.js

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une sortie possible

LigneCe qu’elle montre
Suivi de commande : score 2, faible, responsable : personneRisque faible, donc l’absence de responsable est moins urgente
Tri des CV : score 6, élevé, responsable : Camille RouxRisque élevé et un responsable nommé
Aide aux devoirs : score 3, moyen, responsable : personneRisque moyen et personne n’en répond
Robot de remboursement : score 4, moyen, responsable : personneUn manque : risque moyen et personne n’en répond
Une réponse possible : ...Votre propre appel. Il change à chaque exécution, ou affiche Échantillon enregistré

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

À propos de ce labo et de sa source: Lab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.