Nella base aperta e disaccoppiata EvoX,il modulo di workflowsi occupa di orchestrare la suddivisione in fasi delle iterazioni evolutive, l'ordine di esecuzione e le modalità di collegamento,il modulo di monitoraggiosi occupa di raccogliere in tempo reale stati e metriche durante l'esecuzione. Insieme, trasformano il "ciclo evolutivo di una scatola nera sconosciuta" in un processo controllato, osservabile, valutabile, modificabile e riproducibile. In una frase: il workflow risponde a "in quale ordine eseguire", il monitoraggio risponde a "a che punto siamo, come sta andando, è il caso di intervenire".
Workflow: orchestrazione dell'ordine e dei confini di fase
L'oggetto dell'orchestrazione del workflow sonoi passaggi e le dipendenze, non la logica algoritmica in sé. Definisce l'ordine, gli archi di ritorno e i confini di fase di "inizializzazione → valutazione → selezione → mutazione/crossover → aggiornamento dello stato → criterio di terminazione", e collega il modulo algoritmico e il modulo del problema tramite un'interfaccia unificata. La chiave dell'orchestrazione sta nellagranularità e nei confini: considerare "una valutazione batch" come una fase schedulabile nel suo insieme, anziché procedere individuo per individuo; il confine di fase è al tempo stesso punto di campionamento del monitoraggio e punto di commutazione dello scheduling.
- Ordine: stabilire la sequenza delle fasi e quando tornare alla "valutazione" per formare il ciclo principale.
- Archi di ritorno: definire quali condizioni attivano l'iterazione successiva e quali fanno uscire dal ciclo.
- Confine di fase: è sia un punto di commutazione del workflow, sia un punto di campionamento naturale per il monitoraggio.
Monitoraggio: raccogliere lo stato, esporre le metriche, guidare le decisioni
Il modulo di monitoraggio è il livello diraccolta ed esposizione dello stato di esecuzione: tiene traccia in modo continuo di dimensione della popolazione, numero di valutazioni, distribuzione degli obiettivi/fitness, convergenza e diversità, tempo per generazione e metriche di risorsa come memoria GPU/throughput. Ma lo scopo dell'osservazione non è registrare, bensìdecidere—— le metriche servono ad attivare terminazione, early stopping, riavvio, cambio di parametri o di strategia, formando così il ciclo chiuso "monitoraggio → valutazione → intervento", che è esattamente il punto in cui si realizza la controllabilità del processo evolutivo.
La controllabilità richiede inoltre che lo stato siaserializzabile: il salvataggio e il ripristino dei checkpoint consentono di riprendere un'evoluzione di lunga durata dopo un'interruzione, di localizzare i fallimenti e di riprodurre gli esperimenti, ed è il presupposto dell'affidabilità ingegneristica. Allo stesso tempo, il disaccoppiamento richiede che il monitoraggio sia montato tramitecallback/hook, senza invadere il modulo algoritmico e quello del problema; di conseguenza backend di monitoraggio diversi come console, log e pannelli grafici sono intercambiabili, senza modificare l'algoritmo principale.
Tornando all'esempio: nell'evoluzione tensorizzata su GPU, il workflow schedula la "valutazione batch" come un'unica fase, e il modulo di monitoraggio registra all'interno della stessa fase, per generazione, fitness migliore/media, diversità della popolazione e tempo per generazione; quando le metriche ristagnano per N generazioni consecutive, attiva il criterio di terminazione o passa a una strategia con perturbazioni maggiori, salvando contemporaneamente il checkpoint, così che l'evoluzione sia riproducibile e possa riprendere dal punto di interruzione.
