O motor neuronal
Uma pequena rede treinada apenas com os vossos próprios dados propõe decisões de rotina com uma probabilidade e uma razão. As regras são donas das faixas de ação, as salvaguardas são aplicadas em código depois da rede, e as penalizações ficam para sempre em modo assistido.
O que decide
Uma rede multi-cabeça (um tronco ReLU com uma cabeça sigmoide por decisão, cerca de dois mil parâmetros, NumPy puro, pesos entregues num único ficheiro com versão) responde a cinco perguntas:
- As características são linhas de base comportamentais: z-scores face ao histórico de 30 dias da própria pessoa, atraso relativo aos pares, contexto de calendário. Os identificadores brutos de colaborador e as taxas históricas de anulação são deliberadamente excluídos, para que o modelo não possa aprender que uma determinada pessoa é sempre perdoada.
| flag_checkin | um administrador quereria este check-in assinalado? |
|---|---|
| uphold_strike | um administrador não reverteria esta penalização? (nunca automatizado) |
| auto_approve_pto | um administrador aprovaria este pedido de ausência? |
| nudge_effective | um lembrete agora produzirá um check-in em 30 minutos? |
| noshow_risk | esta pessoa vai faltar por completo ao check-in de hoje? |
Modos e faixas
Cada ponto de decisão regista as características, a ação da regra e, mais tarde, o resultado. Esse registo é o conjunto de treino. O modo efetivo é definido globalmente e pode ser substituído por cabeça e por equipa.
- Faixa automática: probabilidade igual ou superior a 0.85 (neural.auto_threshold). Faixa de revisão: 0.40 a 0.85 (neural.review_low). Abaixo disso, nenhuma ação.
- Qualquer falha no percurso neuronal degrada para a decisão da própria regra; nunca pode quebrar um percurso de envio do bot.
neural.mode neural.mode_auto_approve_pto neural.auto_threshold neural.review_low neural.max_actions_per_week neural.min_tenure_days
| off | apenas registo; as regras decidem |
|---|---|
| shadow | guarda também a probabilidade calibrada do modelo; não altera nada |
| assist | as decisões na faixa de revisão surgem numa fila de administração |
| auto | uma decisão na faixa automática com todas as salvaguardas cumpridas é tomada, registada e pode ser desfeita |
Salvaguardas, aplicadas em código
Cada decisão automática é registada com a sua probabilidade e a razão, anunciada aos administradores como feita, em vez de colocada como pergunta, e é reversível. A aprovação ou recusa de um administrador no chat torna-se a etiqueta de verdade para essa decisão.
- As penalizações nunca são emitidas de forma autónoma; uphold_strike fica limitado a assistido, sejam quais forem as definições.
- Ninguém na lista de quem nunca recebe mensagens diretas é alvo de ação, seja qual for a probabilidade.
- No máximo cinco ações automáticas por colaborador por semana, por defeito.
- Nenhuma ação sobre quem tem menos de 14 dias de antiguidade; ainda não há linha de base.
- Se mais de metade dos pares de uma pessoa estiver atrasada hoje, todas as ações relacionadas com atrasos são suprimidas: isso é uma falha, não má conduta. Um colaborador atrasado sozinho nunca conta como a sua própria evidência.
- A aprovação automática de ausências limita-se a dias de baixa e meios-dias, nunca concede ausências além do saldo, nunca toca num pedido retroativo, e pode ser bloqueada enquanto o requerente ainda tiver tarefas abertas (pto.require_handover). As férias vão sempre para um humano.
- Uma verificação de salvaguarda que dê erro falha de forma fechada.
Treino
- Os resultados etiquetam-se a si próprios de hora a hora: um lembrete é etiquetado consoante um check-in se lhe seguiu em 30 minutos; o risco de não comparência consoante o dia terminou com um check-in; uma penalização só é um positivo fraco após 72 horas sem reversão e com evidência de que um administrador esteve efetivamente ativo.
- Duas vezes por dia (13:00 e 19:00 UTC) o histórico é preenchido, um candidato é treinado e comparado com o campeão. Os candidatos que nunca foram promovidos são reformados ao fim de sete dias; os ficheiros ficam em disco, para que a reversão seja sempre possível.
- A arquitetura é escolhida pela contagem de etiquetas, não por ambição: abaixo de 300 linhas recusa treinar; abaixo de 1500 é regressão logística; abaixo de 5000 uma camada oculta; além disso, duas. As divisões são temporais, nunca aleatórias.
- Um candidato melhor é promovido automaticamente apenas enquanto o modo ainda for sombra; assim que o modelo pode agir, a promoção é um clique humano. Cada troca é auditada.
Monitor de deriva
Todas as manhãs às 07:00 correm duas verificações de saúde. A deriva de características compara os últimos 14 dias de vetores de características registados com as estatísticas de treino do campeão; qualquer característica cuja média se tenha deslocado mais de meio desvio-padrão de treino é nomeada num alerta aos administradores. A vigilância de ciclo de retroalimentação dispara quando um colaborador absorve mais de 40% das decisões positivas em 14 dias, porque isso é um ciclo a formar-se, não um mau colaborador.
Sinais sobre pessoas
A página Neural traz também análises sobre pessoas determinísticas e explicáveis, sem modelo algum: as verdadeiras etiquetas de saída são demasiado raras para que uma probabilidade treinada seja honesta. Cada pontuação é uma soma ponderada de fatores evidenciados, comparada com a linha de base da própria pessoa (os 14 dias recentes face às 6 semanas anteriores), nunca com colegas.
- O risco de saída (0 a 100: baixo, vigilância, elevado, alto) e um índice de fidelização (novo, em construção, sólido, forte, excecional; abaixo de 90 dias lê-se sempre novo) trazem cada um a sua lista de fatores.
- A tolerância pós-ausência e a deteção de mudança de horário suprimem os falsos positivos clássicos; as pontuações sem confiança nunca alertam.
- Reservado a administradores e consultivo: nada aqui age, envia mensagens a um colaborador, aparece num relatório de colaborador ou toca no salário. Os alertas vão para o centro de notificações de administração, deduplicados a um por pessoa por 14 dias.
neural.drift_recent_days neural.drift_baseline_days neural.quitrisk_alert_band
| Queda ou pico de horas | vigilância a 25%, alerta a 40% |
|---|---|
| Atrasos a aumentar | vigilância a +20 pontos, alerta a +40 |
| Queda de progresso | vigilância a 25%, alerta a 50% |
| Mais lento a responder | vigilância a 20 pontos, alerta a 35 |
| Eficiência a descer | declive de oito semanas, vigilância a 1.5 por semana, alerta a 3 |
| Ausência longa agendada | apenas contexto, zero pontos de risco |
| Consumo acelerado de ausências | oito ou mais dias úteis em dois ou mais blocos em 60 dias |