ByteDance заощаджує до 60% витрат на логічні висновки, одночасно зменшуючи затримку та збільшуючи пропускну здатність за допомогою AWS Inferentia PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

ByteDance заощаджує до 60% витрат на логічні висновки, одночасно зменшуючи затримку та збільшуючи пропускну здатність за допомогою AWS Inferentia

Це гостьовий допис у блозі, написаний у співавторстві з Minghui Yu та Jianzhe Xiao з Bytedance.

ByteDance – це технологічна компанія, яка керує низкою контент-платформ, щоб інформувати, навчати, розважати та надихати людей різними мовами, культурами та географічно. Користувачі довіряють і насолоджуються нашими контент-платформами завдяки насиченому, інтуїтивно зрозумілому та безпечному досвіду, який вони пропонують. Цей досвід став можливим завдяки нашому серверному механізму машинного навчання (ML) із моделями ML, створеними для модерування вмісту, пошуку, рекомендацій, реклами та нових візуальних ефектів.

Команда ByteDance AML (Applied Machine Learning) надає високопродуктивні, надійні та масштабовані системи машинного навчання та наскрізні послуги машинного навчання для бізнесу компанії. Ми шукали способи оптимізації наших систем логічного навчання для скорочення витрат без збільшення часу відповіді. При запуску AWS AWS Inferentia, високопродуктивної мікросхеми логічного висновку, спеціально створеної AWS, ми співпрацювали з нашою командою облікових записів AWS, щоб перевірити, чи може AWS Inferentia досягти наших цілей оптимізації. Ми провели кілька перевірок концепції, що призвело до зниження вартості висновків на 60% порівняно з екземплярами EC4 G2dn на основі GPU T4 і до 25% меншої затримки висновків. Щоб реалізувати цю економію коштів і підвищення продуктивності, ми вирішили розгорнути моделі на основі AWS Inferentia Обчислювальна хмара Amazon Elastic (Amazon EC2) Примірники Inf1 у виробництві.

На наступній діаграмі показано покращення затримки для однієї з наших моделей розпізнавання обличчя, яка раніше була розгорнута на графічних процесорах із Tensor RT. Середня затримка зменшилася на 20% (з 50 мілісекунд до 40 мілісекунд), а затримка p99 зменшилася на 25% (з 200 мілісекунд до 150 мілісекунд).

У цій публікації ми розповідаємо, як ми заощадили на витратах на логічні висновки, одночасно зменшуючи затримки та збільшуючи пропускну здатність за допомогою AWS Inferentia.

У пошуках високопродуктивного, економічно ефективного комп’ютера

Команда ByteDance AML зосереджена на дослідженні та впровадженні передових систем машинного навчання та гетерогенних обчислювальних ресурсів, які їм потрібні. Ми створюємо широкомасштабні системи навчання та висновків для різноманітних моделей рекомендацій, обробки природної мови (NLP) і комп’ютерного зору (CV). Ці моделі дуже складні й обробляють величезну кількість даних із багатьох контент-платформ, на яких працює ByteDance. Розгортання цих моделей потребує значних ресурсів GPU, як у хмарі, так і локально. Тому витрати на обчислення для цих систем висновку є досить високими.

Ми прагнули знизити ці витрати, не впливаючи на пропускну здатність або затримку. Ми хотіли гнучкості хмари та швидшого циклу доставки, який є набагато коротшим, ніж необхідний для локального налаштування. І хоча ми були відкриті для вивчення нових варіантів для прискореного машинного навчання, ми також хотіли бездоганного досвіду розробника.

Від нашої команди AWS ми дізналися, що екземпляри EC2 Inf1 на основі AWS Inferentia забезпечують високоефективне логічний висновок за найнижчою ціною за висновок у хмарі. Нам було цікаво їх вивчити, і ми виявили, що вони добре підходять для нашого сценарію використання, оскільки ми запускаємо суттєве машинне навчання на великих обсягах зображень, об’єктів, мови та текстових даних. Вони, безперечно, добре підходили для наших цілей, тому що ми могли реалізувати величезну економію коштів, враховуючи складність наших моделей і обсяг щоденних прогнозів. Крім того, AWS Inferentia має великий обсяг вбудованої пам’яті, який можна використовувати для кешування великих моделей замість того, щоб зберігати їх поза мікросхемою. Ми визнали, що це може мати значний вплив на зменшення затримки логічного висновку, оскільки процесорні ядра AWS Inferentia, які називаються NeuronCores, мають високошвидкісний доступ до моделей, які зберігаються у вбудованій пам’яті, і не обмежені пам’яттю поза мікросхемою. пропускна здатність.

Зрештою, після оцінки кількох варіантів, ми вибрали екземпляри EC2 Inf1 через їхнє краще співвідношення продуктивності та ціни порівняно з локальними екземплярами G4dn і NVIDIA T4. Ми взяли участь у циклі безперервних ітерацій разом з командою AWS, щоб розблокувати переваги ціни та продуктивності Inf1.

Розгортання робочих навантажень висновків на AWS Inferentia

Початок роботи з AWS Inferentia за допомогою AWS Neuron SDK включав два етапи: компіляція коду моделі та розгортання на примірниках Inf1. Як це зазвичай буває під час перенесення моделей машинного навчання на будь-яку нову інфраструктуру, ми зіткнулися з певними проблемами. Ми змогли подолати ці виклики завдяки старанності та підтримці нашої команди AWS. У наступних розділах ми ділимося кількома корисними порадами та спостереженнями, заснованими на нашому досвіді розгортання робочих навантажень висновків на AWS Inferentia.

Модель конформера для OCR

Наша конформерна модель оптичного розпізнавання символів (OCR) виявляє та зчитує текст у зображеннях. Ми працювали над кількома оптимізаціями, щоб отримати високу продуктивність (QPS) для різних розмірів пакетів, зберігаючи при цьому низьку затримку. Деякі ключові оптимізації наведено нижче.

  • Оптимізація компілятора – За замовчуванням Inferentia найкраще працює на вхідних даних із фіксованою довжиною послідовності, що представляло проблему, оскільки довжина текстових даних не є фіксованою. Щоб подолати це, ми розділили нашу модель на дві частини: кодер і декодер. Ми скомпілювали ці дві підмоделі окремо, а потім об’єднали їх в одну модель за допомогою TorchScript. Запустивши потік керування циклом for на процесорах, цей підхід увімкнув підтримку змінної довжини послідовності на Inferentia.
  • Продуктивність поглибленої згортки – Ми зіткнулися з вузьким місцем DMA в операції згортання по глибині, яка активно використовується в нашій моделі конформера. Ми тісно співпрацювали з командою AWS Neuron, щоб виявити та усунути вузьке місце доступу до DMA, що покращило продуктивність цієї операції та покращило загальну продуктивність нашої моделі OCR.

ByteDance заощаджує до 60% витрат на логічні висновки, одночасно зменшуючи затримку та збільшуючи пропускну здатність за допомогою AWS Inferentia PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ми створили два нових варіанти моделі, щоб оптимізувати наше розгортання на Inferentia:

  • Комбінований і розгорнутий кодер/декодер – Замість того, щоб використовувати незалежно скомпільований кодер і декодер, ми об’єднали кодер і повністю розгорнутий декодер в одну модель і скомпілювали цю модель як єдиний NEFF. Розгортання декодера дає змогу запускати весь потік керування декодером на Inferentia без використання будь-яких операцій ЦП. При такому підході кожна ітерація декодера використовує рівно стільки обчислень, скільки потрібно для цього маркера. Цей підхід покращує продуктивність, оскільки ми значно зменшуємо надлишкові обчислення, які раніше вводилися завдяки доповненню входів. Крім того, не потрібна передача даних від Inferentia до ЦП між ітераціями декодера, що значно скорочує час введення-виведення. Ця версія моделі не підтримує ранню зупинку.
  • Розгорнутий декодер із розділами – Подібно до комбінованої повністю розгорнутої моделі, цей варіант моделі розгортає кілька ітерацій декодера та компілює їх як одне виконання (але не включає кодер). Наприклад, для максимальної довжини послідовності 75 ми можемо розгорнути декодер на 3 розділи, які обчислюють токени 1-25, 26-50 і 51-75. З точки зору вводу-виводу, це також значно швидше, оскільки нам не потрібно передавати вихідні дані кодера один раз за кожну ітерацію. Натомість вихідні дані передаються лише один раз для кожного розділу декодера. Ця версія моделі підтримує ранню зупинку, але лише на межах розділу. Межі розділів можна налаштувати для кожної конкретної програми, щоб гарантувати, що більшість запитів виконує лише один розділ.

Щоб ще більше підвищити продуктивність, ми зробили такі оптимізації, щоб зменшити використання пам’яті або підвищити ефективність доступу:

  • Дедуплікація тензорів і зменшені копії – Це оптимізація компілятора, яка значно зменшує розмір розгорнутих моделей і кількість інструкцій/доступу до пам’яті за рахунок повторного використання тензорів для підвищення ефективності простору.
  • Скорочені інструкції – Це оптимізація компілятора, яка використовується з недоповненою версією декодера, щоб значно зменшити загальну кількість інструкцій.
  • Багатоядерна дедуплікація – Це оптимізація часу виконання, яка є альтернативою тензорній дедуплікації. Завдяки цій опції всі багатоядерні моделі будуть значно ефективнішими.

Модель ResNet50 для класифікації зображень

ResNet-50 — це попередньо навчена модель глибокого навчання для класифікації зображень. Це згорточна нейронна мережа (CNN або ConvNet), яка найчастіше використовується для аналізу візуальних зображень. Ми використали наступні прийоми, щоб покращити продуктивність цієї моделі на Inferentia:

  • Трансформація моделі – Багато моделей ByteDance експортуються у формат ONNX, який Inferentia наразі не підтримує. Для обробки цих моделей ONNX команда AWS Neuron надала сценарії для перетворення наших моделей із формату ONNX на моделі PyTorch, які можна безпосередньо скомпільувати для Inferentia за допомогою torch-neuron.
  • Оптимізація продуктивності – Ми тісно співпрацювали з AWS нейрон команда для налаштування евристики планування в компіляторі для оптимізації продуктивності наших моделей ResNet-50.

Мультимодальна модель для модерації вмісту

Наша мультимодальна модель глибокого навчання є комбінацією кількох окремих моделей. Розмір цієї моделі є відносно великим, що спричинило помилки завантаження моделі на Inferentia. Команда AWS Neuron успішно вирішила цю проблему, застосувавши розподіл ваги, щоб зменшити використання пам’яті пристрою. Команда Neuron випустила цю функцію дедуплікації ваги в бібліотеці Neuron libnrt, а також покращила Neuron Tools для більш точних показників. Функцію дедуплікації ваги під час виконання можна ввімкнути, установивши таку змінну середовища перед виконанням висновку:

NEURON_RT_MULTI_INSTANCE_SHARED_WEIGHTS=1

Оновлений Neuron SDK зменшив загальне споживання пам’яті нашими дубльованими моделями, що дозволило нам розгорнути нашу мультимодальну модель для багатоядерного висновку.

Переміщення інших моделей до AWS Inferentia

У ByteDance ми продовжуємо впроваджувати інноваційні моделі глибокого навчання, щоб забезпечити чудовий досвід роботи майже 2 мільярдам активних користувачів щомісяця. Враховуючи величезний масштаб нашої роботи, ми постійно шукаємо способи заощадити кошти та оптимізувати продуктивність. Ми продовжуватимемо переносити моделі на AWS Inferentia, щоб отримати переваги від його високої продуктивності та економічності. Ми також хочемо, щоб AWS запускала більше типів екземплярів на основі AWS Inferentia, наприклад із більшою кількістю vCPU для завдань попередньої обробки. У майбутньому ByteDance сподівається побачити більше кремнієвих інновацій від AWS, щоб забезпечити найкращу цінову ефективність для програм ML.

Якщо вам цікаво дізнатися більше про те, як AWS Inferentia може допомогти вам заощадити кошти, одночасно оптимізуючи продуктивність ваших додатків логічного висновку, відвідайте Екземпляри Amazon EC2 Inf1 сторінка продукту


Про авторів

ByteDance заощаджує до 60% витрат на логічні висновки, одночасно зменшуючи затримку та збільшуючи пропускну здатність за допомогою AWS Inferentia PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Мінхуей Ю є старшим керівником групи машинного навчання для висновків у ByteDance. Його сфера уваги — прискорення обчислень штучним інтелектом і система машинного навчання. Він дуже зацікавлений у гетерогенних обчисленнях та комп’ютерній архітектурі в епоху після Мура. У вільний час любить баскетбол і стрільбу з лука.

ByteDance заощаджує до 60% витрат на логічні висновки, одночасно зменшуючи затримку та збільшуючи пропускну здатність за допомогою AWS Inferentia PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Цзяньчже Сяо є старшим інженером-програмістом, керівником групи AML у ByteDance. Його поточна робота зосереджена на допомозі бізнес-команді пришвидшити процес розгортання моделі та покращити ефективність висновків моделі. Поза роботою він захоплюється грою на піаніно.

ByteDance заощаджує до 60% витрат на логічні висновки, одночасно зменшуючи затримку та збільшуючи пропускну здатність за допомогою AWS Inferentia PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Тянь Ши є старшим архітектором рішень в AWS. Його сфера уваги – аналіз даних, машинне навчання та безсерверне керування. Він із захопленням допомагає клієнтам розробляти та створювати надійні та масштабовані рішення в хмарі. У вільний час захоплюється плаванням і читанням.

ByteDance заощаджує до 60% витрат на логічні висновки, одночасно зменшуючи затримку та збільшуючи пропускну здатність за допомогою AWS Inferentia PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Цзя Донг є менеджером із клієнтських рішень в AWS. Їй подобається вивчати послуги AWS AI/ML і допомагати клієнтам досягати бізнес-результатів, створюючи для них рішення. Крім роботи Джіа захоплюється подорожами, йогою та кіно.

ByteDance заощаджує до 60% витрат на логічні висновки, одночасно зменшуючи затримку та збільшуючи пропускну здатність за допомогою AWS Inferentia PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Джонатан Лунт є інженером-програмістом в Amazon і спеціалізується на розробці ML-фреймворку. За свою кар’єру він працював у повному обсязі ролей у галузі обробки даних, включаючи розробку моделей, розгортання інфраструктури та оптимізацію апаратного забезпечення.

ByteDance заощаджує до 60% витрат на логічні висновки, одночасно зменшуючи затримку та збільшуючи пропускну здатність за допомогою AWS Inferentia PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Джошуа Ханнан є інженером машинного навчання в Amazon. Він працює над оптимізацією моделей глибокого навчання для великомасштабних програм комп’ютерного зору та обробки природної мови.

ByteDance заощаджує до 60% витрат на логічні висновки, одночасно зменшуючи затримку та збільшуючи пропускну здатність за допомогою AWS Inferentia PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Шруті Копаркар є старшим менеджером з маркетингу продуктів в AWS. Вона допомагає клієнтам вивчити, оцінити та застосувати прискорену обчислювальну інфраструктуру EC2 для потреб машинного навчання.

Часова мітка:

Більше від AWS Машинне навчання