Después de que Ollama haya instalado varios modelos, la primera pregunta que mucha gente tiene es: ¿Cómo cambiar rápidamente entre modelos de chat, código, traducción e incrustación? La segunda pregunta suele ser más práctica: ¿Por qué la anterior desaparece de la memoria de vídeo justo después de cambiar a otro modelo?
Permítanme comenzar con la conclusión: Ollama no necesita servir cada modelo por separado. Utilice ollama run <模型名> para el cambio diario; use ollama ps para ver qué modelos están actualmente en la memoria; utilice ollama stop <模型名> para liberar modelos innecesarios. La posibilidad de que varios modelos residan al mismo tiempo depende de si caben en la memoria o la memoria de video disponible, en lugar de cuántos modelos se descargan en el disco local.
Comandos de conmutación más utilizados
Primero enumere los modelos que ha descargado esta máquina:
|
|
Inicie un modelo de chat o código:
|
|
Cuando necesite cambiar a otro modelo, ejecute otro nombre directamente:
|
|
O cambie al modelo de incrustación para realizar pruebas:
|
|
Los archivos del modelo permanecen locales y no se volverán a descargar al cambiar. Los pesos deben colocarse en la memoria de video o en la memoria del sistema cuando se carga el modelo por primera vez. Si el modelo aún se conserva en la memoria, será más rápido volver a llamarlo.
ollama ps: Primero ver quién ocupa la memoria de video
Cuando el cambio no sea fluido, primero ejecute:
|
|
Enumera los modelos que se están ejecutando o que aún residen en la memoria. Lo más interesante a tener en cuenta aquí es el nombre del modelo, el tamaño, la ubicación del procesador y el tiempo de caducidad.
Si sólo tienes una tarjeta gráfica de tamaño medio y lanzas dos modelos grandes uno tras otro, Ollama podrá desinstalar el primer modelo para dejar espacio al segundo. Esta es una programación de recursos normal, no es que el modelo se pierda. El modelo todavía está en el disco y se recargará en la próxima llamada.
Si no desea esperar a que caduque naturalmente, puede detenerlo de forma proactiva:
|
|
Luego use ollama ps para confirmar que se ha liberado la memoria de video.
Tiempo de permanencia predeterminado: 5 minutos
Por defecto, Ollama conserva un modelo durante aproximadamente 5 minutos después de su último uso. Este diseño es adecuado para preguntas continuas: la primera carga es un poco más lenta y las solicitudes posteriores no necesitan mover repetidamente el mismo modelo a la memoria de video.
Si utiliza varios modelos a la vez en una máquina con poca memoria de video, 5 minutos pueden causar la sensación de “acabo de terminar de ejecutar uno y la memoria de video aún no ha sido devuelta”. Existen tres métodos de control en este momento.
Método 1: desinstalar inmediatamente después de una llamada
Establezca keep_alive en 0 a través de API:
|
|
Esto es adecuado para situaciones en las que el modelo es grande, la memoria de vídeo es escasa y cada tarea es independiente.
Método 2: mantener el modelo residente durante mucho tiempo
Si utiliza el mismo modelo de código todo el día, puede establecer keep_alive en un número negativo:
|
|
De esta manera el modelo permanecerá en la memoria hasta que manualmente ollama stop o se reinicie el servicio. No configure esto para varios modelos grandes cuando no tenga suficiente memoria de video.
Método 3: modificar globalmente la hora residente predeterminada
OLLAMA_KEEP_ALIVE se puede configurar para los servicios de Ollama. Por ejemplo, si desea que todos los modelos se conserven durante 30 segundos de forma predeterminada:
|
|
En Windows, Ollama hereda las variables de entorno del sistema o del usuario. Una vez que se completa la configuración, debe salir de Ollama desde la bandeja y reiniciar desde el menú Inicio. Si Ollama es administrado por systemd en Linux, configure la variable de entorno del servicio y reinicie el servicio.
keep_alive en la solicitud API anulará el OLLAMA_KEEP_ALIVE global, por lo que es más adecuado establecer diferentes políticas para diferentes tareas.
La clave para la persistencia multimodelo: OLLAMA_MAX_LOADED_MODELS
OLLAMA_MAX_LOADED_MODELS se utiliza para limitar la cantidad de modelos que se pueden cargar simultáneamente. Por ejemplo, solo desea que el servicio conserve como máximo un modelo:
|
|
El propósito de esta configuración es evitar llenar la memoria de video durante mucho tiempo cuando se gira el modelo, pero no es un método para “forzar un modelo grande a caber en la tarjeta gráfica”. Durante la inferencia de GPU, un nuevo modelo puede residir simultáneamente con otros modelos solo si puede caber completamente en la memoria de video disponible. De lo contrario, Ollama descargará el modelo antiguo o colocará el modelo en una ruta de memoria más lenta.
Para una única tarjeta gráfica de 8GB, 12GB o 16GB, la estrategia más estable suele ser:
| escena | sugerencia |
|---|---|
| Utilice solo un modelo de chat cada día | OLLAMA_MAX_LOADED_MODELS=1, mantener durante 5 minutos o menos |
| Chat de modelo pequeño + Incrustación | Primero verifique la ocupación real de ambos. Si puedes dejarlos al mismo tiempo, aumenta la cantidad. |
| El modelo de código y el modelo general se utilizan alternativamente. | No insistas en la doble residencia, cambia según las tareas y toma la iniciativa ollama stop |
| Llamada multiusuario del servidor | Combine el tamaño del modelo, la memoria de video y el volumen de solicitudes, y luego configure la simultaneidad y la cola |
No ignore la concurrencia: los contextos también consumen memoria
Los problemas multimodelo no se refieren sólo a los pesos de los modelos. Cada solicitud paralela aumenta el consumo de recursos del contexto y la caché KV.
Ollama también proporciona dos variables de entorno relacionadas:
|
|
OLLAMA_NUM_PARALLEL controla la cantidad de solicitudes que el mismo modelo puede procesar en paralelo. Cuando aumenta el número de concurrencia, los recursos necesarios aumentarán con la longitud del contexto. Cuando se utiliza una sola tarjeta localmente, suele ser más fácil solucionar el problema dejando el valor predeterminado o configurándolo explícitamente en 1; no cargue varios modelos mientras aumenta la simultaneidad.
OLLAMA_MAX_QUEUE es la cantidad de solicitudes que se pueden poner en cola cuando está ocupada. Solo resuelve las colas y no aumenta la memoria de video.
Utilice Modelfile para crear alias fijos para diferentes propósitos
Si siempre configura repetidamente palabras de aviso del sistema, temperatura o políticas de contexto para el mismo modelo base, puede usar Modelfile para crear múltiples alias locales. En lugar de duplicar un conjunto completo de pesos, definen diferentes configuraciones basadas en un modelo.
Por ejemplo, cree un archivo de configuración basado en código Modelfile.code:
|
|
Crea un alias de modelo:
|
|
Luego ejecuta directamente:
|
|
También puedes hacer una versión orientada a la escritura:
|
|
|
|
Nota: qwen3-code y qwen3-write, aunque comparten la misma orientación base, siguen siendo configuraciones de modelo diferentes en tiempo de ejecución. Cuando la memoria de vídeo es escasa, no asuma que pueden residir indefinidamente al mismo tiempo.
Proporcione scripts o API para cambiar modelos por tarea
En la API, el nombre del modelo en sí es el campo de enrutamiento. No es necesario que el script reinicie el servicio, simplemente pase un model diferente según la tarea:
|
|
Una división común del trabajo es:
- Modelo pequeño: clasificación, reescritura, resumen, preguntas y respuestas simples;
- Modelo de código: interpreta el almacén, genera scripts y corrige errores;
- Modelo de incrustación: recuperación de vectores, no responsable del chat;
- Modelos más grandes: problemas complejos, cargados bajo demanda, liberados después de su uso.
Escribir “qué modelo elegir” en el enrutamiento de tareas del código hace que sea más fácil controlar la velocidad y la memoria que concentrar todo el trabajo en un modelo grande.
Errores comunes en Windows
La variable de entorno se cambió pero no tuvo efecto.
Después de modificar OLLAMA_KEEP_ALIVE, OLLAMA_MAX_LOADED_MODELS o OLLAMA_MODELS en Windows, debe salir del programa de bandeja Ollama en ejecución y reiniciar. Por lo general, simplemente reabrir PowerShell no es suficiente.
Los archivos de modelo llenan el disco del sistema.
Puede configurar OLLAMA_MODELS para mover el directorio del modelo a otro disco, por ejemplo:
|
|
Guarde y reinicie Ollama. Antes de migrar modelos existentes, confirme el espacio en disco y los permisos del directorio. No elimine el directorio anterior solo para cambiar el volumen.
Pensé que el modelo había sido eliminado.
Después de cambiar, no puede ver el modelo anterior con ollama ps, lo que simplemente significa que se ha descargado de la memoria; aún puedes ver el modelo descargado con ollama ls. Los archivos del modelo local se eliminarán únicamente ejecutando el siguiente comando:
|
|
Un conjunto de estrategias predeterminadas adecuadas para una sola tarjeta.
Si solo tiene una tarjeta gráfica de consumo y cambia con frecuencia entre varios modelos, puede comenzar con esta estrategia:
|
|
Luego llame al modelo qwen3-code, qwen3-write o Incrustación por tarea. Cuando necesite ejecutar un modelo grande, ejecute ollama stop primero para detener modelos innecesarios; cuando encuentre contextos largos o archivos grandes, reduzca la cantidad de simultaneidad y números residentes.
El objetivo de esta configuración no es permitir que la tarjeta gráfica cargue tantos modelos como sea posible al mismo tiempo, sino permitir que cada cambio sea predecible y la memoria gráfica no se llene con modelos que se olvidarán durante mucho tiempo.
Resumir
Solo hay cuatro comandos principales para la conmutación multimodelo de Ollama:
|
|
Si desea administrar mejor los modelos para diferentes propósitos, use Modelfile para crear alias; si desea controlar la carga y liberación, use keep_alive, OLLAMA_KEEP_ALIVE y OLLAMA_MAX_LOADED_MODELS. Primero determine la cantidad de residentes simultáneos de acuerdo con la memoria de video y luego considere el enrutamiento y la concurrencia multimodelo. La configuración será mucho más estable.
referirse a: