Ollama on Habrok
You can run an LLM on Habrok with Ollama in a Jupyter environment by using the Ollama (Jupyter) Interactive App on the Web Portal.
Setting up the virtual environment
To be able to use the app, you first need to set up a Python virtual environment. The version of Ollama installed on Habrok is ollama/0.6.0-GCCcore-12.3.0
, which means that the Python virtual environment needs to use a version of Python using the same GCCcore-12.3.0
toolchain, which is Python/3.11.3-GCCcore-12.3.0
. Other versions of Python might work as well, but toolchain compatibilities can sometimes be an issue.
module load Python/3.11.3-GCCcore-12.3.0 python3 -m venv $HOME/venvs/ollama
Once the virtual environment has been built, you need to install jupyter
and ollama
within the virtual environment; optionally, you can also install additional packages, such as openai
:
source $HOME/venvs/ollama/bin/activate pip install --upgrade pip pip install jupyter ollama openai
Finally, to make sure that the Jupyter Notebook is aware of your virtual environment, you need to create a Jupyter kernel:
python3 -m ipykernel install --user --name=ollama --display-name="Ollama"
Choosing a folder for the models
Another important choice when running the app is where the Ollama models should be saved; there are two options, with advantages and drawbacks:
- Custom directory: This is a folder on the shared filesystem (we recommend
/scratch/$USER
since the models are quite large) where the models can be downloaded and saved for use in the future. This way, you only need to download a model once, but it will take quite a bit of time to save the model files to the shared filesystem. It might also be slower to use a model saved here. - Temporary directory: This is a folder on the local disc of the node running the job, and is it considerably faster to save a downloaded model here; the drawback is that this is not persistent storage, and the model files will have to be downloaded for each session. However, it might also be a bit faster when using the model.
Simple usage example
To use Ollama in the Jupyter app, you need first to open a new notebook in the Jupyter app, and choose the Ollama Jupyter kernel built when setting up the virtual environment. Here is a small example which first imports the necessary packages:
import os import ollama from openai import OpenAI
then downloads a model from Ollama:
ollama.pull("gemma3:12b")
and also lists all currently downloaded models:
for model in ollama.list().models: print(model.model)
It then creates a OpenAI API client:
client = OpenAI( base_url=f"http://{os.environ['OLLAMA_HOST']}/v1", api_key="ollama" )
and interacts with the LLM:
response = client.chat.completions.create( model="gemma3:12b", messages = [ { "role": "system", "content": "You are a friendly dog" }, { "role": "user", "content": "Would you like a bone?" } ] ) print(response.choices[0].message.content)
The model can, if desired, be deleted:
ollama.delete("gemma3:12b")
You can find more info on how to use the Ollama Python library on their GitHub page.