Con Neural Architecture Search di Agent Platform, puoi cercare architetture neurali ottimali in termini di accuratezza, latenza, memoria, una combinazione di queste o una metrica personalizzata.
Determinare se Agent Platform Neural Architecture Search è lo strumento migliore per me
- Agent Platform Neural Architecture Search è uno strumento di ottimizzazione di fascia alta utilizzato per trovare le migliori architetture neurali in termini di accuratezza con o senza vincoli come latenza, memoria o una metrica personalizzata. Lo spazio di ricerca delle possibili scelte di architettura neurale può arrivare fino a 10^20. Si basa su una tecnica che negli ultimi anni ha generato con successo diversi modelli di visione artificiale all'avanguardia, tra cui Nasnet, MNasnet, EfficientNet, NAS-FPN e SpineNet.
- Agent Platform Neural Architecture Search non è una soluzione in cui puoi semplicemente inserire i tuoi dati e aspettarti un buon risultato senza sperimentazione. È uno strumento di sperimentazione.
- Agent Platform Neural Architecture Search non è destinato all'ottimizzazione degli iperparametri, ad esempio per l'ottimizzazione del tasso di apprendimento o delle impostazioni dell'ottimizzatore. È destinato solo alla ricerca dell'architettura. Non devi combinare l'ottimizzazione degli iperparametri con Agent Platform Neural Architecture Search.
- La ricerca di architettura neurale di Agent Platform non è consigliata con dati di addestramento limitati o per set di dati altamente sbilanciati in cui alcune classi sono molto rare. Se utilizzi già miglioramenti intensivi per l'addestramento di base a causa della mancanza di dati, l'utilizzo di Neural Architecture Search di Agent Platform non è consigliato.
- Per prima cosa, dovresti provare altri metodi e tecniche di machine learning tradizionali e convenzionali, come l'ottimizzazione degli iperparametri. Ti consigliamo di utilizzare Neural Architecture Search di Agent Platform solo se non vedi ulteriori guadagni con questi metodi tradizionali.
- Dovresti avere un team interno per l'ottimizzazione del modello, che abbia un'idea di base dei parametri dell'architettura da modificare e provare. Questi parametri di architettura possono includere la dimensione del kernel, il numero di canali o connessioni tra molte altre possibilità. Se hai in mente uno spazio di ricerca da esplorare, Agent Platform Neural Architecture Search è molto utile e può ridurre di almeno sei mesi circa il tempo di progettazione per l'esplorazione di uno spazio di ricerca di grandi dimensioni: fino a 10^20 scelte di architettura.
- Agent Platform Neural Architecture Search è destinato ai clienti aziendali che possono spendere diverse migliaia di dollari per un esperimento.
- Neural Architecture Search di Agent Platform non è limitato solo ai casi d'uso di visione artificiale. Al momento, sono forniti solo spazi di ricerca predefiniti basati sulla visione e trainer predefiniti, ma i clienti possono anche utilizzare i propri spazi di ricerca e trainer non basati sulla visione.
- Agent Platform Neural Architecture Search non utilizza un approccio basato su una supernet (NAS oneshot o NAS basato sulla condivisione dei pesi) in cui utilizzi i tuoi dati come soluzione. La personalizzazione di una supernet non è un'operazione semplice (richiede mesi di lavoro). A differenza di una supernet, Neural Architecture Search di Agent Platform è altamente personalizzabile per definire spazi di ricerca e reward personalizzati. La personalizzazione può essere eseguita in circa uno o due giorni.
- Agent Platform Neural Architecture Search è supportato in 8 regioni in tutto il mondo. Verifica la disponibilità nella tua regione.
Prima di utilizzare Neural Architecture Search di Agent Platform, devi anche leggere la sezione seguente sui costi previsti, sui guadagni dei risultati e sui requisiti di quota delle GPU.
Costo previsto, miglioramenti dei risultati e requisiti di quota delle GPU

La figura mostra una tipica curva di Neural Architecture Search di Agent Platform.
Y-axis mostra i premi delle prove, mentre X-axis mostra il numero di prove avviate.
Man mano che il numero di prove aumenta, il controller inizia a trovare modelli migliori. Pertanto, il premio inizia ad aumentare e, in seguito, la varianza e la crescita del premio iniziano a diminuire e mostrano la convergenza. Al punto di convergenza, il numero di prove può variare in base alle dimensioni dello spazio di ricerca, ma è nell'ordine di circa 2000 prove.
Ogni prova è progettata per essere una versione più piccola dell'addestramento completo, chiamata proxy-task, che viene eseguita per circa una o due ore su due GPU Nvidia V100. Il cliente può interrompere la ricerca manualmente in qualsiasi momento e potrebbe trovare modelli di reward più elevati rispetto alla baseline prima che si verifichi il punto di convergenza.
Potrebbe essere meglio attendere che si verifichi il punto di convergenza per scegliere i risultati migliori.
Dopo la ricerca, la fase successiva consiste nel selezionare le 10 prove (modelli) migliori ed eseguire un addestramento completo su di esse.
(Facoltativo) Prova lo spazio di ricerca e l'addestratore MNasNet predefiniti
In questa modalità, osserva la curva di ricerca o alcune prove, circa 25, ed esegui un test drive con uno spazio di ricerca e un trainer MNasNet predefiniti.

Nella figura, la migliore ricompensa della fase 1 inizia a salire da circa 0,30 nella prova 1 a circa 0,37 nella prova 17. La tua esecuzione esatta potrebbe essere leggermente diversa a causa della casualità del campionamento, ma dovresti notare un leggero aumento della ricompensa migliore. Tieni presente che si tratta ancora di un'esecuzione di prova e non rappresenta una proof of concept o una convalida di benchmark pubblica.
Il costo di questa esecuzione è dettagliato di seguito:
- Fase 1:
- Numero di prove: 25
- Numero di GPU per prova: 2
- Tipo di GPU: TESLA_T4
- Numero di CPU per prova: 1
- Tipo di CPU: n1-highmem-16
- Tempo di addestramento medio per singola prova: 3 ore
- Numero di prove parallele: 6
- Quota GPU utilizzata: (num-gpus-per-trial * num-parallel-trials) = 12 GPU. Utilizza la regione us-central1 per il test drive e ospita i dati di addestramento nella stessa regione. Non è necessaria alcuna quota aggiuntiva.
- Tempo di esecuzione: (prove-totali * tempo-di-addestramento-per-prova)/(numero-di-prove-parallele) = 12 ore
- Ore GPU: (prove-totali * tempo-di-addestramento-per-prova * num-gpu-per-prova) = 150 ore GPU T4
- Ore CPU: (prove-totali * tempo-di-addestramento-per-prova * num-cpu-per-prova) = 75 ore n1-highmem-16
- Costo: circa 185 $. Puoi interrompere il job prima per ridurre i costi. Consulta la pagina dei prezzi per calcolare il prezzo esatto.
Poiché si tratta di un'esecuzione di prova, non è necessario eseguire un addestramento completo della fase 2 per i modelli della fase 1. Per scoprire di più sull'esecuzione della fase 2, consulta il tutorial 3.
Per questa esecuzione viene utilizzato il notebook MnasNet.
(Facoltativo) Esecuzione di proof of concept (POC) dello spazio di ricerca e dell'addestratore MNasNet predefiniti
Se ti interessa replicare quasi un risultato MNasnet pubblicato, puoi utilizzare questa modalità. Secondo il paper, MnasNet raggiunge un'accuratezza top-1 del 75,2% con una latenza di 78 ms su uno smartphone Pixel, ovvero 1,8 volte più veloce di MobileNetV2 con un'accuratezza superiore dello 0,5% e 2,3 volte più veloce di NASNet con un'accuratezza superiore dell'1,2%. Tuttavia, questo esempio utilizza GPU anziché TPU per l'addestramento e utilizza la CPU cloud (n1-highmem-8) per valutare la latenza. Con questo esempio, l'accuratezza top-1 prevista per la fase 2 su MNasNet è del 75,2% con una latenza di 50 ms sulla CPU cloud (n1-highmem-8).
Il costo di questa esecuzione è dettagliato di seguito:
Ricerca di fase 1:
- Numero di prove: 2000
- Numero di GPU per prova: 2
- Tipo di GPU: TESLA_T4
- Tempo di addestramento medio per singola prova: 3 ore
- Numero di prove parallele: 10
- Quota di GPU utilizzata: (num-gpus-per-trial * num-parallel-trials) = 20 GPU T4. Poiché questo numero è superiore alla quota predefinita, crea una richiesta di quota dalla UI del progetto. Per saperne di più, consulta setting_up_path.
- Tempo di esecuzione: (prove-totali * tempo-di-addestramento-per-prova)/(numero-prove-parallele)/24 = 25 giorni. Nota: il job termina dopo 14 giorni. Trascorso questo periodo, puoi riprendere il job di ricerca facilmente con un solo comando per altri 14 giorni. Se hai una quota di GPU più elevata, il runtime diminuisce proporzionalmente.
- Ore GPU: (prove-totali * tempo-di-addestramento-per-prova * num-gpu-per-prova) = 12.000 ore GPU T4.
- Costo: ~15.000 $
Addestramento completo della fase 2 con i 10 modelli migliori:
- Numero di prove: 10
- Numero di GPU per prova: 4
- Tipo di GPU: TESLA_T4
- Tempo di addestramento medio per singola prova: ~9 giorni
- Numero di prove parallele: 10
- Quota di GPU utilizzata: (num-gpus-per-trial * num-parallel-trials) = 40 GPU T4. Poiché questo numero è superiore alla quota predefinita, crea una richiesta di quota dalla UI del progetto. Per saperne di più, consulta setting_up_path. Puoi anche eseguire questa operazione con 20 GPU T4 eseguendo il job due volte con cinque modelli alla volta anziché tutti e 10 in parallelo.
- Tempo di esecuzione: (total-trials * training-time-per-trial)/(num-parallel-trials)/24 = ~9 giorni
- Ore GPU: (prove-totali * tempo-di-addestramento-per-prova * num-gpu-per-prova) = 8960 ore GPU T4.
- Costo: ~8000 $
Costo totale: circa 23.000 $. Consulta la pagina dei prezzi per calcolare il prezzo esatto. Nota: questo esempio non è un normale job di addestramento medio. L'addestramento completo dura circa nove giorni su quattro GPU TESLA_T4.
Per questa esecuzione viene utilizzato il notebook MnasNet.
Utilizzo dello spazio di ricerca e dei trainer
Forniamo un costo approssimativo per un utente personalizzato medio. Le tue esigenze possono variare a seconda dell'attività di addestramento e delle GPU e CPU utilizzate. Devi avere una quota di almeno 20 GPU per un'esecuzione end-to-end, come documentato qui. Nota: il miglioramento delle prestazioni dipende interamente dall'attività. Possiamo fornire solo esempi come MNasnet come esempi di riferimento per il miglioramento delle prestazioni.
Il costo di questa esecuzione personalizzata ipotetica è dettagliato di seguito:
Ricerca di fase 1:
- Numero di prove: 2000
- Numero di GPU per prova: 2
- Tipo di GPU: TESLA_T4
- Tempo di addestramento medio per singola prova: 1,5 ore
- Numero di prove parallele: 10
- Quota di GPU utilizzata: (num-gpus-per-trial * num-parallel-trials) = 20 GPU T4. Poiché questo numero è superiore alla quota predefinita, devi creare una richiesta di quota dalla UI del progetto. Per saperne di più, consulta Richiedi una quota di dispositivi aggiuntiva per il progetto.
- Tempo di esecuzione: (prove-totali * tempo-di-addestramento-per-prova)/(numero-di-prove-parallele)/24 = 12,5 giorni
- Ore GPU: (prove-totali * tempo-di-addestramento-per-prova * num-gpu-per-prova) = 6000 ore GPU T4.
- Costo: circa 7400 $
Addestramento completo della fase 2 con i 10 modelli migliori:
- Numero di prove: 10
- Numero di GPU per prova: 2
- Tipo di GPU: TESLA_T4
- Tempo di addestramento medio per singola prova: circa 4 giorni
- Numero di prove parallele: 10
- Quota di GPU utilizzata: (num-gpus-per-trial * num-parallel-trials) = 20 GPU T4. **Poiché questo numero è superiore alla quota predefinita, devi creare una richiesta di quota dalla UI del progetto. Per saperne di più, consulta Richiedi una quota di dispositivi aggiuntiva per il progetto. Per esigenze di quote personalizzate, consulta la stessa documentazione.
- Tempo di esecuzione: (prove-totali * tempo-di-addestramento-per-prova)/(numero-prove-parallele)/24 = circa 4 giorni
- Ore GPU: (prove-totali * tempo-di-addestramento-per-prova * num-gpu-per-prova) = 1920 ore GPU T4.
- Costo: circa 2400 $
Per saperne di più sul costo di progettazione delle attività proxy, consulta Progettazione delle attività proxy Il costo è simile all'addestramento di 12 modelli (la fase 2 nella figura utilizza 10 modelli):
- Quota di GPU utilizzata: la stessa dell'esecuzione della fase 2 nella figura.
- Costo: (12/10) * costo-fase-2-per-10-modelli = ~2880 $
Costo totale: circa 12.680 $. Consulta la pagina dei prezzi per calcolare il prezzo esatto.
Questi costi di ricerca della fase 1 si riferiscono alla ricerca fino al raggiungimento del punto di convergenza e al massimo aumento delle prestazioni. Tuttavia, non aspettare che la ricerca converga. Puoi aspettarti un aumento delle prestazioni inferiore con un costo di ricerca inferiore eseguendo l'addestramento completo della fase 2 con il modello migliore finora se la curva di ricerca-premio ha iniziato a crescere. Ad esempio, per il grafico di ricerca mostrato in precedenza, non aspettare che vengano raggiunte le 2000 prove per la convergenza. Potresti aver trovato modelli migliori con 700 o 1200 prove e puoi eseguire l'addestramento completo della fase 2 per questi modelli. Puoi sempre interrompere la ricerca prima per ridurre i costi. Puoi anche eseguire l'addestramento completo della fase 2 in parallelo mentre la ricerca è in esecuzione, ma assicurati di avere una quota GPU sufficiente per supportare un job parallelo aggiuntivo.
Riepilogo di prestazioni e costi
La tabella seguente riassume alcuni punti dati con diversi casi d'uso e prestazioni e costi associati.

Casi d'uso e funzionalità
Le funzionalità di Agent Platform Neural Architecture Search sono flessibili e facili da usare. Un utente alle prime armi può utilizzare spazi di ricerca predefiniti, addestratore predefinito e notebook senza ulteriori configurazioni per iniziare a esplorare la ricerca di architettura neurale di Agent Platform per il proprio set di dati. Allo stesso tempo, un utente esperto può utilizzare Neural Architecture Search di Agent Platform con il proprio trainer personalizzato, lo spazio di ricerca personalizzato e il dispositivo di inferenza personalizzato, nonché estendere la ricerca dell'architettura anche a casi d'uso non visivi.
Neural Architecture Search (NAS) di Agent Platform offre trainer e spazi di ricerca predefiniti da eseguire su GPU per i seguenti casi d'uso:
- Trainer TensorFlow con risultati basati su set di dati pubblici pubblicati in un notebook
- Rilevamento di oggetti immagine con spazi di ricerca end-to-end (SpineNet)
- Classificazione con spazi di ricerca backbone predefiniti (MnasNet)
- Rilevamento di oggetti in un cloud di punti 3D LiDAR con spazi di ricerca end-to-end predefiniti
- Ricerca con vincoli di latenza e memoria per i dispositivi di destinazione
- Trainer PyTorch da utilizzare solo come esempio del tutorial
- Esempio di spazio di ricerca per la segmentazione delle immagini mediche 3D di PyTorch
- Classificazione MNasNet basata su PyTorch
- Ricerca con vincoli di latenza e memoria per i dispositivi di destinazione
- Spazi di ricerca all'avanguardia predefiniti basati su TensorFlow aggiuntivi con codice
- Scalabilità del modello
- Data augmentation
Il set completo di funzionalità offerte da Neural Architecture Search di Agent Platform può essere utilizzato facilmente anche per architetture e casi d'uso personalizzati:
- Un linguaggio di Neural Architecture Search (NAS) di Agent Platform per definire uno spazio di ricerca personalizzato su possibili architetture neurali e integrarlo con il codice del trainer personalizzato.
- Spazi di ricerca predefiniti allo stato dell'arte pronti all'uso con codice.
- Trainer predefinito pronto all'uso, con codice, che viene eseguito su GPU.
- Un servizio gestito per la ricerca dell'architettura, tra cui:
- Un controller Neural Architecture Search (NAS) di Agent Platform che campiona lo spazio di ricerca per trovare l'architettura migliore.
- Docker/librerie predefinite, con codice, per calcolare latenza/FLOP/memoria su hardware personalizzato.
- Tutorial per insegnare l'utilizzo di NAS.
- Un insieme di strumenti per progettare attività proxy.
- Indicazioni ed esempio per un addestramento PyTorch efficiente con Neural Architecture Search di Agent Platform.
- Supporto della libreria per la generazione di report e l'analisi delle metriche personalizzate.
- UI della consoleGoogle Cloud per monitorare e gestire i job.
- Notebook facili da usare per avviare la ricerca.
- Supporto della libreria per la gestione dell'utilizzo delle risorse GPU/CPU a livello di granularità per progetto o per job.
- Client NAS basato su Python per creare Docker, avviare job NAS e riprendere un job di ricerca precedente.
- Assistenza clienti basata sulla UI della consoleGoogle Cloud .
Sfondo
Agent Platform Neural Architecture Search Neural Architecture Search è una tecnica per automatizzare la progettazione di reti neurali. Negli ultimi anni ha generato con successo diversi modelli di visione artificiale all'avanguardia, tra cui:
I modelli risultanti sono all'avanguardia in tutte e tre le classi chiave dei problemi di visione artificiale: classificazione delle immagini, rilevamento di oggetti e segmentazione.
Con Neural Architecture Search di Agent Platform, gli ingegneri possono ottimizzare i modelli per accuratezza, latenza e memoria nella stessa prova, riducendo il tempo necessario per il deployment dei modelli. La ricerca di architetture neurali di Agent Platform esplora molti tipi diversi di modelli: il controller propone modelli di ML, quindi li addestra e li valuta, ripetendo l'operazione più di 1000 volte per trovare le soluzioni migliori con vincoli di latenza e/o memoria sui dispositivi di destinazione. La figura seguente mostra i componenti chiave del framework di ricerca dell'architettura:

- Modello: un'architettura neurale con operazioni e connessioni.
- Spazio di ricerca: lo spazio dei possibili modelli (operazioni e connessioni) che possono essere progettati e ottimizzati.
- Docker trainer: codice trainer personalizzabile dall'utente per addestrare e valutare un modello e calcolarne l'accuratezza.
- Dispositivo di inferenza: un dispositivo hardware come CPU/GPU su cui vengono calcolate la latenza e la memoria utilizzata del modello.
- Premio: una combinazione di metriche del modello, come accuratezza, latenza e memoria, utilizzata per classificare i modelli come migliori o peggiori.
- Controller Neural Architecture Search di Agent Platform Neural Architecture Search: l'algoritmo di orchestrazione che (a) campiona i modelli dallo spazio di ricerca, (b) riceve i premi del modello e (c) fornisce il successivo insieme di suggerimenti di modelli da valutare per trovare i modelli più ottimali.
Attività di configurazione degli utenti
Neural Architecture Search (NAS) di Agent Platform offre un trainer predefinito integrato con spazi di ricerca predefiniti che possono essere utilizzati con i notebook forniti senza ulteriori configurazioni.
Tuttavia, la maggior parte degli utenti deve utilizzare il proprio trainer personalizzato, gli spazi di ricerca personalizzati, le metriche personalizzate (ad esempio memoria, latenza e tempo di addestramento) e la reward personalizzata (combinazione di elementi come accuratezza e latenza). Per farlo, devi:
- Definisci uno spazio di ricerca personalizzato utilizzando il linguaggio di Neural Architecture Search di Agent Platform fornito.
- Integra la definizione dello spazio di ricerca nel codice del trainer.
- Aggiungi i report sulle metriche personalizzate al codice del trainer.
- Aggiungi un premio personalizzato al codice del trainer.
- Crea un container di addestramento e utilizzalo per avviare job di Neural Architecture Search di Agent Platform.
Il seguente diagramma illustra questo concetto:

Servizio Neural Architecture Search di Agent Platform Neural Architecture Search in funzione
Dopo aver configurato il container di addestramento da utilizzare, il servizio Neural Architecture Search di Agent Platform Neural Architecture Search avvia più container di addestramento in parallelo su più dispositivi GPU. Puoi controllare quante prove utilizzare in parallelo per l'addestramento e quante prove totali lanciare. A ogni container di addestramento viene fornita un'architettura suggerita dallo spazio di ricerca. Il container di addestramento crea il modello suggerito, esegue l'addestramento/la valutazione e poi segnala i premi al servizio Neural Architecture Search di Agent Platform. Man mano che questo processo procede, il servizio Neural Architecture Search di Agent Platform utilizza il feedback dei premi per trovare architetture di modelli sempre migliori. Dopo la ricerca, hai accesso alle metriche dei report per ulteriori analisi.

Panoramica del percorso dell'utente per Agent Platform Neural Architecture Search Neural Architecture Search
I passaggi generali per eseguire un esperimento di Neural Architecture Search (NAS) di Agent Platform sono i seguenti:
Configurazioni e definizioni:
- Identifica il set di dati etichettato e specifica il tipo di attività (ad esempio, rilevamento o segmentazione).
- Personalizza il codice allenatore:
- Utilizza uno spazio di ricerca predefinito o definisci uno spazio di ricerca personalizzato utilizzando il linguaggio Neural Architecture Search di Neural Architecture Search di Agent Platform.
- Integra la definizione dello spazio di ricerca nel codice del trainer.
- Aggiungi i report sulle metriche personalizzate al codice del trainer.
- Aggiungi un premio personalizzato al codice del trainer.
- Crea un container di addestramento.
- Configura i parametri di prova della ricerca per l'addestramento parziale (attività proxy). L'addestramento della ricerca dovrebbe idealmente terminare rapidamente (ad esempio, 30-60 minuti) per addestrare parzialmente i modelli:
- Numero minimo di epoche necessarie ai modelli campionati per raccogliere la ricompensa (il numero minimo di epoche non deve garantire la convergenza del modello).
- Iperparametri (ad esempio, tasso di apprendimento).
Esegui la ricerca localmente per assicurarti che il container integrato nello spazio di ricerca possa essere eseguito correttamente.
Avvia il job di ricerca Google Cloud (fase 1) con cinque prove di test e verifica che le prove di ricerca soddisfino gli obiettivi di runtime e accuratezza.
Avvia il job di ricerca Google Cloud (fase 1) con oltre 1000 prove.
Nell'ambito della ricerca, imposta anche un intervallo regolare per addestrare (fase 2) i primi N modelli:
- Iperparametri e algoritmo per la ricerca degli iperparametri. La fase 2 utilizza normalmente una configurazione simile alla fase 1, ma con impostazioni più elevate per determinati parametri, come passaggi/epoche di addestramento e numero di canali.
- Criteri di arresto (il numero di epoche).
Analizza le metriche dei report e/o visualizza le architetture per ottenere insight.
Un esperimento di ricerca dell'architettura può essere seguito da un esperimento di ricerca dello scale-up, seguito anche da un esperimento di ricerca dell'augmentation.
Ordine di lettura della documentazione
- (Obbligatorio) Configura l'ambiente
- (Obbligatorio) Tutorial
- (Obbligatorio solo per i clienti PyTorch) Addestramento efficiente di PyTorch con i dati cloud
- (Obbligatorio) Best practice e flusso di lavoro suggerito
- (Obbligatorio) Progettazione di attività proxy
- (Obbligatorio solo se utilizzi trainer predefiniti) Come utilizzare spazi di ricerca predefiniti e un trainer predefinito
Riferimenti
- Using Machine Learning to Explore Neural Network Architecture
- MnasNet: Towards Automating the Design of Mobile Machine Learning Models
- EfficientNet: Improving Accuracy and Efficiency through AutoML and Model Scaling
- NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection
- SpineNet: Learning Scale-Permuted Backbone for Recognition and Localization
- RandAugment