Parlons donc de l'empreinte carbone des transformers.
Vous avez peut-être vu des titres tels que celui-ci
indiquant qu'entraîner un seul modèle d'IA peut entraîner autant d'émissions de CO2
que cinq voitures dans leur vie.
Alors quand est-ce vrai et est-ce toujours vrai ?
En fait, cela dépend de plusieurs choses.
Le plus important, c'est que cela dépend
sur le type d'énergie que vous utilisez.
Si vous utilisez une énergie renouvelable telle que le
solaire, l'éolien, l'hydroélectrique, vous n'éméttez
pas vraiment de carbone du tout. Très, très peu.
Si vous utilisez des sources d'énergie non renouvelables telles que le charbon
alors l'empreinte carbone est beaucoup plus élevée
parce qu'en fait, vous émettez beaucoup de gaz à effet de serre.
Un autre aspect est le temps d'entraînement.
Donc, plus vous entraînez longtemps, plus vous dépensez d'énergie.
Plus vous utilisez d'énergie, plus vous émettez de carbone.
Donc, cela s'additionne.
Surtout si vous entraînez de grands modèles
pendant des heures, des jours et des semaines.
Le matériel que vous utilisez a également son importance
car certains GPU, par exemple, sont plus efficaces
que d'autres et donc utiliser des GPU
efficiement, correctement, à 100% tout le temps,
peut vraiment réduire la consommation d'énergie que vous avez.
Et encore une fois, réduire votre empreinte carbone.
Il y a aussi d'autres aspects comme l'IO
comme les données, etc., etc.
Mais ce sont les trois principaux sur lesquels vous devez vous concentrer.
Donc quand je parle de sources d'énergie et d'intensité de carbone
Qu'est-ce que cela signifie vraiment ?
Donc si vous regardez en haut de l'écran
vous avez une empreinte carbone
d'une instance de cloud computing à Mumbai en Inde
qui émet 920 grammes de CO2 par kilowattheure.
C'est presque un kilo
de CO2 par kilowattheure d'électricité utilisé.
Si vous comparez cela avec Montréal au Canada,
où je suis en ce moment, 20 grammes de CO2 par kilo heure.
C'est donc une très, très grande différence.
Près de 40 fois plus de carbone émis
à Mumbai qu'à Montréal.
Et donc cela peut vraiment, vraiment s'accumuler.
Si vous entraînez un modèle pendant plusieurs semaines, par exemple
vous multipliez par 40
le carbone que vous émettez.
Donc, choisir la bonne instance,
choisir une instance de calcul à faible émission de carbone,
est vraiment la chose la plus importante que vous puissiez faire.
Et c'est là que cela peut vraiment s'accumuler
si vous vous entrainez de manière très intensive
dans une région à forte intensité de carbone.
D'autres éléments à prendre en compte, par exemple
utiliser des modèles pré-entraînés.
C'est l'équivalent du recyclage pour l'apprentissage automatique.
Lorsque vous disposez de modèles pré-entraînés, vous pouvez les utiliser.
Vous n'émettez pas de carbone du tout.
Vous ne ré-entraînez rien.
Donc c'est aussi faire ses devoirs
de regarder ce qui existe déjà.
Finetuner au lieu d'entraîner à partir de zéro.
Donc, une fois de plus,
si vous trouvez un modèle qui correspond presque à ce dont vous avez besoin
mais pas tout à fait, finetunez les dernières couches
pour qu'il corresponde vraiment à votre objectif.
au lieu d'entrâiner un gros transformer
à partir de zéro. Cela peut vraiment aider.
Commencer par de petites expériences
et déboguer au fur et à mesure.
Cela signifie, par exemple,
comprendre l'encodage des données,
s'assurer qu'il n'y a pas de petits bugs, que vous allez
réalisez, après 16 heures d'entraînement.
Commencer petit et vraiment s'assurer
de ce que vous faites, que votre code est stable.
Et enfin, faire une revue de la littérature pour
choisir des plages d'hyperparamètres pour ensuite poursuivre
avec une recherche aléatoire au lieu d'une recherche par grille.
Les recherches de combinaisons d'hyperparamètres
aléatoires se sont avérés être aussi efficaces
pour trouver la configuration optimale, que la recherche par grille.
Mais évidemment, vous n'essayez pas toutes les combinaisons possibles,
vous n'en essayez qu'un sous-ensemble.
Cela peut donc être très utile.
Donc maintenant, nous revenons
à l'article original de Strubell et al. de 2019,
l'infâme papier sur la vie des cinq voitures.
Si vous regardez
un transformer de 200 millions de paramètres,
son empreinte carbone est d'environ 200 livres [87 kg] de CO2,
ce qui est important.
Mais c'est loin des cinq voitures.
Ce n'est même pas un vol transatlantique.
Ce qui compte vraiment, c'est lorsque vous faites
vos recherches d'architectures neuronales,
quand vous faites le réglage des hyperparamétres,
en essayant toutes les combinaisons possibles,
etc., etc.
Et c'est là que
d'où proviennent les 600 000 livres [272,16 t] de CO2.
C'est donc là que les choses s'additionnent.
Mais si vous faites les choses consciemment et consciencieusement,
alors votre empreinte carbone ne sera pas aussi importante,
comme le laissait entendre le papier. Quelques outils
pour savoir combien de CO2 exactement vous émettez.
Il y a un outil en ligne appelé « machine
learning submissions calculator » qui vous permet
de saisir manuellement, par exemple, le matériel que vous avez utilisé,
le nombre d'heures pendant lesquelles vous l'avez utilisé,
où il était situé : localement ou dans le cloud.
Et puis il va vous donner une estimation
de la quantité de CO2 que vous avez émise.
Un autre outil qui fait cela de manière programmatique,
s'appelle codecarbon.
Vous pouvez l'installer avec pip, vous pouvez aller sur leur GitHub,
et essentiellement il s'exécute en parallèle de votre code.
Donc, vous l'appelez
et ensuite vous faites tous vos entraînements.
Et puis à la fin, il va vous donner une estimation :
un fichier CSV contenant une estimation de vos émissions.
Et ça va vous permettre de faire des comparaisons.
Il y a une interface visuelle où vous pouvez
comparer avec la conduite d'une voiture ou la télévision.
Ainsi, cela peut vous donner une idée
de la portée de vos émissions également.
Et en fait, codecarbon est déjà intégré dans AutoNLP.
et j'espère que les gens l'utiliseront
pour suivre facilement leurs émissions tout au long
de l'entraînement et le déploiement des transformers.