Pontos principais
- O melhor modelo local é o maior que cabe na sua VRAM a uma velocidade utilizável, não o que tem a melhor reputação.
- O Ollama expõe um endpoint compatível com OpenAI na sua própria máquina, então o mesmo código de cliente funciona localmente e hospedado.
- O local oferece privacidade e uso offline; o hospedado oferece um modelo maior, sem hardware e sem configuração.
- Oferecemos apenas um endpoint hospedado: não há download de modelos neste serviço.
Resposta curta: escolha pela memória, depois teste dois ou três
Não existe um único melhor modelo para isso, porque o limite é o seu hardware. Um modelo precisa caber na memória da GPU (ou na RAM do sistema, muito mais lentamente) junto com seu cache de trabalho. A regra prática é simples: encontre o maior modelo que caiba confortavelmente na sua memória e ainda responda em uma velocidade que você possa suportar, depois compare dois ou três candidatos com seus próprios prompts.
Nomes de modelos e rankings mudam a cada poucas semanas, então qualquer lista escrita hoje envelhece rápido. Pule as tabelas de classificação e use um método curto: navegue pela biblioteca e uploads da comunidade do Ollama, filtre por modelos descritos como sem censura, abliterados ou ajustados para roleplay, puxe um pequeno e um de tamanho médio e execute os mesmos dez prompts em cada um. Seus próprios prompts dizem mais do que uma pontuação em benchmark de outra pessoa.
Se depois disso você perceber que os modelos que cabem na sua máquina são pequenos demais para a qualidade que deseja, um endpoint hospedado é a alternativa. O restante desta página detalha o trade-off para que você decida com números.
Como dimensionar um modelo para a sua máquina
Três números determinam o que roda bem: contagem de parâmetros, quantização e comprimento do contexto.
Parâmetros e quantização
Um modelo com mais parâmetros geralmente escreve melhor, segue instruções com mais confiabilidade e mantém um personagem por mais tempo. Mas parâmetros consomem memória. Na precisão total de 16 bits, um modelo precisa de cerca de dois bytes por parâmetro, então um modelo de 7B precisa de aproximadamente 14 GB antes de qualquer cache. A quantização reduz isso. Uma versão de 4 bits precisa de cerca de meio byte por parâmetro, então o mesmo modelo de 7B cabe em cerca de 4 a 5 GB. A qualidade cai um pouco a cada etapa, e a perda é geralmente pequena em 4 a 5 bits e perceptível abaixo disso.
Comprimento do contexto
A janela de contexto também consome memória, porque o modelo armazena um cache de tudo na conversa. Uma sessão de roleplay longa ou uma história com muito texto anterior precisa de um cache maior. O Ollama permite definir o tamanho do contexto por modelo, e um valor maior usa mais memória e desacelera a geração. Muitas configurações locais rodam com uma janela de algumas milhares de tokens para permanecer rápidas, o que significa que o modelo esquece o início de chats longos.
Velocidade
Se um modelo transbordar da memória da GPU para a RAM do sistema, a geração pode cair de um ritmo de leitura agradável para uma palavra por vez. Um modelo menor que cabe inteiramente na GPU geralmente parece melhor do que um maior que não cabe, mesmo que o maior escreva ligeiramente melhor.
Executando um modelo no Ollama e chamando-o do código
Uma vez instalado o Ollama, baixar e conversar requer dois comandos, e o nome exato do modelo vem da página da biblioteca que você escolheu:
ollama pull MODEL_NAME
ollama run MODEL_NAME
O Ollama também serve uma API compatível com OpenAI na sua própria máquina, por padrão em http://localhost:11434/v1. Isso significa que o mesmo código de cliente pode falar com um modelo local ou um hospedado, e você alterna alterando a URL base e o nome do modelo:
from openai import OpenAI
# Local Ollama (the key is ignored but must be non-empty)
local = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
# Hosted endpoint
hosted = OpenAI(base_url="https://api.ornith.top/v1", api_key="YOUR_API_KEY")
def ask(client, model, text):
r = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": text}],
)
return r.choices[0].message.content
prompt = "Write a tense two-paragraph scene set in an abandoned lighthouse."
print(ask(local, "MODEL_NAME", prompt))
print(ask(hosted, "uncensored", prompt))
Executar ambos nos mesmos prompts é a maneira mais rápida de responder à pergunta para o seu caso. Se a saída local for boa o suficiente, você terminou e isso custa energia elétrica. Se não for, você tem uma referência do que ganharia.
Ollama local versus uma API hospedada
Nenhum é melhor em todos os casos. Esta tabela mantém o que é estruturalmente verdadeiro para cada abordagem.
| Ponto | Local com Ollama | API Hospedada |
|---|---|---|
| Custo inicial | Sua própria GPU ou uma máquina com RAM suficiente | Nenhum; crédito pré-pago a partir de $20 |
| Custo de execução | Eletricidade e seu tempo | $0,15 por 1M de tokens de entrada, $0,50 por 1M de tokens de saída |
| Tamanho do modelo | Limitado pela sua memória | Um modelo escolhido pelo provedor |
| Funciona offline | Sim | Não, precisa de internet |
| Os dados saem da sua máquina | Não | Sim, os prompts vão para o provedor; os nossos não são usados para treinamento |
| Escolha de modelo | Qualquer coisa que você possa baixar | Apenas o oferecido |
| Usuários simultâneos | Limitado pelo seu hardware | Até 8 requisições simultâneas com uma chave completa |
| Configuração | Instalar, baixar, ajustar configurações | Alterar uma URL base e chave |
O local vence em privacidade, uso offline e liberdade de escolha. Se o seu texto nunca deve sair da sua máquina, ou se você quer trocar modelos semanalmente, execute localmente. Uma API hospedada vence em tempo de configuração, em não ocupar sua GPU enquanto você trabalha e em servir um app com vários usuários ao mesmo tempo.
Também é justo dizer o que não oferecemos. Este serviço é apenas um endpoint hospedado. Não há arquivo de modelo para download, nem ajuste fino e nem maneira de trazer seus próprios pesos. Se você quer possuir o modelo, o Ollama é a ferramenta certa, e nosso guia de API LLM de código aberto passa pelo conjunto mais amplo de opções.
Quanto custa o hospedado, calculado
As pessoas frequentemente assumem que um modelo hospedado é caro em comparação com a execução local gratuita. O local não é gratuito quando você conta o hardware, mas a comparação é mais fácil com uso concreto. Os preços aqui são $0,15 por 1M de tokens de entrada e $0,50 por 1M de tokens de saída.
- Roleplay casual, 100 mensagens por dia. Cada turno envia 3000 tokens de histórico e recebe 300 tokens de volta. Entrada por turno: 3000 a $0,15 por 1M resulta em $0,00045. Saída: 300 a $0,50 por 1M resulta em $0,00015. Isso dá $0,0006 por turno, $0,06 para 100 turnos, cerca de $1,80 em 30 dias.
- Um projeto de escrita. 5M de tokens de entrada e 1M de tokens de saída em um mês é $0,75 mais $0,50, então $1,25.
- Um pequeno aplicativo. 200 milhões de tokens de entrada e 40 milhões de tokens de saída por mês custam $30 mais $20, totalizando $50.
Só você pode calcular o custo da sua própria GPU, mas o uso leve e moderado custa muito pouco hospedado. O recarregamento mínimo de $20 cobre um longo período nos dois primeiros níveis, e o crédito nunca expira, então ele não desaparecerá se você tirar um mês de folga. Recarregamentos maiores trazem um bônus: 5% a partir de $50, 10% a partir de $100, 15% a partir de $200. Detalhes completos estão na página de preços.
Uma maneira sensata de combinar ambos
Você não precisa escolher apenas uma vez. Muitas pessoas executam um pequeno modelo local para rascunhos rápidos e anotações privadas, e enviam tarefas mais longas ou exigentes para um endpoint hospedado. Como ambos falam o formato OpenAI, seu aplicativo pode manter dois objetos de cliente e rotear por tarefa, como no código acima.
Ao testar o lado hospedado, novos usuários podem reivindicar $0,50 de crédito de teste com um clique na página da chave de API, sem cartão, um por pessoa, válido por 7 dias. Nas figuras por turno acima, isso são centenas de turnos de roleplay, suficientes para comparar contra seu melhor modelo local com prompts idênticos. Você pode criar uma chave de API após entrar com Google ou com e-mail e senha. A documentação da API lista parâmetros como temperature, top_p, stop e seed, que são repassados, então suas configurações de amostragem local são mantidas.
Alguns limites a planejar. Uma chave de teste permite 2 requisições simultâneas e 60 requisições por minuto; uma chave completa permite 8 e 300. A janela de contexto é de 100.000 tokens, muito maior do que a maioria das configurações locais roda com conforto. E a única regra que nenhuma configuração altera: o modelo é para uso adulto legal e não produzirá conteúdo sexual envolvendo menores de idade.
