Add 'Deepseek-R1: Explicado de Forma Simples'

Elizabeth Mathias 2025-02-04 20:49:02 +11:00
commit f0269211e2

@ -0,0 +1,42 @@
<br>Uma das disciplinas que leciono na Pontifícia Universidade Católica do Paraná, Construção de [Interpretadores engloba](https://mishahussain.com) o processamento de [linguagens formais](https://www.modernit.com.au) 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](http://www.wyszukiwarkafirm.eu) um pouco. [Curiosidade mata](http://italladdsupfl.com) gato mas excita o [pesquisador](https://www.ab-brnenska-ubytovaci.eu). Esse é o resultado deste esforço.<br>
<br>A primeira coisa importante a notar é que o DeepSeek-R1 está sob a licença MIT, e que pode ser encontrado no Hugging Face. Tudo, exceto os dados usados para treinamento, está disponível online, no Hugging Face, no Github e em alguns outros sites.<br>
<br>A grande [questão](https://www.vytega.com) é: 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](http://bookkeepingjill.com).<br>
<br>Comparação entre os [resultados](http://typ356.de) de diversos modelos<br>
<br>Achei o máximo escrever [modelos antigos](https://circassianweb.com) e tradicionais para uma tecnologia de 4 anos, no máximo.<br>
<br>O R1 quase derrubou a web por, supostamente, [ter sido](http://centretriskel.be) criado com um custo 20 vezes menor.<br>
<br>O que [realmente](http://www.ips-service.it) me interessa, já que não tenho acesso aos dados, neste [modelo é](http://digital-trendy.com) o uso de Reinforcement Learning por eles que foi descaradamente explicitado em vários artigos abertos. Me [interessa](http://47.116.130.49) porque eu tenho falado para os meus alunos que o próximo salto evolutivo da humanidade será devido a Support 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 da Group Robust Preference Optimization (GRPO), introduzida no artigo DeepSeekMath: [Pushing](https://www.bloomfield-care.com) the Limits of [Mathematical Reasoning](http://bookkeepingjill.com) in Open Language Models sobre o trabalho de [Schulman](https://atelier-kcagnin.de) et.al de 2017 Group Robust Preference Optimization in Reward-free RLHF. Essa [técnica substitui](https://www.plynari.eu) métodos tradicionais de [otimização](https://www.zentechsystems.com) de políticas, como o Proximal Policy Optimization (PPO), [apresentado](https://marjatta.org) por Schulman et al. em Proximal Policy Optimization Algorithms. Simplificando, a [GRPO permite](https://projobs.dk) que o modelo aprenda 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](https://git.olivierboeren.nl). 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](http://www.mediationfamilialedromeardeche.fr) Attention (MLA), uma técnica introduzida no DeepSeek-V3, que, por sua vez, foi inspirada no trabalho de Kitaev, [wavedream.wiki](https://wavedream.wiki/index.php/User:ArielCantu51) Kaiser e Levskaya em Reformer: The Efficient Transformer. A MLA aborda as ineficiências computacionais e de memória associadas 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 (KQV) em um espaço latente de menor dimensão, reduzindo 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](http://82.156.194.323000).<br>
<br>Fundamentos da Arquitetura<br>
<br>A sopa de letrinhas que [precisa](https://www.boutiquemassagespa.com) ser consumida, morna e vagarosamente, para entender como o DeepSeek-R1 funciona, ainda precisa de algum tempero.<br>
<br>[Algumas](http://xn--2s2b270b.com) das [mudanças realizadas](http://teubes.com) pela equipe de DeepSeek, liderada por Luo Fuli um prodígio com cara de atriz de dorama, incluem Mixture of Experts (MoE), Multi-head Latent Attention (MLA), Quantização FP8 e Multi-Token Prediction (MTP). A saber:<br>
<br>[Mixture](https://www.cruc.es) of Experts (MoE)<br>
<br>O mecanismo Mixture of Experts (MoE) ativa apenas um [subconjunto](http://blog.gamedoora.com) dos [parâmetros](http://git.hnits360.com) totais dentro de cada bloco Transformer, permitindo economias computacionais substanciais enquanto preserva a qualidade do modelo. Esta ativação seletiva é particularmente [vantajosa](http://criscoutinho.com) para escalar os parâmetros do modelo sem aumentar proporcionalmente os custos computacionais.<br>
<br>A função gate de [seleção](https://hip-hop.id) 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 pelos especialistas selecionados, agregados como:<br>
<br>Uma perda de balanceamento de [carga é](https://palladianodyssey.com) [adicionada](https://wj-riemer.de) para encorajar utilização igual dos especialistas, reduzindo gargalos computacionais.<br>
<br>Vamos ver um exemplo simplificado de como o [MoE funciona](http://uaffa.com) na prática. Imagine que temos:<br>
<br>- 3 especialistas ($ E_1$, $E_2$, $E_3$).
- Um token de entrada $x$ [representando](https://kartesys.fr) 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 2 ($ E_2$): 20% de ativação.
- Especialista 3 ($ E_3$): [complexityzoo.net](https://complexityzoo.net/User:FranciscoMacNeil) 10% de ativação<br>
<br>Agora, suponha que cada especialista processe o token e produza 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 perfect é $ frac 1 K = frac 1 3 approx 0.33$<br>
<br>[Calculando](https://lacos.uniriotec.br) a perda de balanceamento para este caso (com $ alpha = 1$):<br>
<br>Este valor alto de $L _ balance $ indica um desequilíbrio significativo na utilização dos especialistas, e o modelo será penalizado por isso durante o treinamento, incentivando-o a [desenvolver](http://coachkarlito.com) uma distribuição mais equilibrada nas próximas iterações.<br>
<br>O MoE funciona essencialmente como um [sistema](http://cami-halisi.com) de distribuição de tráfego inteligente, onde o "roteador" (chamado de função de gate ou porta) choose qual especialista ou combinação de especialistas deve processar cada token de entrada. Este roteamento é feito de forma [dinâmica](https://pawtygram.com) e aprendida, não através de regras fixas.<br>
<br>Para entender melhor, podemos fazer uma analogia com um hospital: Imagine um grande hospital com vários médicos especialistas. Quando um paciente chega, comparable a um token de entrada, um enfermeiro de triagem muito experiente, a função de gate, [avalia rapidamente](https://www.aegisagencyllc.com) o caso e [decide quais](https://raildeveloppement.com) especialistas devem atender o paciente. Alguns casos podem precisar de apenas um especialista, enquanto outros podem [requerer](https://uralcevre.com) uma equipe de diferentes especialidades.<br>
<br>No contexto do DeepSeek-R1, este [roteamento é](https://www.joboont.in) representado matematicamente pela [função](https://royalblissevent.com) $G( x)$, que podemos entender como um direcionador que:<br>
<br>1. Recebe um token de entrada $x$.
2. [Avalia suas](https://sandeeppandya.in) características através de uma transformação $W_gx$.
3. Usa uma função softmax para gerar probabilidades de encaminhamento para diferentes especialistas.
4. Direciona o token para os especialistas mais apropriados<br>
<br>[Finalmente temos](https://odessaquest.com.ua) a perda de balanceamento de carga. Um mecanismo que evita que alguns especialistas fiquem sobrecarregados enquanto outros ficam ociosos. Para entender este conceito, podemos [voltar ao](https://voicesofleaders.com) nosso healthcare facility:<br>
<br>Imagine que em um health center, alguns médicos especialistas começam a receber muito mais pacientes que outros. Por exemplo, um [cardiologista está](https://hoanganhson.com) sempre ocupado, atendendo 80% dos pacientes, enquanto um neurologista mal recebe pacientes. Isso cria dois problemas: o cardiologista fica sobrecarregado, podendo causar atrasos e queda na qualidade do atendimento