Get up and running with large language models
Ollama únicamente puede ejecutar modelos en la cola GPU.
En el mismo nodo primero tenemos que cargar el servidor y después ejecutar el modelo.
Debemos asegurarnos de que el modelo cabe repartido entre la memória de la GPU y la del nodo (cuanto mayor sea el modelo, mayores serán los requisitos de RAM y VRAM).
Los modelos que usemos se descargan en nuestra home.
A continuación tenemos un ejemplo de archivo .sh para lanzar un sbatch:
#!/bin/bash
#SBATCH --job-name=ollama
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=28
#SBATCH --gres=gpu:1
#SBATCH --mem=64G
#SBATCH --time=02:00:00
#SBATCH --output=ollama_run_gpu.out
#SBATCH --partition=gpu
module load rama0.4 GCCcore/13.3.0 ollama/0.9.6-CUDA-12.6.0 # Carga inicial de los módulos necesarios
# Iniciamos el servidor de Ollama en background
ollama serve &
sleep 25 # Le damos 25 segundos para asegurarnos de que ha terminado de cargar.
# Ejecutamos el modelo y le pasamos el texto
ollama run deepseek-r1:8b "What does CSIC stand for?"
Si el modelo no está descargado, Ollama se lo descargará. De todas formas, podemos descargar modelos sin ejecutarlos (para la descarga se puede usar la cola express):
#!/bin/bash
#SBATCH --job-name=ollama_download_model
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=2
#SBATCH --time=02:00:00
@SBATCH --mem=8G
#SBATCH --output=ollama_download_model.out
#SBATCH --partition=express
module load rama0.4 GCCcore/13.3.0 ollama/0.9.6-CUDA-12.6.0 # Carga inicial de los módulos necesarios
# Iniciamos el servidor de Ollama en background
ollama serve &
sleep 25 # Le damos 25 segundos para asegurarnos de que ha terminado de cargar.
# Descargamos el modelo
ollama pull deepseek-r1:8b