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.logEn sistemas Linux con systemd, los registros se pueden encontrar con este comando:
shell
journalctl -u ollama --no-pager --follow --pager-endCuando 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%\Ollamapara ver los registros. Los registros de servidor más recientes estarán enserver.logy los registros más antiguos enserver-#.logexplorer %LOCALAPPDATA%\Programs\Ollamapara explorar los binarios (El instalador agrega esta ruta a la variable PATH de tu usuario)explorer %HOMEPATH%\.ollamapara explorar la carpeta donde se almacenan los modelos y la configuraciónexplorer %TEMP%donde se almacenan los archivos ejecutables temporales en una o más carpetasollama*
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 servePuedes ver las características de tu CPU con el siguiente comando.
shell
cat /proc/cpuinfo| grep flags | head -1Instalació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 shLinux 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_uvmy luegosudo 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=50y 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 nvrmysudo 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=3Habilita 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 problemasOLLAMA_DEBUG=1Durante 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 amdgpuysudo 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.