Eu Não Consegui Reproduzir o Meu Próprio Melhor Resultado

O resultado mais assombroso que já produzi foi um que nunca mais consegui reproduzir. Houve uma única execução, logo no início, que retornou um número muito melhor do que qualquer coisa que eu tinha visto antes. Fiquei eufórico. E então, quando fui construir em cima dele, ele havia sumido — e eu não tinha anotado nem de longe o suficiente para algum dia conseguir refazer o caminho de volta. Passei as semanas seguintes perseguindo um fantasma que eu mesmo havia criado e depois perdido por descuido.

Esse continua sendo um dos fracassos mais instrutivos de todo o projeto, porque a lição não tinha nada a ver com mercados ou modelos. Tinha a ver com a diferença entre fazer ciência e meramente produzir números.

O resultado que eu não conseguia recuperar

Nos primeiros dias, antes de ter qualquer disciplina de verdade, eu conduzia os experimentos de forma frouxa. Eu mudava várias coisas de uma vez, dava uma olhada na saída, mudava mais algumas e seguia em frente. Eu não registrava com cuidado exatamente qual configuração havia produzido qual resultado; eu só iterava rápido e confiava que iria me lembrar das partes importantes. Não me lembrei.

Então, quando uma execução retornou dramaticamente melhor do que as demais, eu tinha um problema cujo tamanho eu ainda não compreendia. Fui reproduzi-la, para confirmá-la e construir em cima dela — e não consegui. Reexecutei o que eu achava que eram as mesmas condições, mais ou menos, de memória. A mágica nunca mais esteve lá. Eu havia produzido algo genuinamente empolgante exatamente uma vez, e então o tranquei atrás de uma porta cuja chave eu havia jogado fora sem perceber.

Um resultado que você não consegue reproduzir não é um resultado

A constatação difícil, quando finalmente chegou, foi sombria e esclarecedora em igual medida. Um número que você não consegue reproduzir sob demanda não lhe diz quase nada. Aquele ótimo resultado foi uma melhoria real? Uma jogada de sorte dos dados aleatórios? Um bug que, naquela única vez, acabou me lisonjeando? Sem nenhuma forma de reexecutar as condições exatas que o produziram, eu não tinha como distinguir essas possibilidades.

E elas são coisas radicalmente diferentes. Uma é uma descoberta que vale a pena construir um ano de trabalho em cima. Outra é ruído que eu deveria esquecer imediatamente. Uma terceira é um erro que eu deveria caçar e corrigir. Elas haviam colapsado, na minha configuração desleixada, em um único número irreprodutível que poderia ser qualquer uma delas — e eu estava à beira de apostar um esforço sério nele. Um achado que você não consegue regenerar não é evidência. É um boato que você por acaso testemunhou.

O estado oculto que torna as coisas irreproduzíveis

O que eu havia deixado de apreciar é quantas coisas invisíveis silenciosamente determinam um resultado. A semente aleatória que inicializa tudo. A versão exata dos dados, até o que havia ou não havia sido limpo naquele dia. Cada valor na configuração. O estado preciso do código naquele momento específico, incluindo mudanças que eu não havia commitado em lugar nenhum. A ordem em que as coisas rodaram.

Mude qualquer um desses, mesmo que silenciosamente, mesmo que por acidente, e o resultado pode se alterar. Eu não havia fixado nenhum deles. Meu “experimento” era um caldo borbulhante de partes móveis, e eu vinha tratando sua saída como se fosse uma medição limpa e repetível tirada de um instrumento calibrado. Não era nada disso. Era um evento único em um sistema que eu não controlava por completo e não havia me dado o trabalho de registrar.

O determinismo é uma escolha que você precisa fazer

A verdade incômoda é que a reprodutibilidade não acontece sozinha. Ela não é o estado padrão de um sistema complexo; o padrão é o caos, a deriva e a irreprodutibilidade silenciosa. Se você quer ser capaz de rodar a mesma coisa duas vezes e obter a mesma resposta, você tem que projetar deliberadamente essa propriedade no sistema.

Isso significa fixar as sementes para que a aleatoriedade seja ao menos controlada. Versionar os dados para que você saiba precisamente em que treinou e testou. Registrar a configuração exata e o código exato junto a cada resultado, para que um número nunca seja órfão. Transformar uma execução em algo que você possa reexecutar de forma idêntica, de propósito, sempre que quiser. Nada disso é trabalho glamouroso. Tudo isso é a diferença entre ciência e adivinhação fundamentada disfarçada de ciência.

A disciplina tediosa que resolveu o problema

A cura, quando finalmente a adotei, era quase ofensivamente tediosa. Comecei a tratar cada experimento como algo que tinha de ser reconstruível a partir de um registro. Quais dados. Qual código. Quais configurações. O que produziu o quê. Se um resultado não estivesse atrelado a informação suficiente para regenerá-lo, então, no que dependesse de mim, o resultado não existia.

Isso parecia, no início, pura burocracia — uma sobrecarga atrapalhando o trabalho real e empolgante. Mas não era sobrecarga. Era exatamente aquilo que convertia o meu debater-se frenético e esquecível em algo que podia de fato acumular. Antes, cada resultado evaporava no instante em que eu seguia em frente. Depois, os resultados se empilhavam em um registro em que eu podia confiar, comparar e construir em cima. A burocracia era a ciência.

Por que isso importa mais aqui do que em quase qualquer outro lugar

Há uma razão pela qual essa disciplina é especialmente implacável de ignorar num domínio como este. O ambiente é extraordinariamente ruidoso, o que significa que o acaso está constantemente produzindo números lindos que não significam absolutamente nada. Os acasos felizes não são raros aqui; são uma garoa constante. Se você não consegue reproduzir um resultado, não tem como separar um sinal genuíno de um desses acidentes de sorte — e perseguir acidentes de sorte, confundindo-os com descobertas, é uma das maneiras mais eficientes que conheço de despejar meses de esforço no nada.

O melhor resultado irreproduzível é a isca perfeita. É exatamente o tipo de coisa que parece um avanço e é, muito mais frequentemente, apenas o ruído sorrindo para você uma única vez.

A lição mais profunda: confie nos registros, não nas memórias

O que eu acabei tirando disso foi uma profunda desconfiança de qualquer resultado que viva apenas na minha memória ou em uma captura de tela. A memória se edita sozinha. Ela arredonda para cima, esquece as ressalvas, lembra do número e perde as condições. Um resultado sem linhagem reconstruível não é um achado; é uma anedota, e anedotas são exatamente aquilo que este domínio usa para arruinar as pessoas.

Então agora a primeira pergunta que faço sobre qualquer resultado empolgante não é “quão bom ele é?”. É “eu consigo recuperá-lo, com precisão, sob demanda?”. Se a resposta for não, então não importa ainda quão bom ele pareceu, porque eu na verdade não sei o que tenho. Até que um resultado possa ser reproduzido, ele não é uma descoberta que me pertence. É apenas um número que eu vi certa vez, e números que eu vi certa vez não valem nada por aqui.

— Sem sinais, sem retornos, isto não é aconselhamento de investimento.