? Modelos abraçando o rosto Blog |
Estamos liberando o poder de grandes modelos de linguagem. Nossa versão mais recente do Llama está agora disponível para indivíduos, criadores, pesquisadores e empresas de todos os tamanhos, para que possam experimentar, inovar e dimensionar suas ideias com responsabilidade.
Esta versão inclui pesos de modelo e código inicial para modelos de linguagem Llama 3 pré-treinados e ajustados por instrução, incluindo tamanhos de parâmetros de 8B a 70B.
Este repositório pretende ser um exemplo mínimo de carregamento de um modelo Llama 3 e execução de inferência. Veja receitas de lhama para exemplos mais detalhados.
Para baixar os pesos do modelo e o tokenizer, visite o site da Meta Llama e aceite nosso contrato de licença.
Após enviar sua solicitação, você receberá um URL assinado por e-mail. Em seguida, execute o script download.sh, passando a URL fornecida quando solicitado para iniciar o download.
Pré-requisito: certifique-se de ter wget
e md5sum
instalados. Em seguida, execute o script: ./download.sh
.
Lembre-se de que o link expirará após 24 horas e um determinado número de downloads. Se você começar a ver erros como 403: Forbidden
, poderá solicitar novamente o link.
Também oferecemos downloads no Hugging Face, incluindo transformadores e formatos nativos llama3
. Para baixar pesos do Hugging Face, siga estas etapas:
original
. Você também pode baixá-los da linha de comando se tiver instalado pip install huggingface-hub
: huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --include " original/* " --local-dir meta-llama/Meta-Llama-3-8B-Instruct
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers . pipeline (
"text-generation" ,
model = "meta-llama/Meta-Llama-3-8B-Instruct" ,
model_kwargs = { "torch_dtype" : torch . bfloat16 },
device = "cuda" ,
)
Você pode começar a usar o modelo Llama 3 rapidamente seguindo as etapas abaixo. Essas etapas permitirão que você faça inferências rápidas localmente. Para mais exemplos, confira o repositório de receitas do Llama.
Clone e baixe este repositório em um ambiente conda com PyTorch/CUDA instalado.
Execute no diretório superior:
pip install -e .
Acesse o site da Meta Llama e cadastre-se para baixar os modelos.
Após o cadastro, você receberá um e-mail com a URL para baixar o modelo. Você precisará deste URL ao executar o script download.sh.
Depois de receber o e-mail, navegue até o repositório lhama que você baixou e execute o script download.sh.
Depois de baixar o modelo necessário, você pode executá-lo localmente usando o seguinte comando:
torchrun --nproc_per_node 1 example_chat_completion.py
--ckpt_dir Meta-Llama-3-8B-Instruct/
--tokenizer_path Meta-Llama-3-8B-Instruct/tokenizer.model
--max_seq_len 512 --max_batch_size 6
Perceber
Meta-Llama-3-8B-Instruct/
pelo caminho do diretório do ponto de verificação e Meta-Llama-3-8B-Instruct/tokenizer.model
pelo caminho do modelo do tokenizer.–nproc_per_node
deve ser definido como o valor MP do modelo que você está usando.max_seq_len
e max_batch_size
conforme necessário.Diferentes modelos requerem diferentes valores de paralelismo de modelo (MP):
Modelo | Deputado |
---|---|
8B | 1 |
70B | 8 |
Todos os modelos suportam comprimentos de sequência de até 8.192 tokens, mas pré-alocamos o cache com base nos valores de max_seq_len
e max_batch_size
. Portanto, defina esses valores de acordo com o seu hardware.
Esses modelos não são ajustados para bate-papo ou perguntas e respostas. Os prompts devem ser configurados de forma que a resposta esperada seja uma continuação natural do prompt.
Veja example_text_completion.py
para alguns exemplos. Para ilustração, veja o comando abaixo para executá-lo usando o modelo llama-3-8b ( nproc_per_node
precisa ser definido com MP
):
torchrun --nproc_per_node 1 exemplo_text_completion.py --ckpt_dir Meta-Llama-3-8B/ --tokenizer_path Meta-Llama-3-8B/tokenizer.model --max_seq_len 128 --max_batch_size 4
Modelos ajustados são treinados para aplicações conversacionais. Para obter as características e desempenho esperados, eles precisam seguir um formato específico definido em ChatFormat
: os prompts iniciam com o token especial <|begin_of_text|>
, seguido de uma ou mais mensagens. Cada mensagem começa com a tag <|start_header_id|>
, tem a função de system
, user
ou assistant
e termina com a tag <|end_header_id|>
. Após a nova linha dupla nn
nsegue o conteúdo da mensagem. O final de cada mensagem é marcado pelo token <|eot_id|>
.
Você também pode implantar classificadores adicionais para filtrar entradas e saídas consideradas inseguras. Veja um exemplo no repositório llama-recipes sobre como adicionar verificadores de segurança à entrada e saída do seu código de inferência.
Exemplo usando llama-3-8b-chat:
torchrun --nproc_per_node 1 example_chat_completion.py --ckpt_dir Meta-Llama-3-8B-Instruct/ --tokenizer_path Meta-Llama-3-8B-Instruct/tokenizer.model --max_seq_len 512 --max_batch_size 6
Llama 3 é uma tecnologia nova e apresenta riscos potenciais. Os testes realizados até agora não cobrem – e não podem – cobrir todas as situações. Para ajudar os desenvolvedores a lidar com esses riscos, criamos Diretrizes de Uso Responsável.
Informe "bugs" de software ou outros problemas com o modelo por meio de um dos seguintes métodos:
Consulte MODEL_CARD.md.
Nossos modelos e pesos são licenciados para pesquisadores e entidades comerciais, aderindo a princípios abertos. Nossa missão é capacitar indivíduos e indústrias por meio desta oportunidade, ao mesmo tempo que promovemos um ambiente de descoberta e avanço ético da IA.
Revise o documento de LICENÇA, bem como nossa Política de Uso Aceitável
Para perguntas frequentes, o FAQ pode ser encontrado aqui https://llama.meta.com/faq, que será atualizado continuamente à medida que novas perguntas surgirem.