SynthID : outils permettant d'ajouter un filigrane et de détecter le texte généré par un LLM

L'intelligence artificielle générative (GenAI) peut générer un plus large éventail de divers contenus à des échelles jusqu'alors inimaginables. Bien que la majorité de ces utilisations soient à des fins légitimes, nous craignons qu'elles ne contribuent à des problèmes de désinformation et d'attribution erronée. Le filigranage est une technique permettant d'atténuer ces impacts potentiels. Des filigranes imperceptibles par l'humain peuvent être appliqués au contenu généré par IA, et les modèles de détection peuvent évaluer un contenu arbitraire pour indiquer la probabilité qu'il ait été filigrané.

SynthID est une technologie de Google DeepMind qui ajoute des filigranes identifie le contenu généré par IA en intégrant des filigranes numériques directement dans des images, de l'audio, du texte ou des vidéos générés par IA. SynthID Text a été mis à disposition en Open Source afin de mettre à la disposition des développeurs le filigrane pour la génération de texte. Vous pouvez lire l'article de Nature pour obtenir des informations techniques plus complètes description de la méthode.

Une implémentation de SynthID Text de qualité production est disponible dans Hugging Face Transformers v4.46.0+, que vous pouvez essayer dans l'espace de texte SynthID officiel. Une implémentation de référence est également disponible sur GitHub. Elle peut être utile aux mainteneurs et contributeurs Open Source qui souhaitent appliquer cette technique à d'autres frameworks.

Application de filigrane

Concrètement, SynthID Text est un processeur logits, appliqué à votre du pipeline de génération du modèle suivant Top-K et Top-P, qui augmente les fonctions logit du modèle à l'aide d'une fonction g pseudo-aléatoire pour encoder en filtrant les informations de manière à équilibrer la qualité de la génération et la détection des filigranes. Consultez l'article pour obtenir des description technique de l'algorithme et analyse des différences de configuration affectent les performances.

Les filigranes sont configurés pour paramétrer le g et son application lors de la génération. Chaque modèle que vous utilisez doit avoir sa propre configuration de filigrane qui doit être stockée de manière sécurisée et privée. Sinon, votre filigrane risque d'être facilement répliqué par d'autres.

Vous devez définir deux paramètres dans chaque configuration de filigrane :

  • Le paramètre keys est une liste d'entiers uniques et aléatoires utilisés pour calculer des scores de la fonction g dans le vocabulaire du modèle. La durée de cette liste détermine le nombre de couches de filigrane à appliquer. Pour en savoir plus, consultez l'annexe C.1 de l'article.
  • Le paramètre ngram_len permet d'équilibrer la robustesse et la détectabilité. plus la valeur est élevée, plus le filigrane sera détectable. d'être plus fragiles aux changements. Une longueur de 5 est une bonne valeur par défaut.

Vous pouvez configurer davantage le filigrane en fonction de vos besoins en termes de performances :

  • Une table d'échantillonnage est configurée par deux propriétés, sampling_table_size et sampling_table_seed Vous devez utiliser un sampling_table_size d'au moins \( 2^{16} \) pour garantir une fonction G impartiale et stable lors de l'échantillonnage, mais sachez que la taille de la table d'échantillonnage a un impact sur la quantité la mémoire requise au moment de l'inférence. Vous pouvez utiliser n'importe quel entier comme sampling_table_seed.
  • Les n-grammes répétés dans les jetons context_history_size précédents ne sont pas en filigrane pour améliorer la détection.

Aucun entraînement supplémentaire n'est requis pour générer du texte avec un texte SynthID filigrane à l'aide de vos modèles, une seule ligne configuration de filigrane qui est transmise Méthode .generate() pour activer le texte SynthID processeur logit. Consultez l'article de blog et Space pour obtenir des exemples de code montrant comment appliquer un filigrane dans la bibliothèque Transformers.

Détection et vérifiabilité des filigranes

La détection de filigrane est probabiliste. Un détecteur bayésien est fourni avec Hugging Face Transformers et GitHub Ce détecteur peut générer trois types de détection (filigrane, non filigrane ou incertain) et le comportement peut être personnalisé en définissant deux valeurs de seuil. Pour en savoir plus, consultez l'annexe C.8 de l'article.

Vous pouvez ajuster les seuils pour atteindre une valeur spécifique de faux positifs et de faux positifs. un taux négatif en fonction d'une série de requêtes ou d'une durée. Pour en savoir plus, consultez l'annexe C.8 de l'article.

Une fois que vous avez entraîné un détecteur, vous pouvez choisir de l'exposer à vos utilisateurs et au public en général, et de la manière dont vous le faites.

  • L'option full-private ne libère ni n'expose le détecteur dans aucun de la même façon.
  • L'option semi-private ne libère pas le détecteur, mais expose via une API.
  • L'option public permet de libérer le détecteur pour que d'autres utilisateurs puissent le télécharger et l'utiliser.

Vous et votre organisation devez choisir la méthode de validation de la détection le mieux à vos besoins, en fonction de votre capacité à prendre en charge de l'infrastructure et des processus.

Limites

Les filigranes de texte SynthID résistent à certaines transformations, c'est-à-dire les recadrages de texte, en modifiant quelques mots ou en paraphrasant légèrement. Toutefois, cette méthode ont des limites.

  • L'application de filigranes est moins efficace sur les réponses factuelles, car il y a moins de possibilités d'augmenter la génération sans réduire la précision.
  • Les scores de confiance du détecteur peuvent être considérablement réduits lorsqu'un texte généré par IA est entièrement réécrit ou traduit dans une autre langue.

SynthID Text n'est pas conçu pour empêcher directement les adversaires motivés de causer du tort. Toutefois, il peut rendre plus difficile l'utilisation de contenus générés par IA à des fins malveillantes, et il peut être combiné à d'autres approches pour offrir une meilleure couverture pour les types de contenus et les plates-formes.