Glossario

Informatica senza server

Scopri come il serverless computing rivoluziona l'AI/ML grazie alla scalabilità, all'efficienza dei costi e alla rapidità di implementazione. Costruisci in modo più intelligente e veloce oggi stesso!

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

Il serverless computing è un modello di esecuzione del cloud computing in cui il cloud provider gestisce dinamicamente l'allocazione e il provisioning dei server. In sostanza, gli sviluppatori possono scrivere e distribuire codice senza dover gestire i server. Il termine "serverless" è un po' un termine improprio, perché i server sono comunque coinvolti, ma la loro gestione è completamente astratta dall'utente. Questo approccio permette agli sviluppatori di concentrarsi esclusivamente sulla scrittura di codice e sulla creazione di applicazioni, particolarmente vantaggiose nel campo in rapida evoluzione dell'intelligenza artificiale e dell'apprendimento automatico (ML).

Capire l'architettura Serverless

Con il serverless computing, le applicazioni sono suddivise in singole funzioni indipendenti che vengono attivate da eventi specifici. Questi eventi possono essere richieste HTTP, modifiche ai dati, eventi di sistema o persino trigger programmati. Quando una funzione viene attivata, il cloud provider alloca istantaneamente le risorse di calcolo necessarie per eseguire il codice, per poi ridimensionare automaticamente le risorse quando la funzione non è più in esecuzione. Questa esecuzione on-demand e guidata dagli eventi contrasta con le architetture tradizionali basate su server, dove i server sono costantemente in funzione, indipendentemente dalla domanda dell'applicazione, con conseguente potenziale spreco di risorse e aumento della complessità operativa. Le architetture serverless sono una componente chiave del cloud computing e offrono un modo più agile ed efficiente di distribuire e gestire le applicazioni.

Vantaggi per l'AI e il ML

Il serverless computing offre vantaggi significativi per i carichi di lavoro di AI e ML, che spesso comportano attività ad alta intensità di calcolo e richieste fluttuanti.

  • Scalabilità: Le piattaforme serverless scalano automaticamente le risorse in base alla domanda. Questo è fondamentale per le applicazioni di ML che possono subire picchi di utilizzo, come ad esempio durante le ore di punta per un'API di rilevamento di oggetti o durante l'elaborazione in batch di grandi set di dati.
  • Efficienza dei costi: Paghi solo il tempo di calcolo consumato quando il tuo codice è effettivamente in esecuzione. Per i progetti di AI/ML che possono avere periodi di inattività o di utilizzo variabile, questo modello di pagamento può essere significativamente più conveniente rispetto alla gestione di server sempre attivi.
  • Riduzione dei costi operativi: Gli sviluppatori vengono liberati dalle attività di gestione dei server, consentendo loro di concentrarsi sullo sviluppo dei modelli, sulla messa a punto degli iperparametri e sulla progettazione delle funzionalità. Questo flusso di lavoro semplificato accelera i cicli di sviluppo e riduce il carico operativo associato alla gestione dell'infrastruttura.
  • Distribuzione più rapida: Le funzioni serverless possono essere distribuite in modo semplice e veloce, consentendo una rapida iterazione e sperimentazione nei progetti AI/ML. L'integrazione con piattaforme come Ultralytics HUB semplifica ulteriormente la distribuzione di modelli in ambienti serverless. Ultralytics YOLO modelli in ambienti serverless.

Applicazioni del mondo reale nell'AI/ML

Il serverless computing viene sfruttato in una serie di applicazioni AI/ML:

  • API di inferenza in tempo reale: L'implementazione di modelli ML come funzioni serverless consente di creare endpoint scalabili ed efficienti dal punto di vista dei costi. Ad esempio, un modello di classificazione delle immagini costruito con Ultralytics YOLOv8 può essere distribuito come API serverless per fornire previsioni in tempo reale sulle immagini caricate. Questo è ideale per le applicazioni che richiedono un'analisi immediata, come l'analisi delle immagini mediche o il controllo di qualità automatizzato nella produzione.
  • Pipeline di pre-elaborazione dei dati: Le funzioni serverless si prestano bene alla creazione di pipeline di dati guidate dagli eventi. Immagina un sistema in cui vengono raccolti continuamente nuovi dati, magari da sensori o da upload degli utenti. Le funzioni serverless possono essere attivate per preelaborare automaticamente questi dati - pulendoli, trasformandoli e aumentandoli - prima che vengano utilizzati per l'addestramento o l'analisi dei modelli. Questo può essere particolarmente utile in scenari come la computer vision in agricoltura, dove i dati delle immagini devono essere elaborati prima di addestrare i modelli per il monitoraggio delle colture. Ultralytics YOLOv5 modelli per il monitoraggio delle colture.

Serverless vs Edge Computing

Mentre il serverless computing si concentra sull'esecuzione in cloud, l 'edge computing avvicina il calcolo e l'archiviazione dei dati alla fonte degli stessi, spesso su dispositivi fisici o server locali. L'edge computing è utile per le applicazioni che richiedono una latenza bassissima e un'elaborazione offline, come il rilevamento di oggetti in tempo reale nei veicoli autonomi o le telecamere di sicurezza alimentate dall'intelligenza artificiale. Il serverless e l'edge computing non si escludono a vicenda e possono essere combinati in architetture ibride, dove i dispositivi edge eseguono l'elaborazione iniziale dei dati e le funzioni serverless gestiscono attività più complesse basate sul cloud.

Le piattaforme serverless più diffuse sono AWS Lambda, Google Cloud Functions e Azure Functions. Queste piattaforme forniscono l'infrastruttura e gli strumenti necessari per costruire e distribuire applicazioni AI/ML serverless in modo efficiente.

Leggi tutto