Guías/Ollama usa demasiada memoria

¿Ollama usa demasiada memoria en un Mac? Cómo ver qué está cargado y sacarlo de la memoria

Atta 🐬

Fundador de Vitals

Publicado

Respuesta rápida

Ollama mantiene un modelo en memoria durante cinco minutos después de su última respuesta, para que la siguiente pregunta se responda rápido. Por eso sigue ocupando varios gigabytes cuando has dejado de usarlo. Ejecuta ollama ps para ver qué modelos están cargados y cuándo saldrá cada uno de la memoria, y ollama stop seguido del nombre de un modelo para sacarlo ahora. La memoria que ocupa un modelo depende de su tamaño y de la longitud de contexto con la que lo ejecutas. Vitals, un monitor del sistema para Mac, muestra en la barra de menús la memoria de Ollama, la carga del chip gráfico y la presión de memoria del Mac.

Cómo ver y liberar la memoria de Ollama

  1. 01 En Terminal, ejecuta ollama ps. Cada fila es un modelo en memoria, con su tamaño, si se ejecuta en el chip gráfico y cuánto falta para que salga de la memoria.
  2. 02 Saca uno de la memoria ahora con ollama stop seguido de su nombre, por ejemplo ollama stop llama3.2. La memoria vuelve en uno o dos segundos.
  3. 03 Abre Monitor de Actividad, haz clic en Memoria y mira la presión de memoria en la parte inferior. En verde significa que el modelo cabe. En amarillo o en rojo con un modelo cargado significa que es demasiado grande para lo demás que tienes abierto.
  4. 04 Para que los modelos salgan antes de la memoria, ajusta cuánto tiempo se mantienen. En Terminal, ejecuta launchctl setenv OLLAMA_KEEP_ALIVE 1m, luego sal de Ollama desde su icono de la barra de menús y vuelve a abrirlo.
  5. 05 Si al Mac le falta memoria cada vez que hay un modelo cargado, usa un modelo más pequeño o una versión más pequeña del mismo. ollama list muestra los que tienes y sus tamaños.

Un keep-alive de 0 saca un modelo de la memoria en cuanto ha respondido; -1 lo mantiene cargado hasta que lo detengas. Las apps que hablan con Ollama pueden poner su propio valor en cada petición, y por eso a veces un modelo se queda más tiempo del que has ajustado.

Ejecutar un modelo en tu propio Mac significa tenerlo entero en memoria a la vez. Un Mac con chip de Apple comparte una misma reserva de memoria entre el procesador y el chip gráfico, así que un modelo que en otro ordenador necesitaría una tarjeta gráfica dedicada aquí cabe, pero sale de la misma memoria que usan tus apps. Un modelo de 8 GB en un Mac de 16 GB deja 8 GB para todo lo demás. Ollama no tiene una fuga de memoria cuando ocupa tanto; está guardando el modelo. La tabla muestra de qué depende la cifra.

De qué depende la memoria de Ollama

Lo que vesPor quéQué hacer
Varios GB ocupados después de dejar de chatear El modelo sigue cargado durante cinco minutos ollama stop, o un keep-alive más corto
Más memoria que el tamaño del archivo del modelo El contexto con el que lo ejecutas también necesita memoria Usa una longitud de contexto menor
Dos modelos en memoria a la vez Se pidió un segundo modelo antes de que el primero saliera de la memoria ollama ps, y luego detén el que no estés usando
Presión de memoria en amarillo o en rojo, y el Mac lento El modelo es demasiado grande para la memoria que hay libre Un modelo más pequeño, o cierra otras apps
Respuestas lentas y la CPU ocupada Parte del modelo no cabía en el chip gráfico ollama ps muestra el reparto; usa un modelo más pequeño

Por qué Ollama mantiene los modelos cargados

Cargar un modelo significa leer gigabytes del disco y pasarlos a la memoria, lo que tarda entre unos segundos y un minuto. Hacerlo con cada pregunta volvería lentas todas las respuestas, así que Ollama conserva el modelo durante cinco minutos después de su último uso y luego lo saca de la memoria. Cada pregunta nueva pone el reloj a cero. Si una app de tu Mac le pregunta algo al modelo cada pocos minutos, por ejemplo el autocompletado de un editor, el modelo nunca sale de la memoria.

El ajuste se llama keep-alive. OLLAMA_KEEP_ALIVE cambia el valor por omisión para todo; un valor de 0 devuelve la memoria al instante, a cambio de que la primera respuesta sea lenta cada vez.

Cuánta memoria necesita un modelo

Por regla general, la memoria es el tamaño del archivo del modelo más espacio para la conversación. Un modelo de 8000 millones de parámetros con la compresión habitual ocupa unos 5 GB; uno de 30 000 millones, unos 20 GB. El tamaño en disco que muestra ollama list es una buena primera estimación.

La longitud de contexto es la parte que la gente pasa por alto. Es cuánto texto puede tener presente el modelo a la vez, y su memoria se reserva cuando el modelo se carga, la llenes o no. Un contexto largo en un modelo pequeño puede usar más que el propio modelo. Si ollama ps muestra un tamaño muy por encima del del archivo, el motivo es el contexto.

¿El modelo cabe en tu Mac?

La prueba real es la presión de memoria con el modelo cargado y tus apps habituales abiertas. Verde: cabe. Amarillo: macOS está comprimiendo memoria para hacer sitio, y todo va un poco más lento. Rojo: está usando el intercambio en disco, y tanto el modelo como el Mac van lentos. Un modelo que se ejecuta en parte en el procesador porque no cabía en el chip gráfico también es mucho más lento; ollama ps dice cómo se repartió.

Una versión más pequeña del mismo modelo suele costar poco en calidad y mucho menos en memoria. En un Mac de 16 GB, los modelos de hasta unos 8 GB dejan sitio para trabajar. Consulta memoria unificada para ver cómo la reparte el Mac.

LM Studio y otras apps

Lo mismo vale para cualquier app que ejecute modelos en local. LM Studio mantiene un modelo cargado hasta que lo expulsas o se acaba su tiempo de inactividad, y muestra los modelos cargados en la parte superior de su ventana. Los editores y las apps de chat que ejecutan un modelo por ti hacen lo mismo sin que lo veas. La memoria es el modelo, lo tenga la app que lo tenga.

Lo que añade Vitals

Vitals muestra lo que un modelo cargado le cuesta al Mac, donde puedes verlo mientras trabajas.

  • La memoria de Ollama en una sola fila, con sus procesos auxiliares incluidos
  • La presión de memoria y la memoria libre en la barra de menús, para que veas al instante si un modelo cabe
  • La carga del chip gráfico en la barra de menús y en su propia pestaña, con las apps que lo usan
  • Una notificación cuando la memoria de una app no para de crecer
  • Qué app usó más energía, hora a hora: ejecutar un modelo es de lo más pesado que hace un Mac con la batería

Conviene saberlo

  • Vitals muestra la memoria que ocupa Ollama, no qué modelo está cargado. Eso lo muestra ollama ps.
  • Vitals no saca modelos de la memoria. Eso lo hace ollama stop.
Consigue Vitals por $9 $9 durante el lanzamiento, $29 después. Reembolso en 14 días.

Preguntas frecuentes

¿Por qué Ollama usa tanta memoria?

Tiene un modelo en memoria. Los modelos siguen cargados durante cinco minutos después de su última respuesta. Ejecuta ollama ps para ver qué está cargado, y ollama stop con el nombre del modelo para sacarlo de la memoria.

¿Cómo saco un modelo de la memoria en Ollama?

Ejecuta ollama stop seguido del nombre del modelo. Para que los modelos salgan solos antes de la memoria, ajusta OLLAMA_KEEP_ALIVE a un tiempo más corto.

¿Cómo cambio el tiempo que Ollama mantiene cargado un modelo en un Mac?

Ejecuta launchctl setenv OLLAMA_KEEP_ALIVE 1m en Terminal, con el tiempo que quieras, luego sal de Ollama y vuelve a abrirlo. Usa 0 para sacarlos de la memoria al instante, o -1 para mantener los modelos cargados.

¿Cuánta memoria necesito para ejecutar un modelo con Ollama?

Más o menos el tamaño del archivo del modelo más espacio para el contexto. En un Mac de 16 GB, los modelos de hasta unos 8 GB dejan sitio para tus otras apps.

¿Por qué Ollama usa más memoria que el tamaño del modelo?

La memoria para la longitud de contexto se reserva cuando el modelo se carga. Un contexto largo puede añadir varios gigabytes. Ejecuta el modelo con un contexto menor si no lo necesitas.

¿Ollama usa memoria cuando no lo estoy usando?

Solo durante cinco minutos después de la última respuesta, a menos que una app le siga preguntando algo o se haya alargado el tiempo de keep-alive. Después, el modelo sale de la memoria y Ollama usa muy poca.

¿Hay alguna app que muestre si un modelo local cabe en la memoria de mi Mac?

Vitals muestra la presión de memoria, la memoria libre y la carga del chip gráfico en la barra de menús, así que puedes ver lo que cuesta un modelo cargado mientras trabajas.

En el glosario

Más guías