paint-brush
Un concept d’IA collective sur Ethereum et Ethereum Swarmpar@thebojda
617 lectures
617 lectures

Un concept d’IA collective sur Ethereum et Ethereum Swarm

par Laszlo Fazekas11m2024/07/15
Read on Terminal Reader

Trop long; Pour lire

Je crois qu’à l’avenir, l’intelligence artificielle fera partie de notre vie quotidienne, bien plus qu’elle ne l’est aujourd’hui. L'IA fera partie de nous ! Au lieu de téléphones portables, nous porterons des lunettes intelligentes dotées de caméras qui enregistrent tout et de microphones qui entendent tout. Nous aurons des dialogues continus avec nos modèles linguistiques exécutés localement et d'autres agents, qui s'adapteront à nos besoins au fil du temps grâce à des ajustements précis. Mais ces agents communiqueront non seulement avec nous mais aussi entre eux, utilisant constamment les connaissances collectives produites par l’ensemble de la communauté. Ce système organisera l’humanité en une forme d’intelligence collective, ce qui est très important. Il n’est pas acceptable que cette intelligence collective devienne la propriété d’une seule entreprise ou entité. C'est pourquoi nous avons besoin des systèmes décrits ci-dessus, ou similaires !
featured image - Un concept d’IA collective sur Ethereum et Ethereum Swarm
Laszlo Fazekas HackerNoon profile picture

Actuellement, les principaux acteurs de l’IA peuvent être divisés en deux grands groupes : les partisans de l’IA open source et les partisans de l’IA fermée.


Il est intéressant de noter que l’un des plus grands partisans de l’IA fermée est OpenAI lui-même, qui ne publie pas le code source de ses modèles, mais y donne simplement accès. Ils soutiennent généralement qu’il serait trop dangereux de publier ces modèles et qu’un contrôle centralisé est donc nécessaire, tout comme pour l’énergie nucléaire. Cet argument est évidemment fondé, mais il n’est pas difficile de voir les intérêts commerciaux derrière cette décision. Si le code source de ChatGPT était accessible à tous, qui paierait pour le service ?!


En revanche, les partisans de l’IA open source, comme Meta (Facebook), estiment que l’IA fermée entrave le progrès et que l’IA open source est la bonne direction. Bien entendu, il vaut également la peine d’examiner ici les aspects commerciaux. Pour Meta, le modèle IA n’est pas le produit principal. Pour eux, l’IA n’est qu’un outil, et le partage du modèle ne constitue pas un désavantage commercial. Au contraire, cela offre un avantage commercial, car Meta peut ensuite utiliser les développements de la communauté. Cependant, ce modèle présente également un petit problème. Ce n'est pas vraiment open source.


Un modèle d’IA est essentiellement une énorme équation mathématique avec des paramètres réglables. Ces paramètres sont définis pendant le processus de formation. Chaque fois qu’une entreprise parle d’IA open source, cela signifie que ces paramètres sont rendus librement accessibles afin que chacun puisse exécuter le modèle sur sa machine. Mais ce n’est pas entièrement open source !


Dans le cas de l’IA, la formation est analogue à l’intégration de programmes traditionnels. Sur cette base, les paramètres du modèle représentent le fichier binaire. Ainsi, lorsque Meta, X (Twitter) ou d’autres sociétés rendent leurs sources de modèles ouvertes, elles ne font en réalité que divulguer le résultat.


Nous obtenons donc un paramétrage d’architecture fixe. Si nous souhaitons modifier ou améliorer quoi que ce soit dans l'architecture, par exemple utiliser une architecture Mamba au lieu d'une architecture Transformer, nous devrons recycler le modèle, ce que nous ne pouvons pas faire sans l'ensemble de formation. Par conséquent, ces modèles ne peuvent être qu’affinés et non développés davantage.


Les modèles dits open source ne sont pas véritablement open source, car l’architecture est fixe. Ces modèles ne peuvent être qu’affinés, mais pas développés davantage, car cela nécessiterait également un ensemble de formation. La véritable IA open source comprend à la fois le modèle et l’ensemble de formation !


Les modèles d’IA « open source » sont généralement des produits de grandes entreprises. Cela est compréhensible, car la formation d’un grand modèle nécessite une énorme capacité de calcul et, par conséquent, beaucoup d’argent. Seules les grandes entreprises disposent de telles ressources, c’est pourquoi le développement de l’IA est centralisé.


Tout comme la technologie blockchain sous la forme de Bitcoin a créé la possibilité d’une monnaie décentralisée, elle nous permet également de créer une IA véritablement open source qui appartient à la communauté plutôt qu’à une entreprise.


Cet article est un concept sur la manière dont une telle IA véritablement open source et pilotée par la communauté pourrait être développée à l'aide de la technologie blockchain.


Comme je l’ai mentionné plus tôt, la base d’une IA véritablement open source est un ensemble de données ouvertes. L'ensemble de données est en fait la ressource la plus précieuse. Dans le cas de ChatGPT, par exemple, le modèle linguistique a été formé sur des bases de données accessibles au public (par exemple, Common Crawl), puis affiné avec une assistance humaine (RLHF) dans une phase ultérieure. Cette mise au point est extrêmement coûteuse en raison du travail humain impliqué, mais c'est ce qui fait la force de ChatGPT. L'architecture elle-même est (vraisemblablement) un transformateur général ou une version modifiée de celui-ci, le Mélange d'Experts, ce qui signifie plusieurs transformateurs parallèles. Le point clé est que l’architecture n’est pas spéciale. Ce qui rend ChatGPT (et tous les autres modèles) unique, c'est le bon ensemble de données. C’est ce qui donne sa puissance au modèle.


Un ensemble de données de formation à l’IA a généralement une taille de plusieurs téraoctets, et ce qui peut ou ne peut pas être inclus dans un tel ensemble de données peut varier selon le groupe et la culture. Le choix des données est très important, car il déterminera, par exemple, la « personnalité » d'un grand modèle de langage. Plusieurs scandales majeurs ont éclaté parce que les modèles d’IA de grandes entreprises (Google, Microsoft, etc.) se comportaient de manière raciste. Cela est dû à une mauvaise sélection de l'ensemble de données. Étant donné que les exigences relatives à l’ensemble de données peuvent varier selon la culture, plusieurs forks peuvent être nécessaires. Les solutions de stockage décentralisées et adressées par contenu comme IPFS ou Ethereum Swarm sont idéales pour stocker de tels grands ensembles de données versionnés et multi-fork. Ces solutions de stockage fonctionnent de manière similaire au système de contrôle de version GIT, où les fichiers individuels peuvent être traités avec un hachage généré à partir du contenu. Dans de tels systèmes, les forks peuvent être créés à moindre coût car seules les modifications doivent être stockées et la partie commune des deux ensembles de données est stockée dans une seule instance.


Une fois que nous disposons des ensembles de données appropriés, nous pouvons procéder à la formation du modèle.


Comme mentionné en introduction, un modèle d’IA est essentiellement une gigantesque équation mathématique avec de nombreux paramètres libres. Il est généralement vrai que plus un modèle possède de paramètres libres, plus il est « intelligent », c'est pourquoi le nombre de paramètres est souvent indiqué dans le nom du modèle. Par exemple, le modèle llma-2-7b signifie que l'architecture du modèle est llma-2 et comporte 7 milliards de paramètres. Pendant la formation, ces paramètres sont définis à l'aide de l'ensemble de données afin que le modèle fournisse la sortie spécifiée pour l'entrée donnée. La rétropropagation est utilisée pour la formation, qui trouve les paramètres les plus appropriés à l'aide de dérivées partielles.


Pendant la formation, l'ensemble de données est divisé en lots. À chaque étape, un lot donné fournit les paramètres d'entrée et de sortie, et la rétropropagation est utilisée pour calculer la manière dont les paramètres du modèle doivent être modifiés pour calculer avec précision la sortie donnée à partir de l'entrée donnée. Ce processus doit être répété plusieurs fois sur l'ensemble de données donné jusqu'à ce que le modèle atteigne la précision souhaitée. La précision peut être vérifiée avec l'ensemble de données de test.


Les grandes entreprises organisent des formations sur des clusters GPU massifs, car la formation nécessite une énorme capacité de calcul. Dans un système décentralisé, un défi supplémentaire est que les nœuds individuels ne sont pas fiables, et il y a toujours un coût associé au manque de fiabilité ! Ce manque de fiabilité explique pourquoi Bitcoin a la consommation d’énergie d’un petit pays. Bitcoin utilise le consensus Proof of Work, où la capacité de calcul remplace la fiabilité. Au lieu de faire confiance à des nœuds individuels, nous pensons que les nœuds bien intentionnés possèdent plus de capacité de calcul que les nœuds malveillants du réseau. Heureusement, il existe d’autres mécanismes de consensus, tels que le Proof of Stake utilisé par Ethereum, dans lequel l’argent mis en jeu garantit notre fiabilité plutôt que notre capacité de calcul. Dans ce cas, il n’est pas nécessaire de disposer d’une grande capacité de calcul, ce qui entraîne une demande énergétique et un impact environnemental nettement inférieurs.


Dans la formation décentralisée, un mécanisme est nécessaire pour remplacer la confiance entre le nœud de formation et le demandeur. Une solution possible consiste pour le nœud de formation à créer un journal de l'ensemble du processus de formation, et à un tiers, un nœud de validation, qui vérifie le journal de manière aléatoire à certains moments. Si le nœud validateur trouve la formation satisfaisante, le nœud de formation reçoit le paiement proposé. Le validateur ne peut pas vérifier l'intégralité du journal, car cela signifierait refaire tous les calculs, et les exigences informatiques de la validation seraient égales à celles de la formation.


Une autre option est la solution optimiste, dans laquelle nous supposons que le nœud a effectué le calcul correctement et prévoyons une période de vérification pendant laquelle chacun peut prouver le contraire. Dans ce cas, le nœud effectuant le calcul mise un montant plus important (pénalité), et le nœud demandant le calcul mise également un montant (récompense). Le nœud effectue le calcul puis publie le résultat. Vient ensuite la période de défi (par exemple, 1 jour). Si quelqu'un trouve une erreur dans le calcul avec des contrôles aléatoires pendant cette période et la publie, il reçoit la pénalité imposée par le nœud informatique et le demandeur récupère sa récompense. Si personne ne peut prouver que le calcul est incorrect pendant la période de défi, le nœud informatique reçoit la récompense.


Il existe une variante de preuves à connaissance nulle appelée zkSNARK, qui convient également pour vérifier que quelqu'un a effectué un calcul. Le principal avantage de cette méthode est que la vérification peut être effectuée à moindre coût, mais la génération de la preuve est une tâche gourmande en calcul. Étant donné que cette méthode est très coûteuse, même pour des calculs plus simples, elle nécessiterait beaucoup plus de ressources informatiques pour la formation en IA que la formation elle-même, nous ne pouvons donc probablement pas l'utiliser à cette fin pour le moment. Néanmoins, zkML est un domaine de recherche actif, et il est concevable qu'à l'avenir, le tiers puisse être remplacé par un contrat intelligent qui vérifie le SNARK.


De ce qui précède, il ressort clairement qu’il existe plusieurs solutions pour vérifier les calculs. Sur cette base, voyons comment notre système de support de formation décentralisé basé sur la blockchain serait construit.


Dans ce système, les ensembles de données appartiennent à la communauté via les DAO. Le DAO décide quelles données peuvent être incluses dans l'ensemble de données. Si un groupe de membres n'est pas d'accord avec la décision, ils peuvent se séparer du DAO et former un nouveau DAO, où ils diviseront l'ensemble de données existant et continueront à le construire de manière indépendante. Ainsi, le DAO est divisé avec l'ensemble de données. Étant donné que l'ensemble de données est stocké dans un stockage décentralisé axé sur le contenu (par exemple, Ethereum Swarm), le fork n'est pas coûteux. Le stockage de l'ensemble de données est financé par la communauté.


Le processus de formation est également contrôlé par un DAO. Grâce au DAO, les nœuds de formation qui souhaitent vendre leur capacité de calcul inutilisée peuvent s'inscrire. Pour postuler, ils doivent investir dans un contrat intelligent. Si un nœud tente de tricher pendant le calcul, il perdra cette mise.


Le demandeur sélectionne l'ensemble de données et le modèle qu'il souhaite entraîner, puis propose une récompense. L'offre est publique, donc n'importe quel nœud de formation peut postuler pour effectuer la tâche. Le nœud de formation crée un journal complet du processus de formation, où chaque entrée correspond à la formation d'un lot. L'entrée comprend l'entrée, la sortie, la matrice de poids et tous les paramètres pertinents (par exemple, la graine aléatoire utilisée par la couche d'abandon pour sélectionner les données à supprimer). Ainsi, l'intégralité du calcul peut être reproduite sur la base du journal.


Comme mentionné précédemment, plusieurs méthodes peuvent être utilisées pour vérifier le calcul. La plus simple est l’approche optimiste. Dans ce cas, le demandeur place la récompense dans un contrat intelligent et le nœud de formation publie le journal de formation. Après la publication, un délai spécifié (par exemple, 1 jour) est disponible pour vérifier le calcul. Si pendant ce temps le demandeur ou quelqu'un d'autre soumet la preuve qu'une étape particulière est incorrecte, le nœud de formation perd sa mise et le demandeur récupère la récompense. Dans ce cas, le nœud qui soumet la preuve correcte reçoit la mise, incitant tout le monde à valider les calculs. Si personne ne soumet une telle preuve, le nœud de formation reçoit la récompense une fois le délai écoulé.


En un mot, voici comment fonctionne le système. Bien entendu, quelques questions se posent.

Qui paiera les frais de formation et de stockage des ensembles de données ?

Le modèle économique du système est le même que celui de la plupart des solutions gratuites et open source, telles que le modèle économique Linux. Si une entreprise a besoin d’un modèle et n’a aucun problème à ce qu’il soit gratuit et open source, il est beaucoup plus rentable d’y investir que de former son propre modèle. Imaginez que 10 entreprises aient besoin du même modèle de langage. Si cela ne les dérange pas que le modèle soit ouvert, il est beaucoup plus économique que chacun paie 1/10ème du coût de la formation plutôt que chacun paie le montant total. Il en va de même pour les ensembles de données qui constituent la base de la formation. Des campagnes de financement participatif peuvent même être créées pour des modèles de formation, où les futurs utilisateurs du modèle peuvent contribuer à son développement.


N'est-il pas moins coûteux de former des modèles dans le cloud ?

Les prix dans un tel système étant régulés par le marché, il est difficile de donner une réponse définitive à cette question. Cela dépend de la capacité de calcul gratuite dont disposent les utilisateurs. Nous avons déjà vu le pouvoir de la communauté avec Bitcoin. La capacité de calcul du réseau Bitcoin dépasse celle de n’importe quel superordinateur. Les fournisseurs de cloud doivent générer des bénéfices, alors que dans un système décentralisé comme celui-ci, les utilisateurs offrent leur capacité de calcul disponible. Par exemple, quelqu’un disposant d’un PC de jeu puissant peut offrir sa capacité disponible lorsqu’il ne joue pas. Dans ce cas, si le service génère un peu plus que l’énergie utilisée, cela en vaut déjà la peine pour l’utilisateur. De plus, il existe dans le monde une grande quantité d’énergie gaspillée qui ne peut être utilisée par des moyens traditionnels. Un exemple en est l’énergie thermique produite par les volcans. Ces emplacements ne disposent généralement pas d’un réseau électrique établi, ce qui les rend impropres à la production d’électricité utilisable. Il existe déjà des startups qui utilisent cette énergie pour le minage de Bitcoin. Pourquoi ne pas l'utiliser pour « l'exploration du renseignement » ? L’énergie étant dans ce cas pratiquement gratuite, seul le coût du matériel doit être couvert. Ainsi, il est évident qu’il existe de nombreux facteurs qui pourraient rendre la formation dans un système aussi décentralisé beaucoup moins chère que dans le cloud.


Qu’en est-il de l’inférence ?

Dans le cas de l’exécution de modèles d’IA, la confidentialité est une question très importante. Les grands prestataires de services garantissent naturellement qu'ils traitent nos données de manière confidentielle, mais pouvons-nous être sûrs que personne n'écoute nos conversations avec ChatGPT ? Il existe des méthodes (par exemple, le chiffrement homomorphe) qui permettent aux serveurs d'effectuer des calculs sur des données chiffrées, mais celles-ci entraînent des frais généraux élevés. La solution la plus sécurisée consiste à exécuter les modèles localement. Heureusement, le matériel devient de plus en plus puissant et il existe déjà des solutions matérielles spécialisées pour exécuter l’IA. Les modèles eux-mêmes s’améliorent également considérablement. Les recherches montrent que dans de nombreux cas, les performances ne se dégradent pas beaucoup même après la quantification, même dans les cas extrêmes où seulement 1,5 bits sont utilisés pour représenter les poids. Cette dernière solution est particulièrement prometteuse car elle élimine la multiplication, qui est l'opération la plus coûteuse. Ainsi, à l’avenir, grâce au développement des modèles et du matériel, nous sommes susceptibles d’exécuter localement des modèles dépassant le niveau humain. De plus, nous pouvons personnaliser ces modèles à notre guise avec des solutions comme LoRA.


Connaissance distribuée

Une autre direction très prometteuse est la génération augmentée par récupération (RAG). Cela signifie que les « connaissances lexicales » sont stockées dans une base de données vectorielles et que notre modèle de langage rassemble le contexte approprié à partir de cette base de données pour la question donnée. Ceci est très similaire à la façon dont nous, les humains, fonctionnons. De toute évidence, personne ne mémorise un lexique entier. Lorsqu'on lui pose une question, il suffit de savoir où trouver les connaissances nécessaires. En lisant et en interprétant les entrées pertinentes, nous pouvons fournir une réponse cohérente. Cette solution présente de nombreux avantages. D'une part, un modèle plus petit suffit, plus facile à exécuter localement, et d'autre part, les hallucinations, un problème majeur des modèles de langage, peuvent être minimisées. De plus, les connaissances du modèle peuvent être facilement étendues sans recyclage, simplement en ajoutant de nouvelles connaissances à la base de données vectorielles. Ethereum Swarm est une solution idéale pour créer une telle base de données vectorielles, car il s'agit non seulement d'un moteur de stockage décentralisé mais également d'une solution de communication. Par exemple, la messagerie de groupe peut être implémentée sur Swarm, permettant la création d'une simple base de données vectorielles distribuée. Le nœud publie la requête de recherche et les autres nœuds répondent en renvoyant les connaissances associées.


Résumé : Implémentation du système d'exploitation LLM sur Ethereum et Swarm

L'idée de LLM OS vient d'Andrej Karpathy, qu'il a publiée sur Twitter. LLM OS est un système d'exploitation hypothétique centré autour d'un grand modèle de langage. Dans notre système distribué basé sur la blockchain, nous pouvons considérer cela comme un agent s'exécutant sur le nœud d'un utilisateur. Cet agent peut communiquer avec d'autres agents et avec les outils logiciels 1.0 traditionnels. Ceux-ci peuvent inclure une calculatrice, un interpréteur Python ou même contrôler un robot physique, une voiture ou une maison intelligente. Dans notre système, le système de fichiers est représenté par Swarm et la base de données vectorielles créée sur Swarm, où les connaissances communes sont accessibles. L’ensemble du système (le collectif d’agents) peut être considéré comme une forme d’intelligence collective.

Je crois qu’à l’avenir, l’intelligence artificielle fera partie de notre vie quotidienne, bien plus qu’elle ne l’est aujourd’hui. L'IA fera partie de nous ! Au lieu de téléphones portables, nous porterons des lunettes intelligentes dotées de caméras qui enregistrent tout et de microphones qui entendent tout. Nous aurons des dialogues continus avec nos modèles linguistiques exécutés localement et d'autres agents, qui s'adapteront à nos besoins au fil du temps grâce à des ajustements précis. Mais ces agents communiqueront non seulement avec nous mais aussi entre eux, utilisant constamment les connaissances collectives produites par l’ensemble de la communauté. Ce système organisera l’humanité en une forme d’intelligence collective, ce qui est très important. Il n’est pas acceptable que cette intelligence collective devienne la propriété d’une seule entreprise ou entité. C'est pourquoi nous avons besoin des systèmes décrits ci-dessus, ou similaires !