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. Gli sviluppatori possono scrivere e distribuire il codice come singole funzioni senza dover gestire l'infrastruttura sottostante, come i sistemi operativi o l'hardware dei server. I server vengono comunque utilizzati, ma la loro gestione è completamente astratta, consentendo ai team di concentrarsi sulla creazione della logica dell'applicazione. Questo è particolarmente vantaggioso per la rapida iterazione di progetti di Intelligenza Artificiale (AI) e Machine Learning (ML), in quanto consente cicli di sviluppo più rapidi e un utilizzo efficiente delle risorse.

Capire l'architettura Serverless

In una configurazione serverless, le applicazioni sono spesso strutturate come una collezione di funzioni indipendenti attivate da eventi specifici. Questo modello è comunemente noto come Function as a Service (FaaS). Gli eventi possono includere richieste HTTP (come le chiamate API), modifiche al database, upload di file sul cloud storage o messaggi da un sistema di code. Quando si verifica un evento, il cloud provider alloca automaticamente le risorse di calcolo necessarie per eseguire la funzione corrispondente. Una volta completata l'esecuzione, queste risorse vengono ridimensionate, spesso fino a zero se non ci sono richieste in sospeso. Questo approccio basato sugli eventi e sul ridimensionamento automatico si differenzia in modo significativo dalle architetture tradizionali in cui i server funzionano ininterrottamente, causando potenzialmente risorse inattive e costi operativi più elevati. Si allinea bene con le esigenze variabili di molti casi d'uso dell'intelligenza artificiale.

Vantaggi per AI e ML

Il computing serverless offre vantaggi interessanti per i carichi di lavoro AI e ML, che spesso hanno richieste di calcolo variabili:

  • Scalabilità automatica: gestisce senza problemi i carichi imprevedibili. Ad esempio, un motore di inferenza che serve previsioni potrebbe subire improvvisi picchi di richieste. Le piattaforme serverless scalano automaticamente le istanze della funzione per soddisfare la domanda senza alcun intervento manuale, garantendo prestazioni costanti. Questo è fondamentale per le applicazioni che richiedono un'inferenza in tempo reale.
  • Efficienza dei costi: Funziona in base al principio del pay-per-use. In genere viene fatturato solo il tempo di calcolo effettivamente consumato dalle funzioni, fino al millisecondo. In questo modo si eliminano i costi associati alla capacità inattiva dei server, rendendoli convenienti per attività come la formazione periodica dei modelli o l'elaborazione di dati poco frequenti. Esplora i vantaggi delle economie di scala.
  • Cicli di sviluppo più veloci: Astrazione della gestione dell'infrastruttura. Gli sviluppatori possono concentrarsi esclusivamente sulla scrittura di codice per attività specifiche come la preelaborazione dei dati, l'estrazione delle caratteristiche o l'esecuzione della logica di previsione. Questo accelera lo sviluppo e la distribuzione, facilitando la sperimentazione di diversi modelli o strategie di regolazione degli iperparametriUltralytics guidaUltralytics ).
  • Operazioni semplificate: Riduce i costi operativi. Compiti come il patching dei sistemi operativi, la gestione della capacità dei server e la garanzia di un'elevata disponibilità sono gestiti dal fornitore di cloud, liberando risorse per le attività principali di ML. Scopri di più sulle Machine Learning Operations (MLOps).

Applicazioni del mondo reale nell'AI/ML

Le architetture serverless sono adatte a diversi compiti di AI/ML:

  1. Analisi di immagini e video: Considera un'applicazione che esegue il rilevamento di oggetti su immagini caricate dall'utente usando un Ultralytics YOLO di Ulralytics. Un evento di caricamento sul cloud storage (come Amazon S3 o Google Cloud Storage) attiva una funzione serverless. Questa funzione carica l'immagine, esegue il modello YOLO per il rilevamento, esegue potenzialmente la segmentazione dell'immagine e memorizza i risultati (ad esempio, bounding box, etichette di classe) in un database o li restituisce tramite un'API. Il sistema scala automaticamente in base al numero di upload senza bisogno di server pre-provisionati. Questo modello è utile in applicazioni che vanno dalla moderazione dei contenuti all'analisi delle immagini mediche. Per ulteriori esempi, consulta le soluzioniUltralytics .
  2. Backend dei chatbot: Molti chatbot basati su Large Language Models (LLM) utilizzano funzioni serverless per gestire i messaggi in entrata degli utenti. Ogni messaggio attiva una funzione che elabora il testo, interagisce con l'API LLM (come GPT-4), esegue le azioni necessarie (ad esempio, ricerca nel database tramite ricerca vettoriale) e invia una risposta. Il modello pay-per-request è ideale per i chatbot con modelli di utilizzo fluttuanti. Esplora i concetti di elaborazione del linguaggio naturale (NLP).

Serverless e concetti correlati

È importante distinguere il serverless computing dalle tecnologie correlate:

  • Cloud Computing vs. Serverless: Il cloud computing è l'ampia distribuzione di servizi informatici su internet. Serverless è un modello di esecuzione specifico all'interno del cloud computing che enfatizza la gestione automatica delle risorse e le funzioni event-driven (FaaS), astraendo completamente dalla gestione dei server. Altri modelli di cloud, come l'Infrastructure as a Service (IaaS), richiedono agli utenti la gestione di macchine virtuali.
  • Containerizzazione vs. Serverless: Gli strumenti di containerizzazione come Docker impacchettano le applicazioni e le loro dipendenze. Le piattaforme di orchestrazione come Kubernetes automatizzano la distribuzione, il ridimensionamento e la gestione di questi container. Sebbene Kubernetes riduca l'onere operativo rispetto alla gestione del bare metal o delle macchine virtuali, devi comunque gestire l'infrastruttura cluster sottostante. Le piattaforme serverless astraggono completamente questo livello; tu gestisci solo il codice delle funzioni. Scopri come utilizzare Docker con Ultralytics.
  • Edge Computing vs. Serverless: L'Edge Computing prevede l'elaborazione dei dati a livello locale su dispositivi vicini alla fonte dei dati (l'"edge") per ridurre la latenza e l'utilizzo della larghezza di banda. Il serverless computing esegue tipicamente funzioni in centri dati cloud centralizzati. Pur essendo distinti, possono essere complementari; un dispositivo AI edge (come uno in esecuzione su NVIDIA Jetson) potrebbe eseguire l'elaborazione iniziale o il filtraggio e poi attivare una funzione serverless nel cloud per analisi o aggregazioni più complesse. Leggi le telecamere di sicurezza dotate di AI che spesso combinano l'elaborazione edge con quella cloud.

Le principali piattaforme serverless includono AWS Lambda, Google Cloud Functions e Azure Functions. Questi servizi forniscono l'infrastruttura necessaria per costruire ed eseguire applicazioni AI/ML serverless in modo efficace, spesso integrandosi con altri servizi cloud per lo storage, i database e la messaggistica. Piattaforme come Ultralytics HUB possono semplificare ulteriormente la distribuzione e la gestione dei modelli all'interno di varie architetture, comprese le configurazioni serverless(esplora i documenti di HUB).

Leggi tutto