Tre giorni fa ho lasciato autoresearch a sintonizzare nanochat per ~2 giorni sul modello depth=12. Ha trovato ~20 modifiche che hanno migliorato la perdita di validazione. Ho testato queste modifiche ieri e tutte erano additive e trasferite a modelli più grandi (depth=24). Accumulando tutte queste modifiche, oggi ho misurato che il "Tempo per GPT-2" della classifica scende da 2,02 ore a 1,80 ore (~11% di miglioramento), questo sarà il nuovo ingresso nella classifica. Quindi sì, questi sono miglioramenti reali e fanno una differenza concreta. Sono leggermente sorpreso che il mio primo tentativo naive abbia già funzionato così bene su quello che pensavo fosse già un progetto abbastanza ben sintonizzato manualmente. Questo è un primo per me perché sono molto abituato a fare l'ottimizzazione iterativa dell'addestramento delle reti neurali manualmente. Ti vengono idee, le implementi, controlli se funzionano (migliore perdita di validazione), ti vengono nuove idee basate su quelle, leggi alcuni articoli per ispirazione, ecc. Questo è il pane quotidiano di ciò che faccio da 2 decenni. Vedere l'agente fare questo intero flusso di lavoro end-to-end e tutto da solo mentre lavorava attraverso circa 700 modifiche in modo autonomo è incredibile. Ha davvero esaminato la sequenza dei risultati degli esperimenti e l'ha usata per pianificare i successivi. Non è "ricerca" nuova e rivoluzionaria (ancora), ma tutti gli aggiustamenti sono "reali", non li avevo trovati manualmente in precedenza, e si accumulano e hanno effettivamente migliorato nanochat. Tra le cose più grandi, ad esempio: - Ha notato una svista che il mio QKnorm senza parametri non aveva un moltiplicatore di scala attaccato, quindi la mia attenzione era troppo diffusa. L'agente ha trovato moltiplicatori per affilarla, indicando un lavoro futuro. - Ha scoperto che i Value Embeddings gradiscono davvero la regolarizzazione e non ne stavo applicando alcuna (oops). - Ha trovato che la mia attenzione a bande era troppo conservativa (ho dimenticato di sintonizzarla). - Ha scoperto che i betas di AdamW erano tutti sballati. - Ha sintonizzato il programma di decadimento del peso. - Ha sintonizzato l'inizializzazione della rete. Questo è oltre tutta la sintonizzazione che ho già fatto nel corso di un buon periodo di tempo. Il commit esatto è qui, da questo "round 1" di autoresearch. Sto per avviare il "round 2", e in parallelo sto guardando come più agenti possono collaborare per sbloccare il parallelismo. Tutti i laboratori di frontiera LLM faranno questo. È la battaglia finale del boss. È molto più complesso su scala, ovviamente - non hai solo un singolo file train.py da sintonizzare. Ma farlo è "solo ingegneria" e funzionerà. Avvii uno sciame di agenti, li fai collaborare per sintonizzare modelli più piccoli, promuovi le idee più promettenti a scale sempre più grandi, e gli esseri umani (opzionalmente) contribuiscono ai margini. E più in generale, *qualsiasi* metrica che ti interessa e che è ragionevolmente efficiente da valutare (o che ha metriche proxy più efficienti come l'addestramento di una rete più piccola) può essere autoresearched da uno sciame di agenti. Vale la pena pensare se il tuo problema rientra anche in questo ambito.