Passer au contenu principal
Ceci est un notebook interactif. Vous pouvez l’exécuter localement ou utiliser les liens ci-dessous :
Dans ce guide, vous apprendrez à utiliser W&B Weave tout en veillant à ce que vos données personnelles identifiables (PII) restent privées. La protection des PII vous aide à respecter les exigences de confidentialité et de conformité tout en bénéficiant du tracing et de l’évaluation des LLM. Ce guide s’adresse aux développeurs qui intègrent Weave dans des applications LLM traitant des données utilisateur sensibles. Ce guide présente les méthodes suivantes pour identifier, masquer et anonymiser les données PII :
  1. Les expressions régulières pour identifier les données PII et les masquer.
  2. Presidio de Microsoft, un SDK de protection des données basé sur Python. Cet outil offre des fonctionnalités de masquage et de remplacement.
  3. Faker, une bibliothèque Python permettant de générer de fausses données, combinée à Presidio pour anonymiser les données PII.
Vous apprendrez également à utiliser la personnalisation de la journalisation des entrées et sorties de weave.op et autopatch_settings pour intégrer le masquage et l’anonymisation des données PII au flux de travail. Pour plus d’informations, voir Personnaliser les entrées et sorties journalisées. Pour commencer, procédez comme suit :
  1. Consultez la section Aperçu.
  2. Complétez les prérequis.
  3. Consultez les méthodes disponibles pour identifier, masquer et anonymiser les données PII.
  4. Appliquez les méthodes aux appels Weave.

Aperçu

La section suivante donne un aperçu de la journalisation des données d’entrée et de sortie avec weave.op, ainsi que des bonnes pratiques pour travailler avec des données PII dans Weave.

Personnaliser la journalisation des entrées et sorties à l’aide de weave.op

Les ops Weave vous permettent de définir des fonctions de post-traitement pour les entrées et les sorties. Avec ces fonctions, vous pouvez modifier les données transmises à votre appel LLM ou enregistrées dans Weave. L’exemple suivant définit deux fonctions de post-traitement et les passe en arguments à weave.op().

Bonnes pratiques pour Weave avec des données PII

Avant d’utiliser Weave avec des données PII, consultez les bonnes pratiques d’utilisation de Weave avec des données PII. Elles sont regroupées par étape du cycle de vie du développement, avec des recommandations supplémentaires sur le chiffrement.

Lors des tests

  • Journalisez des données anonymisées pour vérifier la détection des PII.
  • Suivez les processus de gestion des PII avec Weave Traces.
  • Mesurez les performances de l’anonymisation sans exposer de véritables PII.

En production

  • Ne journalisez jamais de PII en clair.
  • Chiffrez les champs sensibles avant de les journaliser.

Conseils en matière de chiffrement

  • Utilisez un chiffrement réversible pour les données que vous devrez déchiffrer ultérieurement.
  • Utilisez un hachage à sens unique pour les ID uniques que vous n’avez pas besoin de rétablir.
  • Envisagez un chiffrement spécialisé pour les données que vous devez analyser tout en restant chiffrées.

Prérequis

Avant d’appliquer l’une des méthodes de masquage, suivez les étapes de configuration ci-dessous pour installer les dépendances, configurer les clés API, initialiser votre projet Weave et charger les données d’exemple.
  1. Commencez par installer les packages requis.
  1. Créez des clés API aux adresses suivantes :
  1. Initialisez votre projet Weave.
  1. Chargez le jeu de données de démonstration contenant des PII, qui comprend 10 blocs de texte.

Aperçu des méthodes de masquage

Après avoir terminé les prérequis, vous pouvez choisir l’une des méthodes suivantes pour détecter et protéger les données PII. Chaque méthode identifie et masque les données PII et, éventuellement, les anonymise :
  1. Expressions régulières pour identifier les données PII et les masquer.
  2. Microsoft Presidio, un SDK Python de protection des données qui offre des fonctionnalités de masquage et de remplacement.
  3. Faker, une bibliothèque Python permettant de générer de fausses données.

Méthode 1 : Filtrer avec des expressions régulières

Les expressions régulières (regex) constituent une méthode simple pour identifier et masquer les données PII. Les regex vous permettent de définir des motifs capables de correspondre à différents formats d’informations sensibles, comme les numéros de téléphone, les adresses e-mail et les numéros de sécurité sociale. Avec les regex, vous pouvez parcourir de grands volumes de texte et remplacer ou masquer des informations sans recourir à des techniques de NLP plus complexes.
Pour tester la fonction, exécutez la commande suivante avec un exemple de texte :

Méthode 2 : Masquer à l’aide de Microsoft Presidio

La méthode suivante consiste à supprimer entièrement les données PII à l’aide de Microsoft Presidio. Presidio masque les données PII et les remplace par un espace réservé représentant le type de PII. Par exemple, Presidio remplace Alex dans "My name is Alex" par <PERSON>. Presidio prend en charge nativement les entités courantes. L’exemple suivant masque toutes les entités de type PHONE_NUMBER, PERSON, LOCATION, EMAIL_ADDRESS ou US_SSN. Le traitement Presidio est encapsulé dans une fonction.
Pour tester la fonction, exécutez ce qui suit avec un exemple de texte :

Méthode 3 : anonymiser par remplacement à l’aide de Faker et Presidio

Au lieu de masquer le texte, vous pouvez l’anonymiser en utilisant MS Presidio pour remplacer des PII, comme des noms et des numéros de téléphone, par des données factices générées par la bibliothèque Python Faker. Par exemple, supposons que vous disposiez des données suivantes : "My name is Raphael and I like to fish. My phone number is 212-555-5555" Après traitement des données par Presidio et Faker, le résultat peut ressembler à ceci : "My name is Katherine Dixon and I like to fish. My phone number is 667.431.7379" Pour utiliser Presidio et Faker ensemble, vous devez fournir des références à vos opérateurs personnalisés. Ces opérateurs indiquent à Presidio quelles fonctions de Faker doivent remplacer les PII par des données factices.
Pour regrouper le code dans une seule classe et étendre la liste des entités pour y inclure celles supplémentaires identifiées précédemment, exécutez la commande suivante :
Pour tester la fonction, exécutez ce qui suit avec un exemple de texte :

Méthode 4 : Utiliser autopatch_settings

Vous pouvez utiliser autopatch_settings pour configurer la gestion des PII directement lors de l’initialisation pour une ou plusieurs intégrations LLM prises en charge. W&B recommande cette approche lorsque vous souhaitez une gestion centralisée des PII sur tous les appels d’une intégration donnée. Les avantages de cette méthode sont les suivants :
  1. La logique de gestion des PII est centralisée et définie à l’initialisation, ce qui réduit le besoin de logique personnalisée dispersée.
  2. Vous pouvez personnaliser ou désactiver entièrement les flux de travail de traitement des PII pour des intégrations spécifiques.
Pour utiliser autopatch_settings afin de configurer la gestion des PII, définissez postprocess_inputs ou postprocess_output dans op_settings pour l’une des intégrations LLM prises en charge.

Appliquer les méthodes aux appels Weave

Maintenant que vous avez vu chaque méthode de masquage prise isolément, les exemples suivants montrent comment les intégrer à Weave Models et comment prévisualiser les résultats dans Weave Traces. Créez d’abord un Weave Model. Un Weave Model est un ensemble d’informations, comme les paramètres de configuration, les poids du modèle et le code qui définit son fonctionnement. Le modèle inclut une fonction predict dans laquelle l’API Anthropic est appelée. Claude Sonnet d’Anthropic effectue une analyse de sentiment tout en assurant le traçage des appels LLM à l’aide de Traces. Claude Sonnet reçoit un bloc de texte et renvoie l’une des classifications de sentiment suivantes : positive, negative ou neutral. Le modèle inclut également des fonctions de post-traitement pour garantir que les données PII sont masquées ou anonymisées avant d’être envoyées au LLM. Une fois ce code exécuté, vous obtenez des liens vers la page du projet Weave, ainsi que vers la trace spécifique correspondant aux appels LLM que vous avez exécutés. Utilisez ces liens pour vérifier que les fonctions de post-traitement ont masqué ou anonymisé les données d’entrée comme prévu avant qu’elles n’atteignent le LLM.

Méthode regex

Pour commencer, vous pouvez utiliser des regex pour identifier et masquer les données PII dans le texte original.

Méthode de masquage avec Presidio

Ensuite, utilisez Presidio pour identifier et masquer les données PII dans le texte original.
Processus de masquage des PII avec Presidio, montrant les entités PII identifiées et le texte masqué en sortie

Méthode de remplacement avec Faker et Presidio

Dans cet exemple, vous utilisez Faker pour générer des données PII de remplacement anonymisées, puis Presidio pour identifier et remplacer les données PII dans le texte d’origine.
Processus de remplacement des PII avec Faker et Presidio, avec le texte d’origine, les PII identifiées et les valeurs de remplacement anonymisées

méthode autopatch_settings

Dans l’exemple suivant, postprocess_inputs pour anthropic est défini avec la fonction postprocess_inputs_regex() lors de l’initialisation. La fonction postprocess_inputs_regex applique la méthode redact_with_regex définie dans Méthode 1 : Filtrage à l’aide d’expressions régulières. Par conséquent, redact_with_regex est appliquée à toutes les entrées de tous les modèles anthropic.

Facultatif : Chiffrez vos données

Processus de chiffrement des données PII avec sortie de texte chiffré et gestion de la clé de chiffrement
En plus d’anonymiser les PII, vous pouvez ajouter une couche de sécurité supplémentaire en chiffrant vos données avec le chiffrement symétrique Fernet de la bibliothèque cryptography. Cette approche garantit que, même si les données anonymisées sont interceptées, elles restent illisibles sans la clé de chiffrement. L’exemple suivant montre comment chiffrer le texte d’entrée avant son enregistrement, puis le déchiffrer dans la méthode predict du modèle.