Tópicos populares
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.

Andrej Karpathy
Construção @EurekaLabsAI. Anteriormente Diretor de IA @ Tesla, equipe fundadora @ OpenAI, CS231n/PhD @ Stanford. Eu gosto de treinar grandes redes neurais profundas.
Adoro a expressão “comida para pensar” como uma capacidade cognitiva concreta e misteriosa que os humanos experienciam, mas que os LLMs não têm equivalente.
Definição: “algo que vale a pena pensar ou considerar, como uma refeição mental que nutre a sua mente com ideias, percepções ou questões que requerem uma reflexão mais profunda. É usada para tópicos que desafiam a sua perspetiva, oferecem uma nova compreensão ou fazem você ponderar questões importantes, atuando como uma estimulação intelectual.”
Portanto, na linguagem dos LLMs, é uma sequência de tokens tal que, quando usada como prompt para uma cadeia de pensamento, as amostras são recompensadoras de se atender, através de alguma função de recompensa intrínseca ainda não descoberta. Obcecado com a forma que isso assume. Comida para pensar.
133
Novo post rápido: Avaliação automática de discussões do Hacker News de uma década atrás com retrospectiva
Peguei todos os 930 artigos+discussões da página inicial do Hacker News de dezembro de 2015 e pedi à API de Pensamento GPT 5.1 para fazer uma análise retrospectiva para identificar os comentários mais/menos perspicazes. Isso levou cerca de 3 horas para codificar e cerca de 1 hora e $60 para executar. A ideia foi inspirada pelo artigo do HN de ontem, onde foi pedido ao Gemini 3 para alucinar a página inicial do HN uma década à frente.
De forma mais geral:
1. a análise retrospectiva sempre me fascinou como uma maneira de treinar seu modelo de previsão futura, então ler os resultados é realmente interessante e
2. vale a pena contemplar como será quando as mentes brilhantes de LLM do futuro puderem fazer esse tipo de trabalho de forma muito mais barata, rápida e melhor. Cada pedacinho de informação que você contribui para a internet pode (e provavelmente será) examinado em grande detalhe se for "gratuito". Daí também meu tweet anterior de um tempo atrás - "seja bom, os futuros LLMs estão observando".
Parabéns às 10 principais contas pcwalton, tptacek, paulmd, cstross, greglindahl, moxie, hannob, 0xcde4c3db, Manishearth e johncolanduoni - o GPT 5.1 Thinking considerou seus comentários como os mais perspicazes e esclarecedores de todos os comentários do HN em dezembro de 2015.
Links:
- Muito mais detalhes no meu post do blog
- Repositório do GitHub do projeto se você quiser brincar
- As páginas de resultados reais para seu prazer de leitura

642
No episódio de hoje de horror na programação...
Nos documentos do Python sobre a função random.seed(), somos informados
"Se a é um int, ele é usado diretamente." [1]
Mas se você usar 3 ou -3 como semente, na verdade você obtém o mesmo objeto rng, produzindo os mesmos fluxos. (TIL). No nanochat, eu estava usando o sinal como uma (o que eu pensava ser) maneira inteligente de obter diferentes sequências de rng para divisões de treino/teste. Daí um bug complicado porque agora treino=teste.
Encontrei o código CPython responsável em cpython/Modules/_randommodule.c [2], onde na linha 321 vemos em um comentário:
"Este algoritmo depende do número ser sem sinal. Então: se o argumento é um PyLong, use seu valor absoluto." seguido por
n = PyNumber_Absolute(arg);
que chama explicitamente abs() na sua semente para torná-la positiva, descartando o bit de sinal.
Mas este comentário também está errado/misleading. Nos bastidores, o Python chama o algoritmo Mersenne Twister MT19937, que no caso geral tem 19937 bits de estado (não zero). O Python pega seu int (ou outros objetos) e "distribui" essa informação por esses bits. Em princípio, o bit de sinal poderia ter sido usado para aumentar os bits de estado. Não há nada sobre o algoritmo que "depende do número ser sem sinal". Uma decisão foi tomada para não incorporar o bit de sinal (o que, na minha opinião, foi um erro). Um exemplo trivial poderia ter sido mapear n -> 2*abs(n) + int(n < 0).
Finalmente, isso nos leva ao contrato do random do Python, que também não está totalmente descrito nos documentos. O contrato que é mencionado é que:
mesma semente => mesma sequência.
Mas nenhuma garantia é dada de que sementes diferentes produzem sequências diferentes. Portanto, em princípio, o Python não faz promessas de que, por exemplo, seed(5) e seed(6) são fluxos rng diferentes. (Embora isso seja comumente assumido implicitamente em muitas aplicações.) De fato, vemos que seed(5) e seed(-5) são fluxos idênticos. E você provavelmente não deveria usá-los para separar seus comportamentos de treino/teste em aprendizado de máquina. Um dos mais divertidos erros de programação que encontrei recentemente. Nos vemos no próximo episódio.
[1]
[2]

487
Top
Classificação
Favoritos
