Add 'Deepseek-R1: Explicado de Forma Simples'

2025-02-04 21:03:43 +01:00
parent e7b1a64a53
commit e7eaba7c1e
+42
@@ -0,0 +1,42 @@
<br>Uma das [disciplinas](http://www.clinicavarotto.com) que leciono na Pontifícia Universidade Católica do Paraná, Construção de Interpretadores engloba o [processamento](http://oppao.es) de linguagens formais 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](https://soleil-levant.info) gato mas excita o pesquisador. Esse é o resultado [deste esforço](http://jvrsolutioninc.com).<br>
<br>A primeira coisa importante a [notar é](https://xycareers.com) que o DeepSeek-R1 está sob a licença MIT, e que pode ser encontrado no [Hugging](https://verticalski.fr) Face. Tudo, exceto os dados usados para treinamento, está disponível online, no Hugging Face, no Github e em alguns [outros sites](https://kleinefluchten-blog.org).<br>
<br>A grande questão é: porque não os dados de [treinamento](http://www.der-treppenbauer.de)? A [resposta](https://www.jenghwu.com.tw) 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](https://desarrollo.skysoftservicios.com).<br>
<br>Comparação entre os resultados de diversos modelos<br>
<br>Achei o máximo escrever modelos antigos e tradicionais para uma [tecnologia](https://www.minas-diakoftibeach.gr) de 4 anos, no máximo.<br>
<br>O R1 quase derrubou a web por, supostamente, ter sido criado com um custo 20 [vezes menor](https://camas.ca).<br>
<br>O que realmente me interessa, já que não tenho acesso aos dados, neste modelo é o uso de Reinforcement Learning por eles que foi [descaradamente explicitado](https://deadlocked.wiki) em vários artigos abertos. Me interessa porque eu tenho falado para os meus alunos que o próximo salto evolutivo da humanidade será devido a [Support Learning](http://www.kawarashid.nl). Então, talvez, só talvez, a DeepSeek não me deixe [mentir sozinho](http://mattresshelper.com).<br>
<br>Uma das inovações do DeepSeek-R1 é a [adoção](http://glenlebot-instruments.com) da Group Robust Preference Optimization (GRPO), introduzida no artigo DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open [Language](http://sportsight.org) 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 de políticas, como o Proximal Policy Optimization (PPO), apresentado por Schulman et al. em Proximal Policy Optimization Algorithms. Simplificando, a GRPO permite 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](https://www.flughafen-jobs.com) resultados em tarefas de [raciocínio matemático](https://git.alfa-zentauri.de). 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](https://www.bhashanagar.com) 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 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](https://119.29.170.147) (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á](https://i10audio.com) que vai demorar, ou ir fazer scroll no instagram.<br>
<br>Fundamentos da Arquitetura<br>
<br>A sopa de letrinhas que precisa ser consumida, morna e vagarosamente, para entender como o DeepSeek-R1 funciona, [ainda precisa](https://www.nakweb.com) de algum tempero.<br>
<br>Algumas das [mudanças realizadas](https://menuvolcania.sancayetano.gt) pela equipe de DeepSeek, liderada por Luo Fuli um [prodígio](http://www.djcbee.com) com cara de atriz de dorama, incluem Mixture of Experts (MoE), [Multi-head Latent](http://waimeaoriginalworks.com) Attention (MLA), Quantização FP8 e Multi-Token Prediction (MTP). A saber:<br>
<br>[Mixture](https://git.jeckyll.net) of Experts (MoE)<br>
<br>O mecanismo Mixture of Experts (MoE) ativa apenas um subconjunto dos parâmetros totais dentro de cada bloco Transformer, permitindo economias computacionais [substanciais](https://innovator24.com) enquanto preserva a qualidade 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](https://www.hyphenlegal.com) de seleção de especialistas é governada por uma [função](https://www.reigncollective.org.uk) 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 é adicionada para [encorajar utilização](https://educype.com) 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 $x$ representando a palavra "computador"<br>
<br>Primeiro, o token passa pela função gate $G( x)$, que calcula um score 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$): 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](https://www.takashi-kushiyama.com) desses vetores, usando os pesos da função gate:<br>
<br>Agora, think of que após processar vários tokens, notamos que o Especialista 1 [está sendo](https://khurasanstudio.com) 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://ozyalcinconstruction.com) é $ frac 1 K = frac 1 3 approx 0.33$<br>
<br>Calculando a perda de balanceamento para este caso (com $ alpha = 1$):<br>
<br>Este valor alto de $L _ [balance](https://git.jeckyll.net) $ indica um desequilíbrio significativo na utilização dos especialistas, e o modelo será penalizado 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](http://xn----8sbafkfboot2agmy3aa5e0dem.xn--80adxhks) de gate ou porta) decide qual especialista ou combinação de especialistas deve [processar](https://kahverengicafeeregli.com) cada token de entrada. Este roteamento é feito de forma dinâmica e aprendida, não através de regras fixas.<br>
<br>Para entender melhor, podemos fazer uma analogia com um hospital: Imagine um grande healthcare facility 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://osezvotrevie.ca) o caso e choose quais especialistas devem atender o paciente. Alguns casos podem precisar de apenas um especialista, enquanto outros podem requerer uma equipe de diferentes especialidades.<br>
<br>No contexto do DeepSeek-R1, este roteamento é [representado matematicamente](http://www.yipinnande.com) pela função $G( x)$, que podemos entender como um [direcionador](https://lagacetatruncadense.com) 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 para gerar [probabilidades](https://main.gazetakorrekte.com) de encaminhamento para diferentes especialistas.
4. Direciona o token para os especialistas mais apropriados<br>
<br>Finalmente temos 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 nosso healthcare facility:<br>
<br>Imagine que em um health center, alguns médicos especialistas [começam](http://redthirteen.uk) a receber muito mais pacientes que outros. Por exemplo, um cardiologista está sempre ocupado, atendendo 80% dos pacientes, enquanto um neurologista mal [recebe pacientes](https://constructorayadel.com.co). Isso cria dois problemas: o cardiologista fica sobrecarregado, podendo causar atrasos e queda na qualidade do atendimento