Con l’evoluzione dei modelli linguistici di grandi dimensioni (LLM) nel campo della programmazione, emerge la necessità di strumenti di valutazione più sofisticati. I benchmark tradizionali, come HumanEval e MBPP (Mostly Basic Python Problems), sebbene utili, spesso non riflettono la complessità dei problemi affrontati nello sviluppo software reale.
I benchmark esistenti tendono a focalizzarsi su compiti isolati e di base, come la scrittura di funzioni semplici. Tuttavia, nello sviluppo software quotidiano, i programmatori devono comprendere, riutilizzare e integrare codice esistente per risolvere problemi complessi. Questa discrepanza evidenzia la necessità di valutazioni che considerino la capacità dei modelli di gestire scenari più realistici.
Per affrontare queste sfide, ricercatori della Yale University e della Tsinghua University hanno sviluppato nuovi benchmark denominati HumanEval Pro e MBPP Pro. Questi estendono i dataset esistenti introducendo problemi che richiedono ai modelli di generare codice in grado di invocare se stesso, simulando così scenari di programmazione più complessi e realistici.
Un esempio tipico potrebbe essere la richiesta di scrivere una funzione che sostituisca tutte le occorrenze di un carattere in una stringa con un nuovo carattere. Il problema esteso potrebbe richiedere una funzione che sostituisca più caratteri con i rispettivi sostituti in una singola operazione, implicando una comprensione e manipolazione più profonda del codice.
I ricercatori hanno testato vari LLM, tra cui GPT-4, Claude, PaLM-2, LLaMA-2, CodeLLaMA e Mistral, utilizzando questi nuovi benchmark. I risultati hanno mostrato che, nonostante le elevate prestazioni su benchmark tradizionali, molti modelli faticano a risolvere problemi di codice auto-invocante, evidenziando la necessità di ulteriori miglioramenti per affrontare compiti di programmazione più complessi.