【LLM】Ollama:本地大模型使用
本指南将详细介绍如何在Linux系统上使用Ollama进行本地大模型的快速部署与管理。通过Docker容器化技术,您可以轻松部署Ollama及其WebUI,实现通过浏览器访问和管理大型语言模型。
快速部署,Web访问
安装Docker
根据操作系统下载并安装 Docker Desktop(Windows/macOS)或使用包管理工具(如 apt
)安装 Docker(Linux)。
使用Ollama和Open WebUI独立部署
部署Ollama容器
首先,启动Ollama服务容器。
docker run -d --name ollama \-p 11434:11434 \-v ollama_data:/ollama/data \--restart always \ollama/ollama:latest
命令解析:
-d
:后台运行容器。--name ollama
:指定容器名称为ollama
。-p 11434:11434
:将主机的11434端口映射到容器的11434端口,用于API访问。-v ollama_data:/ollama/data
:挂载卷,确保数据持久化。--restart always
:设置容器自动重启策略。ollama/ollama:latest
:指定使用最新版本的Ollama镜像。
部署Open WebUI容器
接下来,启动Open WebUI服务容器,并连接到本地运行的Ollama服务。
docker run -d -p 3000:8080 \--add-host=host.docker.internal:host-gateway \-v open-webui:/app/backend/data \--name open-webui \--restart always \ghcr.io/open-webui/open-webui:main
命令解析:
-d
:后台运行容器。-p 3000:8080
:将主机的3000端口映射到容器的8080端口,用于WebUI访问。--add-host=host.docker.internal:host-gateway
:在容器内添加主机的内部地址,使WebUI能够访问本地Ollama服务。-v open-webui:/app/backend/data
:挂载卷,确保WebUI数据持久化。--name open-webui
:指定容器名称为open-webui
。--restart always
:设置容器自动重启策略。ghcr.io/open-webui/open-webui:main
:指定使用Open WebUI的主分支镜像。
访问Open WebUI
部署完成后,通过浏览器访问http://localhost:3000即可打开Open WebUI界面。在此界面中,您可以:
- 输入提示(prompt)与大模型进行交互。
- 管理和切换不同的模型。
- 调整生成参数,如温度(temperature)和最大生成长度(max_tokens)。
使用Bundled Ollama进行一体化部署
Bundled Ollama提供了一个包含Open WebUI和Ollama的单一Docker镜像,简化了部署过程,适合希望快速上手且不需要单独管理服务的用户。
使用CPU进行部署
如果您的系统不具备NVIDIA GPU,或者不需要GPU加速,可以使用以下命令启动Bundled Ollama:
docker run -d -p 3000:8080 \-v ollama:/root/.ollama \-v open-webui:/app/backend/data \--name open-webui \--restart always \ghcr.io/open-webui/open-webui:ollama
命令解析:
-d
:后台运行容器。-p 3000:8080
:将主机的3000端口映射到容器的8080端口,用于WebUI访问。-v ollama:/root/.ollama
:挂载卷,确保Ollama数据持久化。-v open-webui:/app/backend/data
:挂载卷,确保WebUI数据持久化。--name open-webui
:指定容器名称为open-webui
。--restart always
:设置容器自动重启策略。ghcr.io/open-webui/open-webui:ollama
:指定使用Bundled Ollama的镜像。
使用Nvidia GPU支持进行部署
如果您的系统配备NVIDIA GPU,并希望利用GPU加速模型推理,请确保已安装NVIDIA Container Toolkit以支持GPU资源分配。然后,使用以下命令启动Bundled Ollama:
docker run -d -p 3000:8080 \--gpus all \-v ollama:/root/.ollama \-v open-webui:/app/backend/data \--name open-webui \--restart always \ghcr.io/open-webui/open-webui:ollama
命令解析:
--gpus all
:将所有可用的GPU资源分配给容器,以加速模型推理。- 其他参数与CPU部署方法相同。
访问Open WebUI
同样,通过浏览器访问http://localhost:3000即可打开Open WebUI界面。由于Bundled Ollama已经包含了Ollama服务,您无需进行额外的配置即可开始使用。
停止和管理容器
无论您选择哪种部署方法,都可以使用以下Docker命令来管理Open WebUI和Ollama容器。
查看正在运行的容器
docker ps
停止容器
docker stop open-webui
docker stop ollama
启动已停止的容器
docker start open-webui
docker start ollama
重启容器
docker restart open-webui
docker restart ollama
查看容器日志
docker logs open-webui
docker logs ollama
删除容器
docker rm open-webui
docker rm ollama
注意: 删除容器不会删除挂载的卷中的数据。如果需要删除数据,请手动移除相应的Docker卷:
docker volume rm open-webui
docker volume rm ollama_data
管理数据卷
在 Docker 中,数据卷用于持久化容器中的数据。您在部署命令中使用了以下数据卷:
-v ollama_data:/ollama/data
-v open-webui:/app/backend/data
列出和查看数据卷
要查看系统中的所有 Docker 数据卷,使用以下命令:
docker volume ls
要获取特定数据卷的信息,如 ollama_data
,使用:
docker volume inspect ollama_data
备份数据卷
可以使用 tar
命令将数据卷备份:
docker run --rm -v ollama_data:/volume -v $(pwd):/backup alpine tar czf /backup/ollama_data_backup.tar.gz -C /volume .
恢复数据卷
从备份恢复数据卷:
docker run --rm -v ollama_data:/volume -v $(pwd):/backup alpine sh -c "tar xzf /backup/ollama_data_backup.tar.gz -C /volume"
删除数据卷
删除数据卷(例如 ollama_data
):
docker volume rm ollama_data
主机目录作为数据卷
可以将主机目录挂载为数据卷以直接访问和管理数据:
docker run -d --name ollama -v /home/user/ollama_data:/ollama/data --restart always ollama/ollama:latest
管理Ollama
除了部署和运行,您还需要了解如何管理Ollama,包括进入容器、执行常用指令等。
进出容器
有时您需要进入运行中的Docker容器,执行一些管理任务或查看配置。
进入容器
docker exec -it ollama /bin/bash
命令解析:
exec
:在运行的容器中执行命令。-it
:交互式终端。open-webui
:容器名称。/bin/bash
:启动bash shell。
退出容器
在容器内执行exit
命令即可退出交互式会话。
exit
Ollama常用指令
在管理Ollama时,以下是一些常用的命令和指令:
查看可用模型列表
ollama list
下载模型
ollama pull <model-name>
例如,下载qwen2.5:0.5b
模型:
ollama pull qwen2.5:0.5b
运行模型
ollama run <model-name>
例如:
ollama run qwen2.5:0.5b
删除模型
ollama rm <model-name>
例如:
ollama rm qwen2.5:0.5b
查看已下载的模型
ollama models
获取Ollama版本信息
ollama version
查看Ollama帮助信息
ollama help