Maison > Article > Périphériques technologiques > Comment j'ai écrit un excellent essai à partir de zéro
J'ai récemment rédigé un article très satisfaisant. Non seulement l'ensemble du processus a été agréable et mémorable, mais il a également véritablement permis d'obtenir « un impact académique et un résultat industriel ». Je pense que cet article changera le paradigme de l'apprentissage profond de la confidentialité différentielle (DP).
Parce que cette expérience est tellement "coïncidente" (le processus est plein de coïncidences et la conclusion est extrêmement intelligente), j'aimerais partager avec mes camarades de classe mon expérience d'observation-->conception-->preuve-->théorie -->large Le processus complet d'expériences à grande échelle. Je vais essayer de garder cet article léger et de ne pas impliquer trop de détails techniques.
Adresse de l'article : arxiv.org/abs/2206.07136
Différent de l'ordre présenté dans l'article, l'article place parfois délibérément la conclusion au début pour attirer les lecteurs, ou introduit d'abord le théorème simplifié et le théorème complet Ajouter une annexe ; dans cet article, je souhaite écrire mes expériences par ordre chronologique (c'est-à-dire un récit en cours), comme les détours que j'ai faits et les situations inattendues au cours de la recherche, pour la référence des étudiants qui ont vient de s'engager sur la voie de la recherche scientifique.
L'origine de l'affaire est un article de Stanford, qui a maintenant été enregistré dans ICLR :
Adresse du papier : https://arxiv.org/abs/2110.05679
Article Il est très bien écrit et comporte trois contributions principales en résumé :
1. Dans les tâches PNL, la précision du modèle DP est très élevée, ce qui encourage l'application de la confidentialité dans les modèles de langage. (En revanche, DP dans CV entraînera une très grande détérioration de la précision. Par exemple, CIFAR10 n'a actuellement qu'une précision de 80 % sans pré-entraînement en dessous de la limite DP, mais peut facilement atteindre 95 % sans prendre en compte DP ; la meilleure précision DP d'ImageNet au niveau le temps était inférieur à 50 % )
2. Sur le modèle de langage, plus le modèle est grand, meilleures sont les performances. Par exemple, l'amélioration des performances de GPT2 de 400 millions de paramètres à 800 millions de paramètres est évidente, et il a également réalisé de nombreux SOTA. (Mais dans les systèmes de CV et de recommandation, les performances des modèles plus grands seront souvent très médiocres, voire proches d'une estimation aléatoire. Par exemple, la meilleure précision DP du CIFAR10 était auparavant obtenue par CNN à quatre couches, et non par ResNet.)
Dans les tâches PNL, plus le modèle DP est grand, meilleures sont les performances [Xuechen et al. 2021]
3 Les hyperparamètres pour obtenir SOTA sur plusieurs tâches sont cohérents : le seuil d'écrêtage doit être suffisamment petit, et le taux d'apprentissage doit être plus élevé. (Tous les articles précédents concernaient l'ajustement d'un seuil d'écrêtage pour chaque tâche, ce qui prenait du temps et demandait beaucoup de travail. Il n'y a jamais eu de seuil d'écrêtage = 0,1 comme celui-ci qui s'applique à toutes les tâches, et les performances sont si bonnes.)
Le résumé ci-dessus est le moment où j'ai fini de lire l'article. Si je comprends bien, le contenu entre parenthèses ne provient pas de cet article, mais de l'impression générée par de nombreuses lectures précédentes. Cela repose sur une accumulation de lectures à long terme et un degré élevé de capacité de généralisation pour associer et comparer rapidement.
En fait, il est difficile pour de nombreux étudiants de commencer à rédiger des articles car ils ne peuvent voir que le contenu d'un seul article et ne peuvent pas former un réseau et faire des associations avec des points de connaissances dans l'ensemble du domaine. D'une part, les étudiants qui débutent ne lisent pas assez et ne maîtrisent pas encore suffisamment de connaissances. C'est particulièrement le cas des étudiants qui suivent depuis longtemps des projets des enseignants et ne proposent pas de manière indépendante. D'un autre côté, bien que la quantité de lecture soit suffisante, elle n'est pas résumée de temps en temps, ce qui fait que les informations ne sont pas condensées en connaissances ou que les connaissances ne sont pas connectées.
Voici les connaissances de base sur l'apprentissage profond du DP. Je vais sauter la définition du DP pour l'instant et cela n'affectera pas la lecture.
Le soi-disant apprentissage profond DP d'un point de vue algorithmique signifie en fait effectuer deux étapes supplémentaires : l'écrêtage du dégradé par échantillon et l'ajout de bruit gaussien, en d'autres termes, tant que vous traitez le dégradé selon ces deux étapes ( après traitement (le dégradé est appelé dégradé privé), vous pouvez ensuite utiliser l'optimiseur comme vous le souhaitez, y compris SGD/Adam.
Quant à savoir dans quelle mesure l'algorithme final est privé, c'est une question qui relève d'un autre sous-domaine, appelé théorie de la comptabilité de confidentialité. Ce domaine est relativement mature et nécessite une base théorique solide puisque cet article se concentre sur l’optimisation, il n’est pas répertorié ici.
g_i est le gradient d'un point de données (gradient par échantillon), R est le seuil d'écrêtage et sigma est le multiplicateur de bruit.
Clip est appelé fonction de découpage, tout comme le découpage de dégradé classique. Si le dégradé est plus long que R, il sera coupé à R, et s'il est inférieur à R, il ne bougera pas.
Par exemple, la version DP de SGD est actuellement utilisée dans tous les articles utilisant la fonction de découpage dans le travail pionnier sur l'apprentissage profond en matière de confidentialité (Abadi, Martin et al. "Deep learning with différentiel Privacy"), également connu sous le nom de découpage d'Abadi. : image.
Mais cela est totalement inutile. En suivant les premiers principes et en partant de la théorie de la comptabilité de confidentialité, en fait, la fonction de découpage n'a besoin que de satisfaire que le module de Clip(g_i)*g_i est inférieur ou égal à R. En d’autres termes, le découpage d’Abadi n’est qu’une fonction qui satisfait à cette condition, mais ce n’est en aucun cas la seule.
Il y a de nombreux points brillants dans un article, mais je ne peux pas tous les utiliser. Je dois juger quelle est la plus grande contribution en fonction de mes propres besoins et expertise.
Les deux premières contributions de cet article sont en réalité très empiriques et difficiles à creuser. La dernière contribution est très intéressante. J'ai regardé attentivement l'étude d'ablation des hyperparamètres et j'ai trouvé un point que l'auteur original n'a pas trouvé : lorsque le seuil d'écrêtage est suffisamment petit, en fait, le seuil d'écrêtage (c'est-à-dire la norme d'écrêtage C , dans la formule ci-dessus et R est une variable) n'a aucun effet.
Longitudinalement, C=0,1, 0,4, 1,6 n'a aucune différence avec DP-Adam [Xuechen et al.
Cela a suscité mon intérêt et je pense qu'il doit y avoir un principe derrière cela. J'ai donc écrit à la main le DP-Adam qu'ils utilisaient pour voir pourquoi. En fait, c'est très simple :
Si R est suffisamment petit, le découpage équivaut en fait à une normalisation ! En le remplaçant simplement dans le dégradé privé (1.1), R peut être extrait respectivement de la partie découpage et de la partie bruitage :
Et la forme d'Adam fait apparaître R dans le dégradé et la taille du pas adaptatif en même temps, le numérateur et le dénominateur Une fois décalés, R disparaîtra et l'idée sera là !
M et v dépendent tous deux du dégradé, et leur remplacement par des dégradés privés aboutit à DP-AdamW.
Une substitution aussi simple prouve mon premier théorème : dans DP-AdamW, des seuils d'écrêtage suffisamment petits sont équivalents les uns aux autres, et aucun ajustement de paramètre n'est requis.
C’est sans aucun doute une observation très concise et intéressante, mais elle n’a pas assez de sens, je dois donc réfléchir à l’utilité de cette observation dans la pratique.
En fait, cela signifie que l'entraînement DP réduit le travail d'ajustement des paramètres d'un ordre de grandeur : en supposant que le taux d'apprentissage et R soient ajustés à 5 valeurschacun (comme le montre la figure ci-dessus), puis 25 les combinaisons doivent être testées pour trouver les hyperparamètres optimaux. Il ne vous reste plus qu'à ajuster le taux d'apprentissage selon 5 possibilités, et l'efficacité du réglage des paramètres a été améliorée à plusieurs reprises. Il s'agit d'un problème très précieux pour l'industrie.
L'intention est suffisamment élevée, les mathématiques sont suffisamment concises et une bonne idée a commencé à prendre forme.
Si cela n'est vrai que pour Adam/AdamW, les limites de ce travail sont encore trop grandes, je l'ai donc rapidement étendu à AdamW et à d'autres optimiseurs adaptatifs, comme AdaGrad. En fait, pour tous les optimiseurs adaptatifs, il peut être prouvé que le seuil d’écrêtage sera décalé, il n’est donc pas nécessaire d’ajuster les paramètres, ce qui augmente considérablement la richesse du théorème.
Il y a un autre petit détail intéressant ici. Comme nous le savons tous, Adam avec une perte de poids est différent d'AdamW. Ce dernier utilise une perte de poids découplée. Il existe également un article sur cette différence.
Cette différence existe également dans l'optimiseur DP. La même chose est vraie pour Adam. Si vous utilisez la perte de poids découplée, la mise à l’échelle de R n’affecte pas l’ampleur de la perte de poids. Cependant, si vous utilisez la perte de poids ordinaire, agrandir R de deux fois équivaut à réduire la perte de poids de deux fois.
Quatre. Une autre chose
Les étudiants intelligents ont peut-être découvert que je continue de mettre l'accent sur l'optimiseur adaptatif. Pourquoi ne parle-je pas de SGD ? Ensuite, j'ai posté un article sur l'utilisation du DP-SGD dans le CV et j'ai fait une étude d'ablation, mais les règles étaient complètement différentes de celles trouvées sur Adam, ce qui m'a laissé une impression diagonale
Pour DP-SGD et lorsque R est suffisamment petit, augmenter lr de 10 fois équivaut à augmenter R de 10 fois [https://arxiv.org/abs/2201.12328].
J'étais très excité quand j'ai vu cet article, car c'était un autre article qui prouvait l'efficacité du petit seuil d'écrêtage.
Dans le monde scientifique, il y a souvent des règles cachées derrière les coïncidences consécutives.
Remplacez-le simplement et constatez que SGD est plus facile à analyser qu'Adam (1.3) peut être approximé comme :
Évidemment, R peut être proposé à nouveau et combiné avec le taux d'apprentissage, prouvant théoriquement l'observation de Google.
« Plus précisément, lorsque la norme d'écrêtage est diminuée k fois, le taux d'apprentissage doit être augmenté k fois pour maintenir une précision similaire. »
Il est dommage que Google n'ait vu que le phénomène et n'ait pas atteint le niveau de la théorie . Il y a aussi une coïncidence ici, c'est-à-dire qu'ils ont dessiné une étude d'ablation de deux échelles en même temps dans l'image ci-dessus. Seule l'échelle de gauche peut voir la ligne diagonale. Il n'y a pas de conclusion en regardant simplement le côté droit.
Comme il n'y a pas d'adaptation automatique à la taille du pas, SGD n'ignore pas R comme Adam, mais traite R comme faisant partie du taux d'apprentissage, il n'est donc pas nécessaire de l'ajuster séparément. Quoi qu'il en soit, le taux d'apprentissage est ajusté. ensemble si les paramètres sont ajustés.
Ensuite, étendez la théorie de SGD à l'élan, et tous les optimiseurs pris en charge par Pytorch ont été analysés.
Un point innovant est là, mais à proprement parler le découpage d'Abadi n'est qu'une normalisation approximative et ne peut être égalisé, la convergence ne peut donc pas être analysée de manière concluante.
Selon le principe d'Iron Man Corps de Doraemon, j'ai directement nommé la normalisation comme la nouvelle fonction de découpage de gradient par échantillon, qui a remplacé le découpage Abadi qui était utilisé dans tout le domaine depuis 6 ans. C'est mon deuxième point d'innovation. .
Après la preuve précédente, le nouveau découpage ne nécessite strictement pas de R, on l'appelle donc découpage automatique (AUTO-V ; V pour vanilla).
Étant donné que la forme est différente du découpage d'Abadi, la précision sera différente et mon découpage peut présenter des inconvénients.
Je dois donc écrire du code pour tester ma nouvelle méthode, et cela ne nécessite de changer qu'une seule ligne de code (ce n'est qu'une image après tout).
En fait, il existe principalement trois fonctions de découpage dans le sens du découpage du dégradé DP par échantillon. En plus du découpage d'Abadi, les deux sont proposées par moi. L'une est le découpage global et l'autre est ce découpage automatique. Dans mon travail précédent, je savais déjà comment modifier le découpage dans diverses bibliothèques populaires. J'ai mis la méthode de modification en annexe à la fin de l'article.
Après mes tests, j'ai découvert que dans l'article de Stanford, pendant tout le processus de formation de GPT2, toutes les itérations et tous les gradients par échantillon étaient tronqués. En d'autres termes, au moins dans cette expérience, le découpage d'Abadi est tout à fait équivalent au découpage automatique. Bien que les expériences ultérieures aient perdu face à SOTA, cela a montré que ma nouvelle méthode a suffisamment de valeur : une fonction d'écrêtage qui n'a pas besoin d'ajuster le seuil d'écrêtage, et parfois la précision ne sera pas sacrifiée.
L'article de Stanford présente deux principaux types d'expériences de modèles de langage, l'une est la tâche générative où GPT2 est le modèle, et l'autre est la tâche de classification où RoBERTa est le modèle. Bien que le découpage automatique soit équivalent au découpage d'Abadi sur les tâches de génération, la précision des tâches de classification est toujours inférieure de quelques points.
En raison de mes propres habitudes académiques, je ne modifierai pas l'ensemble de données pour le moment, puis sélectionnerai nos expériences dominantes à publier, et encore moins ajouterai des astuces (telles que l'amélioration des données et la modification du modèle magique). J'espère que dans une comparaison tout à fait équitable, je ne pourrai comparer que le découpage de dégradé par échantillon et obtenir le meilleur effet sans humidité possible.
En fait, lors de discussions avec nos collaborateurs, nous avons constaté que la normalisation pure et le découpage d'Abadi éliminent complètement les informations sur la taille du dégradé, c'est-à-dire que pour le découpage automatique, quelle que soit la taille du dégradé d'origine, le découpage sera toujours le même. R aime ce Large, tandis qu'Abadi conserve les informations de taille pour les dégradés plus petits que R.
Sur la base de cette idée, nous avons apporté un changement petit mais extrêmement intelligent, appelé AUTO-S clipping (S signifie stable)
La fusion de R et du taux d'apprentissage devient
Un simple Le dessin peut révéler que ce petit (généralement réglé à 0,01, mais il peut être réglé sur n'importe quel autre nombre positif, très robuste) peut conserver l'information sur la taille du dégradé :
Sur la base de cet algorithme, changez simplement une ligne et réexécutez le code Stanford, et vous obtiendrez le SOTA de six ensembles de données PNL.
AUTO-S surpasse toutes les autres fonctions de découpage sur la tâche de génération E2E, ainsi que sur la tâche de classification SST2/MNLI/QNLI/QQP.
Une des limites de l'article de Stanford est qu'il se concentre uniquement sur la PNL. Ce qui est une coïncidence, c'est que deux mois après que Google a détruit le DP SOTA d'ImageNet, la filiale de Google, DeepMind, a publié un article où DP brille directement dans le CV. augmente la précision d'ImageNet de 48 % à 84 % !
Adresse papier : https://arxiv.org/abs/2204.13650
Dans cet article, j'ai d'abord regardé le choix de l'optimiseur et du seuil d'écrêtage jusqu'à ce que je me tourne vers cela dans l'annexe Photo :
Le SOTA de DP-SGD sur ImageNet nécessite également que le seuil d'écrêtage soit suffisamment petit.
Pourtant, le petit seuil d'écrêtage fonctionne mieux ! Avec trois articles de haute qualité prenant en charge le détourage automatique, j'ai déjà une forte motivation, et je suis de plus en plus sûr que mon travail sera remarquable.
Par coïncidence, cet article de DeepMind est aussi une pure expérience sans théorie, ce qui les a également amenés à presque se rendre compte qu'ils peuvent théoriquement n'avoir pas besoin de R. En fait, ils sont très proches de mon idée, et ils ont même découvert que R peut être extrait et intégré au taux d'apprentissage (les étudiants intéressés peuvent consulter leurs formules (2) et (3)). Mais l'inertie de la coupure d'Abadi était trop grande... Même s'ils ont compris les règles, ils ne sont pas allés plus loin.
DeepMind a également constaté qu'un petit seuil d'écrêtage fonctionne mieux, mais n'a pas compris pourquoi.
Inspiré par ce nouveau travail, j'ai commencé à expérimenter le CV afin que mon algorithme puisse être utilisé par tous les chercheurs DP, au lieu d'utiliser un ensemble de méthodes pour la PNL et un autre pour le CV.
Un bon algorithme doit être universel et facile à utiliser. Les faits ont également prouvé que le découpage automatique peut également atteindre SOTA sur les ensembles de données CV.
En regardant tous les articles ci-dessus, SOTA a été considérablement amélioré et les effets d'ingénierie sont complets, mais la théorie est complètement vide.
Une fois toutes les expériences terminées, la contribution de ce travail a dépassé les exigences d'une conférence de haut niveau : j'ai grandement simplifié l'impact des paramètres de DP-SGD et DP-Adam provoqué par un petit seuil d'écrêtage dans l'expérience ; est proposé sans sacrifier l'efficacité du calcul, la confidentialité et sans ajustement des paramètres ; le petit γ répare les dommages causés aux informations sur la taille du gradient par l'écrêtage et la normalisation d'Abadi. Des expériences suffisantes de PNL et de CV ont atteint la précision SOTA ;
Je ne suis pas encore satisfait. Un optimiseur sans support théorique n’est toujours pas en mesure d’apporter une contribution substantielle au deep learning. Des dizaines de nouveaux optimiseurs sont proposés chaque année, et tous sont abandonnés la deuxième année. Il n’en existe encore que quelques-uns officiellement pris en charge par Pytorch et réellement utilisés par l’industrie.
Pour cette raison, mes collaborateurs et moi avons passé deux mois supplémentaires à faire une analyse automatique de convergence DP-SGD. Le processus était difficile mais la preuve finale a été simplifiée à l'extrême. La conclusion est également très simple : l'impact de la taille du lot, du taux d'apprentissage, de la taille du modèle, de la taille de l'échantillon et d'autres variables sur la convergence est exprimé quantitativement et est cohérent avec tous les comportements de formation DP connus.
En particulier, nous avons prouvé que bien que DP-SGD converge plus lentement que le SGD standard, lorsque l'itération tend vers l'infini, la vitesse de convergence est d'un ordre de grandeur. Cela donne confiance dans le calcul de la confidentialité : le modèle DP converge, quoique tardivement.
Enfin, l'article que j'écris depuis 7 mois est terminé. De façon inattendue, les coïncidences ne se sont pas encore arrêtées. NeurIPS a soumis l'article en mai et les modifications internes ont été achevées le 14 juin et publiées sur arXiv. En conséquence, le 27 juin, j'ai vu que Microsoft Research Asia (MSRA) avait publié un article qui entrait en collision avec le nôtre. exactement le même que notre détourage automatique :
Exactement le même que notre AUTO-S.
En regardant attentivement, même la preuve de convergence est presque la même. Et nos deux groupes n'ont pas d'intersection. On peut dire qu'une coïncidence est née de l'autre côté de l'océan Pacifique.
Parlons un peu de la différence entre les deux articles : l'autre article est plus théorique, par exemple, il analyse en plus la convergence d'Abadi DP-SGD (je n'ai prouvé que le détourage automatique, qui est le DP-NSGD en leur article, peut-être que je ne sais pas comment ajuster DP-SGD) ; les hypothèses utilisées sont également quelque peu différentes et nos expériences sont de plus en plus vastes (plus d'une douzaine d'ensembles de données), et la relation d'équivalence entre le découpage et la normalisation d'Abadi ; est établi plus explicitement, comme les théorèmes 1 et 2 expliquent pourquoi R peut être utilisé sans ajustement des paramètres.
Comme nous travaillons sur la même période, je suis très heureux qu'il y ait des gens qui soient d'accord les uns avec les autres et puissent se compléter et promouvoir conjointement cet algorithme, afin que toute la communauté puisse croire en ce résultat et en bénéficier dès que possible. Bien sûr, égoïstement, je me rappelle aussi que le prochain article sera accéléré !
En repensant au processus créatif de cet article, depuis le point de départ, les compétences de base doivent être la condition préalable, et une autre condition préalable importante est que j'ai toujours été obsédé par le point douloureux de l'ajustement des paramètres. La sécheresse a été longue, alors lire le bon article peut vous apporter du nectar. Quant au processus, le cœur réside dans l’habitude de théoriser mathématiquement l’observation. Dans ce travail, la capacité à implémenter du code n’est pas la plus importante. J'écrirai une autre chronique axée sur un autre travail de codage acharné ; l'analyse de convergence finale repose également sur mes collaborateurs et ma propre persévérance. Heureusement, vous n’avez pas peur d’être en retard pour un bon repas, alors continuez !
À propos de l'auteur
Bu Zhiqi, diplômé de l'Université de Cambridge avec un baccalauréat et un doctorat de l'Université de Pennsylvanie, est actuellement chercheur scientifique principal chez Amazon AWS AI. confidentialité différentielle et apprentissage profond, en se concentrant sur les algorithmes d’optimisation et l’informatique à grande échelle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!