Questo documento del framework dell'architettura Google Cloud illustra alcuni dei principi fondamentali e delle best practice per l'analisi dei dati in Google Cloud. Imparerai a conoscere alcuni dei principali servizi di AI e machine learning (ML) e come possono essere utili durante le varie fasi del ciclo di vita dell'AI e del ML. Queste best practice ti aiutano a soddisfare le tue esigenze di AI e ML e a creare la progettazione del tuo sistema. In questo documento si presuppone che tu abbia familiarità con i concetti di base di AI e ML.
Per semplificare il processo di sviluppo e ridurre al minimo l'overhead quando crei modelli ML su Google Cloud, considera il massimo livello di astrazione adatto al tuo caso d'uso. Il livello di astrazione è definito come la quantità di complessità con cui un sistema viene visualizzato o programmato. Più alto è il livello di astrazione, minore è il dettaglio disponibile per lo spettatore.
Per selezionare i servizi di IA e ML di Google in base alle tue esigenze aziendali, utilizza la seguente tabella:
Utente tipo | Servizi Google |
---|---|
Utenti aziendali | Soluzioni standard come Contact Center AI Insights, Document AI, Discovery AI e API Cloud Healthcare. |
Sviluppatori con esperienza di ML minima | Le API preaddestrate eseguono attività percettive come visione artificiale, video e linguaggio naturale. Queste API sono supportate da modelli preaddestrati e forniscono rilevatori predefiniti. Sono pronte per l'uso senza alcuna esperienza di ML e senza dover sviluppare modelli. Le API preaddestrate includono: API Vision, API Video, API Natural Language, API Speech-to-Text, API Text-to-Speech e API Cloud Translation. |
IA generativa per sviluppatori | Vertex AI Agent Builder consente agli sviluppatori di utilizzare le sue funzionalità pronte all'uso per creare ed eseguire il deployment di chatbot in pochi minuti e motori di ricerca in poche ore. Gli sviluppatori che vogliono combinare più funzionalità nei flussi di lavoro aziendali possono utilizzare l'API Gen App Builder per l'integrazione diretta. |
Sviluppatori e data scientist | AutoML consente lo sviluppo di modelli personalizzati con immagini, video, testo o dati tabulari. AutoML accelera lo sviluppo dei modelli con la ricerca automatica tramite la raccolta di modelli di Google per trovare l'architettura dei modelli più performante, in modo da non dover creare il modello. AutoML gestisce le attività comuni per te, come la scelta dell'architettura del modello, l'ottimizzazione degli iperparametri, il provisioning delle macchine per l'addestramento e la pubblicazione. |
Data scientist e ML engineer | Gli strumenti per modelli personalizzati di Vertex AI consentono di addestrare e pubblicare modelli personalizzati e rendono operativo il flusso di lavoro ML. Puoi anche eseguire il carico di lavoro ML su computing autogestito, come le VM di Compute Engine. |
Data scientist e machine learning engineer | Il supporto dell'IA generativa su Vertex AI (noto anche come genai) fornisce l'accesso ai modelli di IA generativa di grandi dimensioni di Google in modo da poter testare, ottimizzare ed eseguire il deployment dei modelli nelle tue applicazioni basate sull'IA. |
Data engineer, data scientist e analisti di dati che conoscono le interfacce SQL | BigQuery ML ti consente di sviluppare modelli basati su SQL, oltre ai dati archiviati in BigQuery. |
Servizi chiavi
La tabella seguente fornisce una panoramica generale dei servizi di AI e ML:
Servizio Google | Descrizione |
---|---|
Cloud Storage e BigQuery | Offri opzioni di archiviazione flessibili per dati e artefatti di machine learning. |
BigQuery ML | Consente di creare modelli di machine learning direttamente dai dati ospitati all'interno di BigQuery. |
Pub/Sub, Dataflow, Cloud Data Fusion e Dataproc |
Supporta l'importazione e l'elaborazione dei dati in batch e in tempo reale. Per scoprire di più, consulta Analisi di dati. |
Vertex AI | Offre a data scientist e machine learning engineer un'unica piattaforma per creare, addestrare, testare, monitorare, ottimizzare ed eseguire il deployment di modelli ML per qualsiasi ambito, dall'AI generativa alle MLOps. Gli strumenti includono:
|
Vertex AI Agent Builder | Consente di creare chatbot e motori di ricerca per siti web e per l'utilizzo nei dati aziendali.
|
IA generativa su Vertex AI | Consente di accedere ai modelli di IA generativa di grandi dimensioni di Google in modo da poterli
testare, ottimizzare ed eseguire il deployment per utilizzarli nelle
applicazioni basate sull'IA. L'IA generativa su Vertex AI è anche nota come genai.
|
API preaddestrate |
|
AutoML | Fornisce strumenti per modelli personalizzati per creare, eseguire il deployment e scalare i modelli ML.
Gli sviluppatori possono caricare i propri dati e utilizzare
il servizio AutoML applicabile per creare un modello personalizzato.
|
AI infrastructure | Consente di utilizzare acceleratori AI per elaborare carichi di lavoro ML su larga scala. Questi acceleratori consentono di addestrare e ottenere l'inferenza dai modelli di deep learning e dai modelli di machine learning in modo conveniente. Le GPU possono aiutare con l'inferenza conveniente e l'addestramento con scale up o scale out per i modelli di deep learning. Le Tensor Processing Unit (TPU) sono ASIC personalizzati per addestrare ed eseguire reti neurali profonde. |
Dialogflow | Fornisce agenti virtuali che forniscono un'esperienza di conversazione. |
Contact Center AI | Offre un'esperienza di contact center automatizzata e ricca di insight con la funzionalità Agent Assist per gli agenti umani. |
Document AI | Fornisce la comprensione dei documenti su larga scala per i documenti in generale e per tipi di documenti specifici come quelli correlati al prestito e all'approvvigionamento. |
Lending DocAI | Automatizza l'elaborazione di documenti relativi ai mutui. Riduce i tempi di elaborazione e semplifica l'acquisizione dei dati supportando al contempo i requisiti normativi e di conformità. |
Procurement DocAI | Automatizza l'acquisizione dei dati di approvvigionamento su larga scala trasformando i documenti non strutturati (come fatture e ricevute) in dati strutturati per aumentare l'efficienza operativa, migliorare la customer experience e informare il processo decisionale. |
Suggerimenti | Fornisce consigli personalizzati sui prodotti. |
AI di Healthcare Natural Language | Consente di rivedere e analizzare documenti medici. |
API Media Translation | Consente la traduzione in tempo reale di contenuti vocali dai dati audio. |
Trattamento dati
Applica le seguenti best practice per l'elaborazione dei dati al tuo ambiente.
Assicurati che i dati soddisfino i requisiti di ML
I dati che utilizzi per il machine learning devono soddisfare determinati requisiti di base, indipendentemente dal tipo di dati. Questi requisiti includono la capacità dei dati di prevedere il target, coerenza nella granularità tra i dati utilizzati per l'addestramento e quelli utilizzati per la previsione e i dati etichettati con precisione per l'addestramento. Il volume dei dati dovrebbe essere sufficiente. Per ulteriori informazioni, consulta la sezione Trattamento dati.
Archivia i dati tabulari in BigQuery
Se utilizzi dati tabulari, valuta la possibilità di archiviare tutti i dati in BigQuery e di utilizzare l'API BigQuery Storage per leggerli. Per semplificare l'interazione con l'API, utilizza una delle seguenti opzioni degli strumenti aggiuntivi, a seconda di dove vuoi leggere i dati:
- Se usi Dataflow, utilizza il connettore I/O BigQuery.
- Se usi TensorFlow o Keras, usa il lettore tf.data.dataset per BigQuery.
- Se utilizzi dati non strutturati come immagini o video, valuta la possibilità di archiviare tutti i dati in Cloud Storage.
Il tipo di dati di input determina inoltre gli strumenti disponibili per lo sviluppo del modello. API preaddestrate, AutoML e BigQuery ML possono fornire ambienti di sviluppo più convenienti e più efficienti in termini di tempo per determinati casi d'uso di immagini, video, testo e dati strutturati.
Assicurati di avere dati sufficienti a sviluppare un modello di ML
Per sviluppare un modello di ML utile, devi avere abbastanza dati. Per prevedere una categoria, il numero consigliato di esempi per ogni categoria è dieci volte il numero di caratteristiche. Più categorie si vuole prevedere, più dati servono. I set di dati non bilanciati richiedono ancora più dati. Se non hai a disposizione abbastanza dati etichettati, prendi in considerazione l'apprendimento semi-supervisionato.
Le dimensioni del set di dati hanno anche implicazioni di addestramento e pubblicazione: se hai un set di dati ridotto, puoi addestrarlo direttamente all'interno di un'istanza Notebooks; se hai set di dati più grandi che richiedono l'addestramento distribuito, utilizza il servizio di addestramento personalizzato Vertex AI. Se vuoi che Google addestra il modello per i tuoi dati, utilizza AutoML.
Prepara i dati per il consumo
Una buona preparazione dei dati può accelerare lo sviluppo del modello. Quando configuri la tua pipeline di dati, assicurati che possa elaborare dati sia in batch che in flussi, in modo da ottenere risultati coerenti da entrambi i tipi di dati.
Sviluppo e addestramento di modelli
Applica le seguenti best practice per lo sviluppo e l'addestramento del modello al tuo ambiente.
Scegli lo sviluppo di modelli gestiti o con addestramento personalizzato
Quando crei il tuo modello, considera il massimo livello di astrazione possibile. Se possibile, usa AutoML per gestire automaticamente le attività di sviluppo e addestramento. Per i modelli con addestramento personalizzato, scegli le opzioni gestite per scalabilità e flessibilità, anziché opzioni autogestite. Per scoprire di più sulle opzioni di sviluppo dei modelli, consulta Utilizzare gli strumenti e i prodotti consigliati.
Prendi in considerazione il servizio di addestramento Vertex AI anziché l'addestramento autogestito sulle VM di Compute Engine o i container di VM di deep learning. Per un ambiente JupyterLab, considera Vertex AI Workbench, che fornisce ambienti JupyterLab gestiti e gestiti dall'utente. Per ulteriori informazioni, consulta Sviluppo del machine learning e Addestramento operativo.
Usa container predefiniti o personalizzati per i modelli con addestramento personalizzato
Per i modelli con addestramento personalizzato su Vertex AI, puoi utilizzare container predefiniti o personalizzati a seconda del framework e della versione del framework di machine learning. I container predefiniti sono disponibili per le applicazioni di addestramento Python create per versioni specifiche di TensorFlow, scikit-learn, PyTorch e XGBoost.
In caso contrario, puoi scegliere di creare un container personalizzato per il job di addestramento. Ad esempio, utilizza un container personalizzato se vuoi addestrare il tuo modello utilizzando un framework ML Python che non è disponibile in un container predefinito o se vuoi eseguire l'addestramento utilizzando un linguaggio di programmazione diverso da Python. Nel tuo container personalizzato, preinstalla l'applicazione di addestramento e tutte le sue dipendenze su un'immagine che esegue il job di addestramento.
Considera i requisiti di addestramento distribuito
Considera i tuoi requisiti di addestramento distribuito. Alcuni framework ML, come TensorFlow e PyTorch, consentono di eseguire codice di addestramento identico su più macchine. Questi framework coordinano automaticamente la divisione del lavoro in base alle variabili di ambiente impostate su ogni macchina. Altri framework potrebbero richiedere un'ulteriore personalizzazione.
Passaggi successivi
Per saperne di più sull'AI e sul machine learning, consulta quanto segue:
- Best practice per l'implementazione del machine learning su Google Cloud.
- Guida a MLOps per professionisti: un framework per la distribuzione continua e l'automazione del machine learning.
Esplora altre categorie nel framework dell'architettura come affidabilità, eccellenza operativa e sicurezza, privacy e conformità.