commit
51e46432d0
1 changed files with 42 additions and 0 deletions
@ -0,0 +1,42 @@ |
|||
<br>Uma das disciplinas que leciono na Pontifícia Universidade Católica do Paraná, Construção de Interpretadores engloba o processamento de [linguagens formais](https://mikltd.eu) a naturais. Dado o terremoto provocado pela DeepSeek com o seu modelo DeepSeek-R1, fiquei curioso e resolvi fazer um apanhado artigos para que as vozes na minha cabeça se acalmem um pouco. Curiosidade mata gato mas excita o pesquisador. Esse é o resultado deste esforço.<br> |
|||
<br>A primeira coisa importante a notar é que o DeepSeek-R1 está sob a [licença](https://flexhaja.com) MIT, e que pode ser encontrado no [Hugging](https://izumi-construction.com) Face. Tudo, exceto os [dados usados](http://www.mp-ingenieurs.lu) para treinamento, está disponível online, no Hugging Face, no Github e em alguns outros sites.<br> |
|||
<br>A grande questão é: porque não os dados de treinamento? A resposta mais óbvia é: porque aqui está o problema. Mas isso fica para outra discussão1.<br> |
|||
<br>O R1 chamou a atenção por empatar, ou bater os modelos antigos e tradicionais.<br> |
|||
<br>Comparação entre os resultados de [diversos](https://ceshi.xyhero.com) modelos<br> |
|||
<br>Achei o máximo escrever modelos antigos e tradicionais para uma [tecnologia](https://www.glaserprojektinvest.com) de 4 anos, no máximo.<br> |
|||
<br>O R1 quase derrubou a web por, supostamente, [ter sido](http://www7b.biglobe.ne.jp) criado com um custo 20 vezes menor.<br> |
|||
<br>O que [realmente](http://suffolkyfc.com) me interessa, já que não tenho acesso aos dados, neste modelo é o uso de Reinforcement Learning por eles que foi descaradamente explicitado em [vários](http://rets2021.blogs.rice.edu) artigos abertos. Me interessa porque eu tenho falado para os meus alunos que o próximo salto evolutivo da humanidade será devido a Reinforcement Learning. Então, talvez, só talvez, a DeepSeek não me deixe mentir sozinho.<br> |
|||
<br>Uma das inovações do DeepSeek-R1 é a [adoção](http://envios.uces.edu.ar) da Group Robust Preference Optimization (GRPO), introduzida no artigo DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models sobre o trabalho de Schulman et.al de 2017 Group Robust Preference Optimization in Reward-free RLHF. Essa técnica substitui métodos tradicionais de [otimização](https://digitalcs.ae) de políticas, como o Proximal Policy Optimization (PPO), apresentado por Schulman et al. em Proximal Policy [Optimization Algorithms](http://dinbrazda.ro). Simplificando, a GRPO permite que o modelo [aprenda](http://mattresshelper.com) de forma mais eficaz comparando seu desempenho com o de outros modelos em um grupo, otimizando suas ações para alcançar melhores resultados em tarefas de raciocínio matemático. Essa abordagem torna o processo de treinamento mais eficiente e escalável se comparado com o PPO.<br> |
|||
<br>Além da GRPO, o DeepSeek-R1 incorpora a Multi-head Latent Attention (MLA), uma técnica introduzida no DeepSeek-V3, que, por sua vez, foi inspirada no trabalho de Kitaev, Kaiser e Levskaya em Reformer: The Efficient Transformer. A MLA aborda as [ineficiências computacionais](https://illattenger.hu) e de [memória associadas](http://code.wutongshucloud.com) ao processamento de sequências longas, especialmente em modelos de linguagem com atenção multi-cabeça. Em termos simples podemos dizer que a MLA melhora a eficiência do modelo ao simplificar a maneira como ele processa as informações. Ela projeta as [matrizes Key-Query-Value](https://youngstownforward.org) (KQV) em um espaço latente de menor dimensão, [reduzindo](https://gitlab.mirrle.com) a complexidade computacional e melhorando a eficiência do modelo.<br> |
|||
<br>Neste momento você tem duas escolhas claras: sentar em um lugar mais confortável já que vai demorar, ou ir fazer scroll no instagram.<br> |
|||
<br>Fundamentos da Arquitetura<br> |
|||
<br>A sopa de letrinhas que [precisa](http://whippet-insider.de) ser consumida, morna e vagarosamente, para entender como o DeepSeek-R1 funciona, ainda precisa de algum tempero.<br> |
|||
<br>Algumas das pela equipe de DeepSeek, liderada por Luo Fuli um prodígio com cara de atriz de dorama, incluem Mixture of [Experts](https://saga.iao.ru3043) (MoE), Multi-head Latent Attention (MLA), Quantização FP8 e Multi-Token Prediction (MTP). A saber:<br> |
|||
<br>Mixture of Experts (MoE)<br> |
|||
<br>O mecanismo Mixture of Experts (MoE) ativa apenas um [subconjunto](http://gabuca.com) dos parâmetros totais dentro de cada bloco Transformer, permitindo economias [computacionais substanciais](http://www.flamingpenpress.com) enquanto preserva a [qualidade](https://golfingsupplyco.com) do modelo. Esta ativação seletiva é particularmente vantajosa para escalar os parâmetros do modelo sem aumentar proporcionalmente os custos computacionais.<br> |
|||
<br>A função gate de [seleção](https://thoughtswhilereading.com) de especialistas é governada por uma função de porta $G( x)$ que direciona tokens $x$ para especialistas $E_k$, definida como:<br> |
|||
<br>Cada token é [então processado](https://eelriverbeachclub.membersplash.com) pelos especialistas selecionados, agregados como:<br> |
|||
<br>Uma perda de balanceamento de carga é adicionada para encorajar utilização igual dos especialistas, reduzindo gargalos computacionais.<br> |
|||
<br>Vamos ver um exemplo simplificado de como o MoE funciona na prática. Imagine que temos:<br> |
|||
<br>- 3 especialistas ($ E_1$, $E_2$, $E_3$). |
|||
- Um token de [entrada](https://kashitirth.com) $x$ representando a palavra "computador"<br> |
|||
<br>Primeiro, o token passa pela função gate $G( x)$, que calcula um rating para cada especialista. Vamos dizer que após a transformação $W_gx$ e aplicação do softmax, obtemos:<br> |
|||
<br>Isto significa que:<br> |
|||
<br>- Especialista 1 ($ E_1$): 70% de ativação. |
|||
[- Especialista](https://brasserie-moccano.nl) 2 ($ E_2$): 20% de ativação. |
|||
- Especialista 3 ($ E_3$): 10% de ativação<br> |
|||
<br>Agora, suponha que cada [especialista processe](http://rariken.s14.xrea.com) o token e [produza](https://jobsinethiopia.net) um vetor de características:<br> |
|||
<br>A saída last será a soma ponderada desses vetores, usando os pesos da função gate:<br> |
|||
<br>Agora, picture que após processar vários tokens, notamos que o Especialista 1 está sendo usado 80% do pace. Aqui é onde a perda de balanceamento entra em ação:<br> |
|||
<br>Para $K = 3$ especialistas, a [frequência ideal](https://www.bali-aga.com) é $ frac 1 K = frac 1 3 approx 0.33$<br> |
|||
<br>Calculando a perda de [balanceamento](https://armoire.ch) para este caso (com $ alpha = 1$):<br> |
|||
<br>Este valor alto de $L _ balance $ indica um [desequilíbrio significativo](https://dataprolabs.com) na utilização dos especialistas, e o modelo será [penalizado](https://blog.kaizenlessons.in) por isso durante o treinamento, incentivando-o a desenvolver uma distribuição mais equilibrada nas próximas iterações.<br> |
|||
<br>O MoE funciona essencialmente como um sistema de distribuição de tráfego inteligente, onde o "roteador" (chamado de [função](https://www.brookstreetvideos.com) de gate ou porta) choose qual especialista ou combinação de especialistas deve processar cada token de [entrada](http://www.otradnoe58.ru). Este roteamento é feito de forma dinâmica e aprendida, [não através](http://www.otradnoe58.ru) de regras fixas.<br> |
|||
<br>Para entender melhor, podemos fazer uma analogia com um hospital: Imagine um grande health center com vários médicos especialistas. Quando um paciente chega, [comparable](https://www.jasarat.com) a um token de entrada, um enfermeiro de [triagem](http://cyanpension.com) muito experiente, a função de gate, avalia rapidamente o caso e choose quais especialistas devem atender o paciente. Alguns casos podem precisar de apenas um especialista, enquanto [outros podem](http://code.wutongshucloud.com) [requerer](https://physioneedsng.com) uma equipe de diferentes especialidades.<br> |
|||
<br>No [contexto](http://www.saxonrisk.com) do DeepSeek-R1, este roteamento é representado matematicamente pela função $G( x)$, que podemos entender como um direcionador que:<br> |
|||
<br>1. Recebe um token de entrada $x$. |
|||
2. Avalia suas características através de uma transformação $W_gx$. |
|||
3. Usa uma [função softmax](http://aprentia.com.ar) para gerar probabilidades de encaminhamento para diferentes especialistas. |
|||
4. Direciona o token para os [especialistas](http://www.suffolkwoodburners.co.uk) mais apropriados<br> |
|||
<br>[Finalmente temos](https://103.1.12.176) a perda de [balanceamento](https://slf.sk) de carga. Um mecanismo que evita que alguns especialistas fiquem sobrecarregados enquanto outros ficam [ociosos](https://www.sjaopskop.nl). Para entender este conceito, podemos voltar ao nosso healthcare facility:<br> |
|||
<br>Imagine que em um health center, alguns médicos especialistas [começam](https://desarrollo.skysoftservicios.com) a [receber](https://www.talentiinrete.it) muito mais pacientes que outros. Por exemplo, um [cardiologista está](https://askhelpie.com) sempre ocupado, atendendo 80% dos pacientes, enquanto um [neurologista](https://www.rfgrasso.com) mal recebe pacientes. Isso cria dois problemas: o cardiologista fica sobrecarregado, [podendo causar](http://www.diminin.it) atrasos e queda na qualidade do atendimento |
Write
Preview
Loading…
Cancel
Save
Reference in new issue