Con l'espansione continua della potenza di calcolo, il modo di generare candidati è cambiato radicalmente. In passato, le soluzioni candidate dipendevano spesso dall'enumerazione manuale o da un singolo output del modello; oggi,l'esplorazione parallela su GPU,la costruzione strutturata tramite grandi modelliela codifica e mutazione assistite dal modellohanno ampliato insieme le fonti dei candidati. La domanda centrale non è più solo «se sia possibile generare una risposta», ma «quali cambiamenti possono essere generati, osservati, conservati ed ereditati».
Le tre nuove fonti di generazione dei candidati
- Esplorazione parallela su GPU:Numerose possibilità vengono esplorate contemporaneamente; la generazione dei candidati passa dal tentativo ed errore seriale alla ricerca parallela nello spazio. Ad esempio, nello spazio dei parametri si campionano simultaneamente migliaia di punti e li si valutano in parallelo.
- Costruzione strutturata tramite grandi modelli:I grandi modelli sono in grado di comprendere linguaggio naturale e codice, costruendo soluzioni candidate dalla struttura complessa, non limitandosi a generare risposte testuali. Possono produrre programmi completi, casi di test o configurazioni di sistema.
- Codifica e mutazione assistite dal modello:La codifica e le modalità di mutazione manuali iniziano a essere generate con la partecipazione del modello. Le fonti dei candidati si ampliano dalle regole scritte dall'uomo alle regole e strutture generate dal modello, ad esempio facendo proporre al modello nuovi operatori di mutazione o strategie di codifica.
Definizione dei confini prima di entrare nell'evoluzione
Prima che i candidati entrino nell'evoluzione, è necessario definire chiaramente i seguenti confini:
- Quali oggetti è consentito modificare:Determinare gli oggetti evolvibili: la struttura del codice, gli iperparametri o l'intera architettura?
- Quali risultati possono essere osservati:Definire metriche osservabili, come accuratezza, latenza, consumo di risorse, ecc.
- Quali criteri stabiliscono che un cambiamento debba essere conservato:Stabilire criteri di conservazione, di norma una funzione di valutazione multi-obiettivo o una soglia.
Strategia di valutazione a livelli
La valutazione deve essere a livelli:le valutazioni parallelizzabili vanno parallelizzate il più possibile;le valutazioni costose vanno ridotte tramite modelli surrogati. Ad esempio, le metriche di prestazione semplici possono essere calcolate in parallelo su GPU, mentre le valutazioni costose che richiedono interazione con l'ambiente reale vengono approssimate con modelli surrogati, ampliando così lo spazio di ricerca con una potenza di calcolo limitata.
Identificazione delle strutture evolvibili e conservazione dei risultati
È necessario identificare quali strutture nei metodi esistenti possono essere ulteriormente evolute, invece di limitarsi a regolare i parametri numerici. Ad esempio, considerare come oggetti mutabili le modalità di connessione tra moduli in una rete neurale e la struttura del flusso di controllo del codice. Allo stesso tempo, occorre conservare codice, test e prove di validazione, affinché il lavoro successivo non debba ricominciare da zero, evitando duplicazioni di sforzo.
Connessione al ciclo EvoX
Quando i confini sopra descritti sono chiari, il compito può essere connesso al ciclo EvoX:Il modello propone candidati,Gli strumenti eseguono i cambiamenti,L'ambiente restituisce feedback,Il meccanismo evolutivo completa la selezione,Il Runtime organizza il calcolo,il sistema persistente eredita i risultati che hanno superato la verifica. In questo modo, i componenti intelligenti dispersi si accumulano in modo continuo, formando un sistema in costante evoluzione.
