Como ter um modelo de IA utilizando GPU na Magalu Cloud

como-ter-um-modelo-de-ia-utilizando-gpu-na-magalu-cloud

Autor: Cleverson Gallego – Sr. Technical Product Manager

Os modelos de linguagem (LLMs e SLMs) estão cada vez mais acessíveis, mas configurá-los em ambientes otimizados de GPU e armazenamento ainda pode ser um desafio.

Com a Magalu Cloud, é possível criar em poucos minutos uma instância com GPU, anexar volumes NVMe via Block Storage e executar inferência com alta performance e baixa latência, tudo isso com privacidade e previsibilidade de custos.

Neste guia, vamos demonstrar passo a passo como configurar um ambiente para inferência com modelos como Gemma 3 27B, Mistral 7B, dentre outros.

Pré-requisitos

Antes de iniciar, será necessário:

  • Um tenant ativo na Magalu Cloud;
  • CLI instalada e autenticada;
  • Conhecimento básico em Linux, Ansible e Ollama.

Escolhendo o modelo certo

Entender essa relação é essencial para dimensionar corretamente o ambiente, evitando custos desnecessários e garantindo o máximo desempenho por GPU.

Antes de selecionarmos a Virtual Machine e a GPU que iremos utilizar é importante termos em mente alguns pontos:

  • Qual será o caso de uso para o modelo?
  • Qual modelo irei utilizar?
  • Qual a quantidade ideal de parâmetros para meu caso de uso?

Os parâmetros de um modelo (por exemplo, 27 bilhões do Gemma 3, da Google) são os valores numéricos aprendidos durante o treinamento do modelo e definem o comportamento interno da rede neural do modelo.

Eles incluem:

  • Pesos (weights): coeficientes que determinam a força entre neurônios artificiais;
  • Biases: ajustes adicionais usados para deslocar as ativações das camadas.

Para simplificar: “Parâmetros são o ‘conhecimento condensado’ que o modelo aprendeu ao ser treinado sobre grandes volumes de dados.”

Um modelo com mais parâmetros é, em geral, mais expressivo e capaz de lidar com contextos complexos, mas isso não o torna automaticamente o melhor para todos os tipos de tarefas; portanto, é necessário escolher o modelo com sabedoria, de acordo com o hardware e o caso de uso.

Modelos de linguagem como o Gemma 3 27B, Mistral 7B ou Llama 3 70B são redes neurais massivas compostas por bilhões de parâmetros, e cada parâmetro ocupa espaço em memória da GPU durante a inferência.

Essa relação é direta!

Quanto maior o modelo, maior a memória VRAM necessária, maior a GPU (ou o número de GPUs) exigida(s).

Para estimar corretamente o consumo de memória vamos utilizar uma prática da comunidade:

memória VRAM necessária = [ N Parâmetros ] x [ 2 bytes ] x [ fator de otimização ]

O fator de otimização depende da quantização utilizada no modelo.

Quantização é o processo de reduzir a precisão numérica dos parâmetros, normalmente convertendo números em ponto flutuante (FP) de 16 ou 32 bits que ocupam mais memória em versões compactadas como 8, 4 ou até 2 bits.

Tipo de quantização Descrição Fator aproximado
FP16 2 bytes por parâmetro 2,0
INT8 1 byte por parâmetro 1,0
Q4_K_M 4 bits ( ~0,5 bytes por parâmetro ) 0,5

A quantização é o que permite rodar modelos grandes em GPUs menores — sem sacrificar qualidade de forma perceptível.

Por exemplo, um modelo de 27 bilhões de parâmetros ( Gemma 3 27B ) quantizado em Q4_K_M exigirá: 27 B x 0,5 = ~ 13.5 GB de VRAM

Em resumo, utilizando uma NVIDIA L40 ou L40S, que são as GPUs disponíveis nesta data na Magalu Cloud é seguro dizer que são confortáveis:

  • FP16: modelos de 14-19B;
  • INT8: modelos de 29-38B;
  • Q4: modelos de 58-76B (70B fica no limite com 1 GPU somente (batch=1 e contexto curto)). Para uso confortável prefira 2xL40/L40S.

Recomendações práticas:

  • Modelos de até 7B: uma GPU L40 ou L40S é suficiente mesmo em FP16;
  • Modelos de 20-30B: use quantização (Q4 ou INT8) em uma GPU L40 ou L40S;
  • Modelos acima de 40B: prefira usar 2 GPUs L40S.

Criando a Virtual Machine com GPU e Block Storage

A criação da VM com GPU é o ponto de partida do nosso ambiente de inferência.

Neste exemplo, vamos provisionar uma instância com GPU L40 (flavor L40x1-DP8-64-100) e anexar um volume de Block Storage NVMe 20K IOPS de 500 GB para armazenar os modelos.

Para maiores detalhes dos passos necessários para a criação da VM, consulte nossa documentação oficial.

Agora, para a criação do volume, é importante levar em consideração a quantidade de modelos e, conforme já comentamos, a quantidade de parâmetros. Quanto mais parâmetros, mais espaço o modelo irá ocupar no volume, então maior precisará ser o mesmo. Para o exemplo vamos criar um volume de 500GB com 20K IOPS:

mgc block-storage volumes create --type.name="cloud_nvme20k" --name="modelos" --size=500 --availability-zone br-se1-c

O próximo passo é anexar o volume criado a VM:

mgc block-storage volumes attach --id b74d1968-dd43-4136-ab63-193fcc1111111 --virtual-machine-id 278e412d-af9a-4348-ab76-bfc111111111

Comandos úteis

Para verificar o id da instância desejada:

mgc vm instances list 

Para verificar o id do volume desejado:

mgc block-storage volumes list

Pronto, agora você já tem sua VM criada com GPU e armazenamento. Agora é hora de instalarmos e configurarmos o modelo.

Configurando o ambiente com Ansible

Serão executados os seguintes passos na VM, com auxílio do Ansible:

  • Instalação e configuração de pacotes de sistema;
  • Instalação de CUDA e NVIDIA Drivers;
  • Instalação e configuração Ollama;
  • Deploy do modelo Gemma 3 7B;

Observação: deve-se realizar a instalação do Ansible em uma máquina com acesso à internet antes da execução dos passos.

Dica de segurança: para ambientes de produção, recomenda-se usar chaves SSH com acesso restrito e limitar as portas abertas.

Consulte a documentação oficial da Magalu Cloud para boas práticas de segurança.

Após a instalação do ansible alterar o arquivo inventory.ini:

[inference]
[ip da vm] ansible_user=ubuntu ansible_ssh_private_key_file=[~/.ssh/id_rsa.pem]

Onde:

  • [ip da vm] deve ser substituído pelo ip público da sua VM;
  • [~/.ssh/id_rsa.pem] deve ser substituído pelo arquivo que contém a chave privada configurada para acessoa a sua VM.

Você pode conferir o Ansible necessário para a instalação clicando aqui.

Logo após, executar no terminal:

ansible-playbook -i [inventory.ini] [playbook_gemma_3_27b_ollama_GPU.yaml]

Onde inventory.ini é o arquivo modificado com o ip e chave privada ssh e playbook_gemma_3_27b_ollama_GPU.yaml é o arquivo Ansible com o conteúdo acima.

Após a execução a saída do terminal deve ser algo parecido com o texto abaixo:

magalu@WNLEC-GSLR6Q3 ~/i/ansible> ansible-playbook -i inventory.ini playbook_gemma_3_27b_ollama_GPU.yaml

PLAY [Setup llama.cpp CPU inference environment with external access] ************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************************************************************
The authenticity of host 'ip (ip)' can't be established.
ED25519 key fingerprint is SHA256:.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
ok: [ip]

TASK [Install system packages] ***************************************************************************************************************************************************************
changed: [ip]

TASK [Clone llama.cpp repository] ************************************************************************************************************************************************************
changed: [ip]

...

Testando a inferência

Após finalizado, testar com http://[ip]:8000. O resultado deve ser algo parecido com:

Ollama is running

Para confirmar vamos invocar usando curl o modelo:

curl http://[IP_VM]:8000/v1/chat/completions     -H "Content-Type: application/json"     -d '{
                                    "model": "gemma3",
                                    "messages": [
                                        {
                                            "role": "system",
                                            "content": "You are a helpful assistant."
                                        },
                                        {
                                            "role": "user",
                                            "content": "Hello!"
                                        }
                                    ]
                                }'

O resultado deve ser:

{"id":"chatcmpl-640","object":"chat.completion","created":1760036029,"model":"gemma3:27b","system_fingerprint":"fp_ollama","choices":[{"index":0,"message":{"role":"assistant","content":"Hello there! 👋 nnIt's nice to meet you! I'm here to help in any way I can. Just let me know what you need – whether it's answering a question, brainstorming ideas, writing something, or just having a conversation. nnWhat can I do for you today?nnnn"},"finish_reason":"stop"}],"usage":{"prompt_tokens":22,"completion_tokens":66,"total_tokens":88}}

Conclusão

Agora você tem um ambiente completo de inferência com GPU, Block Storage NVMe e Ollama configurado automaticamente via Ansible.

Acesse o console da Magalu Cloud e teste seu primeiro modelo Gemma ou Mistral com aceleração total.

Queremos saber o que você vai criar com seu modelo! Compartilhe seu projeto conosco.

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
basler-ag-acquires-76%-stake-in-alpha-techsys-automation-in-india

Basler AG Acquires 76% Stake in Alpha TechSys Automation in India

Related Posts