| Linha 585: | Linha 585: | ||
<div class="figure"> | <div class="figure"> | ||
[[File: | [[File:closed-source-benchmark.png|Comparação com modelos closed-source]] | ||
</div> | </div> | ||
<span id="suporte-a-linguagens"></span> | <span id="suporte-a-linguagens"></span> | ||
== Suporte a linguagens == | == Suporte a linguagens == | ||
Edição das 16h25min de 11 de março de 2024
Llama (Large Language Model Meta AI)
O que é o Llama?
Llama é um conjunto de modelos LLM pré-treinados e fine-tuned desenvolvido pela Meta. Atualmente está em sua segunda versão(Llama 2) e, para ter acesso a ele, é necessário solicitar o acesso por meio do site oficial.
É possível baixar os modelos de diferentes maneiras porém, a maneira mais comum é por meio do Hugging Face.. A seguir, veja os modelos disponíveis do Llama por meio do Hugging Face:
O Llama 2 é disponibilizado em duas versões: Llama 2 e Llama 2 Chat. A diferença entre eles é que o Llama 2 Chat foi ajustado de modo a ter um melhor desempenho em tarefas de conversação, enquanto o Llama 2 base. Ambos os modelos estão disponíveis em três tamanhos: 7B, 13B e 70B de parâmetros.
Além disso, baseado no Llama 2, foi também ajustado um modelo cujo a tarefa específica é a codificação de programas, chamado de Code Llama. Este é disponível em três modelos: Code Llama, Code Llama Instruct e Code Llama Python, todos com as versões de 7B, 13B, 34B e 70B de parâmetros. Importante destacar a disponibilização do modelo de 34B de parâmetros, que não está disponível para os modelos Llama 2 e Llama 2 Chat.
Requisitos de Hardware
Para utilizar o modelo Llama 2, é necessário um hardware com as seguintes especificações mínimas:
| Modelo | GPU |
|---|---|
| meta-llama/Llama-2-7b-chat-hf | 24GB(1x Nvidia A10/A10G) |
| meta-llama/Llama-2-13b-chat-hf | 40GB(1x Nvidia A100 40GB) |
| meta-llama/Llama-2-70b-chat-hf | 160GB(4x Nvidia A100 40GB) |
Preços
Local
A seguir, veja uma tabela com o preço aproximado de algumas placas de vídeo necessárias para o deploy do Llama 2:
|
Placa de Vídeo |
Preço |
|
Nvidia A10/A10G |
3.500,00 USD1 |
|
Nvidia A100(40GB) |
9.500,00 USD1 |
1Preço aproximado com base no valor de mercado.
Cloud(IaaS)
A seguir, veja uma tabela compara o preço oferecido por diferentes serviços para as GPUs necessárias para o deploy do Llama 2, com base no preço de 1 hora de uso, sem considerar o gasto com armazenamento e o serviço mais básico que oferece a configuração de hardware necessária:
|
Serviço |
Nvidia A10/A10G |
Nvidia A100(40GB) |
||||
|
Sob-Demanda |
12 Meses |
36 Meses |
Sob-Demanda |
12 Meses |
36 Meses |
|
|
Hugging Face |
1,050 USD |
- |
- |
4,130 USD |
- |
- |
|
AWS |
1,006 USD1 |
0,604 USD1 |
0,402 USD1 |
4,096 USD2 |
2,402 USD2 |
1,446 USD2 |
|
Google Cloud |
- |
- |
- |
3,673 USD |
2,313 USD |
1,285 USD |
|
Azure |
3,200 USD |
2,663 USD |
1,974 USD |
3,399 USD2 |
2,827 USD2 |
1,703 USD2 |
|
Oracle |
2,000 USD |
1,968 USD |
1,968 USD |
3,050 USD2 |
2,992 USD2 |
2,992 USD2 |
1Os preços mostrados são para a região Leste dos EUA (Norte da Virgínia) da AWS. Os preços para instâncias reservadas de 1 e 3 anos são para as opções de pagamento “Adiantamento parcial” ou “Sem adiantamento antecipado” para instâncias sem a opção Adiantamento parcial.
2Indica que esse valor foi calculado. Na maioria das vezes isso ocorre quando uma instância está disponível apenas como 8x, então o valor fornecido é dividido por 8.
API
Para utilizar o Llama por meio de uma API, existem dois tipos de custos:
- Custo de entrada: É o custo para enviar os dados para a API(mensagens do usuário + prompt do sistema)
- Custo de saída: É o custo para receber os dados da API(resposta do sistema)
Esses custos são baseados na quantidade de tokens de entrada e saída. De maneira geral, um token é uma unidade de texto com aproximadamente 3/4 de uma palavra.
A seguir, veja alguns dos preços oferecidos por diferentes serviços para a utilização da API do Llama 2, com base no preço de 1M de tokens de entrada e saída:
|
Serviço |
Modelo |
1M de tokens de entrada |
1M de tokens de saída |
Total |
|
AWS Bedrock |
Llama-2-13b-chat |
0,75 USD |
1,00 USD |
1,75 USD |
|
Llama-2-70b-chat |
1,95 USD |
2,56 USD |
4,51 USD |
|
|
Azure |
Llama-2-13b |
0,81 USD |
0,94 USD |
1,75 USD |
|
Llama-2-70b |
1,54 USD |
1,77 USD |
3,31 USD |
|
|
Llama-2-13b-chat |
0,81 USD |
0,94 USD |
1,75 USD |
|
|
Llama-2-70b-chat |
1,54 USD |
1,77 USD |
3,31 USD |
|
|
Replicate |
Llama-2-13b |
0,10 USD |
0,50 USD |
0,60 USD |
|
Llama-2-70b |
0,65 USD |
2,75 USD |
3,40 USD |
|
|
Llama-2-13b-chat |
0,10 USD |
0,50 USD |
0,60 USD |
|
|
Llama-2-70b-chat |
0,65 USD |
2,75 USD |
3,40 USD |
Comparativo de custos
A seguir, será discorrido sobre os diferentes custos para utilizar o Llama 2, com base em diferentes quantidades de usuários e diferentes maneiras de utilização(local, cloud, API).
Para isso, a análise será dividida em 3 quantidades de usuários estimadas(1000, 5000 e 10000) e, ao final, será construída uma tabela para resumir os resultados. Os cálculos serão baseados em 1 ano de uso(260 dias - excluindo finais de semana) e por um período de 12 horas diárias. Os gastos fora do horário comercial serão desconsiderados para simplificar a análise.
Os cálculos serão baseados nas seguintes métricas:
- Local: Custo de aquisição de equipamentos(servidores, placas de vídeo, etc.) + Custo de energia + Custo de funcionários para manutenção + Custo de espaço físico
- Cloud: Custo de 1 hora de uso da placa de vídeo
- API: Custo de 1M de tokens de entrada e saída
Além disso, é considerado o seguinte cenário de uso para cada usuário:
- 6 perguntas feitas por dia(média de 1 a cada 2 horas)
- Média de 75 tokens por pergunta
- Média de 600 tokens por resposta
- A escolha do serviço para calcular os valores das categorias “Cloud” e “API” será feita com base naquele serviço que oferecer o menor custo.
- Modelo utilizado: Llama-2-70b-chat
A seguir, veja a tabela com os resultados:
|
Quantidade de Usuários |
Local |
Cloud |
API |
|
1000 |
- |
- |
1.836,90 USD |
|
2500 |
- |
- |
4.592,25 USD |
|
5000 |
- |
- |
9.184,50 USD |
Comparações com outros modelos
Para verificar a acurácia/eficiência do modelo, são realizados alguns benchmarks sobre determinadas tarefas, como programação, tradução, etc. Veja na tabela abaixo alguns dos que foram realizados sobre o Llama 2 e outros modelos:
| Benchmark | Descrição |
|---|---|
| MMLU (Massive Multitask Language Understanding) | Oferece uma avaliação mais abrangente de LLMs, avaliando sua compreensão em diversos temas, desde humanidades até ciências exatas, em diferentes profundidades, desde o nível elementar até a profissional avançado. |
| BBH (BIG-Bench Hard) | Subconjunto de testes do BIG-Bench(Google) que visa avaliar temas como lógica matemática, contagem de objetos, esportes, etc. |
| AGI Eval | Este benchmark é derivado de 20 exames oficiais, públicos e de alto padrão de admissão e qualificação destinados a candidatos humanos em geral, como testes de admissão universitária geral (por exemplo, o Exame de Admissão Universitária Chinês (Gaokao) e o SAT americano), testes de admissão em escolas de direito, competições matemáticas, testes de qualificação de advogados e exames nacionais para serviços civis. |
| TriviaQA | Conjunto de dados realista de perguntas e respostas baseado em texto, que inclui 95 mil pares de perguntas e respostas de 662 mil documentos coletados da Wikipedia e da web. |
| GSM8K (Grade School Math) | Conjunto de dados de 8,5 mil problemas matemáticos de alta qualidade, linguisticamente diversos, para o ensino fundamental, criados por redatores humanos. |
| HumanEval | Consiste em 164 problemas originais de programação, avaliando compreensão de linguagem, algoritmos e matemática simples, com alguns comparáveis a questões de entrevista de software simples. |
| MT-Bench (Multi-turn Benchmark) | É um benchmark de vários turnos que mede a habilidade dos modelos de linguagem grandes (LLMs) de engajar em conversas coerentes e informativas. |
A seguir, veja as tabelas comparativas entre os modelos Llama(modelo base) e outros modelos disponíveis.
Comparação com modelos open-source
Em relação a outros modelos open-source, o Llama 2, em seu modelo de 70B de parâmetros, é superior a todos os modelos open-source comparados. No entanto, é importante destacar que o modelo com 13B de parâmetros é muito semelhante ao modelos MPT 30B e Falcon 40B, mesmo tendo aproximadamente 50% a menos de parâmetros.
Em dezembro de 2023, uma empresa francesa fundada por ex-pesquisadores da Meta e Google Deepmind lançou o modelo Mistral 8x7B, que se tornou o principal concorrente do Llama. Isso pelo fato de também ser um modelo open-source e que, mesmo com menos parâmetros(47B), possui melhor performance em alguns benchmarks.
Comparação com modelos closed-source
Para fazer o comparativo com os modelos closed-source, foi utilizado o modelo Llama-2 70B. É notório que os modelos closed-source são superiores ao Llama 2, no entanto, o modelo de 70B se aproxima bastante ao GPT-3.5(modelo disponível na versão gratuita do ChatGPT), com exceção do benchmark HumanEval(0-shot/benchmark de programação), onde a diferença é discrepante.
Suporte a linguagens
A seguir, veja o percentual relativo a cada linguagem utilizada durante o treinamento do Llama 2:
Percebe-se o suporte majoritário à lingua inglesa e, consequentemente, uma melhor performance nela. Além disso, a língua portuguesa(pt), que inclui pt-PT e pt-BR, não está presente entre as 10 linguas mais utilizadas(ocupa a 13ª posição).
Quantização de modelos
A quantização de modelos é uma técnica que reduz o tamanho do modelo, mas pode afetar a acurácia. No entanto, modelos quantizados têm menor necessidade de hardware. Os principais modelos quantizados do Llama 2 foram feitos pelo usuário TheBloke.
Existem diversas maneiras de quantizar um modelo, veja a seguir os principais modelos quantizados do Llama 2:
- GGML
- Permite a inferência por meio da CPU, não sobrecarregando a GPU
- Método depreciado(surgiu como “protótipo”)
- Exemplo: TheBloke/Llama-2-7B-Chat-GGML
- GGUF
- É uma “versão atualizada” do GGML, visando aumentar a compatibilidade com diferentes modelos de carregamento(model loader).
- Exemplo: TheBloke/Llama-2-7B-Chat-GGUF
- GPTQ
- A inferência é feita pela GPU
- Exemplo: TheBloke/Llama-2-7B-Chat-GPTQ
O futuro do Llama
Em publicação feita em 18/01/2024 em seu Instagram, Mark Zuckerberg revelou que o modelo Llama 3 está em treinamento. Junto disso, algumas previsões de quando este modelo será lançado são feitas baseadas no tempo de treinamento de cada modelo anterior(Llama 1 e 2) e a evolução da tecnologia e, com isso, a expectativa da comunidade de IA é que ele seja lançado no primeiro quadrimestre de 2024.
| Modelo | Intervalo de Treinamento | Mês de lançamento |
|---|---|---|
| Llama 1 | 12/2022 - 02/2023(3 meses) | 02/2023 |
| Llama 2 | 01/2023 - 07/2023(7 meses) | 07/2023 |
| Llama 3 | ❓ | ❓ |
Referências
- Llama Model Card
- Model Details
- Llama 2: Open Foundation and Fine-Tuned Chat Models
- Llama
- Llama 2 FAQs
- Sizing Guide - NVIDIA Docs
- Numbers every LLM Developer should know
- Hugging Face - Pricing
- Instâncias G5 do Amazon EC2 | Amazon Web Services
- Instâncias P4d do Amazon EC2 | AWS
- a2-highgpu-1g - Google Cloud Compute Machine
- Pricing - Linux Virtual Machines | Microsoft Azure
- Compute Pricing | Oracle
- Mark Zuckerberg Instagram post about AI and Llama 3
- Introducing Code Llama, a state-of-the-art large language model for coding
- codellama (Code Llama)
- meta-llama (Meta Llama 2)
- Introducing LLaMA: A foundational, 65-billion-parameter large language model
- Measuring Massive Multitask Language Understanding
- BIG-Bench Hard
- AGIEval
- TriviaQA
- GSM8K - Grade School Math
- HumanEval
- AWS Bedrock
- Microsoft Azure Marketplace
- Replicate
- OpenAI Tokenizer
- Llama 2 chat with vLLM





