WebAssembly permet de télécharger et d'exécuter rapidement et facilement un LLM complet sur votre machine sans aucune configuration majeure.
Traduit de WebAssembly, Large Language Models et Kubernetes Matter , auteur Torsten Volk.
WebAssembly (WASM) facilite incroyablement le développement, la création, l'exécution et l'exploitation du même code sur n'importe quel matériel que vous pouvez trouver sous votre bureau, dans le centre de données, dans votre compte AWS ou dans l'unité de contrôle d'un 30- récolteuse de tonnes dans un champ de maïs.
Alors que j'ai discuté de cette vision avec Matt Butcher , PDG de Fermyon, lors de la KubeCon 2022 à Détroit , il existe désormais de véritables cas d'utilisation prêts pour la production qui offrent une valeur tangible.
LlamaEdge : une ligne de code pour exécuter LLM n'importe où
Le projet open source Llama Edge promet qu'en collant simplement une ligne de code dans un terminal sur pratiquement n'importe quelle machine, un navigateur apparaîtra en quelques secondes affichant une interface utilisateur très similaire à celle que nous avons l'habitude de voir sur ChatGPT . Bien sûr, nous n'avons ni le matériel nécessaire pour exécuter ChatGPT sur notre ordinateur portable, ni OpenAI n'offre cette option du point de vue des licences. Cependant, il existe des dizaines de variantes open source que nous pouvons exécuter. Par défaut, LlamaEdge installe une petite version de Gemma LLM de Google sur votre ordinateur local pour une gratification instantanée, et cela fonctionne très bien.
Mais comment puis-je télécharger et exécuter un LLM complet sur ma machine aussi rapidement et facilement sans aucune configuration majeure ? C'est là que wasmEdge entre en jeu pour sauver la situation. Llama Edge s'exécute sous forme de code précompilé (bytecode) au-dessus du runtime WasmEdge. Il ne nécessite que 30 Mo (pas Go !) d'espace disque plus l'espace nécessaire pour télécharger le LLM de votre choix. Une fois téléchargé, Llama Edge exploite la capacité de wasmEdge à fournir en continu des ressources CPU, GPU, RAM et disque sur pratiquement n'importe quel système d'exploitation (Windows, Linux et dérivés) et n'importe quel silicium (Intel, AMD, Nvidia, etc.) sans aucun problème. Configuration avancée. Ouvrez maintenant un terminal sur votre machine et voyez : Cette seule commande…
bash <(curl -sSfL '<a href="https://raw.githubusercontent.com/LlamaEdge/LlamaEdge/main/run-llm.sh">https://raw.githubusercontent.com/LlamaEdge/LlamaEdge/main/run-llm.sh</a>')
… produit une interface utilisateur sans aucune configuration supplémentaire.
Les composants sont les nouveaux conteneurs
"Les composants sont les nouveaux conteneurs", déclare Liam Randall , PDG de Cosmonic , étant donné que j'ai pu configurer un LLM complet en moins d'une minute sur le même MacBook sur lequel j'écris cet article, y compris son interface utilisateur de type ChatGPT, celle de Randall. la déclaration est parfaitement logique. Si je devais installer le même LLM sans WASM, je devrais suivre un certain nombre d'étapes spécifiques à MacOS : 1) installer l'homebrew, 2) installer les packages nécessaires, 3) rechercher et cloner le Llama LLM requis, 4) installer le Dépendances Python, 5) convertir et quantifier les fichiers de modèle, et 6) tester mon installation. Cependant, puisque j'utilise WasmEdge, je n'ai à me soucier d'aucune de ces étapes et le runtime Python n'a même pas besoin d'exister. LlamaEdge ne nécessite que wasmEdge pour s'exécuter, rien de plus.
Mais dois-je apprendre Rust ?
En tant que développeur Python , je préfère fortement pouvoir utiliser LLM sans avoir à apprendre Rust . Je n'ai besoin que d'une seule ligne de code de ligne de commande pour configurer le LLM, puis d'une autre ligne de code si je souhaite sélectionner un LLM spécifique au lieu du LLM par défaut :
bash <(curl -sSfL 'https://raw.githubusercontent.com/LlamaEdge/LlamaEdge/main/run-llm.sh') --model llama-2-7b-chat
La commande ci-dessus amène l'utilisateur à la sélection LLM prête à l'emploi.
Je n'ai toujours pas écrit une seule ligne de code Rust réel, mais j'ai copié et collé les commandes requises depuis le site Web LlamaEdge GitHub et je peux maintenant parler à mon tout nouveau LLM. Pour en revenir à la déclaration de Randall selon laquelle les composants sont le nouveau conteneur, je peux maintenant simplement importer ce modèle en tant que composant dans toutes mes futures applications Python. En parallèle, je peux partager ce composant avec mon équipe ou mes clients afin qu'ils puissent également intégrer mon LLM dans leurs propres applications.
Cela me rappelle une discussion que j'ai eue avec Tim Enwall de Fermyon chez AWS Re:Invent sur la possibilité de proposer des composants WASM sous forme de service d'abonnement. En tant qu'analyste industriel, si vous créez votre propre LLM et l'affinez à l'aide de publications antérieures, vous pouvez le compiler dans un WASM et vendre des abonnements à son jumeau numérique.
Autre cas d'utilisation : gestion du pipeline de données pour la journalisation et d'autres domaines
La plateforme de gestion de pipeline de données d'observabilité FluentBit de Calyptia permet aux développeurs d'écrire des plug-ins sous la forme de programmes WASM. Les développeurs peuvent utiliser Rust, TinyGo et Python pour écrire des fonctions permettant de traiter les données du pipeline.
Nous pouvons maintenant relier cela à notre exemple LlamaEdge et demander à notre pipeline WASM de « parler » à LlamaEdge, d'analyser les journaux en temps réel, d'extraire des informations significatives et même d'automatiser les réponses en fonction du contenu des journaux. Imaginez un scénario dans lequel votre programme de pipeline WASM détecte une anomalie dans les données du journal, telle qu'une augmentation inhabituelle du trafic ou une faille de sécurité potentielle. Il peut ensuite interroger LlamaEdge LLM pour mieux comprendre le contexte et suggérer une action immédiate, ou transmettre le problème au membre approprié de l'équipe.
En intégrant LLM dans le pipeline de données, le processus de surveillance et de réponse aux incidents devient plus intelligent et proactif. Cela pourrait révolutionner la façon dont nous traitons les données des journaux, en transformant les processus réactifs en processus dynamiques et automatisés qui non seulement déclenchent des alertes, mais fournissent également des solutions possibles. Le traitement des données de télémétrie de manière décentralisée au sein d'un pipeline de données est particulièrement intéressant dans la mesure où il permet de réduire la quantité de données qui doivent être ingérées dans une ou plusieurs plateformes d'observabilité d'entreprise. Étant donné que de nombreuses plates-formes d'observabilité facturent les entreprises aux clients en fonction du volume de données entrantes, des économies de coûts significatives sont réalisées.
Plateforme Fermyon pour Kubernetes : densité plus élevée, coût réduit
Fermyon a lancé le framework SpinKube pour Kubernetes, permettant aux applications WASM de s'exécuter sur Kubernetes avec une densité plus élevée et donc un coût inférieur à celui des conteneurs. SpinKube profite de la nature légère du module WASM pour regrouper davantage d'applications sur chaque nœud de serveur, réduisant ainsi les ressources informatiques requises.
Le framework SpinKube est conçu pour être convivial pour les développeurs et fournir une intégration transparente avec les environnements Kubernetes existants. Les développeurs peuvent déployer leurs applications WASM comme les applications conteneurisées traditionnelles sans avoir à apprendre de nouveaux outils ou flux de travail. Cette facilité d'utilisation accélère les cycles de développement et simplifie le déploiement.
De plus, SpinKube garantit la sécurité et l'isolation au niveau des applications, un aspect clé d'un environnement multi-tenant. Chaque application WASM s'exécute dans son propre bac à sable isolé, fournissant un environnement d'exécution sécurisé qui minimise le risque de vulnérabilités affectant le système hôte ou d'autres applications.
L'engagement de Fermyon envers les normes ouvertes et le développement axé sur la communauté se reflète dans l'architecture de SpinKube. La plateforme prend en charge un large éventail de langages et d'outils de programmation, la rendant accessible à une communauté de développeurs plus large. Cette inclusivité favorisera l’innovation et encouragera l’adoption de la technologie WASM dans diverses industries.
En résumé, Fermyon pour Kubernetes représente une avancée majeure dans le cloud computing natif. En augmentant la densité et en réduisant les coûts tout en conservant la facilité d'utilisation, la sécurité et les normes ouvertes, SpinKube se positionne comme un acteur clé du futur du déploiement d'applications Kubernetes. Il est important de mentionner ici que Fermyon a fait don de SpinKube au bac à sable CNCF.
Conclusion : LLM, productivité des développeurs et pression sur les coûts d’exploitation, moteur du succès de WASM
La capacité inhérente de WASM à toujours s'exécuter partout où il y a un runtime WebAssembly rend cette technologie destinée à « déplacer LLM là où se trouvent les données ».
Ceci est idéal pour des raisons de conformité, car les entreprises peuvent simplement « ancrer » le LLM requis à leurs sources de données pertinentes sans avoir à demander l'autorisation pour déplacer des données potentiellement sensibles. Cette portabilité, combinée à la petite taille du runtime WASM et à la possibilité d'exécuter des applications WASM sur Kubernetes (à côté des conteneurs traditionnels), peut rendre l'exécution d'inférences LLM ou de formation de modèles sur une infrastructure de serveur inactive pendant le week-end un jeu d'enfant et donc moins cher. Plus facile. Une fois lundi arrivé, nous pouvons mettre fin à nos applications WASM-LLM ou les déplacer ailleurs. Bien entendu, ce principe ne s’applique pas uniquement au LLM, mais peut s’appliquer à de nombreux autres cas d’utilisation.
Si la Bytecode Alliance et le W3C WebAssembly Community Group parviennent à accélérer la mise en œuvre du modèle de composant WebAssembly afin que WASM puisse être couramment utilisé, cette technologie changera véritablement la donne. WASI 0.2 est un bon pas en avant, mais il reste encore beaucoup de travail à faire pour que la plateforme soit prête pour le marché de masse.
Un programmeur né dans les années 1990 a développé un logiciel de portage vidéo et en a réalisé plus de 7 millions en moins d'un an. La fin a été très éprouvante ! Des lycéens créent leur propre langage de programmation open source en guise de cérémonie de passage à l'âge adulte - commentaires acerbes des internautes : s'appuyant sur RustDesk en raison d'une fraude généralisée, le service domestique Taobao (taobao.com) a suspendu ses services domestiques et repris le travail d'optimisation de la version Web Java 17 est la version Java LTS la plus utilisée Part de marché de Windows 10 Atteignant 70 %, Windows 11 continue de décliner Open Source Daily | Google soutient Hongmeng pour prendre le relais des téléphones Android open source pris en charge par Docker ; Electric ferme la plate-forme ouverte Apple lance la puce M4 Google supprime le noyau universel Android (ACK) Prise en charge de l'architecture RISC-V Yunfeng a démissionné d'Alibaba et prévoit de produire des jeux indépendants pour les plates-formes Windows à l'avenirCet article a été publié pour la première fois sur Yunyunzhongsheng ( https://yylives.cc/ ), tout le monde est invité à le visiter.