Cet article est rédigé en collaboration avec Dima Zadorozhny et Fuad Babaev de VirtuSwap.
VirtuSwap est une startup développant une technologie innovante d’échange décentralisé d’actifs sur des blockchains. La technologie de VirtuSwap permet un trading plus efficace pour les actifs qui n'ont pas de paire directe entre eux. L'absence d'une paire directe entraîne des échanges indirects coûteux, ce qui signifie que deux transactions ou plus sont nécessaires pour réaliser un swap souhaité, ce qui entraîne des coûts de négociation doubles ou triples. La technologie de pools virtuels basés sur les réserves de VirtuSwap résout le problème en rendant chaque transaction directe, ce qui permet d'économiser jusqu'à 50 % des coûts de négociation. Lire la suite sur virtuswap.io.
Dans cet article, nous partageons comment VirtuSwap a utilisé la fonctionnalité apportez votre propre conteneur dans Amazon SageMakerStudio pour créer un environnement robuste pour héberger leurs simulations gourmandes en GPU afin de résoudre des problèmes d'optimisation linéaire.
Le défi
Le moteur VirtuSwap Minerva crée des recommandations pour une répartition optimale de la liquidité entre différents pools de liquidité, tout en prenant en compte plusieurs paramètres, tels que les volumes de transactions, la liquidité actuelle du marché et la volatilité des actifs négociés, limités par le montant total de liquidité disponible pour la distribution. Pour fournir ces recommandations, VirtuSwap Minerva utilise des milliers de paires de trading historiques pour simuler leur parcours à travers diverses configurations de liquidité afin de trouver la répartition optimale de la liquidité, des frais de pool, etc.
L'implémentation initiale a été codée à l'aide de dataframes pandas. Cependant, à mesure que les données de simulation augmentaient, la durée d’exécution a presque quadruplé, tout comme l’ampleur du problème. Le résultat était que les itérations ralentissaient et qu’il était presque impossible d’exécuter des tâches de plus grande dimension. VirtuSwap s'est rendu compte qu'ils devaient utiliser des instances GPU pour la simulation afin de permettre des résultats plus rapides.
VirtuSwap avait besoin d'une bibliothèque de type pandas compatible GPU pour exécuter sa simulation et a choisi CUDF, une bibliothèque GPU DataFrame de Rapides. cuDF est utilisé pour charger, joindre, agréger, filtrer et autrement manipuler des données, dans un pandas-like API qui accélère le travail sur les dataframes, en utilisant CUDA pour des performances nettement plus rapides que les pandas.
Vue d'ensemble de la solution
VirtuSwap a choisi SageMaker Studio pour le développement de bout en bout, en commençant par le développement itératif et interactif dans les notebooks. En raison de la flexibilité de SageMaker Studio, ils ont décidé de l'utiliser également pour leur simulation, en profitant de Amazon Sage Maker images personnalisées, qui permettent à VirtuSwap d'apporter ses propres bibliothèques personnalisées et logiciels nécessaires, tels que cuDF. Le diagramme suivant illustre le flux de travail de la solution.
Dans les sections suivantes, nous partageons les instructions étape par étape pour créer et utiliser une image Rapids cuDF dans SageMaker.
Pré-requis
Pour exécuter ce guide étape par étape, vous avez besoin d'un compte AWS avec des autorisations sur SageMaker, Registre des conteneurs élastiques Amazon (AmazonECR), Gestion des identités et des accès AWS (Je suis et Création de code AWS. De plus, vous devez avoir un Domaine SageMaker prêt.
Créer des rôles et des stratégies IAM
Pour le processus de création de blocs-notes personnalisés SageMaker, nous avons utilisé AWS Cloud Shell, qui fournit tous les packages requis pour créer l’image personnalisée. Dans CloudShell, nous avons utilisé Construction Docker SageMaker, une CLI pour créer des images Docker pour et dans SageMaker Studio. La CLI peut créer le référentiel dans Amazon ECR et créer le conteneur à l'aide de CodeBuild. Pour cela, nous devons fournir à l'outil un rôle IAM avec les autorisations appropriées. Effectuez les étapes suivantes :
- Connectez-vous à AWS Management Console et ouvrez le Console IAM.
- Dans le volet de navigation de gauche, choisissez Politiques internes.
- Créez une stratégie nommée
sm-build-policy
avec les autorisations suivantes :
Les autorisations offrent la possibilité d'utiliser l'utilitaire dans son intégralité : créer des référentiels, créer une tâche CodeBuild, utiliser Service de stockage simple Amazon (Amazon S3) et envoyez les journaux à Amazon Cloud Watch.
- Créez un rôle nommé
sm-build-role
avec la stratégie de confiance suivante et ajoutez la stratégiesm-build-policy
que vous avez créé précédemment :
Passons maintenant en revue les étapes dans CloudShell.
Créer une image Docker cuDF dans CloudShell
Pour nos besoins, nous avions besoin d'une image Rapids CUDA, qui comprend également un noyau ipy, afin que l'image puisse être utilisée dans un Carnet SageMaker Studio.
Nous utilisons une image CUDA existante par RapidsAI qui est disponible dans le site officiel Hub Docker IA Rapidset ajoutez le ipykernel
installation.
Dans un terminal CloudShell, exécutez la commande suivante :
Cela créera le Dockerfile qui construira notre image Docker personnalisée pour SageMaker.
Créer et transférer l'image vers un référentiel
Comme mentionné, nous avons utilisé le Bibliothèque SageMaker Docker Build, qui permet aux data scientists et aux développeurs de créer facilement des images de conteneurs personnalisées. Pour plus d'informations, reportez-vous à Utilisation de l'interface de ligne de commande Amazon SageMaker Studio Image Build pour créer des images de conteneur à partir de vos blocs-notes Studio.
La commande suivante crée un référentiel ECR (si le référentiel n'existe pas). sm-docker le créera, construira et poussera la nouvelle image Docker vers le référentiel créé :
Au cas où tu manquerais sm-docker
dans votre CloudShell, exécutez le code suivant :
Une fois l'opération terminée, l'URI de l'image ECR sera renvoyée.
Créer une image personnalisée SageMaker
Après avoir créé une image Docker personnalisée et l'avoir transférée vers votre référentiel de conteneurs (Amazon ECR), vous pouvez configurer SageMaker pour utiliser cette image Docker personnalisée. Effectuez les étapes suivantes :
- Sur la console SageMaker, choisissez Ajouter des images dans le volet de navigation.
- Selectionnez Créer une image.
- Entrez la sortie URI de l’image de la section précédente, puis choisissez Suivant.
- Pour Nom de l'image ainsi que Nom d'affichage de l'image, Entrer
rapids
. - Pour Description, entrez une description.
- Pour Rôle IAM, choisissez le rôle IAM approprié pour votre domaine SageMaker.
- Pour Chemin de montage EFS, Entrer
/home/sagemaker-user
(défaut). - Développer vous Configuration avancée.
- Pour ID utilisateur, Entrer
1000
. - Pour ID de groupe, Entrer
100
.
- Dans le Type d'image section, sélectionnez Image de SageMaker Studio.
- Selectionnez Ajouter un noyau.
- Pour Nom du noyau, Entrer
conda-env-rapids-py
. - Pour Nom d'affichage du noyau, Entrer
rapids
. - Selectionnez Envoyer pour créer l'image SageMaker.
Attachez la nouvelle image à votre domaine SageMaker Studio
Maintenant que vous avez créé l’image personnalisée, vous devez la rendre disponible en l’attachant à votre domaine. Effectuez les étapes suivantes :
- Sur la console SageMaker, choisissez Domaines dans le volet de navigation.
- Choisissez votre domaine. Cette étape est facultative ; vous pouvez créer et joindre l'image personnalisée directement à partir du domaine et ignorer cette étape.
- Sur la page de détails du domaine, choisissez le Environment onglet, puis choisissez Joindre l'image.
- Sélectionnez Image existante et sélectionnez la nouvelle image (
rapids
) de la liste. - Selectionnez Suivant.
- Vérifiez la configuration de l'image personnalisée et assurez-vous de définir Type d'image as Image de SageMaker Studio, comme à l'étape précédente, avec le même nom de noyau et le même nom d'affichage du noyau.
- Selectionnez Envoyer.
L'image personnalisée est désormais disponible dans SageMaker Studio et prête à être utilisée.
Créez un nouveau bloc-notes avec l'image
Pour obtenir des instructions sur le lancement d'un nouveau bloc-notes, reportez-vous à Lancez une image SageMaker personnalisée dans Amazon SageMaker Studio. Effectuez les étapes suivantes :
- Sur la console SageMaker Studio, choisissez Ouvrir le lanceur.
- Selectionnez Changer d'environnement.
- Pour Image(s), choisissez l'image nouvellement créée,
rapids v1
. - Pour Noyau, choisissez
rapids
. - Pour Type d'instancechoisissez votre instance.
SageMaker Studio offre la possibilité de personnaliser votre puissance de calcul en choisissant une instance parmi les familles de calcul accéléré AWS, de calcul à usage général, de calcul optimisé ou de mémoire optimisée. Cette flexibilité vous a permis d'effectuer une transition transparente entre les processeurs et les GPU, ainsi que d'augmenter ou de réduire dynamiquement la taille des instances selon vos besoins. Pour notre ordinateur portable, nous avons utilisé le type d'instance ml.g4dn.2xlarge pour tester les performances de cuDF tout en utilisant l'accélérateur GPU.
- Selectionnez Sélectionnez.
- Sélectionnez votre environnement et choisissez Créer un cahier, puis attendez que le noyau du notebook soit prêt.
Validez votre image personnalisée
Pour valider que votre image personnalisée a été lancée et que cuDF est prêt à être utilisé, créez une nouvelle cellule, saisissez import cudf
, et exécutez-le.
Nettoyer
Éteignez l'instance Jupyter exécutant le bloc-notes de test dans SageMaker Studio en choisissant Exécution de terminaux et de noyaux et mettre hors tension l'instance en cours d'exécution.
Résultats de la comparaison d'exécution
Nous avons effectué une comparaison d'exécution de notre code en utilisant à la fois le CPU et le GPU sur des instances SageMaker g4dn.2xlarge, avec une complexité temporelle de O(N). Les résultats, comme le montre la figure suivante, révèlent l'efficacité de l'utilisation des GPU par rapport aux CPU.
Le principal avantage des GPU réside dans leur capacité à effectuer des traitements parallèles. À mesure que nous augmentons la valeur de N, la durée d'exécution des processeurs augmente à un rythme de 3N. En revanche, avec les GPU, le taux d’augmentation peut être décrit comme 2N, comme illustré dans la figure précédente. Plus la taille du problème est grande, plus le GPU devient efficace. Dans notre cas, l’utilisation d’un GPU était au moins 20 fois plus rapide que l’utilisation d’un CPU. Cela met en évidence l’importance croissante des GPU dans l’informatique moderne, en particulier pour les tâches qui nécessitent le traitement rapide de grandes quantités de données.
Avec les instances GPU SageMaker, VirtuSwap est capable d'augmenter considérablement la dimensionnalité des problèmes résolus et de trouver des solutions plus rapidement.
Conclusion
Dans cet article, nous avons montré comment VirtuSwap a personnalisé SageMaker Studio en utilisant une image personnalisée pour résoudre un problème complexe. Avec la possibilité de modifier facilement l'environnement d'exécution et de basculer entre différentes instances, tailles et noyaux, VirtuSwap a pu expérimenter rapidement et accélérer le temps d'exécution de 15 fois et fournir une solution évolutive.
Dans une prochaine étape, VirtuSwap envisage d'élargir son utilisation de SageMaker et d'exécuter son traitement dans Traitement d'Amazon SageMaker pour traiter les données massives qu'ils collectent à partir de diverses blockchains dans leur plate-forme.
À propos des auteurs
Adir Sharabi est architecte de solutions principal chez Amazon Web Services. Il travaille avec les clients AWS pour les aider à concevoir des applications sécurisées, résilientes, évolutives et hautes performances dans le cloud. Il est également passionné par la Data et aide les clients à en tirer le meilleur parti.
Omer Haïm est architecte senior de solutions de démarrage chez Amazon Web Services. Il aide les startups dans leur parcours cloud et est passionné par les conteneurs et le ML. Dans ses temps libres, Omer aime voyager et jouer occasionnellement avec son fils.
Dmitri Zadorojny est analyste de données chez virtuswap.io. Il est responsable de l'exploration, du traitement et du stockage des données, ainsi que de l'intégration de services cloud tels qu'AWS. Avant de rejoindre virtuswap, il a travaillé dans le domaine de la science des données et a été ambassadeur principal de l'analyse à la fondation Dydx. Dima est titulaire d'une maîtrise en informatique. Dima aime jouer à des jeux informatiques pendant son temps libre.
Fouad Babaïev est spécialiste de la science des données chez Virtuswap (virtuswap.io). Il apporte son expertise dans la résolution de défis d'optimisation complexes, la création de simulations et l'architecture de modèles pour les processus commerciaux. En dehors de sa carrière professionnelle, Fuad est passionné par les échecs.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/how-virtuswap-accelerates-their-pandas-based-trading-simulations-with-an-amazon-sagemaker-studio-custom-container-and-aws-gpu-instances/
- :possède
- :est
- $UP
- 100
- 11
- 20
- 7
- 804
- 9
- 91
- a
- capacité
- Capable
- A Propos
- accéléré
- accélère
- accélérateur
- accès
- Compte
- Action
- ajouter
- ajout
- Avantage
- agréger
- AI
- Tous
- permettre
- permis
- permet
- presque
- le long de
- aussi
- Amazon
- Amazon Sage Maker
- Amazon SageMakerStudio
- Amazon Web Services
- Ambassadeur
- montant
- quantités
- an
- analyste
- analytique
- ainsi que
- api
- applications
- SONT
- AS
- Outils
- At
- joindre
- disponibles
- AWS
- Console de gestion AWS
- BE
- devient
- jusqu'à XNUMX fois
- blockchains
- tous les deux
- apporter
- Apportez le
- construire
- Développement
- by
- CAN
- Carrière
- maisons
- globaux
- Change
- Échecs
- Selectionnez
- choose
- choisir
- le cloud
- services de cloud computing
- code
- codé
- collaboration
- Collecte
- COM
- Société
- Comparaison
- complet
- achèvement
- complexe
- complexité
- calcul
- ordinateur
- Informatique
- informatique
- Puissance de calcul
- condition
- menée
- configuration
- considérant
- Console
- Contenant
- Conteneurs
- cher
- Costs
- engendrent
- créée
- crée des
- Courant
- Customiser
- Clients
- personnaliser
- sont adaptées
- données
- data mining
- science des données
- Décentralisé
- Échange décentralisé
- décidé
- Réglage par défaut
- livrer
- décrit
- la description
- voulu
- détails
- mobiles
- développement
- Développement
- différent
- directement
- Commande
- distribution
- Docker
- Ne fait pas
- domaine
- Ne pas
- double
- down
- Dramatiquement
- deux
- dydx
- dynamiquement
- Plus tôt
- même
- effet
- efficace
- efficace
- end-to-end
- Moteur
- Entrer
- Environment
- notamment
- Chaque
- échange
- exister
- existant
- expérience
- nous a permis de concevoir
- familles
- RAPIDE
- plus rapide
- Fonctionnalité
- Frais
- champ
- Figure
- filtration
- Trouvez
- Flexibilité
- Abonnement
- Pour
- Fondation
- De
- plein
- jeu
- Games
- Général
- obtenez
- GPU
- GPU
- a augmenté de
- Croissance
- guide
- main
- Vous avez
- he
- vous aider
- aider
- aide
- Haute
- Faits saillants
- sa
- historique
- hôte
- Comment
- Cependant
- HTML
- http
- HTTPS
- Identite
- if
- illustre
- image
- satellite
- la mise en oeuvre
- importance
- impossible
- in
- inclut
- Améliore
- Augmente
- d'information
- initiale
- technologie innovante
- technologie innovante
- installer
- installation
- instance
- Des instructions
- Intégration
- Interactif
- développement
- IT
- itérations
- Emploi
- joindre
- chemin
- gros
- plus importantes
- lancer
- lancé
- conduire
- conduisant
- Conduit
- au
- à gauche
- bibliothèques
- Bibliothèque
- se trouve
- aime
- Liquidité
- pools de liquidité
- Liste
- chargement
- Entrée
- a prendre une
- Fabrication
- gestion
- manipuler
- Marché
- massif
- sens
- Mémoire
- mentionné
- Mines
- ML
- numériques jumeaux (digital twin models)
- Villas Modernes
- PLUS
- plus efficace
- (en fait, presque toutes)
- MONTER
- plusieurs
- prénom
- Nommé
- Navigation
- presque
- Besoin
- nécessaire
- Nouveauté
- nouvellement
- next
- cahier
- maintenant
- of
- de rabais
- officiel
- on
- ouvert
- optimaux
- à mettre en œuvre pour gérer une entreprise rentable. Ce guide est basé sur trois décennies d'expérience
- optimisé
- Option
- or
- Autre
- autrement
- nos
- ande
- sortie
- au contrôle
- plus de
- propre
- Forfaits
- page
- paire
- paires
- pandas
- pain
- Parallèle
- paramètres
- passion
- passionné
- Effectuer
- performant
- autorisations
- plateforme
- Platon
- Intelligence des données Platon
- PlatonDonnées
- jouer
- politique
- pool
- Piscines
- Post
- power
- Alimentation
- précédent
- Directeur
- Avant
- Problème
- d'ouvrabilité
- processus
- Traité
- les process
- traitement
- professionels
- correct
- fournir
- fournit
- but
- des fins
- Push
- Poussé
- Python
- quadruplé
- vite.
- Tarif
- Lire
- solutions
- réalisé
- recommandations
- reportez-vous
- dépôt
- exigent
- conditions
- résilient
- ressource
- responsables
- résultat
- Résultats
- révéler
- Avis
- robuste
- Rôle
- rôle
- Courir
- pour le running
- sagemaker
- même
- économie
- SC
- évolutive
- Escaliers intérieurs
- Sciences
- scientifiques
- de façon transparente
- Section
- les sections
- sécurisé
- envoyer
- supérieur
- sert
- service
- Services
- set
- Partager
- montré
- montré
- de façon significative
- étapes
- simulation
- Taille
- tailles
- So
- Logiciels
- sur mesure
- Solutions
- RÉSOUDRE
- Résout
- sont
- spécialiste
- vitesse
- Commencez
- Commencez
- Startups
- Déclaration
- étapes
- Étapes
- storage
- studio
- tel
- sûr
- échange
- Interrupteur
- s'attaquer
- prise
- tâches
- Technologie
- terminal
- tester
- que
- qui
- La
- leur
- Les
- puis
- Ces
- l'ont
- this
- milliers
- Avec
- fiable
- fois
- à
- outil
- Total
- commerce
- échangés
- métiers
- Commerce
- paires de négociation
- volumes de trading
- transition
- Voyage
- Tripler
- La confiance
- deux
- type
- jusqu'à
- Utilisation
- utilisé
- d'utiliser
- Utilisateur
- Usages
- en utilisant
- utilitaire
- utiliser
- Utilisant
- v1
- VALIDER
- Plus-value
- divers
- version
- Salle de conférence virtuelle
- volumes
- attendez
- était
- we
- web
- services Web
- WELL
- qui
- tout en
- sera
- comprenant
- activités principales
- travaillé
- workflow
- vos contrats
- code écrit
- Vous n'avez
- Votre
- zéphyrnet