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 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 50 000 invites au total. Même si le taux de régurgitation semblait être inférieur à 1 %, nous avons estimé qu'il était nécessaire de ramener le taux à 0 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 nous en sommes rendu compte, 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 travaux 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.[^footnote-2]
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.[^footnote-3]
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'utilisationK=1024 clusters. 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'amener 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 000 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 50 000 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.
Source