L’intelligence artificielle est passionnante ; la nouvelle avancée technologique qui a pris le dessus sur nos vies en moins d’un an ne s’est pas arrêtée depuis.
Personnellement, j'ai quelques problèmes avec les outils d'IA et la manière dont ils sont utilisés en ce moment. Cela dit, je ne peux nier qu'ils constituent un instrument puissant lorsqu'ils sont confiés à la bonne personne pour accomplir le bon travail - mais comme nous le savons tous, un grand pouvoir implique de grandes responsabilités.
Au milieu de l'enthousiasme et des promesses à moitié tenues, avons-nous déjà réfléchi au coût d'exécution de 1,2,3 milliard de modèles de paramètres pendant des heures, à l'échelle de plusieurs instances, pour des millions d'utilisateurs, en même temps ?
J'ai toujours été partisan du concept de « web minimal » (j'écrirai un article sur ce concept dans le futur ; il y a beaucoup à dire). Nous vivons à une époque où d’un côté, tout le monde semble extrêmement préoccupé par la santé de la planète (et pour cause). Pourtant, d’un autre côté, personne ne s’arrête pour réfléchir à ce que l’Internet dans son état actuel nous coûte en termes d’énergie brute. Est-ce efficace ? Est-ce vert ? Loin de là.
Il y a quelque temps, j'ai écrit un petit outil TUI utilisant Perl ( webmeter ), qui surveille mon trafic Internet et regroupe la longueur en octets des paquets envoyés et reçus pendant l'exécution de l'outil.
Rien qu'en ouvrant la page d'accueil de Reddit, mon outil a enregistré 5,85 mégaoctets de données transférées entre mon interface et les serveurs de Reddit.
Reddit en tant que site Web est une combinaison de texte, d'images de qualité faible à moyenne et de vidéos occasionnelles. Il semble extrêmement déraisonnable qu'en ouvrant simplement la première page de Reddit, j'aie transféré autant de données à travers la planète (la lecture automatique des vidéos était désactivée lors des tests, ce résultat exclut le contenu vidéo).
La première page de Reddit, une page qui aurait pu se terminer avec 10 kilo-octets de contenu, javascript et CSS (peut-être quelques kilo-octets de plus pour des images supplémentaires), avait besoin de 300 fois plus de bande passante rien que pour se charger.
En comparaison (étant donné que l’alunissage n’a pas eu lieu dans un sous-sol d’Hollywood), le logiciel écrit pour la mission Apollo 11 ne faisait que 72 kilo-octets.
Juste pour le plaisir, imaginez des milliards de personnes ouvrant la première page de Reddit, toutes ensemble, à tout moment, tout le temps. Essayez de réfléchir : quel est le coût direct du transfert des données ? Quel est le coût secondaire ? Combien d’énergie gaspillons-nous en tant qu’êtres consommateurs d’Internet ?
Ce concept me trotte dans la tête depuis environ un an, ce qui est la principale raison pour laquelle j'ai piraté mon outil Perl en premier lieu. Une pensée du « web minimal » en a conduit à une autre, et j’ai réalisé que nous sommes tellement absorbés par le battage médiatique (ou la haine) que nous ignorons le coût de nos efforts en matière d’intelligence artificielle.
Avec précision? Nous ne pouvons pas. Non sans savoir comment fonctionnent ces services : quels CPU ou GPU (ou puces dédiées) ils utilisent. Combien d'instances exécutent-ils, quelle est leur charge, quelle est la consommation électrique exacte du matériel critique, etc. ?
Mais nous pouvons arriver à une conclusion assez réaliste (bien que moins précise) si nous y réfléchissons. J'ai choisi Fooocus pour cet exemple, qui est l'interface graphique de diffusion stable la plus simple (et je crois la plus populaire) du marché. Commençons simplement :
En utilisant Fooocus, il a fallu environ 10 minutes à mon ancien GPU (un Quadro P2000) pour générer une image. D'après le tableau des performances du référentiel Fooocus, nous savons que l'utilisation d'un GPU Nvidia RTX 4XXX nous donnerait le résultat le plus rapide. Ma Quadro est quelque peu comparable à une Nvidia GTX 1060, nous savons donc qu'en utilisant un GPU Nvidia GTX 1060, nous pouvons générer une image en 10 minutes environ.
Après quelques recherches en ligne, j'ai conclu que le GPU (d'entreprise) le plus couramment utilisé pour l'IA/ML est le Nvidia A100 (jusqu'à 400 W en charge).
Le Nvidia A100 est un GPU nettement plus puissant que le Nvidia GTX 1060 ; il est également conçu spécifiquement pour l’IA et le ML. Par conséquent, supposons que générer une image à l'aide d'un Nvidia A100 prendra 5 secondes (si quelqu'un qui lit ceci dispose de données précises sur l'A100 et ses performances, veuillez les partager).
En utilisant la formule E = P * T, la consommation électrique d’un GPU Nvidia A100 sous charge pendant 5 secondes coûte environ 0,5 wattheure.
Ajout à cet exemple : Midjourney (ou d'autres services de génération d'images IA) génère 4 images par invite. Supposons que le service utilise une gamme de Nvidia A100 pour générer les images, ce qui signifie que le service gaspille probablement environ 2 wattheures d'énergie pour chaque invite, pour chaque utilisateur.
En novembre 2023, Midjourney comptait 2,5 millions de DAU.
2Wh x 2,500,000 Users x 24 Hours = 120,000,000Wh (per day, considering every DAU is executing a prompt per hour, in reality, it is much more than that). 120,000,000Wh = 120,000MWh
120 000 mégawattheures pourraient potentiellement alimenter plus de 100 000 foyers pendant un mois entier.
Modestement, des services tels que Midjourney, Dall-E, ou même des solutions auto-hébergées telles que Fooocus, gaspillent au moins 50 millions de wattheures par jour chacun (en considérant que leurs GPU sont à la pointe de la technologie et que chaque DAU est à la pointe de la technologie). utilise le service quelques heures chaque jour).
Cette quantité d’énergie pourrait potentiellement alimenter plus de 100 000 foyers de taille moyenne pendant un mois et par jour.
Gardez à l’esprit que nous n’avons parlé que des services de génération d’images ; n'oublions pas tous les autres services, tels que ChatGPT, Gemini, Bard, et toutes leurs versions et saveurs. La liste et le gaspillage sont encore longs.
Comment devrions-nous, en tant que développeurs, nous rassembler pour résoudre ce problème émergent ? Comment pouvons-nous prendre des mesures pour éduquer les autres à utiliser l’énergie de manière responsable ? J'aimerais entendre vos réflexions sur ce sujet et ses solutions possibles.
Également publié ici