Prática de grandes modelos esparsos em cenários de classificação de publicidade iQiyi

01

   voltarcenae status quo

1. Características dos dados na área publicitária

Os dados na área de publicidade podem ser divididos em: características de valor contínuo Diferente da imagem, vídeo, voz e outros campos de IA , os dados originais no campo são apresentados principalmente na forma de ID, como ID do usuário, ID de publicidade, sequência de ID de publicidade interagindo com o usuário, etc., e o ID a escala é grande, formando o campo publicitário As características distintivas dos dados esparsos de alta dimensão.

Recursos de valor contínuo
  • Existem características estáticas (como a idade do usuário) e dinâmicas baseadas no comportamento do usuário (como o número de vezes que um usuário clica em um anúncio em um determinado setor).
  • A vantagem é que possui boa capacidade de generalização. A preferência de um usuário por um setor pode ser generalizada para outros usuários que tenham as mesmas características estatísticas do setor.
  • A desvantagem é que a falta de capacidade de memória resulta em baixa discriminação. Por exemplo, dois usuários com as mesmas características estatísticas podem ter diferenças significativas de comportamento. Além disso, recursos de valor contínuo também exigem muita engenharia manual de recursos.
recursos de valor discreto
  • Recursos de valor discreto são recursos refinados. Existem enumeráveis ​​(como gênero do usuário, ID do setor) e também existem outros de alta dimensão (como ID do usuário, ID de publicidade).
  • A vantagem é que possui memória forte e alta distinção. Recursos de valor discreto também podem ser combinados para aprender informações cruzadas e colaborativas.
  • A desvantagem é que a capacidade de generalização é relativamente fraca.
A publicidade é um cenário que exige forte memória dos usuários e forte diferenciação do tráfego de mídia. Portanto, recursos de valor discreto são a base para previsão personalizada e otimização de modelos de publicidade. Dados esparsos de alta dimensão, como ID de publicidade, ID de usuário e suas combinações, podem ser usados ​​como recursos de valor discreto. Dessa forma, diferentes usuários com comportamentos diferentes podem ser bem diferenciados em recursos. De modo geral, existem duas maneiras de usar recursos de valor discreto:
  • Codificação one-hot
  • Incorporação de recursos (incorporação)
A codificação one-hot de recursos de valor discreto de alta dimensão pode facilmente levar à "maldição da dimensionalidade", que se manifesta como defeitos óbvios, como explosão de parâmetros, convergência lenta do modelo e fraca capacidade de generalização. Portanto, é adequado para codificação em tipos enumeráveis ​​limitados de valores discretos. Para codificar IDs em grande escala, os IDs esparsos no espaço de alta dimensão são expressos como vetores no espaço denso de baixa dimensão por meio da incorporação de recursos.

2. Status atual do modelo de classificação de publicidade da iQiyi
Em 2016, o modelo Wide & Deep proposto pelo Google introduziu oficialmente modelos de aprendizagem profunda no campo de recomendação. O modelo Wide & Deep realizou modelagem unificada de memória e capacidades de generalização e rapidamente se tornou o modelo básico na pesquisa industrial, publicidade e recomendação. Campos. . O negócio de classificação de publicidade da iQiyi também evoluiu gradualmente do modelo FM de aprendizagem online para o modelo DNN em 2019.
Nosso modelo DNN é baseado na estrutura de código aberto TensorFlow para treinamento e inferência. Na estrutura do TensorFlow, o Tensor denso é usado como unidade básica de dados para calcular, armazenar e transmitir dados. A forma do Tensor usada para armazenar a incorporação do recurso de ID de valor discreto precisa ser determinada antecipadamente, ou seja, é fixada em [vocabulary_size, embedding_dimension] e o vocabulário_size precisa ser determinado manualmente com base no espaço de ID. Portanto, ao introduzir recursos de ID esparsos de alta dimensão, primeiro mapeamos o recurso de ID Hash para o intervalo de vocabulário_size.
Atualmente temos os seguintes problemas ao usar recursos de ID esparsos de alta dimensão:
  • Conflito de recursos: se o vocabulário_size for definido muito grande, a eficiência do treinamento cairá drasticamente e o treinamento falhará devido ao OOM da memória. Portanto, mesmo para recursos de valor discreto de ID de usuário de nível bilhão, configuraremos apenas um espaço de hash de ID de 100.000 níveis. A taxa de conflito de hash é alta, as informações do recurso estão danificadas e não há benefício positivo na avaliação offline.
  • IO ineficiente: como recursos como ID de usuário e ID de publicidade são de alta dimensão e esparsos, ou seja, os parâmetros atualizados durante o treinamento representam apenas uma pequena parte do total. No mecanismo de incorporação estático original do TensorFlow, o acesso ao modelo precisa ser processado. Todo o Tensor denso trará uma enorme sobrecarga de IO e não pode suportar o treinamento de modelos grandes e esparsos.


02

   Prática de modelo grande esparso de publicidade

Conforme mencionado acima, os recursos de valor discreto são a base para o modelo alcançar ainda mais a previsão personalizada. Também encontramos problemas ao usar recursos de valor discreto de ID esparso de alta dimensão. Portanto, usaremos a principal tecnologia de código aberto da indústria em 2023 para realizar o treinamento e a construção de inferência de grandes modelos esparsos.
1. Estrutura do algoritmo
Nos últimos anos, a indústria explorou bastante o suporte do TensorFlow para recomendar modelos grandes e esparsos e o implementou em cenários de negócios reais. Escolhemos o componente de código aberto de incorporação dinâmica TFRA principalmente pelos seguintes motivos:
  • A API TFRA é compatível com o ecossistema Tensorflow (reutilizando o otimizador e inicializador originais, a API tem o mesmo nome e comportamento consistente), permitindo que o TensorFlow suporte o treinamento e inferência de grandes modelos esparsos do tipo ID de uma forma mais nativa; o custo de aprendizagem e uso é baixo e não altera os hábitos de modelagem dos engenheiros de algoritmos.
  • A expansão e contração dinâmica da memória economiza recursos durante o treinamento; evita efetivamente conflitos de Hash e garante que as informações dos recursos não tenham perdas.
Com base nas estruturas TensorFlow 2.6.0 e TFRA 0.6.0, realizamos as seguintes iterações:
  • A incorporação estática é atualizada para incorporação dinâmica: Para a lógica Hash artificial de recursos de valor discreto, a incorporação dinâmica TFRA é usada para armazenar, acessar e atualizar parâmetros, garantindo assim que a incorporação de todos os recursos de valor discreto seja livre de conflitos na estrutura do algoritmo e garantindo que todos os valores discretos Aprendizagem de recursos sem perdas.
  • Uso de recursos de ID esparsos de alta dimensão: conforme mencionado acima, ao usar a função de incorporação estática do TensorFlow, os recursos de ID do usuário e ID de publicidade não têm lucro na avaliação offline devido a conflitos de Hash. Após a atualização da estrutura do algoritmo, os recursos de ID do usuário e ID de publicidade são reintroduzidos e há benefícios positivos tanto offline quanto online.
  • O uso de recursos de ID combinados esparsos e de alta dimensão: Apresentando os recursos de valor discreto combinados de ID de usuário e ID de granulação grossa de publicidade, como a combinação de ID de usuário com ID da indústria e nome do pacote de aplicativo, respectivamente. Ao mesmo tempo, combinados com a função de acesso a recursos, são introduzidos recursos discretos usando uma combinação de IDs de usuário e IDs de publicidade mais esparsos.


2. Atualização do modelo

No processo de implementação do modelo grande e esparso, encontramos muitos problemas na inferência de treinamento e nas atualizações de implantação. Conduzimos análises aprofundadas e otimização de vários problemas durante o processo de implementação e, finalmente, alcançamos treinamento, inferência e atualizações de implantação eficientes e estáveis ​​de grandes modelos esparsos.
Ao usar o TensorFlow Serving para atualizar a quente um modelo grande e esparso, ocorrerão atrasos de inferência devido à competição pela alocação e liberação de memória. Existem duas partes principais nos cenários de uso de alocação e liberação de memória do TensorFlow:
  • A alocação da própria variável Tensor quando o modelo é restaurado, ou seja, a memória é alocada quando o modelo é carregado, e a memória é liberada quando o modelo é descarregado.
  • A memória do Tensor de saída intermediária é alocada durante o cálculo de encaminhamento da rede durante a solicitação RPC e é liberada após a conclusão do processamento da solicitação.
Portanto, quando um modelo grande e esparso é atualizado, uma grande quantidade de memória é alocada no OP de restauração quando o novo modelo é carregado e uma grande quantidade de memória é liberada quando o modelo antigo é descarregado. Durante este processo, a solicitação de inferência RPC não é interrompida. Neste momento, a alocação e liberação de memória dos dois entrarão em conflito e competirão, causando falhas de inferência. Com base na análise acima, ao projetar o isolamento de alocação de memória, a alocação de memória dos parâmetros do modelo e a alocação de memória das solicitações RPC são isoladas, e são alocadas e liberadas em diferentes espaços de memória independentes, resolvendo assim o atraso na atualização a quente de grandes esparsos problemas de falha.
Finalmente, a fragmentação esparsa de arquivos de modelos grandes e a transmissão P2P dentro da mesma sala de computadores são usadas para distribuição de modelos, o que reduz a pressão no back-end de armazenamento e nas linhas dedicadas da rede e resolve os problemas de armazenamento e largura de banda causados ​​​​por atualizações frequentes de modelos grandes e esparsos.

03

   benefício geral

Atualmente, a plataforma de aprendizagem profunda tem apoiado de forma eficiente e estável o treinamento, inferência e atualizações de implantação de modelos de parâmetros de nível de 1 bilhão. Lançamos totalmente três grandes modelos esparsos em cenários CVR e DCVR de publicidade de desempenho, o que gerou diretamente um aumento de 4,3% na receita do negócio de publicidade de desempenho, enquanto o atraso de inferência foi basicamente o mesmo.


04

   perspectiva futura

Atualmente, todos os valores de recursos do mesmo recurso no modelo esparso de publicidade grande recebem a mesma dimensão de incorporação. Nos negócios reais, a distribuição de dados de recursos de alta dimensão é extremamente desigual, um número muito pequeno de recursos de alta frequência representa uma proporção muito alta e o fenômeno da cauda longa é sério usando dimensões de incorporação fixas para todos os valores de recursos ; reduzirá a capacidade de incorporação de aprendizagem de representação. Ou seja, para recursos de baixa frequência, a dimensão de incorporação é muito grande e o modelo corre o risco de se ajustar demais para recursos de alta frequência, porque há uma riqueza de informações que precisam ser representadas e aprendidas, a incorporação; a dimensão é muito pequena e o modelo corre o risco de ser subajustado. Portanto, no futuro, exploraremos maneiras de aprender de forma adaptativa a dimensão de incorporação de recursos para melhorar ainda mais a precisão da previsão do modelo.

Ao mesmo tempo, exploraremos a solução de exportação incremental do modelo, ou seja, carregar apenas os parâmetros que mudam durante o treinamento incremental para o TensorFlow Serving, reduzindo assim a transmissão da rede e o tempo de carregamento durante a atualização do modelo, alcançando atualizações em nível de minuto de grandes modelos esparsos e melhorando a natureza em tempo real do modelo.


tambémPoderiavocêretornarpensarolhar

Revelando o segredo da explosão de memória: resolvendo o problema OOM de treinamento distribuído de modelos grandes

Processo de otimização de lance duplo de publicidade de desempenho iQIYI

Aplicativo iQIYI Data Lake Practice-Publicidade Data Lake

Este artigo é compartilhado pela conta pública do WeChat - iQIYI Technology Product Team (iQIYI-TP).
Se houver alguma violação, entre em contato com [email protected] para exclusão.
Este artigo participa do “ Plano de Criação da Fonte OSC ”. Você que está lendo é bem-vindo para participar e compartilhar juntos.

Companheiro de frango, deepin-IDE de "código aberto" e finalmente conseguiu a inicialização! Bom cara, a Tencent realmente transformou o Switch em uma "máquina de aprendizagem pensante" Revisão de falhas e explicação da situação da Tencent Cloud em 8 de abril Reconstrução de inicialização de desktop remoto RustDesk Cliente Web Banco de dados de terminal de código aberto do WeChat baseado em SQLite WCDB inaugurou uma grande atualização Lista de abril TIOBE: PHP caiu para o nível mais baixo, Fabrice Bellard, o pai do FFmpeg, lançou a ferramenta de compressão de áudio TSAC , o Google lançou um grande modelo de código, CodeGemma , isso vai te matar? É tão bom que é de código aberto - ferramenta de edição de imagens e pôsteres de código aberto
{{o.nome}}
{{m.nome}}

Acho que você gosta

Origin my.oschina.net/u/4484233/blog/11045480
Recomendado
Clasificación