August 23, 2024

Запуск llama3 docker через ollama

Ставим докер. После чего запускаем образ ollama.

CPU only:

sudo docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

Nvidia GPU:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
    | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
    | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
    | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
sudo docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

AMD GPU:

sudo docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm

После установки нужного вам образа добавляем модель.

sudo docker exec -it ollama ollama pull llama3.1:8b

смотрим текущие модели и запускаем

sudo docker exec -it ollama ollama run llama3.1:8b

Можно и REST API

Добавляем модель.

curl -X POST http://localhost:11434/api/pull -d '{"model":"llama3.1"}'

Generate a response

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.1",
  "prompt":"Национальность Киркорова?"
}'

Отключить стрим, ответ одним ответом:

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.1",
  "stream": false,
  "prompt":"напиши анекдот"
}'

Chat with a model

curl http://localhost:11434/api/chat -d '{
  "model": "llama3.1",
  "messages": [
    { "role": "user", "content": "Национальность Киркорова?" }
  ]
}'

Аналогично параметр "stream": false, можно еще использовать "raw": true и тд,

полное описание параметров https://github.com/ollama/ollama/blob/main/docs/api.md

Другие модели нейронок: https://ollama.com/library