Puntos clave
- El mejor modelo local es el más grande que quepa en tu VRAM a una velocidad utilizable, no el que tenga mejor reputación.
- Ollama expone un endpoint compatible con OpenAI en tu propia máquina, por lo que el mismo código de cliente funciona localmente y alojado.
- Lo local ofrece privacidad y uso sin conexión; lo alojado ofrece un modelo más grande, sin hardware ni configuración.
- Ofrecemos solo un endpoint alojado: no hay descarga de modelos desde este servicio.
Respuesta corta: elige por memoria, luego prueba dos o tres
No hay un único mejor modelo para esto, porque el límite es tu hardware. Un modelo debe caber en la memoria de la GPU (o en la RAM del sistema, mucho más lentamente) junto con su caché de trabajo. La regla práctica es simple: encuentra el modelo más grande que quepa cómodamente en tu memoria y aún responda a una velocidad que puedas soportar, luego compara dos o tres candidatos con tus propios prompts.
Los nombres de los modelos y los rankings cambian cada pocas semanas, por lo que cualquier lista escrita hoy envejece rápido. Salta los rankings y usa un método corto: navega por la biblioteca de Ollama y las subidas de la comunidad, filtra por modelos descritos como sin censura, abliterados o ajustados para roleplay, descarga uno pequeño y uno de tamaño mediano, y ejecuta los mismos diez prompts en cada uno. Tus propios prompts te dicen más que una puntuación en un benchmark de otra persona.
Si después de eso descubres que los modelos que caben en tu máquina son demasiado pequeños para la calidad que deseas, un endpoint alojado es la alternativa. El resto de esta página detalla el compromiso para que decidas con números.
Cómo dimensionar un modelo para tu máquina
Tres números deciden qué se ejecuta bien: cantidad de parámetros, cuantización y longitud de contexto.
Parámetros y cuantización
Un modelo con más parámetros generalmente escribe mejor, sigue instrucciones de manera más fiable y mantiene un personaje por más tiempo. Pero los parámetros consumen memoria. A plena precisión de 16 bits, un modelo necesita aproximadamente dos bytes por parámetro, por lo que un modelo de 7B necesita aproximadamente 14 GB antes de cualquier caché. La cuantización reduce eso. Una versión de 4 bits necesita aproximadamente medio byte por parámetro, por lo que el mismo modelo de 7B cabe en aproximadamente 4 a 5 GB. La calidad baja un poco en cada paso, y la pérdida suele ser pequeña a 4 o 5 bits y notable por debajo de eso.
Longitud del contexto
La ventana de contexto también consume memoria, porque el modelo almacena una caché de todo en la conversación. Una sesión de roleplay larga o una historia con mucho texto anterior necesita una caché más grande. Ollama te permite configurar el tamaño del contexto por modelo, y un valor mayor usa más memoria y ralentiza la generación. Muchas configuraciones locales funcionan con una ventana de unos pocos miles de tokens para mantenerse rápidas, lo que significa que el modelo olvida el inicio de chats largos.
Velocidad
Si un modelo se desborda de la memoria de la GPU a la RAM del sistema, la generación puede pasar de un ritmo de lectura agradable a una palabra a la vez. Un modelo más pequeño que cabe completamente en la GPU a menudo se siente mejor que uno más grande que no cabe, incluso si el más grande escribe ligeramente mejor.
Ejecutar un modelo en Ollama y llamarlo desde código
Una vez instalado Ollama, extraer y chatear requiere dos comandos, y el nombre exacto del modelo proviene de la página de la biblioteca que elegiste:
ollama pull MODEL_NAME
ollama run MODEL_NAME
Ollama también sirve una API compatible con OpenAI en tu propia máquina, por defecto en http://localhost:11434/v1. Eso significa que el mismo código de cliente puede hablar con un modelo local o uno alojado, y cambias modificando la URL base y el nombre del 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))
Ejecutar ambos con los mismos prompts es la forma más rápida de responder la pregunta para tu caso. Si la salida local es suficientemente buena, has terminado y te cuesta electricidad. Si no, tienes una línea base de lo que ganarías.
Ollama local versus una API alojada
Ninguno es mejor en todos los casos. Esta tabla se centra en lo que es estructuralmente cierto de cada enfoque.
| Punto | Local con Ollama | API alojada |
|---|---|---|
| Coste inicial | Tu propia GPU o una máquina con suficiente RAM | Ninguno; crédito prepago desde $20 |
| Coste de ejecución | Electricidad y tu tiempo | $0,15 por cada 1M de tokens de entrada, $0,50 por cada 1M de tokens de salida |
| Tamaño del modelo | Limitado por tu memoria | Un modelo elegido por el proveedor |
| Funciona sin conexión | Sí | No, necesita internet |
| Los datos salen de tu máquina | No | Sí, los prompts van al proveedor; los nuestros no se usan para entrenamiento |
| Elección de modelo | Cualquiera que puedas descargar | Solo el ofrecido |
| Usuarios concurrentes | Limitado por tu hardware | Hasta 8 peticiones simultáneas con una clave completa |
| Configuración | Instalar, descargar, ajustar configuración | Cambiar una URL base y una clave |
Lo local gana en privacidad, uso sin conexión y libertad de elección. Si tu texto nunca debe salir de tu máquina, o quieres cambiar modelos semanalmente, ejecútalo localmente. Una API alojada gana en tiempo de configuración, en no ocupar tu GPU mientras trabajas y en servir una app con varios usuarios a la vez.
También es justo decir lo que no ofrecemos. Este servicio es solo un endpoint alojado. No hay archivo de modelo para descargar, ni ajuste fino y no hay forma de usar tus propios pesos. Si quieres ser dueño del modelo, Ollama es la herramienta adecuada, y nuestra guía de API LLM open source pasa por el conjunto más amplio de opciones.
Cuánto cuesta lo alojado, desglosado
La gente suele asumir que un modelo alojado es caro en comparación con la ejecución local gratuita. Lo local no es gratis una vez que cuentas el hardware, pero la comparación es más fácil con un caso de uso. Los precios aquí son $0.15 por 1M de tokens de entrada y $0.50 por 1M de tokens de salida.
- Roleplay casual, 100 mensajes al día. Digamos que cada turno envía 3.000 tokens de historial y recibe 300 tokens. Entrada por turno: 3.000 a $0,15 por 1M es $0,00045. Salida: 300 a $0,50 por 1M es $0,00015. Eso es $0,0006 por turno, $0,06 por 100 turnos, unos $1,80 en 30 días.
- Un proyecto de escritura. 5M de tokens de entrada y 1M de tokens de salida en un mes son $0.75 más $0.50, lo que suma $1.25.
- Una app pequeña. 200M de tokens de entrada y 40M de tokens de salida al mes son $30 más $20, lo que suma $50.
Solo tú puedes calcular el coste de tu propia GPU, pero el uso ligero y medio cuesta muy poco alojado. La recarga mínima de $20 cubre mucho tiempo en los dos primeros niveles, y el crédito no caduca, así que no desaparecerá si te tomas un mes de descanso. Las recargas más grandes tienen un bono: 5% desde $50, 10% desde $100, 15% desde $200. Los detalles completos están en la página de precios.
Una forma sensata de combinar ambos
No tienes que elegir una vez. Muchas personas ejecutan un modelo local pequeño para borradores rápidos y notas privadas, y envían los trabajos más largos o exigentes a un endpoint alojado. Como ambos usan el formato OpenAI, tu app puede mantener dos objetos cliente y enrutar por tarea, como en el código anterior.
Cuando pruebas el lado alojado, los nuevos usuarios pueden reclamar $0.50 de crédito de prueba con un clic en la página de clave de API, sin tarjeta, uno por persona, válido por 7 días. Con las cifras por turno anteriores, eso son cientos de turnos de roleplay, suficientes para comparar contra tu mejor modelo local con prompts idénticos. Puedes crear una clave de API después de iniciar sesión con Google o con correo electrónico y contraseña. La documentación de API enumera parámetros como temperature, top_p, stop y seed, que se reenvían, así que tus ajustes de muestreo locales se mantienen.
Algunos límites para planificar. Una clave de prueba permite 2 peticiones simultáneas y 60 peticiones por minuto; una clave completa permite 8 y 300. La ventana de contexto es de 100,000 tokens, mucho mayor que lo que la mayoría de las configuraciones locales ejecutan cómodamente. Y la regla que no cambia ningún ajuste: el modelo es para uso adulto lícito y no producirá contenido sexual que involucre a menores de edad.
