Ten post powstał we współpracy z Dimą Zadorozhny i Fuadem Babaevem z VirtuSwap.
VirtuSwap to firma typu start-up rozwijająca innowacyjną technologię zdecentralizowanej wymiany aktywów na blockchainach. Technologia VirtuSwap zapewnia bardziej efektywny handel aktywami, które nie mają między sobą bezpośredniej pary. Brak bezpośredniej pary prowadzi do kosztownego handlu pośredniego, co oznacza, że do zakończenia pożądanej zamiany wymagane są dwie lub więcej transakcji, co prowadzi do podwójnych lub potrójnych kosztów transakcji. Technologia wirtualnych pul opartych na rezerwach VirtuSwap rozwiązuje problem, sprawiając, że każda transakcja jest bezpośrednia, oszczędzając do 50% kosztów transakcyjnych. Przeczytaj więcej na virtuswap.io.
W tym poście dzielimy się tym, jak VirtuSwap wykorzystał funkcję „przynieś własny kontener”. Studio Amazon SageMaker zbudować solidne środowisko do hostowania symulacji intensywnie wykorzystujących procesor graficzny w celu rozwiązywania problemów z optymalizacją liniową.
Wyzwanie
Silnik VirtuSwap Minerva tworzy rekomendacje dotyczące optymalnej dystrybucji płynności pomiędzy różnymi pulami płynności, biorąc pod uwagę wiele parametrów, takich jak wolumen obrotu, bieżąca płynność rynku i zmienność aktywów znajdujących się w obrocie, ograniczonych całkowitą ilością płynności dostępnej do dystrybucji. Aby zapewnić te rekomendacje, VirtuSwap Minerva wykorzystuje tysiące historycznych par handlowych do symulacji ich przebiegu w różnych konfiguracjach płynności, aby znaleźć optymalną dystrybucję płynności, opłaty za pulę i nie tylko.
Początkowa implementacja została zakodowana przy użyciu ramek danych Pandas. Jednak w miarę zwiększania się ilości danych symulacyjnych czas działania wydłużał się prawie czterokrotnie, wraz z rozmiarem problemu. W rezultacie iteracje uległy spowolnieniu i wykonywanie zadań o większych wymiarach było prawie niemożliwe. Firma VirtuSwap zdała sobie sprawę, że do symulacji musi użyć instancji GPU, aby uzyskać szybsze wyniki.
VirtuSwap potrzebował biblioteki podobnej do pand kompatybilnej z GPU, aby przeprowadzić symulację i wybrał cuDF, biblioteka GPU DataFrame autorstwa Katarakty na rzece. cuDF służy do ładowania, łączenia, agregowania, filtrowania i innego manipulowania danymi w formacie a pandy-like API przyspieszające pracę na ramkach danych, wykorzystujące CUDA dla znacznie większej wydajności niż pandy.
Omówienie rozwiązania
VirtuSwap wybrał SageMaker Studio do kompleksowego programowania, zaczynając od iteracyjnego, interaktywnego programowania w notatnikach. Ze względu na elastyczność SageMaker Studio postanowili wykorzystać je również do swoich symulacji, wykorzystując to Amazon Sage Maker niestandardowe obrazy, które umożliwiają VirtuSwap dostarczanie własnych, niestandardowych bibliotek i potrzebnego oprogramowania, takiego jak cuDF. Poniższy diagram ilustruje przepływ pracy rozwiązania.
W poniższych sekcjach udostępniamy instrukcje krok po kroku dotyczące tworzenia i używania obrazu Rapids cuDF w SageMaker.
Wymagania wstępne
Aby uruchomić ten przewodnik krok po kroku, potrzebujesz konta AWS z uprawnieniami do SageMaker, Rejestr elastycznego pojemnika Amazon (Amazon ECR), AWS Zarządzanie tożsamością i dostępem (Ja jestem i Tworzenie kodu AWS. Poza tym trzeba mieć Domena SageMakera gotowe.
Utwórz role i zasady uprawnień
Do procesu tworzenia niestandardowych notatników SageMaker użyliśmy Chmura AWS, który udostępnia wszystkie pakiety wymagane do zbudowania niestandardowego obrazu. W CloudShell użyliśmy Kompilacja Dockera SageMaker, interfejs CLI do tworzenia obrazów Dockera dla i w SageMaker Studio. Interfejs CLI może utworzyć repozytorium w Amazon ECR i zbudować kontener za pomocą CodeBuild. W tym celu musimy nadać narzędziu rolę IAM z odpowiednimi uprawnieniami. Wykonaj następujące kroki:
- Zaloguj się do konsoli zarządzania AWS i otwórz plik Konsola IAM.
- W panelu nawigacyjnym po lewej stronie wybierz Polityka.
- Utwórz zasadę o nazwie
sm-build-policy
z następującymi uprawnieniami:
Uprawnienia umożliwiają pełne wykorzystanie narzędzia: tworzenie repozytoriów, tworzenie zadania CodeBuild, używanie Usługa Amazon Simple Storage (Amazon S3) i wysyłaj logi do Amazon Cloud Watch.
- Utwórz rolę o nazwie
sm-build-role
z poniższą polityką zaufania i dodaj tę politykęsm-build-policy
które utworzyłeś wcześniej:
Teraz przejrzyjmy kroki w CloudShell.
Utwórz obraz platformy Docker cuDF w CloudShell
Do naszych celów potrzebowaliśmy obrazu Rapids CUDA, który zawiera również plik ipykernel, dzięki czemu obraz może zostać użyty w pliku a Notatnik SageMaker Studio.
Używamy istniejącego obrazu CUDA według Rapids AI który jest dostępny w oficjalnym Centrum dokowania Rapids AIi dodaj ipykernel
instalacja.
W terminalu CloudShell uruchom następujące polecenie:
Spowoduje to utworzenie pliku Dockerfile, który zbuduje nasz niestandardowy obraz Docker dla SageMaker.
Zbuduj i wypchnij obraz do repozytorium
Jak już wspomniałem, użyliśmy tzw Biblioteka SageMaker Docker Build, która umożliwia badaczom danych i programistom łatwe tworzenie niestandardowych obrazów kontenerów. Aby uzyskać więcej informacji, zobacz Korzystanie z Amazon SageMaker Studio Image Build CLI do tworzenia obrazów kontenerów z notebooków Studio.
Poniższe polecenie tworzy repozytorium ECR (jeśli repozytorium nie istnieje). sm-docker utworzy go, zbuduje i wypchnie nowy obraz Dockera do utworzonego repozytorium:
Na wypadek, gdybyś zaginął sm-docker
w CloudShell uruchom następujący kod:
Po zakończeniu zostanie zwrócony identyfikator URI obrazu ECR.
Utwórz niestandardowy obraz SageMaker
Po utworzeniu niestandardowego obrazu Dockera i przesłaniu go do repozytorium kontenerów (Amazon ECR), możesz skonfigurować SageMaker tak, aby używał tego niestandardowego obrazu Dockera. Wykonaj następujące kroki:
- W konsoli SageMaker wybierz Obrazy w okienku nawigacji.
- Dodaj Stwórz obraz.
- Wprowadź wynik URI obrazu z poprzedniej sekcji, a następnie wybierz Następna.
- W razie zamówieenia projektu Nazwa obrazu i Wyświetlana nazwa obrazu, wchodzić
rapids
. - W razie zamówieenia projektu Opiswprowadź opis.
- W razie zamówieenia projektu Rola IAM, wybierz odpowiednią rolę uprawnień dla swojej domeny SageMaker.
- W razie zamówieenia projektu Ścieżka montowania EFS, wchodzić
/home/sagemaker-user
(domyślny). - Rozszerzać Zaawansowana konfiguracja.
- W razie zamówieenia projektu identyfikator użytkownika, wchodzić
1000
. - W razie zamówieenia projektu Grupa ID, wchodzić
100
.
- W Typ obrazu sekcja, wybierz Obraz studyjny SageMaker.
- Dodaj Dodaj jądro.
- W razie zamówieenia projektu Nazwa jądra, wchodzić
conda-env-rapids-py
. - W razie zamówieenia projektu Nazwa wyświetlana jądra, wchodzić
rapids
. - Dodaj Prześlij aby utworzyć obraz SageMaker.
Dołącz nowy obraz do domeny SageMaker Studio
Teraz, gdy masz już niestandardowy obraz, musisz go udostępnić do użytku, dołączając obraz do swojej domeny. Wykonaj następujące kroki:
- W konsoli SageMaker wybierz domeny w okienku nawigacji.
- Wybierz swoją domenę. Ten krok jest opcjonalny; możesz utworzyć i dołączyć niestandardowy obraz bezpośrednio z domeny i pominąć ten krok.
- Na stronie szczegółów domeny wybierz opcję Środowisko , a następnie wybierz Dołącz obraz.
- Wybierz Istniejący obraz i wybierz nowy obraz (
rapids
) z listy. - Dodaj Następna.
- Przejrzyj niestandardową konfigurację obrazu i upewnij się, że została ustawiona Typ obrazu as Obraz studyjny SageMaker, jak w poprzednim kroku, z tą samą nazwą jądra i nazwą wyświetlaną jądra.
- Dodaj Prześlij.
Niestandardowy obraz jest teraz dostępny w SageMaker Studio i gotowy do użycia.
Utwórz nowy notatnik z obrazem
Aby uzyskać instrukcje dotyczące uruchamiania nowego notebooka, zobacz Uruchom niestandardowy obraz SageMaker w Amazon SageMaker Studio. Wykonaj następujące kroki:
- W konsoli SageMaker Studio wybierz Otwórz program uruchamiający.
- Dodaj Zmień otoczenie.
- W razie zamówieenia projektu Obraz, wybierz nowo utworzony obraz,
rapids v1
. - W razie zamówieenia projektu Jądrowybierz
rapids
. - W razie zamówieenia projektu Typ instancji¸ wybierz swoją instancję.
SageMaker Studio zapewnia opcję dostosowania mocy obliczeniowej poprzez wybranie instancji z rodziny obliczeń akcelerowanych AWS, obliczeń ogólnego przeznaczenia, zoptymalizowanych pod kątem obliczeń lub zoptymalizowanych pod kątem pamięci. Ta elastyczność umożliwiła płynne przełączanie między procesorami CPU i GPU, a także dynamiczne skalowanie w górę lub w dół rozmiarów instancji w zależności od potrzeb. W naszym notatniku użyliśmy typu instancji ml.g4dn.2xlarge do przetestowania wydajności CuDF przy wykorzystaniu akceleratora GPU.
- Dodaj Wybierz.
- Wybierz swoje środowisko i wybierz Utwórz notatnik, a następnie poczekaj, aż jądro notebooka będzie gotowe.
Zweryfikuj swój niestandardowy obraz
Aby sprawdzić, czy niestandardowy obraz został uruchomiony, a cuDF jest gotowy do użycia, utwórz nową komórkę i wpisz import cudf
i uruchom go.
Sprzątać
Wyłącz instancję Jupyter z uruchomionym notatnikiem testowym w SageMaker Studio, wybierając Uruchamianie terminali i jąder i wyłączenie działającej instancji.
Wyniki porównania czasu wykonania
Przeprowadziliśmy porównanie czasu wykonania naszego kodu przy użyciu zarówno procesora, jak i procesora graficznego w instancjach SageMaker g4dn.2xlarge, ze złożonością czasową O(N). Wyniki pokazane na poniższym rysunku pokazują efektywność wykorzystania procesorów graficznych w porównaniu z procesorami CPU.
Główną zaletą procesorów graficznych jest ich zdolność do przetwarzania równoległego. Gdy zwiększamy wartość N, czas działania procesorów rośnie w tempie 3N. Z drugiej strony w przypadku procesorów graficznych tempo wzrostu można opisać jako 2N, jak pokazano na poprzednim rysunku. Im większy rozmiar problemu, tym wydajniejsza staje się karta graficzna. W naszym przypadku użycie procesora graficznego było co najmniej 20 razy szybsze niż użycie procesora. Podkreśla to rosnące znaczenie procesorów graficznych we współczesnych komputerach, zwłaszcza w przypadku zadań wymagających szybkiego przetwarzania dużych ilości danych.
Dzięki instancjom GPU SageMaker VirtuSwap jest w stanie radykalnie zwiększyć wymiarowość rozwiązanych problemów i szybciej znajdować rozwiązania.
Wnioski
W tym poście pokazaliśmy, jak VirtuSwap dostosował SageMaker Studio, używając niestandardowego obrazu do rozwiązania złożonego problemu. Dzięki możliwości łatwej zmiany środowiska uruchomieniowego i przełączania między różnymi instancjami, rozmiarami i jądrami, VirtuSwap był w stanie szybko eksperymentować i przyspieszyć czas działania 15 razy, a także zapewnić skalowalne rozwiązanie.
Następnym krokiem VirtuSwap rozważa poszerzenie wykorzystania SageMaker i uruchomienie ich przetwarzania Przetwarzanie Amazon SageMaker do przetwarzania ogromnych danych, które zbierają z różnych łańcuchów bloków, na swoją platformę.
O autorach
Adira Sharabiego jest głównym architektem rozwiązań w Amazon Web Services. Współpracuje z klientami AWS, pomagając im tworzyć bezpieczne, odporne, skalowalne i wydajne aplikacje w chmurze. Pasjonuje się także danymi i pomaga klientom w maksymalnym wykorzystaniu ich potencjału.
Omer Chaim jest starszym architektem rozwiązań dla start-upów w Amazon Web Services. Pomaga startupom w ich podróży do chmury i jest pasjonatem kontenerów i uczenia maszynowego. W wolnym czasie Omer lubi podróżować i czasami bawić się ze swoim synem.
Dmitrij Zadorożny jest analitykiem danych w firmie virtuswap.io. Odpowiada za eksplorację, przetwarzanie i przechowywanie danych, a także integrację usług chmurowych takich jak AWS. Przed dołączeniem do virtuswap pracował w dziedzinie nauki o danych i był głównym ambasadorem analityki w fundacji dydx. Dima posiada tytuł magistra informatyki. Dima w wolnym czasie lubi grać w gry komputerowe.
Fuad Babajew pełni funkcję Specjalisty ds. Nauki Danych w Virtuswap (virtuswap.io). Wnosi wiedzę specjalistyczną w zakresie rozwiązywania złożonych wyzwań optymalizacyjnych, tworzenia symulacji i projektowania modeli procesów handlowych. Poza karierą zawodową Fuad pasjonuje się grą w szachy.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: 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/
- :ma
- :Jest
- $W GÓRĘ
- 100
- 11
- 20
- 7
- 804
- 9
- 91
- a
- zdolność
- Zdolny
- O nas
- przyśpieszony
- przyspiesza
- akcelerator
- dostęp
- Konto
- Działania
- Dodaj
- dodatek
- Korzyść
- agregacja
- AI
- Wszystkie kategorie
- dopuszczać
- dozwolony
- pozwala
- prawie
- wzdłuż
- również
- Amazonka
- Amazon Sage Maker
- Studio Amazon SageMaker
- Amazon Web Services
- Ambasador
- ilość
- kwoty
- an
- analityk
- analityka
- i
- api
- aplikacje
- SĄ
- AS
- Aktywa
- At
- dołączać
- dostępny
- AWS
- Konsola zarządzania AWS
- BE
- staje się
- pomiędzy
- blockchains
- obie
- przynieść
- Przynosi
- budować
- Budowanie
- by
- CAN
- Kariera
- walizka
- wyzwania
- zmiana
- Szachy
- Dodaj
- Wybierając
- wybrał
- Chmura
- usługi w chmurze
- kod
- kodowane
- współpraca
- Zbieranie
- COM
- sukcesy firma
- porównanie
- kompletny
- ukończenia
- kompleks
- kompleksowość
- obliczać
- komputer
- Computer Science
- computing
- moc obliczeniowa
- warunek
- przeprowadzone
- systemu
- wobec
- Konsola
- Pojemnik
- Pojemniki
- kosztowny
- Koszty:
- Stwórz
- stworzony
- tworzy
- Aktualny
- zwyczaj
- Klientów
- dostosować
- dostosowane
- dane
- data mining
- nauka danych
- Zdecentralizowane
- Zdecentralizowana wymiana
- postanowiła
- Domyślnie
- dostarczyć
- opisane
- opis
- życzenia
- detale
- deweloperzy
- rozwijanie
- oprogramowania
- różne
- kierować
- bezpośrednio
- Wyświetlacz
- 分配
- Doker
- Nie
- domena
- nie
- Podwójna
- na dół
- dramatycznie
- z powodu
- Dydx
- dynamicznie
- Wcześniej
- z łatwością
- efekt
- efektywność
- wydajny
- koniec końców
- silnik
- Wchodzę
- Środowisko
- szczególnie
- Każdy
- wymiana
- istnieć
- Przede wszystkim system został opracowany
- eksperyment
- ekspertyza
- rodzin
- FAST
- szybciej
- Cecha
- Opłaty
- pole
- Postać
- filtracja
- Znajdź
- Elastyczność
- następujący
- W razie zamówieenia projektu
- Fundacja
- od
- pełny
- gra
- Games
- Ogólne
- otrzymać
- GPU
- GPU
- wzrosła
- Rozwój
- poprowadzi
- ręka
- Have
- he
- pomoc
- pomoc
- pomaga
- Wysoki
- pasemka
- jego
- historyczny
- gospodarz
- W jaki sposób
- Jednak
- HTML
- http
- HTTPS
- tożsamość
- if
- ilustruje
- obraz
- zdjęcia
- realizacja
- znaczenie
- niemożliwy
- in
- obejmuje
- Zwiększać
- Zwiększenia
- Informacja
- początkowy
- Innowacyjny
- Innowacyjna technologia
- zainstalować
- instalacja
- przykład
- instrukcje
- Integracja
- interaktywne
- najnowszych
- IT
- iteracje
- Praca
- łączący
- podróż
- duży
- większe
- uruchomić
- uruchomiona
- prowadzić
- prowadzący
- Wyprowadzenia
- najmniej
- lewo
- biblioteki
- Biblioteka
- leży
- lubi
- Płynność
- pule płynności
- Lista
- załadunek
- Główny
- robić
- Dokonywanie
- i konserwacjami
- manipulowanie
- rynek
- masywny
- znaczenie
- Pamięć
- wzmiankowany
- Górnictwo
- ML
- modele
- Nowoczesne technologie
- jeszcze
- bardziej wydajny
- większość
- MONTAż
- wielokrotność
- Nazwa
- O imieniu
- Nawigacja
- prawie
- Potrzebować
- potrzebne
- Nowości
- nowo
- Następny
- notatnik
- już dziś
- of
- poza
- urzędnik
- on
- koncepcja
- Optymalny
- optymalizacja
- zoptymalizowane
- Option
- or
- Inne
- Inaczej
- ludzkiej,
- na zewnątrz
- wydajność
- zewnętrzne
- koniec
- własny
- Pakiety
- strona
- đôi
- par
- pandy
- chleb
- Parallel
- parametry
- pasja
- namiętny
- wykonać
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- uprawnienia
- Platforma
- plato
- Analiza danych Platona
- PlatoDane
- gra
- polityka
- basen
- Baseny
- Post
- power
- Zasilanie
- poprzedni
- Główny
- Wcześniejszy
- Problem
- problemy
- wygląda tak
- Obrobiony
- procesów
- przetwarzanie
- profesjonalny
- właściwy
- zapewniać
- zapewnia
- cel
- cele
- Naciskać
- popychany
- Python
- czterokrotnie
- szybko
- Kurs
- Czytaj
- gotowy
- realizowany
- zalecenia
- odnosić się
- składnica
- wymagać
- wymagany
- sprężysty
- Zasób
- odpowiedzialny
- dalsze
- Efekt
- ujawniać
- przeglądu
- krzepki
- Rola
- role
- run
- bieganie
- sagemaker
- taki sam
- oszczędność
- SC
- skalowalny
- Skala
- nauka
- Naukowcy
- płynnie
- Sekcja
- działy
- bezpieczne
- wysłać
- senior
- służy
- usługa
- Usługi
- zestaw
- Share
- pokazał
- pokazane
- znacznie
- Prosty
- symulacja
- Rozmiar
- rozmiary
- So
- Tworzenie
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- Rozwiązuje
- syn
- specjalista
- prędkość
- Startowy
- startup
- Startups
- Zestawienie sprzedaży
- Ewolucja krok po kroku
- Cel
- przechowywanie
- studio
- taki
- pewnie
- zamiana
- Przełącznik
- zwalczanie
- biorąc
- zadania
- Technologia
- terminal
- test
- niż
- że
- Połączenia
- ich
- Im
- następnie
- Te
- one
- to
- tysiące
- Przez
- czas
- czasy
- do
- narzędzie
- Kwota produktów:
- handel
- w obrocie
- Transakcje
- Handel
- pary handlowe
- wolumeny handlowe
- przejście
- podróżować
- Potroić
- Zaufaj
- drugiej
- rodzaj
- aż do
- Stosowanie
- posługiwać się
- używany
- Użytkownik
- zastosowania
- za pomocą
- użyteczność
- wykorzystać
- Wykorzystując
- v1
- UPRAWOMOCNIĆ
- wartość
- różnorodny
- wersja
- Wirtualny
- kłęby
- czekać
- była
- we
- sieć
- usługi internetowe
- DOBRZE
- który
- Podczas
- będzie
- w
- Praca
- pracował
- workflow
- działa
- napisany
- You
- Twój
- zefirnet