Ceci est un notebook interactif. Vous pouvez l’exécuter localement ou utiliser les liens ci-dessous :
- Les expressions régulières, pour identifier et masquer les données PII.
- Presidio de Microsoft, un SDK Python de protection des données. Cet outil fournit des fonctionnalités de masquage et de remplacement.
- Faker, une bibliothèque Python qui génère des données fictives, combinée à Presidio pour anonymiser les données PII.
weave.op et autopatch_settings pour intégrer le masquage et l’anonymisation des PII à votre flux de travail. Pour plus d’informations, voir Personnaliser les entrées et sorties journalisées.
Pour commencer, procédez comme suit :
- Consultez la section Aperçu.
- Vérifiez que les prérequis sont remplis.
- Découvrez les méthodes disponibles pour identifier, masquer et anonymiser les données PII.
- Appliquez ces méthodes aux appels Weave.
Aperçu
Cette section présente la journalisation des entrées et des sorties à l’aide deweave.op, ainsi que les bonnes pratiques pour manipuler des données personnelles identifiables (PII) dans Weave.
Personnaliser la journalisation des entrées et des sorties avec weave.op
Les ops Weave vous permettent de définir des fonctions de post-traitement des entrées et des sorties. Ces fonctions vous permettent de modifier les données transmises à votre appel LLM ou journalisées dans Weave.
L’exemple suivant définit deux fonctions de post-traitement et les transmet comme arguments à weave.op().
Bonnes pratiques pour utiliser Weave avec des données personnelles (PII)
Avant d’utiliser Weave avec des données personnelles (PII), consultez les bonnes pratiques suivantes. Elles sont regroupées par étape du cycle de vie du développement et complétées par des recommandations sur le chiffrement.Pendant les 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 données personnelles identifiables (PII) brutes.
- Chiffrez les champs sensibles avant la journalisation.
Conseils de chiffrement
- Utilisez un chiffrement réversible pour les données que vous devrez déchiffrer ultérieurement.
- Appliquez un hachage à sens unique aux ID uniques qu’il n’est pas nécessaire de retrouver en clair.
- Envisagez un chiffrement spécialisé pour les données que vous devez analyser sans les déchiffrer.
Prérequis
Avant d’appliquer l’une des méthodes de masquage, effectuez les étapes de configuration suivantes pour installer les dépendances, configurer les clés API, initialiser votre projet Weave et charger les données d’exemple.- Commencez par installer les paquets requis.
- Créez des clés API aux emplacements suivants :
- Initialisez votre projet Weave.
- 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
Une fois les prérequis remplis, vous pouvez choisir l’une des méthodes suivantes pour détecter et protéger les données personnelles (PII). Chaque méthode identifie et masque les PII, et peut également les anonymiser :- Des expressions régulières pour identifier les PII et les masquer.
- Microsoft Presidio, un SDK Python de protection des données qui fournit des fonctionnalités de masquage et de remplacement.
- Faker, une bibliothèque Python permettant de générer des données fictives.
Méthode 1 : Filtrer à l’aide d’expressions régulières
Les expressions régulières (regex) constituent une méthode simple pour identifier et masquer les données personnelles (PII). Les regex vous permettent de définir des motifs capables de reconnaître différents formats d’informations sensibles, comme les numéros de téléphone, les adresses e-mail ou les numéros de sécurité sociale. Grâce aux regex, vous pouvez parcourir de grands volumes de texte et remplacer ou masquer des informations sans recourir à des techniques de NLP plus complexes.Méthode 2 : masquer avec Microsoft Presidio
Cette méthode supprime entièrement les données PII à l’aide de Microsoft Presidio. Presidio masque les PII et les remplace par un espace réservé indiquant le type de PII. Par exemple, dans"My name is Alex", Presidio remplace 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.
Méthode 3 : anonymiser par remplacement avec Faker et Presidio
Au lieu de masquer le texte, vous pouvez l’anonymiser : MS Presidio remplace alors les données personnelles (PII), comme les noms et les numéros de téléphone, par des données fictives 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"
Une fois traitées par Presidio et Faker, ces données pourraient ressembler à ceci :
"My name is Katherine Dixon and I like to fish. My phone number is 667.431.7379"
Pour utiliser Presidio conjointement avec Faker, vous devez fournir des références à vos opérateurs personnalisés. Ces opérateurs indiquent à Presidio les fonctions Faker chargées de remplacer les données personnelles par des données fictives.
Méthode 4 : utiliser autopatch_settings
Vous pouvez utiliser autopatch_settings pour configurer la gestion des données personnelles (PII) directement lors de l’initialisation, pour une ou plusieurs des intégrations LLM prises en charge. W&B recommande cette approche si vous souhaitez centraliser la gestion des PII pour tous les appels à une intégration donnée. Cette méthode présente les avantages suivants :
- La logique de gestion des PII est centralisée et définie dès l’initialisation, ce qui évite de disperser une logique personnalisée dans le code.
- Vous pouvez personnaliser ou désactiver entièrement les flux de travail de traitement des PII pour certaines intégrations.
autopatch_settings, 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 séparément, les exemples suivants montrent comment les intégrer dans des modèles Weave et prévisualiser les résultats dans Weave Traces. Commencez par créer un modèle Weave. Un modèle Weave regroupe des informations telles que les paramètres de configuration, les poids du modèle et le code qui définit le fonctionnement du modèle. Le modèle comprend une fonction predict qui appelle l’API Anthropic. Claude Sonnet d’Anthropic effectue une analyse de sentiment, tandis que les appels LLM sont tracés à l’aide de Traces. Claude Sonnet reçoit un bloc de texte et renvoie l’une des classifications de sentiment suivantes : positif, négatif ou neutre. Le modèle comprend également les fonctions de post-traitement qui garantissent que les données personnelles (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 (appels LLM) correspondant à votre exécution. Utilisez ces liens pour vérifier que les fonctions de post-traitement ont bien masqué ou anonymisé l’entrée avant qu’elle n’atteigne le LLM.Méthode regex
Pour commencer, vous pouvez utiliser des regex afin d’identifier et de masquer les données personnelles (PII) dans le texte d’origine.Méthode de masquage Presidio
Utilisez ensuite Presidio pour identifier et masquer les données PII du texte original.
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, et Presidio pour identifier et remplacer les données PII dans le texte d’origine.
Méthode autopatch_settings
Dans l’exemple suivant, postprocess_inputs pour anthropic est défini sur 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 : Filtrer à l’aide d’expressions régulières. Ainsi, redact_with_regex s’applique à toutes les entrées de n’importe quel modèle anthropic.
Facultatif : chiffrer vos données

predict du modèle.