LançamentoAnálise · No radarHabr AI→ original

Editor passou 30 entrevistas pelo Claude: as citações são fiéis, mas o modelo nunca dá o veredicto «não assista»

Um jornalista da Pressfeed pegou os dados do HackerTube de Karpathy e pediu ao Claude Sonnet que escrevesse fichas em russo para 30 entrevistas. O código conferiu as citações com as transcrições: 26 coincidiram exatamente e 4 quase. Mas o modelo inventou trechos do restante do texto e não deu o veredicto «a ficha basta» a nenhuma entrevista longa.

Processado por IA de Habr AI; editado por Hamidun News
Editor passou 30 entrevistas pelo Claude: as citações são fiéis, mas o modelo nunca dá o veredicto «não assista»
Fonte: Habr AI. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalHabr AI ↗
Editor-chefe
Dado-chave #1Citações e marcações de tempo são verificadas por código; o resto do texto precisa ser revisado
Dado-chave #2O modelo inventou a falência de um entrevistado e confundiu datas
Dado-chave #3Sem raciocínio, uma ficha custa cerca de 1000 tokens e 20 segundos

Andrej Karpathy montou em um fim de semana o HackerTube: uma vitrine de 6454 vídeos que os usuários do Hacker News indicam uns aos outros há anos. O fundador da Pressfeed e editor da revista «Signal» decidiu criar com os mesmos dados um produto diferente: não um link para o vídeo, mas uma ficha em russo que se lê em um minuto e responde se vale a pena abrir o vídeo. Os dados estão sob a licença ODC-By, e forks são bem-vindos.

A tarefa é familiar a quem já construiu um pipeline com LLM: o modelo gera um texto animado, mas só parte dele pode ser verificada automaticamente. O mais útil nesta história é justamente onde passa a fronteira do verificável.

Como funciona o pipeline

Dos 6454 vídeos, o autor ficou com entrevistas e podcasts: 435. Depois de remover notícias de um dia e vídeos que apenas mencionavam o assunto, sobraram 310, dos quais 30 foram escolhidos manualmente. Tudo roda localmente em Python, sem filas nem bancos de dados. O yt-dlp baixa as legendas, que são divididas em blocos de cerca de um minuto com marcações de tempo. Os blocos, junto com comentários do Hacker News, vão para o Claude Sonnet, que devolve um JSON: quem fala, três ideias principais, uma citação, um veredicto. Em seguida o código verifica as afirmações do modelo e o Python gera páginas estáticas para o nginx.

O que o código verificou e o que não conseguiu

A regra principal: o modelo não pode simplesmente afirmar que o entrevistado disse algo. O código procura a citação em inglês na transcrição. Se coincide caractere por caractere, o status é «exata». Se encontra um trecho muito parecido (ratio de no mínimo 0,85), «quase». Se não encontra nada, o modelo ganha uma segunda tentativa e, depois disso, a citação simplesmente não é exibida. Das 30 citações, 26 coincidiram exatamente e 4 quase; nenhuma precisou ser descartada. As marcações de tempo funcionam do mesmo modo: só é aceito o número de um bloco que realmente exista na transcrição.

Mas o restante do texto não pode ser checado assim, e na revisão manual apareceram três tipos de problemas.

Primeiro: um fato inventado. O modelo atribuiu a Chris Sacca uma falência pessoal, embora na transcrição ele diga o contrário: recusou a falência e pagou a dívida por conta própria. As palavras «dívida», «milhões» e «responsabilidade» apareciam próximas, e o modelo completou a história do modo como essas histórias costumam terminar.

Segundo: o tempo. A conversa de Karpathy com Lex Fridman foi descrita como publicada «quando o ChatGPT acabava de surgir», embora o vídeo tenha sido enviado em 29 de outubro de 2022, um mês antes do lançamento.

Terceiro, e o mais frequente: superlativos bonitos e inverificáveis como «a única entrevista longa» ou «não está documentado em nenhum outro lugar». No mínimo cinco em 30 fichas. A conclusão do autor vale ser lembrada: deve-se suspeitar não de histórias estranhas, mas de generalizações lisas. A história do computador de xadrez confiscado de Ken Thompson soava absurda, mas era verdadeira.

O modelo não sabe dizer «não assista»

Cada ficha tem um veredicto: assistir inteiro, assistir a um trecho ou a ficha basta. Na primeira passada o modelo deu 0 «inteiro», 25 «trecho» e 5 «a ficha basta», e os cinco foram para vídeos com menos de cinco minutos. Depois de endurecer o prompt (trecho de no máximo 25 minutos, «basta» para cerca de um em cada três vídeos, regeneração em caso de violação), piorou: «a ficha basta» desapareceu por completo, e trechos de uma hora sobreviveram à nova solicitação. Os quatro veredictos «basta» finais foram atribuídos por uma pessoa: a Gates, Hinton, Hotz e Sacca. O autor observa com honestidade que ninguém reassistiu aos vídeos inteiros.

Quanto custa

Com raciocínio, o modelo gasta de 10 a 20 mil tokens de saída e de 2 a 5 minutos por ficha, mas só algumas fichas foram verificadas. Sem raciocínio, uma ficha custa cerca de mil tokens e 20 segundos. Uma passada pelos 30 vídeos em três threads leva cerca de 5 minutos e cerca de 640 mil tokens de entrada. O autor escolheu o segundo modo mais revisão manual.

O que tirar disso

Se você constrói um pipeline parecido, separe a saída do modelo em verificável e não verificável. Para o primeiro, escreva verificações determinísticas: busca de citações, validação de índices e intervalos. Para o segundo, inclua uma pessoa e procure separadamente palavras como «único», «pela primeira vez» e «em nenhum outro lugar». Decisões com risco de censura, como «isto não vale o seu tempo», é melhor não delegar ao modelo: ele vai desviar delas com suavidade, por mais que você ajuste o prompt.

Outra conclusão paralela: o viés dos dados de origem é herdado. O ranking de Karpathy premia conselhos repetidos há muito tempo, por isso o vídeo mais recente tem três anos e quase metade tem dez anos ou mais. Para clássicos isso não é problema, mas para temas atuais é preciso outra seleção.

História

Perguntas frequentes sobre a notícia

Como funciona o pipeline?

Dos 6454 vídeos, o autor ficou com entrevistas e podcasts: 435. Depois de remover notícias de um dia e vídeos que apenas mencionavam o assunto, sobraram 310, dos quais 30 foram escolhidos manualmente. Tudo roda localmente em Python, sem filas nem bancos de dados. O yt-dlp baixa as legendas, que são divididas em blocos de cerca de um minuto com marcações de tempo.

O que o código verificou e o que não conseguiu?

A regra principal: o modelo não pode simplesmente afirmar que o entrevistado disse algo. O código procura a citação em inglês na transcrição. Se coincide caractere por caractere, o status é «exata». Se encontra um trecho muito parecido (ratio de no mínimo 0,85), «quase». Se não encontra nada, o modelo ganha uma segunda tentativa e, depois disso, a citação simplesmente não é exibida. Das 30 citações, 26 coincidiram exatamente e 4 quase; nenhuma precisou ser descartada.

O que se sabe sobre O modelo não sabe dizer «não assista»?

Cada ficha tem um veredicto: assistir inteiro, assistir a um trecho ou a ficha basta. Na primeira passada o modelo deu 0 «inteiro», 25 «trecho» e 5 «a ficha basta», e os cinco foram para vídeos com menos de cinco minutos. Depois de endurecer o prompt (trecho de no máximo 25 minutos, «basta» para cerca de um em cada três vídeos, regeneração em caso de violação), piorou: «a ficha basta» desapareceu por completo, e trechos de uma hora sobreviveram à nova solicitação.

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
O que você acha?
Carregando comentários…