Come si gioca?
Ogni giorno la sfida si articola su 5 round: per ogni round viene mostrato un prompt e 4 output
ottenuti passando lo stesso prompt a diversi modelli LLM. Per ognuno di questi output il
giocatore deve abbinare il modello che pensa lo abbia generato e se vuole, può anche cimentarsi
nell'abbinare il costo totale e/o il tempo complessivo e/o il numero di tokens consumati. Si può
modificare la scelta delle variabili da indovinare fino a quando non si fa submit del primo
round.
Tutti i modelli elencati in un round sono presenti: non ci sono quindi nomi di modelli assenti a
confondere la scelta. Per semplicità di interfaccia però, un modello può comunque venir
selezionato più volte. Tempi, token e costi potrebbero essere invece uguali su più modelli (in
quel caso la tendina mostra solo il set di valori unici possibili).
Per facilitare l'uso, è disponibile uno switch per preselezionare automaticamente le varie
tendine con l'etichetta "in mezzo" all'elenco di opzioni (quella subito oltre la metà in caso di
numero di opzioni pari). L'ordine dei modelli nelle tendine è randomizzato mentre i valori
numerici sono disposti in ordine numerico crescente.
Una volta fatto submit del round, viene presentato un confronto tra risposte e valori corretti
con i relativi punteggi.
Punteggio
Per ogni output di un round vengono calcolati diversi score
- identification score [sempre attivo]: 0 o 1000 se il modello è stato
identificato
correttamente;
- 🧩 tokens score [se attivato]: da 0 a 1000;
- 💰 cost score [se attivato]: da 0 a 1000;
- ⌛ time score [se attivato]: da 0 a 1000
Gli score dei valori numerici (cost, tokens, time), che potenzialmente potrebbero avere scale
diverse, sono calcolati come la media di due componenti:
- distanza in elenco: si calcola la distanza nella lista tra l'opzione scelta
e quella corretta;
- distanza 0: 1000 punti
- distanza 1: 500 punti
- distanza 2: 250 punti
- distanza 3: 125 punti
- errore relativo: 1000 * (1 - abs(risposta -
valore_corretto)/max(risposta,valore_corretto))
Il punteggio del round è calcolato come media degli score attivi ed il punteggio finale come
media dei punteggi dei round.
La scala cromatica per l'evidenziazione dei punteggi è:
| 🟪 |
viola |
0-249 |
| 🟥 |
rosso |
250-499 |
| 🟧 |
arancio |
500-749 |
| 🟨 |
giallo |
750-999 |
| 🟩 |
verde |
1000 |
Archivio
È disponibile anche una funzionalità di archivio, mostrata quando si completa il gioco del
giorno,
che permette di cimentarsi con i giochi dei giorni precedenti (se non ancora completati).
Dettagli tecnici
Le invocazioni ai modelli sono effettuate (con uno script python dedicato) utilizzando
OpenRouter come
provider, utilizzando l'endpoint api/v1/chat/completion,
specificando nell'header "X-OpenRouter-Cache-Clear": "true", per limitare impatti delle cache
nei parametri raccolti, ed usando come payload:
payload = {
"model": model,
"messages": [
{
"role": "user",
"content": prompt,
}
],
"usage": {
"include": True
},
"reasoning": {
"effort": "medium",
"summary": "concise"
}
}
Dalla response sono estratti i dati sui
tokens
totali, quelli sui
costi
e il generation-id utilizzato per fare la chiamata alle API di generation per ottenere dettagli sui
tempi
di esecuzione.