Créer avec l’IA

Comment construire un jeu de données qui enseigne le travail, légalement?

Écrit en date du · Publié le · Mis à jour le · Par Robert Scales, avec l’aide d’outils d’IA · 6 min de lecture

Réponse courte

Partez de la décision que le modèle doit prendre, puis réunissez des exemples d’usage réel que vous avez le droit d’utiliser, retirez les renseignements personnels et les doublons, et notez la provenance de tout. Dans un test mesuré, le même modèle a obtenu 100 % avec un partage négligent et 90 % avec un partage honnête, et il n’a pas fait mieux que le hasard sur des messages en français qu’on ne lui avait jamais montrés.

Un jeu de données n’enseigne un travail que s’il ressemble à ce travail. Cela paraît évident, jusqu’à ce qu’on remarque à quel point les données d’entraînement sont souvent ce qui était facile à recueillir. Un modèle apprend les régularités de ses exemples, que ce soient ou non celles que vous visiez.

Ce projet construit un petit jeu de données pour une seule décision : diriger chaque message de la clientèle d’une boutique de vélos fictive vers les remboursements, la livraison, les réparations ou les comptes. Les 2 120 messages bruts sont tous générés par un script, donc aucune donnée de personne réelle n’est en cause. Le script compagnon 03_build_dataset.py n’a besoin que de scikit-learn et s’exécute en quelques secondes. Si vous préparez du texte pour un modèle de langage plutôt que pour une décision de routage, ce guide de préparation des données couvre le nettoyage et le stockage à plus grande échelle.

Étape 1 : écrire d’abord le travail

Avant de recueillir quoi que ce soit, remplissez cette fiche. C’est une petite cousine des fiches techniques proposées par des chercheurs pour documenter la motivation, la composition, la collecte et les usages d’un jeu de données.

QuestionExemple de réponse
Quelle décision le modèle prendra-t-il?Choisir une de quatre files
Que voit-il à ce moment?Le texte du message seulement, sans historique client
Qui écrit ces entrées?La clientèle, en anglais et en français
Que coûte une mauvaise réponse?Le délai d’un transfert entre files
Qui décide de la bonne étiquette, et comment?Deux membres du personnel, définitions écrites
D’où ces données peuvent-elles venir?Nos propres messages, avec avis et consentement; textes sous licence ouverte

L’avant-dernière ligne est souvent escamotée. Si deux personnes attentives ne s’entendent pas sur l’étiquette, le modèle ne peut pas faire mieux qu’elles.

Étape 2 : le faire passer par quatre contrôles

Chaque enregistrement porte sa provenance. Le pipeline refuse, nettoie, retire les doublons, puis partage, en gardant un compte à chaque étape.

OK_LICENCES = {"own-records-with-consent", "cc0", "cc-by-4.0"}

def pipeline(rows):
    kept = [r for r in rows if r["licence"] in OK_LICENCES]    # contrôle 1 : les droits
    for r in kept:
        r["text"], r["scrubbed"] = scrub(r["text"])            # contrôle 2 : renseignements personnels
    seen, out = set(), []
    for r in kept:
        key = normalize(r["text"])                             # contrôle 3 : doublons
        if key not in seen:
            seen.add(key)
            out.append(r)
    return out                                                  # contrôle 4 : partage par famille de formulations

Mesuré ici sur les données synthétiques :

ÉtapeLignes
Brut2 120
Refus : licence inconnue ou non approuvée−236
Doublons retirés−236
Final1 648

Le nettoyeur utilisait des motifs pour les adresses de courriel, les numéros de téléphone et les codes postaux canadiens. Il a attrapé les 279 renseignements semés, sans fausse alerte. N’accordez pas trop de poids à ce score parfait : le script n’a semé que les formats que les motifs recherchent. Des noms dans le texte libre, comme « ma voisine Mara », passent tout droit. Sur de vraies données, faites lire un échantillon aléatoire à une personne, et voyez le nettoyage comme une réduction du risque.

Le fichier final est accompagné d’un manifeste : le nombre de lignes par étiquette et par licence, et une empreinte SHA-256, un court code qui change si un seul octet des données change. Quand un score bougera le mois prochain, vous saurez si les données ont bougé.

Ce que changent les contrôles, en chiffres

Chaque chiffre ci-dessous est la moyenne de cinq exécutions. Le modèle est volontairement simple : des comptes de mots passés à une régression logistique.

TestExactitude
Doublons conservés, partage aléatoire100 %
Données propres, test sur des formulations jamais vues à l’entraînement90,2 %
Même test honnête, 10 % des étiquettes d’entraînement erronées72,2 %
30 % des étiquettes d’entraînement erronées60,5 %
50 % des étiquettes d’entraînement erronées41,3 %
Messages en français, entraînement en anglais seulement25,0 %, exactement le hasard

Les deux premières lignes utilisent la même recette. La différence, c’est le partage. Un partage négligent place des quasi-copies d’un message des deux côtés, et le test mesure alors la mémoire. Partager par famille de formulations, soit toutes les variantes d’une même façon de demander, donne un chiffre bien plus utile. scikit-learn offre des outils de partage par groupe pour cela. Dans la réalité, une famille peut être un même client, un même document ou une même séance d’enregistrement.

La dernière ligne est la plus importante dans un endroit comme le Québec. Un jeu de données uniquement anglais a donné un modèle à 25 % en français, l’équivalent d’un dé à quatre faces. L’exactitude sur votre jeu de test ne dit rien des personnes qui en sont absentes.

Le côté juridique, en termes simples

Ceci est de l’information générale et non un avis juridique. Les règles varient selon les pays et changent; consultez un juriste avant de vous y fier pour un produit.

Source des donnéesQuestion à trancherAction habituelle
Vos propres dossiers sur la clientèle ou le personnelLa personne savait-elle que cet usage était possible? S’agit-il de renseignements personnels?Retirer les identifiants, vérifier votre politique de confidentialité, obtenir le consentement si l’usage est nouveau
Textes sous licence ouverte, par exemple CC0 ou CC BYQuelle licence exacte s’applique à quel fichier? Faut-il créditer?Garder la licence et la source avec chaque fichier
Livres du domaine publicDomaine public là où vous êtes? Les ajouts peuvent ne pas l’êtreNoter l’édition; retirer les mentions ajoutées
Un site Web que vous moissonnezConditions d’utilisation? Droit d’auteur? Blocages techniques?Présumer que non, jusqu’à preuve du contraire
Résultats publiés de modèles d’autruiLes conditions permettent-elles l’entraînement?Les lire d’abord

Au Canada, la Loi sur le droit d’auteur énumère les fins d’utilisation équitable, comme la recherche, l’étude privée et l’éducation, et la fouille de textes et de données n’en fait pas partie. Elle interdit aussi de contourner les mesures techniques de protection, sous réserve d’exceptions prévues. Aux États-Unis, les tribunaux tranchent ces questions au cas par cas, et la façon d’obtenir le matériel a pesé dans la balance.

Au Québec, la Loi 25 a renforcé les règles sur les renseignements personnels et accru le rôle de la Commission d’accès à l’information. Un jeu de messages de clients contient très probablement des renseignements personnels. Entraîner un modèle avec eux peut constituer une nouvelle fin. Écrivez votre réponse et consultez la personne responsable de la protection des renseignements personnels de votre organisation.

À essayer : prenez dix vrais exemples de votre propre tâche et remplissez la fiche. Notez chaque ligne où vous avez écrit « pas certain », et réglez ces points avant de recueillir un seul autre exemple.

Comment savoir que les données suffisent avant d’entraîner quoi que ce soit de gros?

Tracez une courbe d’apprentissage : entraînez sur des sous-ensembles de plus en plus grands et testez sur le même jeu honnête. Mesuré ici, moyenne de cinq exécutions :

Lignes d’entraînementExactitude sur des formulations jamais vues
2040,9 %
4050,8 %
8071,8 %
16083,8 %
32088,9 %
64090,4 %
Toutes (environ 1 370)90,2 %

Au-delà d’environ 640 lignes, davantage de la même chose n’aide plus. C’est le signal qu’il faut changer ce que vous recueillez, pas la quantité. Une seconde expérience le montre directement. Avec environ 140 lignes, une seule famille de formulations par étiquette a donné 40,5 %; le même nombre de lignes tirées de toutes les familles a donné 83,0 %. Même taille, deux fois plus de compétence.

Si la courbe monte encore à votre taille maximale, recueillez plus d’exemples du même type. Si elle est plate et qu’il vous faut de meilleurs résultats, recueillez ce qui manque : nouvelles formulations, cas difficiles, seconde langue. Corrigez ensuite les erreurs d’étiquetage, car le tableau sur le bruit montre leur coût, et seulement après, envisagez un plus gros modèle. Avant de croire à une amélioration, passez par les tests honnêtes du projet quatre.

Téléchargez le code de cette série (zip), avec tous les scripts et les résultats enregistrés.

Sources

  1. Datasheets for Datasets — arXiv, 23 mars 2018
  2. Copyright Act (R.S.C., 1985, c. C-42) — Justice Laws Website, Government of Canada, 7 novembre 2024
  3. Entrée en vigueur des nouvelles dispositions de la Loi 25 — Gouvernement du Québec (Secrétariat à la réforme des institutions démocratiques, à l'accès à l'information et à la laïcité), 22 septembre 2023

Tiré du Guide de l’intelligence artificielle, par Robert Scales, publié par Holistic Hybrid inc. Partage et adaptation permis selon la licence CC BY-NC-SA 4.0 : citez le guide, mettez un lien vers https://guidetoartificialintelligence.com/fr/apprendre/construire-jeu-donnees-legalement/, pas d’usage commercial sans permission, et gardez la même licence.

Recevez gratuitement le Guide de l’intelligence artificielle

Abonnez-vous à l’infolettre et recevez le guide gratuit : ce qui a changé en IA, une leçon, un prompt à essayer. Désabonnement en un clic.

Ce que nous faisons de votre adresse

Retour en haut

Affichage

Vos choix sont enregistrés dans ce navigateur seulement. Aucune donnée n’est transmise.

Taille du texte
100 %
Couleurs
Lecture
Autres réglages
Déclaration d’accessibilité

Obtenir l’appli

Ajoutez le guide à votre écran d’accueil. Il s’ouvre comme une application, et les pages déjà lues restent disponibles hors ligne.

Lire sans connexion : télécharger les articles

iPhone et iPad (Safari, Chrome, Edge)

  1. Touchez le bouton Partager (le carré avec une flèche). Dans Chrome et Edge, il est dans la barre d’adresse ou le menu.
  2. Choisissez « Sur l’écran d’accueil ».
  3. Touchez « Ajouter ».

Android (Chrome, Edge, Samsung Internet, Firefox)

  1. Ouvrez le menu du navigateur (⋮ ou ☰).
  2. Choisissez « Installer l’application » ou « Ajouter à l’écran d’accueil ».
  3. Confirmez avec « Installer ».

Ordinateur (Chrome, Edge)

  1. Cliquez sur l’icône d’installation au bout de la barre d’adresse, ou ouvrez le menu du navigateur (⋮ ou …).
  2. Dans Chrome, choisissez « Caster, enregistrer et partager », puis « Installer la page en tant qu’application ». Dans Edge, choisissez « Applications », puis « Installer ce site en tant qu’application ».
  3. Cliquez sur « Installer ».

Mac (Safari)

  1. Ouvrez le menu Fichier.
  2. Choisissez « Ajouter au Dock ».
  3. Cliquez sur « Ajouter ».

Firefox sur ordinateur ne peut pas installer un site comme application. Utilisez plutôt Chrome, Edge ou Safari.