Pesos Llama: Um Guia Definitivo 2024

Pesos Llama: Um Guia Definitivo 2024

Introdução

Já ouviu falar de pesos Llama mas tem pouca ideia sobre isso? Não se preocupe! Neste guia definitivo, exploraremos o conceito de peso, discutiremos o conteúdo e a importância dos pesos Llama, formas de baixar pesos Llama e o método mais eficiente de adotar LLMs — API. Então, se quer acompanhar a tendência dos pesos Llama, continue lendo!

Compreendendo o Conceito de Peso

Peso é um conceito fundamental em redes neurais, incluindo modelos de linguagem baseados em transformer como Llama. Pesos são os parâmetros ajustáveis que o modelo aprende durante o treinamento, permitindo que ele capture padrões nos dados e tenha um bom desempenho em tarefas de processamento de linguagem natural (NLP). A arquitetura transformer, que se tornou o design predominante para modelos de linguagem de ponta, organiza esses pesos em uma estrutura específica chamada “multi-head self-attention”.

Em modelos transformer, os pesos são distribuídos por centenas de camadas, cada uma composta por numerosos neurônios ou unidades. O número de parâmetros varia entre os modelos dependendo das escolhas de design arquitetônico, como o número de camadas, a dimensionalidade das representações de entrada e saída, e a complexidade dos mecanismos de atenção. Uma contagem substancial de parâmetros permite que o modelo capture padrões intrincados e nuances na linguagem natural, facilitando seu forte desempenho em uma ampla gama de tarefas de NLP, desde geração de texto até resposta a perguntas e além. É importante notar que, embora um maior número de parâmetros geralmente se correlacione com maior capacidade do modelo, a utilização eficiente desses parâmetros por meio de inovações arquitetônicas, estratégias de treinamento e técnicas de regularização é crucial para desempenho e generalização ótimos.

O que são Pesos Llama?

Pesos Llama referem-se aos parâmetros utilizados em modelos da família Llama. As discussões atuais em torno dos pesos Llama são resultado da decisão da Meta AI de compartilhar os modelos Llama 2 e 3 com o público. Isso significa que qualquer pessoa agora pode acessar e baixar livremente esses modelos, juntamente com seus tokenizers (ferramentas que dividem o texto em partes menores chamadas “tokens”, semelhante a uma palavra) e pesos para uso pessoal e até comercial.

Diferença entre Llama 2 e 3

Naturalmente, com a inovação dos modelos, diferentes gerações Llama possuem diferentes números de pesos. Para elaborar melhor, o Llama 2 oferece modelos em três tamanhos diferentes, com aproximadamente 7 bilhões, 13 bilhões e 70 bilhões de parâmetros, respectivamente. Da mesma forma, o modelo Llama 3 está disponível em versões com 8 bilhões e 70 bilhões de parâmetros. Embora os maiores modelos da Meta AI tenham mais de 400 bilhões de parâmetros, eles ainda estão em treinamento e ainda não foram lançados.

Compreendendo os Pesos Llama em Códigos

Writing vocab...
[  1/291] Writing tensor tok_embeddings.weight                  | size  32000 x   4096  | type UnquantizedDataType(name='F16')
[  2/291] Writing tensor norm.weight                            | size   4096           | type UnquantizedDataType(name='F32')
[  3/291] Writing tensor output.weight                          | size  32000 x   4096  | type UnquantizedDataType(name='F16')
[  4/291] Writing tensor layers.0.attention.wq.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  5/291] Writing tensor layers.0.attention.wk.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  6/291] Writing tensor layers.0.attention.wv.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  7/291] Writing tensor layers.0.attention.wo.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  8/291] Writing tensor layers.0.attention_norm.weight         | size   4096           | type UnquantizedDataType(name='F32')
[  9/291] Writing tensor layers.0.feed_forward.w1.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 10/291] Writing tensor layers.0.feed_forward.w2.weight        | size   4096 x  11008  | type UnquantizedDataType(name='F16')
[ 11/291] Writing tensor layers.0.feed_forward.w3.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 12/291] Writing tensor layers.0.ffn_norm.weight               | size   4096           | type UnquantizedDataType(name='F32')
[ 13/291] Writing tensor layers.1.attention.wq.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 14/291] Writing tensor layers.1.attention.wk.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 15/291] Writing tensor layers.1.attention.wv.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 16/291] Writing tensor layers.1.attention.wo.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 17/291] Writing tensor layers.1.attention_norm.weight         | size   4096           | type UnquantizedDataType(name='F32')
[ 18/291] Writing tensor layers.1.feed_forward.w1.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 19/291] Writing tensor layers.1.feed_forward.w2.weight        | size   4096 x  11008  | type UnquantizedDataType(name='F16')
[ 20/291] Writing tensor layers.1.feed_forward.w3.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 21/291] Writing tensor layers.1.ffn_norm.weight               | size   4096           | type UnquantizedDataType(name='F32')
...
[283/291] Writing tensor layers.31.attention.wq.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[284/291] Writing tensor layers.31.attention.wk.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[285/291] Writing tensor layers.31.attention.wv.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[286/291] Writing tensor layers.31.attention.wo.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[287/291] Writing tensor layers.31.attention_norm.weight        | size   4096           | type UnquantizedDataType(name='F32')
[288/291] Writing tensor layers.31.feed_forward.w1.weight       | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[289/291] Writing tensor layers.31.feed_forward.w2.weight       | size   4096 x  11008  | type UnquantizedDataType(name='F16')
[290/291] Writing tensor layers.31.feed_forward.w3.weight       | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[291/291] Writing tensor layers.31.ffn_norm.weight              | size   4096           | type UnquantizedDataType(name='F32')