Nous avons observé que nos prédécesseurs internes de DALL·E 2 reproduisaient parfois textuellement les images de formation. Ce comportement n'était pas souhaitable, car nous aimerions que DALL·E 2 crée des images originales et uniques par défaut et ne se contente pas de « 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 des images, nous avons collecté un ensemble de données d'invites qui aboutissaient fréquemment à des images dupliquées. 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 de formation, et trié les échantillons par similarité perceptuelle avec l'image de formation correspondante. Enfin, nous avons inspecté manuellement les meilleures correspondances, trouvant seulement quelques centaines de véritables paires en double sur les 50 000 invites au total. Même si le taux de régurgitation semblait inférieur à 1 %, il nous a semblé nécessaire de le ramener à 0 pour les raisons évoquées ci-dessus.
Lorsque nous avons étudié notre ensemble de données d’images régurgitées, nous avons remarqué deux tendances. Premièrement, les images étaient presque toutes de simples graphiques vectoriels, probablement faciles à mémoriser en raison de leur faible contenu informatif. Deuxièmement, et plus important encore, les images comportaient toutes de nombreux quasi-doublons dans l’ensemble de données d’entraînement. 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 voisin le plus proche pour vérifier qu'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.
Les résultats ci-dessus suggèrent 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.(^note de bas de page-2)
Cependant, cela nécessiterait de vérifier, pour chaque image, s'il s'agit d'un double de toutes les autres images de l'ensemble de données. Puisque l’ensemble de notre ensemble de 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 réalisable, en particulier sur un grand cluster de calcul, nous avons trouvé une alternative beaucoup plus efficace qui fonctionne presque aussi bien pour 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 franchiraient pas les limites de décision des clusters. Nous pourrions ensuite dédupliquer les échantillons au sein de chaque cluster sans rechercher 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, puisque nous n’avons plus besoin de vérifier chaque paire d’images.(^note de bas de page-3)
Lorsque nous avons testé cette approche empiriquement sur un petit sous-ensemble de nos données, nous avons 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 exploité 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 qui en résultent sont souvent très différentes. Par conséquent, si une paire en double traverse une limite de cluster pour un clustering de données, la même paire peut appartenir à un seul cluster dans un clustering différent. Plus vous essayez de regroupements, plus vous avez de chances de découvrir une paire en double donnée. En pratique, nous avons opté pour l'utilisation de cinq clusterings, ce qui signifie que nous recherchons les doublons de chaque image dans l'union de cinq clusters différents. En pratique, cela a permis de détecter 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 trouvées, nombre d’entre elles comportaient 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 puisse nuire 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 celles utilisées pour évaluer notre modèle GLIDE original. Étonnamment, nous avons constaté que les évaluateurs humains 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 réalité aux performances.
Une fois que nous avons formé un modèle sur des données dédupliquées, nous avons réexécuté 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 d'entraînement. Nous avons constaté que le nouveau modèle ne régurgitait jamais d'image d'entraînement lorsqu'on lui donnait l'invite exacte pour l'image de l'ensemble de données d'entraînement. Pour aller plus loin dans ce test, nous avons également effectué une recherche du voisin le plus proche sur l'ensemble des données d'entraînement 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.