Todos os projetos

Produto em produção

Cinerd

Encontre um filme a partir de uma lembrança.

22.029 filmes no catálogo

MINHA PARTICIPAÇÃO

Projeto autoral: ingestão, busca, avaliação e implantação

COMO LER O RESULTADO

No conjunto de teste separado da calibração, o nDCG@10 foi de 0,360 com BM25 para 0,829 com a busca híbrida. A métrica avalia a ordenação; não equivale a uma porcentagem de acertos.

A DECISÃO QUE IMPORTA

Retirar um modelo mais complexo

O cross-encoder aumentava a latência cerca de 40 vezes, sem ganho consistente de qualidade. Retirá-lo foi uma decisão apoiada na avaliação.

UMA DECISÃO REAL DO CINERD

Manter um modelo mais complexo?

Testei um cross-encoder para reordenar os resultados. A avaliação mostrou um ganho dentro do ruído e uma latência cerca de 40 vezes maior.

Ver a decisão e sua justificativa

Retirei o cross-encoder da produção. O custo de latência não se justificava pelo ganho inconsistente. A busca híbrida continuou sendo avaliada por testes de qualidade.

Os números descrevem o teste relatado no currículo. Esta interação apresenta a decisão; não faz uma nova medição nem executa os modelos.

O desafio

Nem sempre lembramos o título de um filme. Uma descrição vaga de uma cena ou personagem deveria ser suficiente para começar a busca.

Minha contribuição

Construí um catálogo com 22.029 títulos e um buscador que combina palavras-chave com compreensão semântica. Cuidei da ingestão dos dados, da avaliação de qualidade e da infraestrutura de produção.

O resultado

O produto está disponível para uso. No conjunto de teste, a qualidade da ordenação dos resultados passou de 0,360 para 0,829 em nDCG@10, comparando a busca apenas por palavras-chave com a busca híbrida. Quanto mais próximo de 1, melhor a ordenação nessa métrica.

Explorar os detalhes técnicos

Catálogo do TMDB, IMDb e Wikipédia. Oito sinais de busca, incluindo BM25, embeddings multilingual-e5-large, personagens e popularidade. Normalização por z-score com limite para extremos. Recomendação com SVD próprio, 64 fatores e 10 milhões de avaliações do MovieLens (RMSE 0,83), combinada com conteúdo por RRF.

Deploy na Oracle Cloud, DVC, CI com ruff, mypy e pytest e métricas Prometheus. A quantização INT8 reduziu a memória de 2,3 para 1,7 GB. Um cross-encoder foi retirado porque aumentava a latência cerca de 40 vezes sem ganho consistente de qualidade.

Código no GitHub
Próximo projeto: Pipeline de créditoConversar sobre uma oportunidade

Imagem do projeto