Il motore neurale
Una piccola rete addestrata solo sui vostri dati propone decisioni di routine con una probabilità e una motivazione. Le regole possiedono le fasce di azione, le salvaguardie sono applicate nel codice dopo la rete, e i richiami restano per sempre in modalità assist.
Cosa decide
Una sola rete multi-testa (un tronco ReLU con una testa sigmoide per decisione, circa duemila parametri, puro NumPy, pesi forniti come un unico file versionato) risponde a cinque domande:
- Le feature sono baseline comportamentali: z-score rispetto alla storia a 30 giorni della persona stessa, ritardo relativo ai colleghi, contesto di calendario. Gli identificativi grezzi dei dipendenti e i tassi storici di override sono deliberatamente esclusi, così il modello non può imparare che una certa persona viene sempre perdonata.
| flag_checkin | un admin vorrebbe che questo check-in fosse segnalato? |
|---|---|
| uphold_strike | un admin non annullerebbe questo richiamo? (mai automatizzato) |
| auto_approve_pto | un admin approverebbe questa richiesta di ferie? |
| nudge_effective | un sollecito adesso produrrà un check-in entro 30 minuti? |
| noshow_risk | questa persona salterà del tutto il check-in oggi? |
Modalità e fasce
Ogni punto decisionale registra le feature, l'azione della regola e, in seguito, l'esito. Quel registro è il set di addestramento. La modalità effettiva è impostata globalmente e può essere sovrascritta per testa e per team.
- Fascia auto: probabilità pari o superiore a 0.85 (neural.auto_threshold). Fascia di revisione: da 0.40 a 0.85 (neural.review_low). Sotto, nessuna azione.
- Qualsiasi errore nel percorso neurale ripiega sulla decisione della regola stessa; non può mai interrompere un percorso di invio del bot.
neural.mode neural.mode_auto_approve_pto neural.auto_threshold neural.review_low neural.max_actions_per_week neural.min_tenure_days
| off | solo registrazione; decidono le regole |
|---|---|
| shadow | memorizza anche la probabilità calibrata del modello; non cambia nulla |
| assist | le decisioni nella fascia di revisione compaiono in una coda per gli admin |
| auto | una decisione nella fascia auto con tutte le salvaguardie superate viene presa, registrata e può essere annullata |
Salvaguardie, applicate nel codice
Ogni decisione automatica viene registrata con la sua probabilità e la motivazione, comunicata agli admin come fatta invece che posta come domanda, ed è reversibile. Un'approvazione o un rifiuto di un admin in chat diventa l'etichetta di verità per quella decisione.
- I richiami non vengono mai emessi autonomamente; uphold_strike si ferma ad assist comunque siano impostati i parametri.
- Nessuno nella lista never-DM viene toccato, qualunque sia la probabilità.
- Al massimo cinque azioni automatiche per dipendente a settimana per impostazione predefinita.
- Nessuna azione su chi ha meno di 14 giorni di anzianità; non c'è ancora una baseline.
- Se più della metà dei colleghi di una persona è in ritardo oggi, tutte le azioni legate al ritardo vengono soppresse: è un disservizio, non una mancanza. Un dipendente in ritardo da solo non conta mai come evidenza di sé stesso.
- L'approvazione automatica delle ferie è limitata a giorni di malattia e mezze giornate, non concede mai ferie oltre il saldo, non tocca mai una richiesta retrodatata e può essere bloccata finché il richiedente ha ancora attività aperte (pto.require_handover). Le vacanze vanno sempre a una persona.
- Un controllo di salvaguardia che va in errore fallisce in modo chiuso.
Addestramento
- Gli esiti si etichettano da soli ogni ora: un sollecito è etichettato in base al fatto che un check-in sia seguito entro 30 minuti; il rischio di assenza in base al fatto che la giornata si sia chiusa con un check-in; un richiamo è un positivo debole solo dopo 72 ore senza annullamento e con evidenza che un admin fosse effettivamente attivo.
- Due volte al giorno (13:00 e 19:00 UTC) la storia viene ricostruita, un candidato viene addestrato e confrontato con il campione. I candidati mai promossi vengono ritirati dopo sette giorni; i file restano su disco, così il rollback è sempre possibile.
- L'architettura è scelta in base al numero di etichette, non all'ambizione: sotto 300 righe si rifiuta di addestrare; sotto 1500 è una regressione logistica; sotto 5000 uno strato nascosto; oltre, due. Le suddivisioni sono temporali, mai casuali.
- Un candidato migliore viene promosso automaticamente solo finché la modalità è ancora shadow; una volta che il modello può agire, la promozione è un clic umano. Ogni sostituzione è tracciata.
Monitor di deriva
Ogni mattina alle 07:00 girano due controlli di salute. La deriva delle feature confronta gli ultimi 14 giorni di vettori di feature registrati con le statistiche di addestramento del campione; ogni feature la cui media si è spostata di più di mezza deviazione standard di addestramento viene nominata in un avviso agli admin. La sorveglianza del ciclo di feedback scatta quando un solo dipendente assorbe più del 40% delle decisioni positive in 14 giorni, perché quello è un ciclo che si sta formando, non un cattivo dipendente.
Segnali sulle persone
La pagina Neural contiene anche analisi deterministiche e spiegabili sulle persone senza alcun modello: le etichette reali di abbandono sono troppo rare perché una probabilità addestrata sia onesta. Ogni punteggio è una somma ponderata di fattori documentati, confrontata con la baseline della persona stessa (ultimi 14 giorni contro le 6 settimane precedenti), mai con i colleghi.
- Rischio di abbandono (da 0 a 100: basso, attenzione, elevato, alto) e un indice di fedeltà (nuovo, in costruzione, solido, forte, eccezionale; sotto i 90 giorni si legge sempre nuovo) portano ciascuno la propria lista di fattori.
- La tolleranza post-ferie e il rilevamento dei cambi di orario sopprimono i classici falsi positivi; i punteggi non affidabili non generano mai avvisi.
- Riservato agli admin e consultivo: nulla qui agisce, scrive a un dipendente, compare in un report del dipendente o tocca la retribuzione. Gli avvisi vanno al centro notifiche degli admin, deduplicati a uno per persona ogni 14 giorni.
neural.drift_recent_days neural.drift_baseline_days neural.quitrisk_alert_band
| Calo o picco di ore | attenzione al 25%, avviso al 40% |
|---|---|
| Ritardi in aumento | attenzione a +20 punti, avviso a +40 |
| Calo del progresso | attenzione al 25%, avviso al 50% |
| Risposte più lente | attenzione a 20 punti, avviso a 35 |
| Efficienza in calo | pendenza a otto settimane, attenzione a 1.5 a settimana, avviso a 3 |
| Lunga assenza programmata | solo contesto, zero punti di rischio |
| Ferie bruciate | otto o più giorni lavorativi in due o più blocchi in 60 giorni |