Nous proposons OPML (Optimistic Machine Learning), qui peut utiliser des méthodes optimistes pour le raisonnement des modèles d'IA et la formation/l'ajustement des systèmes blockchain.
Par rapport à ZKML, OPML peut fournir des services ML à faible coût et à haute efficacité. Les exigences de participation pour OPML sont faibles : nous sommes désormais en mesure d'exécuter OPML avec de grands modèles de langage tels que 7B-LLaMA (taille du modèle ~ 26 Go) sur un PC ordinaire sans GPU.
OPML utilise un jeu de vérification (similaire aux systèmes Truebit et Optimistic Rollup) pour garantir la décentralisation et le consensus vérifiable des services ML.
Le demandeur démarre d'abord une tâche de service ML.
Ensuite, le serveur termine la tâche de service ML et soumet le résultat à la chaîne.
Le vérificateur vérifiera le résultat. Supposons qu'il existe un validateur affirmant que le résultat est faux. Il démarre le jeu de vérification avec le serveur (accord bipartite) et tente de réfuter l'allégation en identifiant une mauvaise étape spécifique.
Enfin, un arbitrage en une seule étape a lieu sur le contrat intelligent.
Jeu de vérification en une seule phase
Le protocole de localisation monophasé fonctionne de manière similaire à la délégation de calcul (RDoC), où il est supposé que deux ou plusieurs parties (avec au moins une partie honnête) exécutent la même procédure. Les deux parties peuvent alors s'interroger avec précision pour identifier les étapes litigieuses. Envoyez les étapes à un juge moins puissant en termes de calcul (contrat intelligent sur la blockchain) pour arbitrage.
En OPML en une seule étape :
Nous avons construit une machine virtuelle (VM) pour l'exécution hors chaîne et l'arbitrage en chaîne. Nous garantissons l'équivalence des VM off-chain et des VM on-chain implémentées sur des smart contracts.
Pour garantir l'efficacité de l'inférence de modèle d'IA dans les machines virtuelles, nous avons implémenté une bibliothèque DNN légère conçue spécifiquement à cet effet, au lieu de s'appuyer sur des frameworks ML populaires tels que Tensorflow ou PyTorch. De plus, un script est fourni qui convertit les modèles Tensorflow et PyTorch en cette bibliothèque légère.
Utilisez la technologie de compilation croisée pour compiler le code de raisonnement du modèle d'intelligence artificielle dans les instructions du programme de la machine virtuelle.
L'image de la machine virtuelle est gérée avec une arborescence Merkle, et seule la racine Merkle sera téléchargée sur le contrat intelligent de la chaîne. (La racine de Merkel représente l'état de la machine virtuelle)
L'accord bipartite permettra de localiser l'étape du litige, qui sera transmise au contrat d'arbitrage sur la blockchain
Performance : Nous avons testé un modèle d'IA de base (modèle DNN pour la classification MNIST) sur PC. Nous avons pu terminer l'inférence DNN en 2 secondes dans la machine virtuelle, et l'ensemble du processus de défi peut être terminé en 2 minutes dans l'environnement de test Ethereum local.
Jeu de vérification en plusieurs étapes
Limitations des protocoles de localisation monophasés
Le jeu de vérification en une étape présente un sérieux inconvénient : tous les calculs doivent être effectués à l'intérieur d'une machine virtuelle (VM), ce qui nous empêche d'exploiter tout le potentiel de l'accélération GPU/TPU ou du traitement parallèle. Par conséquent, cette limitation entrave gravement l'efficacité de l'inférence de grands modèles, ce qui est également compatible avec la limitation du protocole RDoC actuel.
Transition vers le protocole multiphase
Pour répondre aux limitations imposées par le protocole monophasé et s'assurer qu'OPML peut atteindre des niveaux de performance comparables aux environnements natifs, nous proposons une extension au protocole multiphase. En utilisant cette approche, nous n'avons besoin d'effectuer des calculs dans la machine virtuelle qu'à l'étape finale, similaire à un protocole en une seule étape. Pour les autres étapes, nous avons la possibilité d'effectuer des calculs pour réaliser des transitions d'état dans un environnement natif, en tirant parti de la puissance des CPU, des GPU, des TPU et même du traitement parallèle. En réduisant la dépendance à la VM, nous réduisons considérablement les frais généraux et améliorons ainsi considérablement les performances d'exécution d'OPML, presque similaires à l'environnement natif.
La figure ci-dessous illustre un jeu de vérification composé de deux phases (k = 2). Dans la phase 1, le processus ressemble à un jeu de vérification en une seule étape, où chaque transition d'état correspond à une seule VM uop qui modifie l'état de la machine virtuelle. Dans la phase 2, les transitions d'état correspondent à de "grandes instructions" qui contiennent plusieurs uops qui modifient le contexte de calcul.
Les committers et les vérificateurs utiliseront d'abord l'accord bipartite pour démarrer la deuxième phase du jeu de vérification afin de localiser les étapes contestées sur la "grande commande". Cette étape enverra à la phase suivante, la phase -1. La première étape fonctionne comme un jeu de vérification en une seule étape. L'accord bipartite de la phase 1 aidera à localiser les étapes contestées sur les uops VM. Cette étape sera transmise au contrat d'arbitrage sur la blockchain.
Pour assurer l'intégrité et la sécurité de la transition vers la phase suivante, nous nous appuyons sur les arbres Merkle. Cette opération consiste à extraire les sous-arbres de Merkle des étapes de niveau supérieur, garantissant ainsi une poursuite transparente du processus de vérification.
OPML multi-étapes
Dans cette présentation, nous proposons l'approche OPML en deux étapes utilisée dans le modèle LLaMA :
Le processus de calcul de l'apprentissage automatique (ML), en particulier du réseau neuronal profond (DNN), peut être exprimé sous la forme d'un graphique de calcul, noté G. Le graphe est constitué de différents nœuds de calcul capables de stocker des résultats de calcul intermédiaires.
Le raisonnement du modèle DNN est essentiellement un processus de calcul sur le graphique de calcul ci-dessus. Le graphe entier peut être vu comme l'état d'inférence (contexte informatique dans la phase 2). Au fur et à mesure que chaque nœud est calculé, le résultat est stocké dans ce nœud, faisant ainsi avancer le graphe de calcul à l'état suivant.
Par conséquent, nous pouvons d'abord effectuer le jeu de vérification sur le graphe de calcul (en phase-2). Dans la deuxième étape du jeu de vérification, le calcul du nœud de graphe peut être effectué dans l'environnement local à l'aide d'un CPU ou d'un GPU multi-thread. L'accord bipartite permettra de localiser le nœud litigieux dont le calcul sera envoyé à la phase suivante (phase-1) de l'accord bipartite.
Dans la bissection de première phase, nous convertissons le calcul d'un nœud unique en instructions de machine virtuelle (VM), similaire à ce qui se fait dans le protocole à phase unique.
Il convient de noter que nous prévoyons l'introduction de méthodes OPML multi-étapes (comprenant plus de deux étapes) lorsque le calcul d'un seul nœud dans le graphe de calcul est encore complexe en termes de calcul. Cette extension améliorera encore l'efficience et l'efficacité globales du processus de validation.
Amélioration des performances
Ici, nous fournissons une brève discussion et analyse de notre cadre de vérification en plusieurs étapes proposé.
En supposant qu'il y a n nœuds dans le graphe de calcul DNN, chaque nœud doit récupérer m micro-instructions VM pour terminer le calcul dans la VM. Supposons que le taux d'accélération de calcul pour chaque nœud utilisant le GPU ou le calcul parallèle est α. Ce ratio représente l'accélération obtenue par le GPU ou le calcul parallèle et peut atteindre des valeurs significatives, souvent des dizaines voire des centaines de fois plus rapides que l'exécution des VM.
Sur la base de ces considérations, nous tirons les conclusions suivantes :
L'OPML à deux étages est supérieur à l'OPML à un étage et réalise une accélération de calcul α fois. L'utilisation de la vérification en plusieurs étapes nous permet de tirer parti de la puissance de calcul accélérée fournie par les GPU ou le traitement parallèle, améliorant ainsi considérablement les performances globales.
En comparant la taille des arbres de Merkle, nous constatons que dans l'OPML à deux étapes, la taille est O(m+n), tandis que dans l'OPML à une étape, la taille est nettement supérieure à O(mn). La réduction de la taille de l'arbre de Merkle met davantage en évidence l'efficacité et l'évolutivité de la conception en plusieurs étapes.
En résumé, le cadre de vérification en plusieurs étapes offre des améliorations significatives des performances, garantissant des calculs plus efficaces et plus rapides, en particulier lors de l'exploitation des capacités d'accélération des GPU ou du traitement parallèle. De plus, la taille réduite de l'arborescence Merkle augmente l'efficacité et l'évolutivité du système, faisant de l'OPML multi-étapes le choix pour diverses applications.
Cohérence et déterminisme
Dans OPML, il est essentiel d'assurer la cohérence des résultats de ML.
Lors de l'exécution native des calculs DNN, en particulier sur différentes plates-formes matérielles, en raison des caractéristiques des nombres à virgule flottante, des différences dans les résultats d'exécution peuvent se produire. Par exemple, les calculs parallèles impliquant des nombres à virgule flottante, tels que (a+b)+c et a+(b+c), produisent souvent des résultats différents en raison d'erreurs d'arrondi. De plus, des facteurs tels que le langage de programmation, la version du compilateur et le système d'exploitation peuvent tous affecter les résultats de calcul des nombres à virgule flottante, entraînant d'autres incohérences dans les résultats ML.
Pour relever ces défis et garantir la cohérence d'OPML, nous avons adopté deux approches clés :
Utilisation d'un algorithme à virgule fixe, également connu sous le nom de technologie de quantification. Cette technique nous permet de représenter et d'effectuer des calculs en utilisant une précision fixe plutôt que des nombres à virgule flottante. Ce faisant, nous atténuons les effets des erreurs d'arrondi en virgule flottante, ce qui donne des résultats plus fiables et cohérents.
Nous utilisons des bibliothèques logicielles à virgule flottante conçues pour maintenir une fonctionnalité cohérente sur différentes plates-formes. Ces bibliothèques garantissent la cohérence multiplateforme et le déterminisme des résultats ML, quelle que soit la configuration matérielle ou logicielle sous-jacente.
En combinant l'arithmétique en virgule fixe et les bibliothèques logicielles en virgule flottante, nous avons établi une base solide pour des résultats ML cohérents et fiables dans le cadre OPML. Cette coordination des techniques nous permet de surmonter les défis inhérents posés par les variables à virgule flottante et les différences de plate-forme, améliorant ainsi l'intégrité et la fiabilité des calculs OPML.
### OPML contre ZKML
* : Dans le framework OPML actuel, nous nous concentrons principalement sur l'inférence de modèles ML, permettant un calcul de modèle efficace et sûr. Cependant, il faut souligner que notre cadre prend également en charge le processus de formation, ce qui en fait une solution générale pour diverses tâches d'apprentissage automatique.
Notez que OPML est encore en cours de développement. Si vous souhaitez faire partie de ce programme passionnant et contribuer au projet OPML, n'hésitez pas à nous contacter.
Voir l'original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
OPML : Apprentissage automatique avec système de cumul optimiste
Source : github ; Compilation : MarsBit
TL;DR
Nous proposons OPML (Optimistic Machine Learning), qui peut utiliser des méthodes optimistes pour le raisonnement des modèles d'IA et la formation/l'ajustement des systèmes blockchain.
Par rapport à ZKML, OPML peut fournir des services ML à faible coût et à haute efficacité. Les exigences de participation pour OPML sont faibles : nous sommes désormais en mesure d'exécuter OPML avec de grands modèles de langage tels que 7B-LLaMA (taille du modèle ~ 26 Go) sur un PC ordinaire sans GPU.
OPML utilise un jeu de vérification (similaire aux systèmes Truebit et Optimistic Rollup) pour garantir la décentralisation et le consensus vérifiable des services ML.
Jeu de vérification en une seule phase
Le protocole de localisation monophasé fonctionne de manière similaire à la délégation de calcul (RDoC), où il est supposé que deux ou plusieurs parties (avec au moins une partie honnête) exécutent la même procédure. Les deux parties peuvent alors s'interroger avec précision pour identifier les étapes litigieuses. Envoyez les étapes à un juge moins puissant en termes de calcul (contrat intelligent sur la blockchain) pour arbitrage.
En OPML en une seule étape :
Performance : Nous avons testé un modèle d'IA de base (modèle DNN pour la classification MNIST) sur PC. Nous avons pu terminer l'inférence DNN en 2 secondes dans la machine virtuelle, et l'ensemble du processus de défi peut être terminé en 2 minutes dans l'environnement de test Ethereum local.
Jeu de vérification en plusieurs étapes
Limitations des protocoles de localisation monophasés
Le jeu de vérification en une étape présente un sérieux inconvénient : tous les calculs doivent être effectués à l'intérieur d'une machine virtuelle (VM), ce qui nous empêche d'exploiter tout le potentiel de l'accélération GPU/TPU ou du traitement parallèle. Par conséquent, cette limitation entrave gravement l'efficacité de l'inférence de grands modèles, ce qui est également compatible avec la limitation du protocole RDoC actuel.
Transition vers le protocole multiphase
Pour répondre aux limitations imposées par le protocole monophasé et s'assurer qu'OPML peut atteindre des niveaux de performance comparables aux environnements natifs, nous proposons une extension au protocole multiphase. En utilisant cette approche, nous n'avons besoin d'effectuer des calculs dans la machine virtuelle qu'à l'étape finale, similaire à un protocole en une seule étape. Pour les autres étapes, nous avons la possibilité d'effectuer des calculs pour réaliser des transitions d'état dans un environnement natif, en tirant parti de la puissance des CPU, des GPU, des TPU et même du traitement parallèle. En réduisant la dépendance à la VM, nous réduisons considérablement les frais généraux et améliorons ainsi considérablement les performances d'exécution d'OPML, presque similaires à l'environnement natif.
La figure ci-dessous illustre un jeu de vérification composé de deux phases (k = 2). Dans la phase 1, le processus ressemble à un jeu de vérification en une seule étape, où chaque transition d'état correspond à une seule VM uop qui modifie l'état de la machine virtuelle. Dans la phase 2, les transitions d'état correspondent à de "grandes instructions" qui contiennent plusieurs uops qui modifient le contexte de calcul.
Les committers et les vérificateurs utiliseront d'abord l'accord bipartite pour démarrer la deuxième phase du jeu de vérification afin de localiser les étapes contestées sur la "grande commande". Cette étape enverra à la phase suivante, la phase -1. La première étape fonctionne comme un jeu de vérification en une seule étape. L'accord bipartite de la phase 1 aidera à localiser les étapes contestées sur les uops VM. Cette étape sera transmise au contrat d'arbitrage sur la blockchain.
Pour assurer l'intégrité et la sécurité de la transition vers la phase suivante, nous nous appuyons sur les arbres Merkle. Cette opération consiste à extraire les sous-arbres de Merkle des étapes de niveau supérieur, garantissant ainsi une poursuite transparente du processus de vérification.
OPML multi-étapes
Dans cette présentation, nous proposons l'approche OPML en deux étapes utilisée dans le modèle LLaMA :
Il convient de noter que nous prévoyons l'introduction de méthodes OPML multi-étapes (comprenant plus de deux étapes) lorsque le calcul d'un seul nœud dans le graphe de calcul est encore complexe en termes de calcul. Cette extension améliorera encore l'efficience et l'efficacité globales du processus de validation.
Amélioration des performances
Ici, nous fournissons une brève discussion et analyse de notre cadre de vérification en plusieurs étapes proposé.
En supposant qu'il y a n nœuds dans le graphe de calcul DNN, chaque nœud doit récupérer m micro-instructions VM pour terminer le calcul dans la VM. Supposons que le taux d'accélération de calcul pour chaque nœud utilisant le GPU ou le calcul parallèle est α. Ce ratio représente l'accélération obtenue par le GPU ou le calcul parallèle et peut atteindre des valeurs significatives, souvent des dizaines voire des centaines de fois plus rapides que l'exécution des VM.
Sur la base de ces considérations, nous tirons les conclusions suivantes :
L'OPML à deux étages est supérieur à l'OPML à un étage et réalise une accélération de calcul α fois. L'utilisation de la vérification en plusieurs étapes nous permet de tirer parti de la puissance de calcul accélérée fournie par les GPU ou le traitement parallèle, améliorant ainsi considérablement les performances globales.
En comparant la taille des arbres de Merkle, nous constatons que dans l'OPML à deux étapes, la taille est O(m+n), tandis que dans l'OPML à une étape, la taille est nettement supérieure à O(mn). La réduction de la taille de l'arbre de Merkle met davantage en évidence l'efficacité et l'évolutivité de la conception en plusieurs étapes.
En résumé, le cadre de vérification en plusieurs étapes offre des améliorations significatives des performances, garantissant des calculs plus efficaces et plus rapides, en particulier lors de l'exploitation des capacités d'accélération des GPU ou du traitement parallèle. De plus, la taille réduite de l'arborescence Merkle augmente l'efficacité et l'évolutivité du système, faisant de l'OPML multi-étapes le choix pour diverses applications.
Cohérence et déterminisme
Dans OPML, il est essentiel d'assurer la cohérence des résultats de ML.
Lors de l'exécution native des calculs DNN, en particulier sur différentes plates-formes matérielles, en raison des caractéristiques des nombres à virgule flottante, des différences dans les résultats d'exécution peuvent se produire. Par exemple, les calculs parallèles impliquant des nombres à virgule flottante, tels que (a+b)+c et a+(b+c), produisent souvent des résultats différents en raison d'erreurs d'arrondi. De plus, des facteurs tels que le langage de programmation, la version du compilateur et le système d'exploitation peuvent tous affecter les résultats de calcul des nombres à virgule flottante, entraînant d'autres incohérences dans les résultats ML.
Pour relever ces défis et garantir la cohérence d'OPML, nous avons adopté deux approches clés :
Utilisation d'un algorithme à virgule fixe, également connu sous le nom de technologie de quantification. Cette technique nous permet de représenter et d'effectuer des calculs en utilisant une précision fixe plutôt que des nombres à virgule flottante. Ce faisant, nous atténuons les effets des erreurs d'arrondi en virgule flottante, ce qui donne des résultats plus fiables et cohérents.
Nous utilisons des bibliothèques logicielles à virgule flottante conçues pour maintenir une fonctionnalité cohérente sur différentes plates-formes. Ces bibliothèques garantissent la cohérence multiplateforme et le déterminisme des résultats ML, quelle que soit la configuration matérielle ou logicielle sous-jacente.
En combinant l'arithmétique en virgule fixe et les bibliothèques logicielles en virgule flottante, nous avons établi une base solide pour des résultats ML cohérents et fiables dans le cadre OPML. Cette coordination des techniques nous permet de surmonter les défis inhérents posés par les variables à virgule flottante et les différences de plate-forme, améliorant ainsi l'intégrité et la fiabilité des calculs OPML.
### OPML contre ZKML
* : Dans le framework OPML actuel, nous nous concentrons principalement sur l'inférence de modèles ML, permettant un calcul de modèle efficace et sûr. Cependant, il faut souligner que notre cadre prend également en charge le processus de formation, ce qui en fait une solution générale pour diverses tâches d'apprentissage automatique.
Notez que OPML est encore en cours de développement. Si vous souhaitez faire partie de ce programme passionnant et contribuer au projet OPML, n'hésitez pas à nous contacter.