Intuitivo ottiene una maggiore capacità di elaborazione risparmiando sui costi di AI/ML utilizzando AWS Inferentia e PyTorch

Potenzia la tua capacità di elaborazione e risparmia sui costi di AI/ML con AWS Inferentia e PyTorch un approccio intuitivo

Questo è un post ospite di Jose Benitez, fondatore e direttore di AI, e Mattias Ponchon, responsabile dell’infrastruttura presso Intuitivo.

Intuitivo, pioniere nell’innovazione nel settore del commercio al dettaglio, sta rivoluzionando lo shopping con il suo sistema di elaborazione delle transazioni basato su AI e machine learning (AI/ML) basato su cloud. Questa tecnologia innovativa ci consente di gestire contemporaneamente milioni di punti di acquisto autonomi (A-POPs), trasformando il modo in cui i clienti fanno acquisti. La nostra soluzione supera i distributori automatici tradizionali e le alternative, offrendo un vantaggio economico con il suo costo dieci volte più economico, facile da configurare e con un’operatività senza manutenzione. I nostri innovativi nuovi A-POPs (o distributori automatici) offrono esperienze di acquisto migliorate a un costo dieci volte inferiore grazie ai vantaggi di prestazioni e costi offerti da AWS Inferentia. Inferentia ci ha permetto di eseguire i nostri modelli di visione computerizzata You Only Look Once (YOLO) cinque volte più velocemente rispetto alla nostra soluzione precedente e supporta esperienze di acquisto in tempo reale senza soluzione di continuità per i nostri clienti. Inoltre, Inferentia ci ha anche aiutato a ridurre i costi del 95 percento rispetto alla nostra soluzione precedente. In questo post, affrontiamo il nostro caso d’uso, le sfide e una breve panoramica della nostra soluzione utilizzando Inferentia.

Il cambiamento del panorama del commercio al dettaglio e la necessità di A-POP

Il panorama del commercio al dettaglio sta evolvendo rapidamente e i consumatori si aspettano le stesse esperienze facili da usare e senza attriti che sono abituati a trovare quando fanno acquisti online. Per colmare efficacemente il divario tra il mondo digitale e quello fisico e incontrare i cambiamenti delle esigenze e delle aspettative dei clienti, è necessario un approccio trasformativo. Presso Intuitivo, crediamo che il futuro del commercio al dettaglio risieda nella creazione di punti di acquisto autonomi altamente personalizzati, alimentati da AI e basati sulla visione computerizzata (A-POP). Questa innovazione tecnologica rende i prodotti a portata di mano dei clienti. Non solo mette gli articoli preferiti dei clienti a portata di mano, ma offre loro anche un’esperienza di shopping senza soluzione di continuità, priva di lunghe code o sistemi di elaborazione delle transazioni complessi. Siamo entusiasti di guidare questa nuova e eccitante era nel commercio al dettaglio.

Grazie alla nostra tecnologia all’avanguardia, i rivenditori possono distribuire rapidamente ed efficientemente migliaia di A-POPs. La scalabilità è sempre stata una sfida intimidatoria per i rivenditori, principalmente a causa delle complessità logistiche e di manutenzione associate all’espansione dei distributori automatici tradizionali o di altre soluzioni. Tuttavia, la nostra soluzione basata su telecamere, che elimina la necessità di sensori di peso, RFID o altri sensori ad alto costo, non richiede alcuna manutenzione ed è significativamente più economica. Ciò consente ai rivenditori di stabilire in modo efficiente migliaia di A-POPs, offrendo ai clienti un’esperienza di shopping incomparabile, garantendo al contempo ai rivenditori una soluzione economica e scalabile.

Utilizzare l’inferenza cloud per l’identificazione di prodotti in tempo reale

Nel progettare un sistema di riconoscimento dei prodotti e di pagamento basato su telecamere, ci siamo confrontati con la decisione se farlo sul dispositivo o sul cloud. Dopo aver preso in considerazione diverse architetture, abbiamo progettato un sistema che carica i video delle transazioni sul cloud per l’elaborazione.

I nostri utenti iniziano una transazione scansionando il codice QR dell’A-POP, che fa sbloccare l’A-POP e quindi i clienti prendono ciò che desiderano e se ne vanno. I video preelaborati di queste transazioni vengono caricati sul cloud. Il nostro flusso di lavoro delle transazioni alimentato da AI elabora automaticamente questi video e addebita l’importo corrispondente sul conto del cliente.

Il diagramma seguente mostra l’architettura della nostra soluzione.

Sbloccare l’inferenza ad alte prestazioni ed economica utilizzando AWS Inferentia

Mentre i rivenditori cercano di potenziare le operazioni, il costo dei A-POPs diventa un fattore da considerare. Allo stesso tempo, è fondamentale offrire agli utenti finali un’esperienza di shopping in tempo reale senza soluzione di continuità. Il nostro team di ricerca su AI/ML si concentra nell’identificare i migliori modelli di visione computerizzata (CV) per il nostro sistema. Ci siamo trovati di fronte alla sfida di come ottimizzare contemporaneamente le operazioni di AI/ML per prestazioni e costi.

Implementiamo i nostri modelli su istanze Amazon EC2 Inf1 alimentate da Inferentia, il primo chip di Intelligenza Artificiale di Amazon progettato per accelerare i carichi di lavoro di inferenza deep learning. Inferentia è risultato in una significativa riduzione dei costi di inferenza. Abbiamo utilizzato l’SDK AWS Neuron – un insieme di strumenti software utilizzati con Inferentia – per compilare e ottimizzare i nostri modelli per la distribuzione su istanze EC2 Inf1.

Il frammento di codice seguente mostra come compilare un modello YOLO con Neuron. Il codice funziona in modo impeccabile con PyTorch e funzioni come torch.jit.trace() e neuron.trace() registrano le operazioni del modello su un input di esempio durante il passaggio in avanti per costruire un grafico IR statico.

from ultralytics import YOLOimport torch_neuronximport torchbatch_size = 1imgsz = (640, 640)im = torch.zeros(batch_size, 3, *imgsz).to('cpu')  # input di esempio# Opzioni del compilatorehalf = True  # fp16fp8 = Falsedynamic = False  # batch dinamicaf = 'yolov8n.neuronx'  # nome del modello di outputneuronx_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)

Abbiamo migrato i nostri modelli computazionalmente intensivi su Inf1. Utilizzando AWS Inferentia, abbiamo raggiunto la throughput e le prestazioni per soddisfare le nostre esigenze aziendali. L’adozione delle istanze Inf1 basate su Inferentia nel ciclo di vita di MLOps è stata fondamentale per ottenere risultati notevoli:

  1. Miglioramento delle prestazioni: I nostri modelli di visione computerizzata di grandi dimensioni ora funzionano cinque volte più velocemente, raggiungendo oltre 120 fotogrammi al secondo (FPS), consentendo esperienze di shopping in tempo reale senza interruzioni per i nostri clienti. Inoltre, la capacità di elaborare a questo frame rate non solo migliora la velocità delle transazioni, ma ci consente anche di alimentare più informazioni nei nostri modelli. Questo aumento dell’input di dati migliora significativamente la precisione della rilevazione dei prodotti all’interno dei nostri modelli, potenziando ulteriormente l’efficacia complessiva dei nostri sistemi di shopping.
  2. Risparmi di costi: Abbiamo ridotto i costi di inferenza. Questo ha notevolmente migliorato la progettazione dell’architettura a supporto dei nostri A-POP.

L’elaborazione parallela dei dati è stata semplice con l’AWS Neuron SDK

Per migliorare le prestazioni dei carichi di lavoro di inferenza ed estrarre il massimo delle prestazioni da Inferentia, volevamo utilizzare tutti i NeuronCores disponibili nell’acceleratore Inferentia. È stato facile ottenere queste prestazioni grazie agli strumenti incorporati e alle API dell’Neuron SDK. Abbiamo utilizzato l’API torch.neuron.DataParallel(). Attualmente stiamo utilizzando inf1.2xlarge che ha un acceleratore Inferentia con quattro acceleratori Neuron. Quindi stiamo utilizzando torch.neuron.DataParallel() per utilizzare appieno l’hardware Inferentia e tutti i NeuronCores disponibili. Questa funzione Python implementa il parallelismo dei dati a livello di modulo sui modelli creati dall’API PyTorch Neuron. Il parallelismo dei dati è una forma di parallelizzazione su più dispositivi o core (NeuronCores per Inferentia), chiamati nodi. Ogni nodo contiene lo stesso modello e parametri, ma i dati sono distribuiti tra i diversi nodi. Distribuendo i dati su più nodi, il parallelismo dei dati riduce il tempo totale di elaborazione di input di grandi dimensioni rispetto all’elaborazione sequenziale. Il parallelismo dei dati funziona meglio per modelli in applicazioni sensibili alla latenza che hanno requisiti di dimensioni di batch elevate.

Guardando avanti: Accelerare la trasformazione del settore al dettaglio con modelli di base e distribuzione scalabile

Mentre ci avventuriamo nel futuro, l’impatto dei modelli di base sull’industria al dettaglio non può essere sottovalutato. I modelli di fondamenta possono fare una differenza significativa nell’etichettatura dei prodotti. La capacità di identificare e categorizzare rapidamente e accuratamente diversi prodotti è cruciale in un ambiente al dettaglio frenetico. Con i moderni modelli basati su trasformatori, possiamo distribuire una maggiore varietà di modelli per soddisfare maggiormente le nostre esigenze di intelligenza artificiale/machine learning con maggiore accuratezza, migliorando l’esperienza degli utenti e senza dover perdere tempo e denaro nell’addestramento dei modelli da zero. Sfruttando il potere dei modelli di base, possiamo accelerare il processo di etichettatura, consentendo ai rivenditori di scalare più rapidamente ed efficientemente le soluzioni A-POP.

Abbiamo iniziato ad implementare Segment Anything Model (SAM), un modello di base di trasformazione visiva che può segmentare qualsiasi oggetto in qualsiasi immagine (discuteremo di questo argomento in un altro post del blog). SAM ci consente di accelerare il nostro processo di etichettatura con velocità senza precedenti. SAM è molto efficiente, in grado di elaborare circa 62 volte più immagini di quelle che un essere umano può creare manualmente per i bounding box nello stesso intervallo di tempo. L’output di SAM viene utilizzato per addestrare un modello che rileva maschere di segmentazione nelle transazioni, aprendo una finestra di opportunità per elaborare milioni di immagini in modo esponenzialmente più veloce. Ciò riduce significativamente il tempo e i costi di addestramento per i modelli planogram dei prodotti.

Il nostro team di prodotto e ricerca sull’IA/ML è entusiasta di essere all’avanguardia di questa trasformazione. La partnership in corso con AWS e il nostro utilizzo di Inferentia nella nostra infrastruttura garantiranno che possiamo implementare questi modelli di base in modo economico. Come pionieri, stiamo lavorando con le nuove istanze basate su AWS Inferentia 2. Le istanze Inf2 sono progettate per l’IA generativa di oggi e per l’accelerazione dell’inferenza dei modelli di linguaggio (LLM), offrendo prestazioni più elevate e costi inferiori. Inf2 ci consentirà di fornire ai rivenditori i vantaggi delle tecnologie basate sull’IA senza spendere una fortuna, rendendo infine il settore del commercio al dettaglio più innovativo, efficiente e orientato al cliente.

Continuando a migrare sempre più modelli su Inferentia e Inferentia2, incluso i modelli di base basati su trasformatori, siamo fiduciosi che la nostra alleanza con AWS ci consentirà di crescere e innovare insieme al nostro affidabile fornitore di servizi cloud. Insieme, riprogetteremo il futuro del commercio al dettaglio, rendendolo più intelligente, veloce e in sintonia con le esigenze in continua evoluzione dei consumatori.

Conclusione

In questo percorso tecnico, abbiamo evidenziato il nostro viaggio di trasformazione utilizzando AWS Inferentia per il suo innovativo sistema di elaborazione transazionale dell’IA/ML. Questa partnership ha portato a un aumento di cinque volte nella velocità di elaborazione e a una sorprendente riduzione del 95 percento dei costi di inferenza rispetto alla nostra soluzione precedente. Ha cambiato l’approccio attuale dell’industria del commercio al dettaglio facilitando un’esperienza di acquisto in tempo reale e senza soluzione di continuità.

Se sei interessato a saperne di più su come Inferentia può aiutarti a risparmiare costi ottimizzando le prestazioni delle tue applicazioni di inferenza, visita le pagine dei prodotti Amazon EC2 Inf1 instances e Amazon EC2 Inf2 instances. AWS fornisce diversi codici di esempio e risorse per l’inizio su Neuron SDK che puoi trovare nel repository di esempi di Neuron.