Intelligence de données générative

Atténuations de pré-formation DALL·E 2

Date :

Afin de partager la magie de DALLE E 2 avec un large public, nous devions réduire les risques associés aux puissants modèles de génération d'images. A cet effet, nous mettons divers garde-corps en place pour empêcher les images générées de violer nos politique de contenu. Ce billet porte sur atténuations avant la formation, un sous-ensemble de ces barrières de sécurité qui modifient directement les données à partir desquelles DALL·E 2 apprend. En particulier, DALL·E 2 est formé sur des centaines de millions d'images sous-titrées provenant d'Internet, et nous supprimons et repondérons certaines de ces images pour modifier ce que le modèle apprend.

Cet article est organisé en trois sections, chacune décrivant une atténuation différente avant la formation :

  • Dans la première section, nous décrivons comment nous avons filtré les images violentes et sexuelles de l'ensemble de données d'entraînement de DALL·E 2. Sans cette atténuation, le modèle apprendrait à produire des images graphiques ou explicites lorsqu'il y est invité, et pourrait même renvoyer de telles images involontairement en réponse à des invites apparemment anodines.
  • Dans la deuxième section, nous constatons que le filtrage des données de formation peut amplifier les biais et décrivons notre technique pour atténuer cet effet. Par exemple, sans cette atténuation, nous avons remarqué que les modèles entraînés sur des données filtrées généraient parfois plus d'images représentant des hommes et moins d'images représentant des femmes par rapport aux modèles entraînés sur l'ensemble de données d'origine.
  • Dans la dernière section, nous nous tournons vers la question de la mémorisation, constatant que des modèles comme DALL·E 2 peuvent parfois reproduire des images sur lesquelles ils ont été entraînés plutôt que de créer de nouvelles images. En pratique, nous avons constaté que cela image régurgitation est causée par des images qui sont répliquées plusieurs fois dans l'ensemble de données, et atténuez le problème en supprimant les images visuellement similaires aux autres images de l'ensemble de données.

Réduire les données d'entraînement graphiques et explicites

Étant donné que les données d'entraînement façonnent les capacités de tout modèle appris, le filtrage des données est un outil puissant pour limiter les capacités de modèle indésirables. Nous avons appliqué cette approche à deux catégories (images représentant la violence graphique et le contenu sexuel) en utilisant des classificateurs pour filtrer les images de ces catégories hors de l'ensemble de données avant de former DALL·E 2. Nous avons formé ces classificateurs d'images en interne et continuons à étudier le effets du filtrage des ensembles de données sur notre modèle formé.

Pour former nos classificateurs d'images, nous avons réutilisé une approche que nous avions précédemment employée pour filtrer les données de formation pour GLISSER. Les étapes de base de cette approche sont les suivantes : premièrement, nous créons une spécification pour les catégories d'images que nous souhaitons étiqueter ; deuxièmement, nous rassemblons quelques centaines d'exemples positifs et négatifs pour chaque catégorie ; troisièmement, nous utilisons une procédure d'apprentissage actif pour recueillir plus de données et améliorer le compromis précision/rappel ; et enfin, nous exécutons le classificateur résultant sur l'ensemble de données avec un seuil de classification prudent pour favoriser le rappel plutôt que la précision. Pour définir ces seuils, nous avons priorisé le filtrage de tous les mauvais données sur les départs dans tous les Bien Les données. En effet, nous pouvons toujours affiner notre modèle avec plus de données plus tard pour lui apprendre de nouvelles choses, mais il est beaucoup plus difficile de faire oublier au modèle quelque chose qu'il a déjà appris.

image
image
Nous commençons avec un petit ensemble de données d'images étiquetées (en haut de la figure). Nous formons ensuite un classifieur sur ces données. Le processus d'apprentissage actif utilise ensuite le classificateur actuel pour sélectionner une poignée d'images non étiquetées susceptibles d'améliorer les performances du classificateur. Enfin, les humains produisent des étiquettes pour ces images, en les ajoutant à l'ensemble de données étiqueté. Le processus peut être répété pour améliorer de manière itérative les performances du classifieur.

Au cours de la phase d'apprentissage actif, nous avons amélioré de manière itérative nos classificateurs en rassemblant des étiquettes humaines pour les images potentiellement difficiles ou mal classées. Notamment, nous avons utilisé deux techniques d'apprentissage actif pour choisir des images de notre ensemble de données (qui contient des centaines de millions d'images non étiquetées) à présenter aux humains pour étiquetage. Premièrement, pour réduire le taux de faux positifs de notre classificateur (c'est-à-dire la fréquence à laquelle il classe à tort une image bénigne comme violente ou sexuelle), nous avons attribué des étiquettes humaines aux images que le modèle actuel classait comme positives. Pour que cette étape fonctionne bien, nous avons réglé notre seuil de classification pour un rappel de près de 100 % mais un taux de faux positifs élevé ; de cette façon, nos étiqueteurs étiquetaient principalement les cas vraiment négatifs. Bien que cette technique aide à réduire les faux positifs et réduit la nécessité pour les étiqueteurs de regarder des images potentiellement dangereuses, elle n'aide pas à trouver plus de cas positifs que le modèle manque actuellement.

Pour réduire le taux de faux négatifs de notre classifieur, nous avons utilisé une seconde technique d'apprentissage actif : la recherche du plus proche voisin. En particulier, nous avons exécuté une validation croisée multiple pour trouver des échantillons positifs dans notre ensemble de données étiqueté actuel que le modèle avait tendance à classer à tort comme négatif (pour ce faire, nous avons littéralement formé des centaines de versions du classificateur avec différentes divisions de validation de train). Nous avons ensuite scanné notre vaste collection d'images non étiquetées pour les voisins les plus proches de ces échantillons dans un espace de caractéristiques perceptuelles, et avons attribué des étiquettes humaines aux images découvertes. Grâce à notre infrastructure de calcul, il était facile d'étendre à la fois la formation des classificateurs et la recherche du voisin le plus proche à de nombreux GPU, permettant à l'étape d'apprentissage actif de se dérouler sur un certain nombre de minutes plutôt que sur des heures ou des jours.

Pour vérifier l'efficacité de nos filtres de données, nous avons entraîné deux modèles GLIDE avec les mêmes hyperparamètres : un sur les données non filtrées et un sur l'ensemble de données après filtrage. Nous appelons l'ancien modèle le modèle non filtré, et ce dernier comme le modèle filtré. Comme prévu, nous avons constaté que le modèle non filtré produisait généralement un contenu moins explicite ou graphique en réponse aux demandes pour ce type de contenu. Cependant, nous avons également trouvé un effet secondaire inattendu du filtrage des données : il a créé ou amplifié les biais du modèle envers certaines données démographiques.

Unfiltered

image
Filtré

Des générations pour la « manifestation militaire » rapide à partir de notre modèle non filtré (à gauche) et de notre modèle filtré (à droite). Notamment, le modèle filtré ne produit presque jamais d'images d'armes à feu.

Correction du biais introduit par les filtres de données

Les modèles génératifs tentent de faire correspondre la distribution de leurs données d'entraînement, y compris les biais qui y sont associés. Par conséquent, le filtrage des données d'apprentissage a le potentiel de créer ou d'amplifier des biais dans les modèles en aval. En général, la correction des biais dans l'ensemble de données d'origine est une tâche sociotechnique difficile que nous continuons à étudier et qui dépasse le cadre de cet article. Le problème que nous abordons ici est l'amplification des biais causés spécifiquement par le filtrage des données lui-même. Avec notre approche, nous visons à empêcher le modèle filtré d'être PLUS biaisé que le modèle non filtré, ce qui réduit essentiellement le décalage de distribution causé par le filtrage des données.

Comme exemple concret d'amplification de biais due au filtrage, considérons l'invite « un PDG ». Lorsque notre modèle non filtré a généré des images pour cette invite, il a eu tendance à produire plus d'images d'hommes que de femmes, et nous nous attendons à ce que la majeure partie de ce biais soit le reflet de nos données d'entraînement actuelles. Cependant, lorsque nous avons exécuté la même invite dans notre modèle filtré, le biais a semblé être amplifié ; les générations étaient presque exclusivement des images d'hommes.

Nous émettons l'hypothèse que ce cas particulier d'amplification des biais provient de deux endroits : premièrement, même si les femmes et les hommes ont une représentation à peu près égale dans l'ensemble de données d'origine, l'ensemble de données peut être biaisé en faveur de la présentation des femmes dans des contextes plus sexualisés ; et deuxièmement, nos classificateurs eux-mêmes peuvent être biaisés en raison de la mise en œuvre ou de la définition de classe, malgré nos efforts pour nous assurer que ce n'était pas le cas pendant les phases de collecte et de validation des données. En raison de ces deux effets, notre filtre peut supprimer plus d'images de femmes que d'hommes, ce qui modifie le ratio hommes-femmes observé par le modèle lors de l'entraînement.

Pour étudier plus en profondeur le biais induit par les filtres, nous voulions un moyen de mesurer dans quelle mesure nos filtres de données affectaient le biais envers divers concepts. Notamment, nos filtres de violence et de contenu sexuel sont purement basés sur l'image, mais la nature multimodale de notre ensemble de données nous permet de mesurer directement les effets de ces filtres sur le texte. Étant donné que chaque image est accompagnée d'une légende de texte, nous avons pu examiner la fréquence relative des mots-clés sélectionnés manuellement dans l'ensemble de données filtré et non filtré pour estimer dans quelle mesure les filtres affectaient un concept donné.

Pour mettre cela en pratique, nous avons utilisé Apache Spark pour calculer les fréquences d'une poignée de mots clés (par exemple, "parent", "femme", "enfant") sur toutes les légendes dans nos ensembles de données filtrés et non filtrés. Même si notre ensemble de données contient des centaines de millions de paires texte-image, le calcul de ces fréquences de mots-clés n'a pris que quelques minutes à l'aide de notre cluster de calcul.

Après avoir calculé les fréquences des mots-clés, nous avons pu confirmer que nos filtres de jeu de données avaient effectivement biaisé les fréquences de certains mots-clés plus que d'autres. Par exemple, les filtres ont réduit la fréquence du mot « femme » de 14 %, tandis que la fréquence du mot « homme » n'a été réduite que de 6 %. Cela a confirmé, à grande échelle, ce que nous avions déjà observé de manière anecdotique en échantillonnant à partir de modèles GLIDE entraînés sur les deux jeux de données.

image
image
Une illustration de la repondération des jeux de données. Nous commençons avec un ensemble de données équilibré (à gauche). Si notre filtre affecte une catégorie plus qu'une autre, il peut créer un jeu de données biaisé (moyen). En utilisant la repondération, nous « répétons » effectivement certaines données plus que d'autres, ce qui nous permet de rééquilibrer le biais causé par les filtres (à droite).

Maintenant que nous disposions d'un proxy pour mesurer le biais induit par le filtre, nous avions besoin d'un moyen de l'atténuer. Pour résoudre ce problème, nous avons cherché à repondérer l'ensemble de données filtré afin que sa distribution corresponde mieux à la distribution des images non filtrées. Pour illustrer cette idée, supposons que notre ensemble de données se compose de 50 % de photos de chats et de 50 % de photos de chiens, mais que nos filtres de données suppriment 75 % des chiens mais seulement 50 % des chats. L'ensemble de données final serait ⅔ de chats et ⅓ de chiens, et un modèle génératif basé sur la vraisemblance formé sur cet ensemble de données générerait probablement plus d'images de chats que de chiens. Nous pouvons corriger ce déséquilibre en multipliant la perte d'entraînement de chaque image d'un chien par 2, en imitant l'effet de répéter deux fois chaque image de chien. Il s'avère que nous pouvons adapter cette approche à nos jeux de données et modèles réels d'une manière largement automatique, c'est-à-dire que nous n'avons pas besoin de sélectionner manuellement les fonctionnalités que nous voulons repondérer.

Nous calculons les poids des images dans l'ensemble de données filtré à l'aide des probabilités d'un classificateur spécial, similaire à l'approche utilisée par Choi et al. (2019). Pour former ce classificateur, nous échantillonnons uniformément les images des deux ensembles de données et prédisons de quel ensemble de données provient l'image. En particulier, ce modèle prédit P(non filtré|image), étant donné un a priori P(non filtré) = 0.5. En pratique, nous ne voulons pas que ce modèle soit trop puissant, sinon il pourrait apprendre la fonction exacte mise en œuvre par nos filtres en premier lieu. Au lieu de cela, nous voulons que le modèle soit plus fluide que nos filtres de données d'origine, capturant les grandes catégories qui sont affectées par les filtres tout en ne sachant toujours pas si une image particulière serait filtrée ou non. À cette fin, nous avons entraîné une sonde linéaire au-dessus d'un petit CLIP .

Une fois que nous avons un classificateur qui prédit la probabilité qu'une image provienne de l'ensemble de données non filtré, nous devons encore convertir cette prédiction en un poids pour l'image. Par exemple, supposons que P(non filtré|image) = 0.8. Cela signifie que l'échantillon est 4 fois plus susceptible d'être trouvé dans les données non filtrées que dans les données filtrées, et un poids de 4 devrait corriger le déséquilibre. Plus généralement, on peut utiliser le poids P(non filtré|image)/P(filtré|image).

Dans quelle mesure ce schéma de repondération atténue-t-il réellement le biais amplifié ? Lorsque nous avons affiné notre modèle filtré précédent avec le nouveau schéma de pondération, le comportement du modèle affiné correspondait beaucoup plus étroitement au modèle non filtré sur les exemples biaisés que nous avions précédemment trouvés. Bien que cela soit encourageant, nous voulions également évaluer cette atténuation de manière plus approfondie à l'aide de notre heuristique de biais basée sur les mots clés. Pour mesurer les fréquences des mots clés tout en tenant compte de notre nouveau schéma de pondération, nous pouvons simplement pondérer chaque instance d'un mot clé dans l'ensemble de données filtré par le poids de l'échantillon qui le contient. Ce faisant, nous obtenons un nouvel ensemble de fréquences de mots-clés qui reflètent les poids d'échantillonnage dans l'ensemble de données filtré.

Sur la plupart des mots clés que nous avons vérifiés, le schéma de repondération a réduit le changement de fréquence induit par le filtrage. Pour nos exemples précédents de « homme » et « femme », les réductions de fréquence relatives sont devenues de 1 % et -1 %, alors que leurs valeurs précédentes étaient de 14 % et 6 %, respectivement. Bien que cette métrique ne soit qu'une approximation du biais de filtrage réel, il est rassurant que notre schéma de repondération basé sur l'image améliore réellement une métrique basée sur le texte de manière si significative.

Nous continuons d'étudier les biais restants dans DALL·E 2, en partie par le biais d'évaluations plus larges du comportement du modèle et d'enquêtes sur l'impact du filtrage sur les biais et le développement des capacités.

Prévenir la régurgitation d'image

Nous avons observé que nos prédécesseurs internes de DALL·E 2 reproduisaient parfois textuellement les images d'entraînement. Ce comportement n'était pas souhaitable, car nous voudrions que DALL·E 2 crée des images originales et uniques par défaut et pas simplement « assembler » des morceaux d'images existantes. De plus, la reproduction textuelle des images de formation peut soulever des questions juridiques concernant la violation du droit d'auteur, la propriété et la confidentialité (si les photos des personnes étaient présentes dans les données de formation).

Pour mieux comprendre le problème de la régurgitation d'images, nous avons collecté un ensemble de données d'invites qui entraînaient fréquemment des images en double. Pour ce faire, nous avons utilisé un modèle entraîné pour échantillonner des images pour 50,000 50 invites de notre ensemble de données d'entraînement, et trié les échantillons par similarité perceptuelle avec l'image d'entraînement correspondante. Enfin, nous avons inspecté les meilleures correspondances à la main, ne trouvant que quelques centaines de vraies paires en double sur les 1 0 invites au total. Même si le taux de régurgitation semblait être inférieur à XNUMX %, nous avons estimé qu'il était nécessaire de ramener le taux à XNUMX pour les raisons énoncées ci-dessus.

Lorsque nous avons étudié notre ensemble de données d'images régurgitées, nous avons remarqué deux modèles. Premièrement, les images étaient presque toutes de simples graphiques vectoriels, qui étaient probablement faciles à mémoriser en raison de leur faible contenu en informations. Deuxièmement, et plus important encore, les images avaient toutes de nombreux quasi-doubles dans l'ensemble de données d'apprentissage. Par exemple, il pourrait y avoir un graphique vectoriel qui ressemble à une horloge indiquant l'heure 1 heure, mais nous découvririons alors un échantillon d'apprentissage contenant la même horloge indiquant 2 heures, puis 3 heures, etc. nous l'avons réalisé, nous avons utilisé une recherche distribuée du plus proche voisin pour vérifier que, en effet, toutes les images régurgitées avaient des doublons perceptuellement similaires dans l'ensemble de données. Autre vos contrats ont observé un phénomène similaire dans les grands modèles de langage, constatant que la duplication des données est fortement liée à la mémorisation.

La découverte ci-dessus suggère que, si nous dédupliquions notre ensemble de données, nous pourrions résoudre le problème de régurgitation. Pour y parvenir, nous avons prévu d'utiliser un réseau de neurones pour identifier les groupes d'images qui se ressemblaient, puis de supprimer toutes les images sauf une de chaque groupe. Cependant, cela nécessiterait de vérifier, pour chaque image, s'il s'agit d'un doublon de toutes les autres images du jeu de données. Étant donné que l'ensemble de nos données contient des centaines de millions d'images, nous aurions naïvement besoin de vérifier des centaines de quadrillions de paires d'images pour trouver tous les doublons. Bien que cela soit techniquement à portée de main, en particulier sur un grand cluster de calcul, nous avons trouvé une alternative beaucoup plus efficace qui fonctionne presque aussi bien à une petite fraction du coût.

Considérez ce qui se passe si nous regroupons notre ensemble de données avant d'effectuer la déduplication. Étant donné que les échantillons proches appartiennent souvent au même cluster, la plupart des paires en double ne franchissent pas les limites de décision du cluster. Nous pourrions alors dédupliquer les échantillons au sein de chaque cluster sans vérifier les doublons en dehors du cluster, tout en ne manquant qu'une petite fraction de toutes les paires en double. C'est beaucoup plus rapide que l'approche naïve, car nous n'avons plus à vérifier chaque paire d'images. Lorsque nous avons testé cette approche de manière empirique sur un petit sous-ensemble de nos données, elle a trouvé 85 % de toutes les paires en double lors de l'utilisation K = 1024 groupes.

Pour améliorer le taux de réussite de l'algorithme ci-dessus, nous avons tiré parti d'une observation clé : lorsque vous regroupez différents sous-ensembles aléatoires d'un ensemble de données, les limites de décision de cluster résultantes sont souvent très différentes. Par conséquent, si une paire en double traverse une limite de cluster pour un clustering des données, la même paire peut tomber à l'intérieur d'un cluster unique dans un clustering différent. Plus vous essayez de clusterings, plus vous avez de chances de découvrir une paire en double donnée. En pratique, nous avons choisi d'utiliser cinq clusterings, ce qui signifie que nous recherchons des doublons de chaque image dans l'union de cinq clusters différents. En pratique, cela a trouvé 97 % de toutes les paires en double sur un sous-ensemble de nos données.

Étonnamment, près d'un quart de notre ensemble de données a été supprimé par déduplication. Lorsque nous avons examiné les paires quasi-dupliquées qui ont été trouvées, beaucoup d'entre elles incluaient des changements significatifs. Rappelez-vous l'exemple d'horloge ci-dessus : l'ensemble de données peut inclure de nombreuses images de la même horloge à différents moments de la journée. Bien que ces images soient susceptibles d'inciter le modèle à mémoriser l'apparence de cette horloge particulière, elles pourraient également aider le modèle à apprendre à distinguer les heures de la journée sur une horloge. Compte tenu de la quantité de données supprimées, nous craignions que la suppression d'images comme celle-ci n'ait nui aux performances du modèle.

Pour tester l'effet de la déduplication sur nos modèles, nous avons entraîné deux modèles avec des hyperparamètres identiques : un sur l'ensemble de données complet et un sur la version dédupliquée de l'ensemble de données. Pour comparer les modèles, nous avons utilisé les mêmes évaluations humaines que nous avons utilisées pour évaluer notre modèle GLIDE original. Étonnamment, nous avons constaté que les évaluateurs humains légèrement préféré le modèle s'est entraîné sur des données dédupliquées, ce qui suggère que la grande quantité d'images redondantes dans l'ensemble de données nuisait en fait aux performances.

Une fois que nous avions formé un modèle sur des données dédupliquées, nous avons relancé la recherche de régurgitation que nous avions précédemment effectuée sur plus de 50 50 invites à partir de l'ensemble de données de formation. Nous avons constaté que le nouveau modèle ne régurgitait jamais une image d'entraînement lorsqu'il recevait l'invite exacte pour l'image à partir de l'ensemble de données d'entraînement. Pour aller plus loin dans ce test, nous avons également effectué une recherche du plus proche voisin sur l'ensemble de données d'apprentissage pour chacune des XNUMX XNUMX images générées. De cette façon, nous avons pensé que nous pourrions surprendre le modèle en train de régurgiter une image différente de celle associée à une invite donnée. Même avec cette vérification plus approfondie, nous n'avons jamais trouvé de cas de régurgitation d'image.

Prochaines étapes

Bien que toutes les mesures d'atténuation décrites ci-dessus représentent des progrès significatifs vers notre objectif de réduction des risques associés à DALL·E 2, chaque mesure d'atténuation peut encore être améliorée :

  • De meilleurs filtres de pré-formation pourraient nous permettre de former DALL·E 2 sur plus de données et potentiellement de réduire davantage le biais dans le modèle. Nos filtres actuels sont réglés pour un faible taux d'échec au prix de nombreux faux positifs. En conséquence, nous avons filtré environ 5 % de l'ensemble de nos données, même si la plupart de ces images filtrées ne violent pas du tout notre politique de contenu. L'amélioration de nos filtres pourrait nous permettre de récupérer certaines de ces données d'entraînement.
  • Le biais est introduit et potentiellement amplifié à de nombreuses étapes du développement et du déploiement du système. Évaluer et atténuer le biais dans des systèmes comme DALL·E 2 et les dommages induits par ce biais est un problème interdisciplinaire important que nous continuons d'étudier à OpenAI dans le cadre de notre mission plus large. Notre travail à ce sujet comprend la construction d'évaluations pour mieux comprendre le problème, la conservation de nouveaux ensembles de données et l'application de techniques telles que la rétroaction humaine et l'ajustement pour créer des technologies plus robustes et représentatives.
  • Il est également crucial que nous continuions à étudier la mémorisation et la généralisation dans les systèmes d'apprentissage en profondeur. Bien que la déduplication soit un bon premier pas vers la prévention de la mémorisation, elle ne nous dit pas tout ce qu'il y a à savoir sur pourquoi ou comment des modèles comme DALL·E 2 mémorisent les données d'entraînement.
spot_img

Dernières informations

spot_img

Discutez avec nous

Salut! Comment puis-je t'aider?