Arquitetura real · Sênior
Netflix: ML para qualidade de streaming
Arquitetura real em produção. Pontos centrais: previsão de rede, ABR e prefetch preditivo.
Resposta curta
Arquitetura real em produção. Pontos centrais: previsão de rede, ABR e prefetch preditivo. O blog de engenharia da Netflix abre com uma pergunta: por que precisamos de aprendizado de máquina para melhorar a qualidade do streaming? A resposta passa pela diversidade.
01 · CONTEXTO
Por que usar ML para a qualidade do streaming
O blog de engenharia da Netflix abre com uma pergunta: por que precisamos de aprendizado de máquina para melhorar a qualidade do streaming? A resposta passa pela diversidade. A empresa serve mais de 117M assinantes no mundo, e uma solução única para todos se torna cada vez menos adequada.
A diversidade aparece nas redes e nos aparelhos. Redes celulares podem ser mais voláteis e instáveis que a banda larga fixa, e cada grupo de dispositivos tem capacidades e qualidade de conexão diferentes por causa do hardware.
A Netflix observa, em cada sessão, as condições de rede e de dispositivo e a qualidade de experiência entregue, e isso permite usar modelagem estatística e aprendizado de máquina. O artigo trata de desafios do lado do dispositivo, e uma resenha de terceiros resume as frentes como prever a qualidade da rede, detectar anomalias em dispositivos e alocar recursos para cache preditivo.
02 · PREVISÃO DE REDE
Prever a rede é mais do que medir a média
Largura de banda média e tempo de ida e volta são indicadores conhecidos da qualidade de uma rede, mas o texto afirma que estabilidade e previsibilidade fazem grande diferença para o streaming de vídeo.
As perguntas que o artigo levanta são concretas: dá para prever como será o throughput nos próximos 15 minutos a partir dos últimos 15 minutos de dados? E, mesmo sem prever o instante exato de uma queda, dá para ao menos caracterizar a distribuição de throughput esperada a partir do histórico?
Como as medições são observadas em escala, o texto vê espaço para modelos mais complexos, que combinam reconhecimento de padrão temporal com indicadores de contexto para prever melhor a qualidade da rede.
03 · ADAPTAÇÃO DE QUALIDADE
Escolher a qualidade de cada pedaço
Filmes e séries costumam ser codificados em várias qualidades de vídeo, para atender a redes e dispositivos diferentes. Cada versão é dividida em pedaços de duração fixa, e a cada pedaço baixado o algoritmo de streaming adaptativo decide em que qualidade baixá-lo.
O player baixa o vídeo do servidor de conteúdo em pedaços de duração fixa, e a cada pedaço decide em que qualidade baixá-lo.
Cada sessão deixa medições de rede, de dispositivo e da qualidade entregue ao usuário.
Em escala, essas observações permitem modelos que combinam padrão temporal e contexto para prever a qualidade da rede.
Uma aplicação útil da previsão de rede é adaptar a qualidade do vídeo durante a reprodução: o player usa a estimativa ao escolher o próximo pedaço.
A qualidade de experiência pode ser medida de várias formas: o tempo inicial de espera, a qualidade geral do vídeo, quantas vezes a reprodução parou para carregar mais vídeo no buffer e a flutuação perceptível de qualidade. Essas métricas competem entre si.
| Estratégia | Efeito | Custo |
|---|---|---|
| Ser agressivo | Vídeo de qualidade muito alta | Aumenta o risco de rebuffer |
| Baixar mais vídeo antes | Reduz o risco de rebuffer | Aumenta o tempo de espera |
O difícil é que o sinal de retorno de cada decisão é atrasado e esparso. Uma troca agressiva para qualidade maior pode não ter consequência imediata, mas esgotar o buffer aos poucos e levar a um rebuffer em algumas ocasiões. O texto indica que técnicas de ML, como os avanços recentes em aprendizado por reforço, têm grande potencial para esse problema.
04 · PREFETCH PREDITIVO
Ter o vídeo no aparelho antes do play
Outra frente é prever o que a pessoa vai reproduzir para colocar parte do vídeo em cache no dispositivo antes de ela apertar play, o que permite começar mais rápido ou em qualidade maior. Um exemplo do texto: quem vem assistindo a uma série tende a reproduzir o próximo episódio ainda não visto.
O modelo combina aspectos do histórico de visualização com interações recentes e outras variáveis de contexto.
Com isso, o modelo estima o que a pessoa vai reproduzir; para quem acompanha uma série, o próximo episódio ainda não visto é o candidato natural.
Parte do vídeo previsto é colocada no cache do dispositivo antes de a pessoa apertar play.
Quando a pessoa aperta play, o vídeo pode começar mais rápido ou em qualidade maior.
O modelo opera sob restrições de recursos: o tamanho do cache e a banda disponível.
O texto formula o problema como aprendizado supervisionado: maximizar a chance de colocar em cache o que a pessoa de fato acabou reproduzindo, respeitando o tamanho do cache e a banda disponível. Segundo o artigo, houve reduções substanciais no tempo de espera para o vídeo começar com esses modelos.
05 · ANOMALIAS EM DISPOSITIVOS
Priorizar alertas em milhares de aparelhos
A Netflix opera em mais de mil tipos de dispositivos, de laptops a Smart TVs, e atualizações de firmware ou mudanças no aplicativo podem afetar a experiência. Detectar essas mudanças é difícil e trabalhoso, e o critério para rotular algo como problema real é difícil de definir.
Alertas disparam quando as condições medidas passam de um critério. Um gatilho liberal gera falsos positivos e investigação manual desnecessária; um gatilho muito estrito pode deixar passar problemas reais.
Existe histórico dos alertas disparados e da determinação humana final sobre o problema ser real e acionável.
Esse histórico serve para treinar um modelo que prevê a probabilidade de um conjunto de condições medidas ser um problema real.
Segundo o artigo, o uso de modelagem preditiva já trouxe grande redução no volume de alertas, mantendo uma taxa aceitavelmente baixa de falsos negativos.
Mesmo com o problema confirmado, achar a causa raiz é difícil. O texto diz que a modelagem estatística também ajuda nisso, ao controlar covariáveis.
06 · O QUE LEVAR PARA A ENTREVISTA
Por que esses problemas pedem ML
O artigo resume o que torna esses problemas bons candidatos a ML: há dados suficientes, os dados têm muitas dimensões e é difícil montar à mão o conjunto mínimo de variáveis informativas para cada problema.
Numa entrevista, estruture a resposta pelo caminho do dado: qual sinal é observado, qual modelo o transforma em previsão, qual decisão ele alimenta e qual métrica prova o ganho. Cada frente deste caso segue esse caminho, e a métrica de sucesso muda de uma para outra.
Perguntas frequentes
O que é Netflix: ML para qualidade de streaming?
Arquitetura real em produção. Pontos centrais: previsão de rede, ABR e prefetch preditivo.
O que o design de Netflix: ML para qualidade de streaming cobre?
Ele está organizado nestas seções: Por que usar ML para a qualidade do streaming, Prever a rede é mais do que medir a média, Escolher a qualidade de cada pedaço, Ter o vídeo no aparelho antes do play, Priorizar alertas em milhares de aparelhos e Por que esses problemas pedem ML.
Quanto tempo leva Netflix: ML para qualidade de streaming e qual é o nível?
Leva cerca de 17 minutos para ler e tem nível Sênior.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.