À mesure que la puissance de calcul ne cesse de croître, la manière de générer des candidats a radicalement changé. Auparavant, les solutions candidates reposaient souvent sur une énumération manuelle ou une sortie unique du modèle ; aujourd'hui,l'exploration parallèle sur GPU,la construction structurée par grands modèlesetla participation des modèles à l'encodage et à la mutationélargissent ensemble les sources de candidats. La question centrale n'est plus simplement « peut-on générer une réponse », mais « quels changements peuvent être générés, observés, conservés et hérités ».
Les trois nouvelles sources de génération de candidats
- Exploration parallèle sur GPU :De nombreuses possibilités sont explorées simultanément ; la génération de candidats passe d'un essai-erreur séquentiel à une recherche parallèle dans l'espace. Par exemple, échantillonner simultanément des milliers de points dans l'espace des paramètres et les évaluer en parallèle.
- Construction structurée par grands modèles :Les grands modèles peuvent comprendre le langage naturel et le code, et construire des solutions candidates à la structure complexe, plutôt que de simplement générer des réponses textuelles. Ils peuvent produire des programmes complets, des cas de test ou des configurations système.
- Participation des modèles à l'encodage et à la mutation :L'encodage manuel et les méthodes de mutation commencent à être générés avec la participation des modèles. Les sources de candidats s'étendent des règles écrites par l'humain aux règles et structures générées par le modèle, par exemple en lui demandant de proposer de nouveaux opérateurs de mutation ou stratégies d'encodage.
Définition des frontières avant l'entrée en évolution
Avant que les candidats n'entrent en évolution, il faut clarifier les frontières suivantes :
- Quels objets peuvent être modifiés :Déterminer les objets évolutifs : s'agit-il de la structure du code, des hyperparamètres ou de l'architecture entière ?
- Quels résultats peuvent être observés :Définir les indicateurs observables, comme la précision, la latence, la consommation de ressources, etc.
- Quel critère détermine qu'un changement doit être conservé :Établir un critère de conservation, généralement une fonction d'évaluation multi-objectifs ou un seuil.
Stratégie d'évaluation par niveaux
L'évaluation doit être stratifiée :paralléliser autant que possible les évaluations parallélisables;réduire les évaluations coûteuses à l'aide de modèles substituts. Par exemple, les indicateurs de performance simples peuvent être calculés en parallèle sur GPU, tandis que les évaluations coûteuses nécessitant une interaction avec l'environnement réel sont approximées par des modèles substituts, élargissant ainsi la portée de la recherche sous une puissance de calcul limitée.
Identification des structures évolutives et conservation des acquis
Il faut identifier, parmi les méthodes existantes, les structures qui peuvent évoluer davantage, plutôt que de simplement ajuster des paramètres numériques. Par exemple, considérer la manière dont les modules d'un réseau de neurones sont connectés ou la structure du flux de contrôle du code comme objets mutables. En parallèle, il est essentiel de conserver le code, les tests et les preuves de validation, afin que la prochaine itération n'ait pas à repartir de zéro et d'éviter le travail redondant.
Intégration à la boucle EvoX
Lorsque ces frontières sont claires, la tâche peut être intégrée à la boucle EvoX :Le modèle propose des candidats,Les outils exécutent les changements,L'environnement renvoie un retour,Le mécanisme d'évolution effectue la sélection,Le Runtime organise le calcul,le système persistant hérite des acquis éprouvés. Ainsi, les composants intelligents dispersés s'accumulent en continu, formant un système en évolution permanente.
