Skip to content

A veces Ollama puede no funcionar como se espera. Una de las mejores formas de averiguar qué sucedió es revisar los registros. Encuentra los registros en Mac ejecutando el siguiente comando:

shell
cat ~/.ollama/logs/server.log

En sistemas Linux con systemd, los registros se pueden encontrar con este comando:

shell
journalctl -u ollama --no-pager --follow --pager-end

Cuando ejecutas Ollama en un contenedor, los registros se envían a stdout/stderr dentro del contenedor:

shell
docker logs <container-name>

(Usa docker ps para encontrar el nombre del contenedor)

Si ejecutas manualmente ollama serve en una terminal, los registros aparecerán en esa misma terminal.

Cuando ejecutas Ollama en Windows, hay varias ubicaciones diferentes. Puedes verlas en la ventana del explorador presionando <cmd>+R y escribiendo:

  • explorer %LOCALAPPDATA%\Ollama para ver los registros. Los registros de servidor más recientes estarán en server.log y los registros más antiguos en server-#.log
  • explorer %LOCALAPPDATA%\Programs\Ollama para explorar los binarios (El instalador agrega esta ruta a la variable PATH de tu usuario)
  • explorer %HOMEPATH%\.ollama para explorar la carpeta donde se almacenan los modelos y la configuración
  • explorer %TEMP% donde se almacenan los archivos ejecutables temporales en una o más carpetas ollama*

Para habilitar registros de depuración adicionales que ayuden a solucionar problemas, primero Cierra la aplicación en ejecución desde el menú de la bandeja del sistema y luego, en una terminal de PowerShell:

powershell
$env:OLLAMA_DEBUG="1"
& "ollama app.exe"

Únete al Discord para obtener ayuda interpretando los registros.

Bibliotecas LLM

Ollama incluye varias bibliotecas LLM compiladas para diferentes GPU y funciones vectoriales de CPU. Ollama intenta seleccionar la mejor opción según las capacidades de tu sistema. Si esta detección automática presenta problemas, o tienes otros inconvenientes (por ejemplo, fallos en tu GPU), puedes solucionarlo forzando el uso de una biblioteca LLM específica. cpu_avx2 tendrá el mejor rendimiento, seguida de cpu_avx, y la más lenta pero compatible con todos los sistemas es cpu. La emulación de Rosetta en macOS funcionará con la biblioteca cpu.

En el registro del servidor, verás un mensaje similar al siguiente (varía según la versión):

Dynamic LLM libraries [rocm_v6 cpu cpu_avx cpu_avx2 cuda_v11 rocm_v5]

Sobrescritura experimental de biblioteca LLM

Puedes establecer la variable OLLAMA_LLM_LIBRARY en cualquiera de las bibliotecas LLM disponibles para omitir la detección automática. Por ejemplo, si tienes una tarjeta CUDA pero quieres forzar el uso de la biblioteca LLM de CPU con soporte de vectores AVX2, usa:

shell
OLLAMA_LLM_LIBRARY="cpu_avx2" ollama serve

Puedes ver las características de tu CPU con el siguiente comando.

shell
cat /proc/cpuinfo| grep flags | head -1

Instalación de versiones antiguas o de prelanzamiento en Linux

Si tienes problemas en Linux y quieres instalar una versión anterior, o deseas probar una versión de prelanzamiento antes de su lanzamiento oficial, puedes indicarle al script de instalación qué versión instalar.

shell
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.5.7 sh

Linux tmp noexec

Si tu sistema está configurado con la marca "noexec" en la ubicación donde Ollama almacena sus archivos ejecutables temporales, puedes especificar una ubicación alternativa estableciendo la variable OLLAMA_TMPDIR en una ruta en la que el usuario que ejecuta ollama tenga permisos de escritura. Por ejemplo: OLLAMA_TMPDIR=/usr/share/ollama/

Linux docker

Si Ollama funciona inicialmente en la GPU dentro de un contenedor de Docker, pero luego cambia a ejecutarse en la CPU después de un período de tiempo, con errores en el registro del servidor que informan fallos en la detección de GPU, esto se puede resolver desactivando la gestión de cgroups de systemd en Docker. Edita el archivo /etc/docker/daemon.json en el host y agrega "exec-opts": ["native.cgroupdriver=cgroupfs"] a la configuración de Docker.

Detección de GPU NVIDIA

Cuando Ollama se inicia, realiza un inventario de las GPU presentes en el sistema para determinar la compatibilidad y la cantidad de VRAM disponible. A veces, esta detección no logra encontrar tus GPU. En general, ejecutar el controlador más reciente obtendrá los mejores resultados.

Solución de problemas de NVIDIA en Linux

Si usas un contenedor para ejecutar Ollama, asegúrate de haber configurado primero el entorno de ejecución de contenedores como se describe en docker

A veces Ollama puede tener dificultades para inicializar la GPU. Al revisar los registros del servidor, esto puede aparecer como varios códigos de error, como "3" (no inicializado), "46" (dispositivo no disponible), "100" (sin dispositivo), "999" (desconocido) u otros. Las siguientes técnicas de solución de problemas pueden ayudar a resolver el inconveniente:

  • Si usas un contenedor, ¿funciona el entorno de ejecución de contenedores? Prueba docker run --gpus all ubuntu nvidia-smi; si esto no funciona, Ollama no podrá ver tu GPU NVIDIA.
  • ¿Está cargado el controlador uvm? Ejecuta sudo nvidia-modprobe -u
  • Prueba a recargar el controlador nvidia_uvm: ejecuta sudo rmmod nvidia_uvm y luego sudo modprobe nvidia_uvm
  • Prueba a reiniciar el sistema
  • Asegúrate de estar ejecutando los controladores NVIDIA más recientes

Si ninguna de estas soluciones resuelve el problema, recopila información adicional y crea un informe de error:

  • Establece CUDA_ERROR_LEVEL=50 y vuelve a intentarlo para obtener registros de diagnóstico más detallados
  • Revisa dmesg en busca de errores con los comandos sudo dmesg | grep -i nvrm y sudo dmesg | grep -i nvidia

Detección de GPU AMD

En Linux, el acceso a las GPU AMD generalmente requiere pertenencia al grupo video y/o render para acceder al dispositivo /dev/kfd. Si los permisos no están configurados correctamente, Ollama lo detectará y mostrará un error en el registro del servidor.

Al ejecutar en un contenedor, en algunas distribuciones de Linux y entornos de ejecución de contenedores, el proceso de ollama puede no poder acceder a la GPU. Usa el comando ls -lnd /dev/kfd /dev/dri /dev/dri/* en el sistema host para determinar los ID de grupo numéricos de tu sistema, y pasa argumentos adicionales --group-add ... al contenedor para que pueda acceder a los dispositivos necesarios. Por ejemplo, en la siguiente salida crw-rw---- 1 0 44 226, 0 Sep 16 16:55 /dev/dri/card0 la columna del ID de grupo es 44

Si tienes problemas para que Ollama detecte o use correctamente tu GPU para inferencia, lo siguiente puede ayudar a aislar el fallo.

  • AMD_LOG_LEVEL=3 Habilita los niveles de registro de información en las bibliotecas AMD HIP/ROCm. Esto puede ayudar a mostrar códigos de error más detallados que faciliten la solución de problemas
  • OLLAMA_DEBUG=1 Durante la detección de GPU se mostrará información adicional
  • Revisa dmesg en busca de errores de los controladores amdgpu o kfd con los comandos sudo dmesg | grep -i amdgpu y sudo dmesg | grep -i kfd

Discrepancia de versión de controlador AMD

Si tu GPU AMD no se detecta en Linux y los registros del servidor contienen mensajes como:

msg="failure during GPU discovery" ... error="failed to finish discovery before timeout"
msg="bootstrap discovery took" duration=30s ...

Esto generalmente significa que el controlador de GPU AMD del sistema es demasiado antiguo. Ollama incluye bibliotecas de ROCm 7 para Linux que requieren un controlador de kernel de ROCm 7 compatible. Si el sistema ejecuta un controlador anterior (ROCm 6.x o anterior), la inicialización de la GPU se bloqueará durante la detección de dispositivos y eventualmente agotará el tiempo de espera, haciendo que Ollama recurra a la CPU.

Para resolver esto, actualiza al controlador ROCm v7 usando la utilidad amdgpu-install de la documentación de ROCm de AMD. Después de actualizar, reinicia el sistema y vuelve a iniciar Ollama.

Varias GPU AMD

Si obtienes respuestas sin sentido al cargar modelos en varias GPU AMD en Linux, consulta la siguiente guía.

Errores de terminal en Windows

Se sabe que versiones antiguas de Windows 10 (por ejemplo, 21H1) tienen un error por el cual el programa de terminal estándar no muestra correctamente los caracteres de control. Esto puede generar una larga cadena de caracteres como ←[?25h←[?25l que se muestra en pantalla, y a veces arroja el error The parameter is incorrect. Para resolver este problema, actualiza a Windows 10 22H1 o una versión más reciente.