Medindo Semelhança
Dois cliques curtos. Uma pergunta: quão semelhantes eles parecem? Pode parecer trivial, mas não é, e eu aprendi isso do jeito mais difícil. Minha configuração: um clipe de referência, oito outros para serem classificados em relação a ele, todos de cachoeiras (mais sobre isso em um momento). Eu pensei que isso seria um trabalho de uma tarde, pegar um modelo, calcular um número e seguir em frente. Em vez disso, eu assisti a métodos supostamente inteligentes classificando cliques quase idênticos em ordens sem sentido, e o que parecia melhor no papel era muito lento para ser usado. Então, eu testei seis métodos, mesmos cliques, mesmas regras, e os julguei primeiro pela precisão. Uma resposta errada em um milissegundo ainda é errada, então a velocidade só tem importância após um método provar que pode classificar corretamente. Precisão em primeiro lugar, velocidade como desempate. Aqui está o que eu encontrei. Minha primeira intuição foi comparar apenas pixels. Isso é uma armadilha: na verdade, você está comparando o significado, o assunto, as cores, a luz, se a água estoura ou goteja.
Caçar o significado e você está escolhendo entre três famílias, cada uma custando algo. Embeddings amostram quadros por meio de um modelo que sabe o que as imagens significam, inteligente, mas custa milissegundos ou créditos de API. Fingerprints esmagam cada quadro em um código minúsculo, quase gratuito e instantâneo, quase cego a qualquer coisa sutil. Full multimodal LLMs pegam o vídeo inteiro e lhe dão uma opinião, eles veem o mais, mas também quebram o mais. Velocidade, precisão, custo. Você consegue dois. Essa é a razão pela qual eu fiz o benchmark em vez de discutir sobre isso. Três desses funcionam gratuitamente no meu laptop. Três me cobram por chamada. Essa divisão importou mais para mim do que os números de precisão. A maioria dos benchmarks trapaceia testando em um conjunto fácil, então eu fiz o meu difícil de propósito. A referência é uma cachoeira tropical, raios de sol e vegetação molhada, e todos os oito cliques de teste também são cachoeiras. Isso força cada método a ganhar nos detalhes finos, tom de cor, direção da luz, enquadramento, movimento, em vez de apenas identificar “há água nesse”. Mesmo input para todos: seis quadros por clipe, espaçados uniformemente, reduzidos para 384×216. Amostrar alguns quadros em vez de todos é normal e quase não custa qualidade.
A parte chata: nenhum rótulo humano, nenhum orçamento para fazer algum. Então, eu fingi um consenso justo, calculei a média das pontuações dos primeiros cinco métodos por clipe. Dois cliques saíram em primeiro lugar, incluindo um que vou chamar de Amostra 4 (mostrado no segundo vídeo abaixo) e o vídeo original (o primeiro vídeo); tudo o mais é classificado em relação a isso. Imperfeito, mas defensável. Estou pulando as caixas de prós e contras elegantes. Elas não se quebraram limpas. GPT Vision foi o que eu realmente gostei de ler, dê-lhe alguns quadros e ele julga o tema, a cor e o humor, escrevendo algo como “diferiu significativamente no tema visual, paleta de cores e humor geral”. Mas os números abaixo eram confusos, tudo marcou 50 a 80, agrupados e cambaleando entre execuções. Ótimo em explicar a si mesmo, ruim em classificar oito gêmeos quase idênticos. Aqui está a chamada real, reduzida: Gemini Flash no vídeo completo é o único que assiste o movimento real, não estáticos, incluindo o ritmo e a deriva da câmera, uma grande vantagem no papel. Então, a realidade apareceu: o mais lento por uma milha, e no meio do teste, um clipe jogou um 503, o fallback encontrou um 429, e esse clipe nunca obteve uma pontuação. Quebra de negócio para qualquer coisa ao vivo.
Aqui está o que torna essa técnica diferente, em código: CLIP foi minha aposta inicial: cada quadro se torna um vetor, você os média, pega o cosseno. Funciona localmente em menos de um segundo e deu as pontuações mais estáveis no teste, embora tudo se agrupe nos altos 80 e baixos 90, mesmo para cliques que não são próximos. Ótimo para classificar, inútil se você quiser que “você marcou 88%” signifique algo por si só. Aqui está a técnica completa em código: Nenhuma chamada de API à vista. Uma vez que o modelo é baixado, tudo isso funciona na sua própria máquina. O hash perceptual é cinquenta vezes mais rápido do que qualquer outra coisa, sem modelo para carregar. Como juiz, quase inútil aqui, é um segurança, não um crítico. (Números exatos vindo, mais engraçados do que eu esperava.) E aqui está a coisa toda, sem modelo necessário: Isso é o segurança completo. Rápido porque não está realmente olhando para nada, apenas contando bits invertidos. CV multi-métrica é o que eu construiria para ver dentro de uma pontuação, quatro sinais antigos ponderados à mão: Uma peculiaridade que surgiu: métricas diferentes podem discordar selvagemente sobre o mesmo clipe. SSIM pune qualquer mudança de enquadramento com dureza, enquanto uma verificação de perfil de cor temporal mal nota, então o mesmo vídeo pode marcar 99 em um sinal e 18 em outro.
Gemini Embedding 2 é a ideia do CLIP após crescer. Mesma jogada, embed, então pool, então cosseno, mas o embedding vem de um modelo construído para lidar com imagem, vídeo e texto em um espaço de 3072 dimensões. Aqui