Для начала выполним остановку сервиса ollama и удалим конфирацию:
sudo systemctl stop ollama
sudo systemctl disable ollama
sudo rm /etc/systemd/system/ollama.service
Далее, удалим бинарник ollama
:
sudo rm $(which ollama)
Удаляем пользователя ollama
и группу ollama
:
sudo userdel ollama
sudo groupdel ollama
Все модели, которые вы скачали из библиотеки ollama
или создали врунчю хранятся в /usr/share/ollama
,
запомним эту директорию, вернёмся к ней чуть позже.
Создадим пустую директорию, скажем docker-ollama
и в ней файл docker-compose.yml
:
mkdir docker-ollama
cd docker-ollama
touch docker-compose.yml
Заполним его следующим содержимым:
version: "3.9"
x-shared-logs: &shared-logs
logging:
driver: "json-file"
options:
max-size: "10k"
services:
ollama:
image: ollama/ollama:0.4.0-rc1
restart: unless-stopped
volumes:
- ./ollama_data:/root
environment:
OLLAMA_KEEP_ALIVE: 60 minutes
OLLAMA_FLASH_ATTENTION: 1
ports:
- "11434:11434"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [ gpu ]
<<: *shared-logs
Можно явно указать версии через image
директиву, например ollama/ollama:0.4.0-rc1
говорит нам о том,
что необходимо взять контейнер с тегом 0.4.0-rc1
и юзать его в дальнейшем.
Далее перенесём папку /usr/share/ollama
в текущую директорию и поменяем имя на ollama_data
:
mv /usr/share/ollama ./ollama_data
Скачаем образ и запустим композицию:
docker-compose pull
docker-compose up -d
Для обновления ollama
нужно будет зайти через редактор и подправить тег у image
, далее выполнить pull
, up -d
и вот вы уже на новой версии.
Получим список доступных моделей:
curl http://gpu01:11434/api/tags
Попробуем выполнить генерацию через llama3.1:8b
:
curl http://gpu01:11434/api/generate -d '{
"model": "llama3.1:8b",
"stream": false,
"prompt": "Почему трава зелёная?"
}'