Intuitivo достигает более высокой пропускной способности, сохраняя при этом затраты на искусственный интеллект и машинное обучение с использованием AWS Inferentia и PyTorch

Intuitivo достигает более высокой производительности с использованием AWS Inferentia и PyTorch, сокращая затраты на искусственный интеллект и машинное обучение

Это гостевой пост от Хосе Бенитеса, основателя и директора AI, и Маттиаса Поншона, руководителя инфраструктуры в Intuitivo.

Intuitivo, одна из первых компаний в области инноваций в розничной торговле, революционирует покупки с помощью своей облачной системы транзакционной обработки на основе искусственного интеллекта и машинного обучения (AI/ML). Эта прорывная технология позволяет нам одновременно управлять миллионами автономных точек продаж (A-POPs), трансформируя способ, которым покупатели делают покупки. Наше решение опережает традиционные торговые автоматы и альтернативы, предлагая экономическое преимущество благодаря своей в десять раз более низкой стоимости, простой установке и безотказной работе. Наши инновационные новые A-POPs (или торговые автоматы) обеспечивают улучшенные клиентские впечатления по десятикратно более низкой стоимости благодаря возможностям AWS Inferentia. Inferentia позволил нам запускать наши модели компьютерного зрения You Only Look Once (YOLO) в пять раз быстрее, чем наше предыдущее решение, и обеспечивать бесперебойные покупательские впечатления в режиме реального времени. Кроме того, Inferentia также помогла нам сократить затраты на 95 процентов по сравнению с предыдущим решением. В этом посте мы рассмотрим нашу ситуацию, проблемы и краткий обзор нашего решения с использованием Inferentia.

Изменяющаяся розничная среда и потребность в A-POP

Розничная среда развивается стремительно, и потребители ожидают таких же удобных и беспроблемных впечатлений, какие они привыкли получать при покупках в интернете. Чтобы эффективно сократить разрыв между цифровым и физическим миром и удовлетворить изменяющиеся потребности и ожидания клиентов, требуется инновационный подход. В Intuitivo мы считаем, что будущее розничной торговли заключается в создании высокоперсонализированных, основанных на искусственном интеллекте и компьютерном зрении автономных точек продаж (A-POP). Эта технологическая инновация приближает продукты к покупателям. Она не только помещает любимые покупателями товары под рукой, но и предлагает им безупречный опыт покупок, без долгих очередей или сложных систем обработки транзакций. Мы с радостью возглавляем эту захватывающую новую эру в розничной торговле.

С нашей передовой технологией ритейлеры могут быстро и эффективно развертывать тысячи A-POPs. Масштабирование всегда представляло собой сложную задачу для ритейлеров, в основном из-за логистических и технических сложностей, связанных с расширением традиционных торговых автоматов или других решений. Однако наше решение на основе камеры, которое не требует весовых датчиков, RFID или других дорогостоящих сенсоров, не требует обслуживания и значительно дешевле. Это позволяет ритейлерам эффективно создавать тысячи A-POPs, предоставляя клиентам непревзойденный опыт покупок и предлагая ритейлерам экономичное и масштабируемое решение.

Использование облачных выводов для идентификации продуктов в реальном времени

При разработке системы распознавания и оплаты товаров на основе камеры мы столкнулись с вопросом, должно ли это происходить на устройстве или в облаке. После рассмотрения нескольких архитектур мы разработали систему, которая загружает видеозаписи транзакций в облако для обработки.

Наши пользователи начинают транзакцию, отсканировав QR-код A-POP, что вызывает его разблокировку, после чего клиенты берут нужные им товары и уходят. Предварительно обработанные видеозаписи этих транзакций загружаются в облако. Наша технология транзакций на основе искусственного интеллекта автоматически обрабатывает эти видеозаписи и списывает соответствующую сумму с аккаунта клиента.

На следующей диаграмме показана архитектура нашего решения.

Обеспечение высокой производительности и экономичного вывода с помощью AWS Inferentia

При стремлении ритейлеров к расширению меняются затраты на A-POPs. В то же время предоставление безупречного опыта покупателям в режиме реального времени играет ключевую роль. Наша команда исследований в области искусственного интеллекта и машинного обучения сосредоточена на поиске лучших моделей компьютерного зрения (CV) для нашей системы. У нас возникла задача одновременной оптимизации работы AI/ML с учетом производительности и затрат.

Мы развертываем наши модели на Amazon EC2 Inf1, работающих на Inferentia – первом силиконовом ML-процессоре от Amazon, разработанном для ускорения нагрузок глубокого обучения. Inferentia позволяет существенно снизить затраты на вывод. Мы использовали AWS Neuron SDK – набор программных инструментов, используемых с Inferentia, для компиляции и оптимизации наших моделей для развертывания на EC2 Inf1.

Сниппет кода, приведенный ниже, показывает, как скомпилировать модель YOLO с помощью Neuron. Код без проблем работает с PyTorch, и функции, такие как torch.jit.trace()и neuron.trace(), записывают операции модели на примере ввода во время прямого прохода, чтобы построить статический граф IR.

from ultralytics import YOLOimport torch_neuronximport torchbatch_size = 1imgsz = (640, 640)im = torch.zeros(batch_size, 3, *imgsz).to('cpu')  # виртуальный вход# Опции компилятораhalf = True  # fp16fp8 = Falsedynamic = False  # динамическая партияf = 'yolov8n.neuronx'  # имя выходной моделиneuronx_cc_args = ['--auto-cast', 'none']if half:    neuronx_cc_args = ['--auto-cast', 'all', '--auto-cast-type', 'fp16']elif fp8:    neuronx_cc_args = ['--auto-cast', 'all', '--auto-cast-type', 'fp8_e4m3']model = torch.load('yolov8n.pt')['model']model.eval()model.float()model = model.fuse()neuronx_model = torch_neuronx.trace(    model,    example_inputs=im,    compiler_args=neuronx_cc_args,)if dynamic:    neuronx_model = torch_neuronx.dynamic_batch(neuronx_model)neuronx_model.save(f)

Мы перенесли наши вычислительно сложные модели на Inf1. Используя AWS Inferentia, мы достигли пропускной способности и производительности, достаточной для наших бизнес-целей. Применение инстансов Inf1 на базе Inferentia в жизненном цикле MLOps было ключом к достижению замечательных результатов:

  1. Повышение производительности: Наши крупные модели компьютерного зрения теперь работают в пять раз быстрее, выполняя более 120 кадров в секунду (FPS), обеспечивая плавный, реального времени опыт покупки для наших клиентов. Более того, способность обрабатывать с такой частотой кадров не только ускоряет скорость транзакций, но также позволяет нам подавать больше информации в наши модели. Увеличение объема входных данных значительно повышает точность обнаружения продукта внутри наших моделей, дополнительно повышая эффективность наших систем покупок в целом.
  2. Сокращение затрат: Мы сократили затраты на вывод. Это значительно улучшило архитектуру, поддерживающую наши A-POP.

Parallel data inference был легким с AWS Neuron SDK

Для повышения производительности наших рабочих нагрузок мы хотели извлечь максимальную производительность из Inferentia, используя все доступные NeuronCores. Эту производительность было легко достичь с помощью встроенных инструментов и API от Neuron SDK. Мы использовали API torch.neuron.DataParallel(). В настоящее время мы используем inf1.2xlarge, в котором есть один акселератор Inferentia с четырьмя акселераторами Neuron. Поэтому мы используем torch.neuron.DataParallel(), чтобы полностью использовать аппаратное обеспечение Inferentia и все доступные NeuronCores. Эта функция Python реализует параллелизм данных на уровне модуля для моделей, созданных с помощью PyTorch Neuron API. Параллелизм данных является формой параллелизации по всем доступным устройствам или ядрам (NeuronCores для Inferentia), называемыми узлами. Каждый узел содержит ту же модель и параметры, но данные распределяются по разным узлам. Путем распределения данных по нескольким узлам, параллелизм данных сокращает общее время обработки входов с большим размером партии по сравнению с последовательной обработкой. Параллелизм данных работает лучше всего для моделей, требующих низкой задержки и имеющих требования к размеру партии.

Вперед: Ускорение розничной трансформации с использованием фондовых моделей и масштабируемого развертывания

По мере нашего продвижения в будущее, нельзя недооценивать влияние фондовых моделей на розничную отрасль. Фондовые модели могут сделать значительную разницу в маркировке товаров. Способность быстро и точно идентифицировать и классифицировать различные продукты критична в быстротемпе розничной среды. С помощью современных моделей на основе трансформеров мы можем развертывать большее разнообразие моделей, чтобы удовлетворить больше наших потребностей в области искусственного интеллекта и машинного обучения с более высокой точностью, улучшая опыт пользователей и без необходимости тратить время и деньги на обучение моделей с нуля. Используя мощь фондовых моделей, мы можем ускорить процесс классификации, позволяя розничным компаниям масштабировать свои решения A-POP более быстро и эффективно.

Мы начали внедрение Segment Anything Model (SAM), фондовой модели-трансформера, которая может сегментировать любой объект на любом изображении (мы рассмотрим этот вопрос подробнее в другом блоге). С помощью SAM мы можем ускорить процесс маркировки с беспрецедентной скоростью. SAM очень эффективен, способен обрабатывать приблизительно в 62 раза больше изображений, чем человек может вручную создать ограничивающие рамки за то же время. Выход SAM используется для обучения модели, обнаруживающей сегментационные маски в транзакциях, открывая возможность обработки миллионов изображений в экспоненциально более быстром режиме. Это значительно сокращает время и стоимость обучения моделей планограмм продукции.

Наша команда продукта и исследования ИИ/МО рада быть на переднем крае этой трансформации. Постоянное партнерство с AWS и наше использование Inferentia в нашей инфраструктуре гарантируют, что мы можем успешно развертывать эти основные модели по низкой стоимости. Как ранние пользователи, мы работаем с новыми экземплярами на основе AWS Inferentia 2. Экземпляры Inf2 созданы для современного генеративного ИИ и ускоренного вывода больших языковых моделей (LLM), обеспечивая более высокую производительность и более низкие затраты. Inf2 позволит нам предоставить розничным продавцам возможности ИИ-технологий без разорения, в конечном итоге сделав торговый ландшафт более инновационным, эффективным и ориентированным на потребителей.

Продолжая переносить больше моделей на Inferentia и Inferentia2, включая основные модели на основе трансформаторов, мы уверены, что наше сотрудничество с AWS позволит нам расти и инновировать наряду с нашим доверенным облачным провайдером. Вместе мы изменим будущее розницы, сделав его более умным, быстрым и более приспособленным к постоянно изменяющимся потребностям потребителей.

Вывод

В этом техническом пересечении мы подчеркнули нашу трансформационную путешествие с использованием AWS Inferentia для его инновационной системы транзакционной обработки ИИ/МО. Это партнерство привело к пятикратному увеличению скорости обработки и поразительному сокращению затрат на вывод на 95 процентов по сравнению с нашим предыдущим решением. Оно изменило текущий подход в розничной индустрии, обеспечивая реальное время и бесперебойное покупательское впечатление.

Если вам интересно узнать больше о том, как Inferentia может помочь вам сэкономить средства при оптимизации производительности ваших приложений вывода, посетите страницы продуктов Amazon EC2 Inf1 instances и Amazon EC2 Inf2 instances. AWS предоставляет различные образцы кода и ресурсы для начинающих с Neuron SDK, которые вы можете найти в репозитории Neuron samples repository.