Цей пост написаний у співпраці з Дімою Задорожним і Фуадом Бабаєвим з VirtuSwap.
VirtuSwap – стартап-компанія, що розробляє інноваційну технологію децентралізованого обміну активами на блокчейнах. Технологія VirtuSwap забезпечує більш ефективну торгівлю активами, які не мають прямої пари між собою. Відсутність прямої пари призводить до дорогої непрямої торгівлі, тобто для завершення бажаного свопу потрібні дві або більше торгів, що призводить до подвійних або потрійних торгових витрат. Технологія віртуальних пулів на основі резервів VirtuSwap вирішує проблему, роблячи кожну угоду прямою, заощаджуючи до 50% торгових витрат. Докладніше на virtuswap.io.
У цій публікації ми розповідаємо, як VirtuSwap використовував функцію «принеси свій власний контейнер». Студія Amazon SageMaker створити надійне середовище для розміщення симуляцій із інтенсивним використанням GPU для вирішення проблем лінійної оптимізації.
Змагання
Механізм VirtuSwap Minerva створює рекомендації щодо оптимального розподілу ліквідності між різними пулами ліквідності, беручи до уваги численні параметри, такі як обсяги торгів, поточна ринкова ліквідність і волатильність активів, що торгуються, обмежені загальною кількістю ліквідності, доступною для розподілу. Щоб надати ці рекомендації, VirtuSwap Minerva використовує тисячі історичних торгових пар для моделювання їх проходження через різні конфігурації ліквідності, щоб знайти оптимальний розподіл ліквідності, комісії пулу тощо.
Початкова реалізація була закодована за допомогою фреймів даних pandas. Однак у міру того, як дані моделювання зростали, час виконання зріс майже вчетверо разом із розміром проблеми. Результатом цього стало те, що ітерації сповільнилися, і було майже неможливо виконати завдання більшої розмірності. VirtuSwap зрозумів, що їм потрібно використовувати екземпляри GPU для симуляції, щоб отримати швидші результати.
VirtuSwap потребувала сумісної з графічним процесором бібліотеки, подібної до pandas, щоб запустити симуляцію, і вибрала cuDF, бібліотека GPU DataFrame від Рапіди. cuDF використовується для завантаження, об’єднання, агрегування, фільтрації та іншого маніпулювання даними в панди-подібний API, який прискорює роботу над фреймами даних, використовуючи CUDA для значно вищої продуктивності, ніж у pandas.
Огляд рішення
VirtuSwap обрала SageMaker Studio для наскрізної розробки, починаючи з ітеративної інтерактивної розробки в ноутбуках. Завдяки гнучкості SageMaker Studio вони також вирішили використовувати її для свого моделювання, використовуючи переваги Amazon SageMaker користувацькі зображення, що дозволяє VirtuSwap запроваджувати власні бібліотеки та необхідне програмне забезпечення, наприклад cuDF. Наступна діаграма ілюструє робочий процес рішення.
У наступних розділах ми ділимося покроковими інструкціями зі створення та використання зображення cuDF Rapids у SageMaker.
Передумови
Щоб запустити цей покроковий посібник, вам потрібен обліковий запис AWS із дозволами на SageMaker, Реєстр контейнерів Amazon Elastic (Amazon ECR), Управління ідентифікацією та доступом AWS (IAM), і AWS CodeBuild. Крім того, вам потрібно мати a Домен SageMaker готовий.
Створення ролей і політик IAM
Для процесу створення власних блокнотів SageMaker ми використовували AWS CloudShell, який містить усі необхідні пакети для створення власного образу. У CloudShell ми використовували Збірка SageMaker Docker, CLI для створення образів Docker для та в SageMaker Studio. CLI може створити репозиторій в Amazon ECR і створити контейнер за допомогою CodeBuild. Для цього нам потрібно надати інструменту роль IAM з відповідними дозволами. Виконайте наступні дії:
- Увійдіть у консоль керування AWS і відкрийте IAM консоль.
- На панелі навігації ліворуч виберіть поліси.
- Створіть політику з назвою
sm-build-policy
з такими дозволами:
Дозволи надають можливість використовувати утиліту в повному обсязі: створювати репозиторії, створювати завдання CodeBuild, використовувати Служба простого зберігання Amazon (Amazon S3) і надсилайте журнали на Amazon CloudWatch.
- Створіть роль під назвою
sm-build-role
з наступною політикою довіри та додайте політикуsm-build-policy
які ви створили раніше:
Тепер давайте розглянемо кроки в CloudShell.
Створіть образ cuDF Docker у CloudShell
Для наших цілей нам потрібен образ Rapids CUDA, який також містить ipykernel, щоб зображення можна було використовувати в a Блокнот SageMaker Studio.
Ми використовуємо існуючий образ CUDA RapidsAI що є в офіц Хаб Rapids AI Docker, і додайте ipykernel
установка.
У терміналі CloudShell виконайте таку команду:
Це створить Dockerfile, який створить наш власний образ Docker для SageMaker.
Створіть і надішліть образ у сховище
Як згадувалося, ми використовували Бібліотека збірки SageMaker Docker, що дозволяє науковцям і розробникам даних легко створювати власні образи контейнерів. Для отримання додаткової інформації див Використання інтерфейсу командної команди Amazon SageMaker Studio Image Build для створення зображень контейнерів із ваших ноутбуків Studio.
Наступна команда створює репозиторій ECR (якщо сховище не існує). sm-docker створить його, створить і надішле новий образ Docker у створений репозиторій:
На випадок, якщо ви пропали sm-docker
у CloudShell запустіть такий код:
Після завершення буде повернено URI зображення ECR.
Створіть власне зображення SageMaker
Після того, як ви створили спеціальний образ Docker і відправили його у своє сховище контейнерів (Amazon ECR), ви можете налаштувати SageMaker на використання цього спеціального образу Docker. Виконайте наступні дії:
- На консолі SageMaker виберіть зображень у навігаційній панелі.
- Вибирати Створити образ.
- Введіть URI зображення з попереднього розділу та виберіть МАЙБУТНІ.
- для Назва зображення та Відображувана назва зображення, введіть
rapids
. - для Опис, введіть опис.
- для Роль IAMвиберіть відповідну роль IAM для свого домену SageMaker.
- для Шлях монтування EFS, введіть
/home/sagemaker-user
(за замовчуванням). - Розширювати Розширена конфігурація.
- для ідентифікатор користувача, введіть
1000
. - для ідентифікатор групи, введіть
100
.
- У Тип зображення розділ, виберіть Зображення SageMaker Studio.
- Вибирати Додайте ядро.
- для Назва ядра, введіть
conda-env-rapids-py
. - для Відображуване ім'я ядра, введіть
rapids
. - Вибирати Надіслати щоб створити образ SageMaker.
Додайте нове зображення до свого домену SageMaker Studio
Тепер, коли ви створили спеціальне зображення, вам потрібно зробити його доступним для використання, прикріпивши зображення до свого домену. Виконайте наступні дії:
- На консолі SageMaker виберіть Домени у навігаційній панелі.
- Виберіть свій домен. Цей крок необов'язковий; ви можете створити та приєднати власне зображення безпосередньо з домену та пропустити цей крок.
- На сторінці відомостей про домен виберіть Навколишнє середовище вкладку, а потім виберіть Прикріпити зображення.
- Select Існуюче зображення і виберіть нове зображення (
rapids
) зі списку. - Вибирати МАЙБУТНІ.
- Перегляньте конфігурацію спеціального зображення та переконайтеся, що встановлено Тип зображення as Зображення SageMaker Studio, як і в попередньому кроці, з тією самою назвою ядра та відображуваною назвою ядра.
- Вибирати Надіслати.
Користувацьке зображення тепер доступне в SageMaker Studio та готове до використання.
Створіть новий блокнот із зображенням
Інструкції щодо запуску нового ноутбука див Запустіть власне зображення SageMaker в Amazon SageMaker Studio. Виконайте наступні дії:
- На консолі SageMaker Studio виберіть Відкрити панель запуску.
- Вибирати Змінити середовище.
- для зображення, виберіть щойно створене зображення,
rapids v1
. - для Ядровиберіть
rapids
. - для Тип екземпляра¸ виберіть свій екземпляр.
SageMaker Studio надає можливість налаштувати вашу обчислювальну потужність, вибравши екземпляр із сімейств прискорених обчислень AWS, обчислень загального призначення, оптимізованих обчислень або оптимізованих пам’яті. Ця гнучкість дозволяла плавно переходити між процесорами та графічними процесорами, а також динамічно збільшувати або зменшувати розміри екземплярів за потреби. Для нашого ноутбука ми використовували тип екземпляра ml.g4dn.2xlarge, щоб перевірити продуктивність cuDF під час використання прискорювача GPU.
- Вибирати Select.
- Виберіть своє середовище і вибирайте Створити блокнот, потім зачекайте, поки ядро ноутбука буде готове.
Перевірте власне зображення
Щоб підтвердити, що ваше власне зображення запущено та cuDF готовий до використання, створіть нову комірку, введіть import cudf
, і запустіть його.
Прибирати
Вимкніть екземпляр Jupyter, який запускає тестовий блокнот у SageMaker Studio, вибравши Запуск терміналів та ядер і вимкнення запущеного екземпляра.
Результати порівняння часу виконання
Ми провели порівняння часу виконання нашого коду з використанням ЦП і ГП на екземплярах SageMaker g4dn.2xlarge із часовою складністю O(N). Результати, як показано на наступному малюнку, демонструють ефективність використання GPU над CPU.
Основна перевага графічних процесорів полягає в їх здатності виконувати паралельну обробку. Коли ми збільшуємо значення N, час виконання на ЦП збільшується зі швидкістю 3N. З іншого боку, для графічних процесорів швидкість збільшення можна описати як 2N, як показано на попередньому малюнку. Чим більший розмір проблеми, тим ефективнішим стає GPU. У нашому випадку використання GPU було принаймні в 20 разів швидшим, ніж використання CPU. Це підкреслює зростаючу важливість графічних процесорів у сучасних обчисленнях, особливо для завдань, які потребують швидкої обробки великих обсягів даних.
За допомогою екземплярів графічного процесора SageMaker VirtuSwap здатний значно збільшити розмірність розв’язаних проблем і швидше знаходити рішення.
Висновок
У цій публікації ми показали, як VirtuSwap налаштував SageMaker Studio за допомогою спеціального зображення для вирішення складної проблеми. Завдяки можливості легко змінювати середовище виконання та перемикатися між різними екземплярами, розмірами та ядрами, VirtuSwap змогла швидко експериментувати та пришвидшити час виконання в 15 разів і створити масштабоване рішення.
Наступним кроком VirtuSwap розглядає можливість розширення використання SageMaker і виконання обробки в Обробка Amazon SageMaker для обробки величезних даних, які вони збирають із різних блокчейнів, на своїй платформі.
Про авторів
Адір Шарабі є головним архітектором рішень Amazon Web Services. Він працює з клієнтами AWS, щоб допомогти їм розробити безпечні, стійкі, масштабовані та високопродуктивні програми в хмарі. Він також захоплений даними та допомагає клієнтам отримати від них максимальну користь.
Омер Хаїм є старшим архітектором рішень для стартапів у Amazon Web Services. Він допомагає стартапам у їхній хмарній подорожі та захоплюється контейнерами та машинним навчанням. У вільний час Омер любить подорожувати, а іноді і грати з сином.
Дмитро Задорожний є аналітиком даних у virtuswap.io. Він відповідає за видобуток, обробку та зберігання даних, а також інтеграцію хмарних сервісів, таких як AWS. До того, як приєднатися до virtuswap, він працював у сфері науки про дані та був амбасадором аналітики у фонді dydx. Діма має ступінь магістра комп’ютерних наук. У вільний час Діма любить грати в комп’ютерні ігри.
Фуад Бабаєв працює спеціалістом із наукових даних у Virtuswap (virtuswap.io). Він має досвід у вирішенні складних завдань оптимізації, розробці симуляцій та архітектурних моделей для торгових процесів. Поза професійною кар’єрою Фуад захоплюється грою в шахи.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: 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/
- : має
- :є
- $UP
- 100
- 11
- 20
- 7
- 804
- 9
- 91
- a
- здатність
- Здатний
- МЕНЮ
- прискорений
- прискорюється
- прискорювач
- доступ
- рахунки
- дію
- додавати
- доповнення
- Перевага
- агрегуючий
- AI
- ВСІ
- дозволяти
- дозволено
- дозволяє
- майже
- по
- Також
- Amazon
- Amazon SageMaker
- Студія Amazon SageMaker
- Amazon Web Services
- Посол
- кількість
- суми
- an
- аналітик
- аналітика
- та
- API
- застосування
- ЕСТЬ
- AS
- Активи
- At
- приєднувати
- доступний
- AWS
- Консоль управління AWS
- BE
- стає
- між
- блокчейни
- обидва
- приносити
- Приносить
- будувати
- Створюємо
- by
- CAN
- кар'єра
- випадок
- проблеми
- зміна
- Chess
- Вибирати
- Вибираючи
- вибрав
- хмара
- хмарні сервіси
- код
- закодований
- співробітництво
- Збір
- COM
- компанія
- порівняння
- повний
- завершення
- комплекс
- складність
- обчислення
- комп'ютер
- Інформатика
- обчислення
- обчислювальна потужність
- стан
- проводиться
- конфігурація
- беручи до уваги
- Консоль
- Контейнер
- Контейнери
- дорого
- витрати
- створювати
- створений
- створює
- Поточний
- виготовлений на замовлення
- Клієнти
- налаштувати
- налаштувати
- дані
- видобуток даних
- наука про дані
- Децентралізований
- Децентралізована біржа
- вирішене
- дефолт
- доставляти
- описаний
- description
- бажаний
- деталі
- розробників
- розвивається
- розробка
- різний
- прямий
- безпосередньо
- дисплей
- розподіл
- Docker
- Ні
- домен
- Не знаю
- подвійний
- вниз
- різко
- два
- dydx
- динамічно
- Раніше
- легко
- ефект
- ефективність
- ефективний
- кінець в кінець
- двигун
- Що натомість? Створіть віртуальну версію себе у
- Навколишнє середовище
- особливо
- Кожен
- обмін
- існувати
- існуючий
- експеримент
- експертиза
- сімей
- ШВИДКО
- швидше
- особливість
- Інформація про оплату
- поле
- Рисунок
- фільтрація
- знайти
- Гнучкість
- після
- для
- фонд
- від
- Повний
- гра
- Games
- Загальне
- отримати
- GPU
- Графічні процесори
- виросла
- Зростання
- керівництво
- рука
- Мати
- he
- допомога
- допомогу
- допомагає
- Високий
- основний момент
- його
- історичний
- господар
- Як
- Однак
- HTML
- HTTP
- HTTPS
- Особистість
- if
- ілюструє
- зображення
- зображень
- реалізація
- значення
- неможливе
- in
- includes
- Augmenter
- Збільшує
- інформація
- початковий
- інноваційний
- інноваційні технології
- встановлювати
- установка
- екземпляр
- інструкції
- Інтеграція
- інтерактивний
- в
- IT
- ітерації
- робота
- приєднання
- подорож
- великий
- більше
- запуск
- запущений
- вести
- провідний
- Веде за собою
- найменш
- залишити
- libraries
- бібліотека
- лежить
- Сподобалося
- ліквідності
- пули ліквідності
- список
- погрузка
- головний
- зробити
- Робить
- управління
- маніпулювання
- ринок
- масивний
- сенс
- пам'ять
- згаданий
- Mining
- ML
- Моделі
- сучасний
- більше
- більш ефективний
- найбільш
- МОНТАЖ
- множинний
- ім'я
- Названий
- навігація
- майже
- Необхідність
- необхідний
- Нові
- нещодавно
- наступний
- ноутбук
- зараз
- of
- від
- офіційний
- on
- відкрити
- оптимальний
- оптимізація
- оптимізований
- варіант
- or
- Інше
- інакше
- наші
- з
- вихід
- поза
- над
- власний
- пакети
- сторінка
- пара
- пар
- панди
- pane
- Паралельні
- параметри
- пристрасть
- пристрасний
- Виконувати
- продуктивність
- Дозволи
- платформа
- plato
- Інформація про дані Платона
- PlatoData
- ігри
- політика
- басейн
- Басейни
- пошта
- влада
- Живлення
- попередній
- Головний
- попередній
- Проблема
- проблеми
- процес
- Оброблено
- процеси
- обробка
- професійний
- правильний
- забезпечувати
- забезпечує
- мета
- цілей
- Штовхати
- штовхнув
- Python
- чотири рази
- швидко
- ставка
- Читати
- готовий
- зрозумів,
- рекомендації
- послатися
- Сховище
- вимагати
- вимагається
- пружний
- ресурс
- відповідальний
- результат
- результати
- показувати
- огляд
- міцний
- Роль
- ролі
- прогін
- біг
- мудрець
- то ж
- економія
- SC
- масштабовані
- шкала
- наука
- Вчені
- плавно
- розділ
- розділам
- безпечний
- послати
- старший
- служить
- обслуговування
- Послуги
- комплект
- Поділитись
- показав
- показаний
- істотно
- простий
- моделювання
- Розмір
- розміри
- So
- Софтвер
- рішення
- Рішення
- ВИРІШИТИ
- Вирішує
- її
- спеціаліст
- швидкість
- Починаючи
- введення в експлуатацію
- Стартапи
- Заява
- Крок
- заходи
- зберігання
- студія
- такі
- Переконайтеся
- обмін
- перемикач
- вирішення проблем
- взяття
- завдання
- Технологія
- термінал
- тест
- ніж
- Що
- Команда
- їх
- Їх
- потім
- Ці
- вони
- це
- тисячі
- через
- час
- times
- до
- інструмент
- Усього:
- торгувати
- торгував
- торги
- торгові площі
- торгові пари
- обсяги торгів
- перехід
- подорожувати
- Потрійний
- Довіряйте
- два
- тип
- до
- Використання
- використання
- використовуваний
- користувач
- використовує
- використання
- утиліта
- використовувати
- використовує
- v1
- ПЕРЕВІР
- значення
- різний
- версія
- Віртуальний
- Обсяги
- чекати
- було
- we
- Web
- веб-сервіси
- ДОБРЕ
- який
- в той час як
- волі
- з
- Work
- працював
- робочий
- працює
- письмовий
- Ти
- вашу
- зефірнет