使用 AMD GPU 自托管运行 Ollama 和 Open WebUI
为什么要托管自己的大型语言模型 (LLM)?
虽然 VSCode 上有很多优秀的 LLM 课程,但托管自己的 LLM 课程具有诸多优势,可以显著提升您的编程体验。以下是一些托管自己的 LLM 课程的理由。
- 定制和微调
- 数据控制和安全
- 领域专业知识
- 轻松切换模型
先决条件
要托管您自己的大型语言模型 (LLM) 以供在 VSCode 中使用,您需要一些硬件和软件。
硬件要求
在此示例中,我们将在 Linux 上使用 Radeon 6700 XT 显卡和 Ryzen 5 7600X 处理器。不过,您也可以在兼容硬件的 Windows 或 macOS 计算机上运行 LLM。
- 具有高性能的现代 CPU(至少四核)
- 支持 OpenCL 或 HIP 的合适显卡(Radeon 或 NVIDIA)
- 至少 16 GB 的 RAM 才能实现流畅的性能
软件先决条件
首先,您需要在 Linux 机器上安装所需的软件包:
- Docker
- GPU 驱动程序。
- Nvidia Container Toolkit(如果您使用 Nvidia GPU)
[!tip]
如果您尚未安装 docker,请检查Docker 安装文档。
无论您使用的是 Arch、Debian、Ubuntu、Mint 等,都没有关系。由于我们将使用容器,因此环境将是相同的。
请注意,我们不会训练自己的 LLM 模型;相反,我们将专注于托管和运行预先训练的模型。这意味着您不需要高性能 GPU 或专用硬件来进行模型训练。
满足这些先决条件后,您就可以开始设置 LLM 托管环境了!
部署人工智能
我们将部署两个容器。一个用于运行 LLM 的 Ollama 服务器,另一个用于 Open WebUI,以便通过浏览器将其与 Ollama 服务器集成。
要部署 Ollama,您有三个选择:
仅在 CPU 上运行 Ollama(不推荐)
如果您使用以下命令运行 ollama 映像,您将在计算机内存和 CPU 上启动 Ollama。
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
[!warning]
如果您有专用 GPU,则不建议这样做,因为以这种方式运行 LLM 会消耗您的计算机内存和 CPU。另外,在 CPU 上运行 LLM 比在 GPU 上运行慢得多。
在 AMD GPU 上运行 Ollama
如果您有支持ROCm 的AMD GPU ,您可以简单运行rocm
Ollama 映像的版本。
docker run -d --restart always --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm
如果您的 AMD GPU 不支持,ROCm
但性能足够强大,您仍然可以使用 GPU 运行 Ollama 服务器。我使用该命令在 Radeon 6700 XT GPU 上运行。
docker run -d --restart always --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama -e HSA_OVERRIDE_GFX_VERSION=10.3.0 -e HCC_AMDGPU_TARGET=gfx1030 ollama/ollama:rocm
[!info]
如果您运行的 LLM 大于 GPU 内存,那么它们将部分加载到 GPU 内存和 RAM 内存中。这将导致提示符的响应时间变慢。
在 Nvidia GPU 上运行 Ollama
成功安装Nvidia Container Toolkit后,您可以运行以下命令配置 Docker 以与您的 GPU 一起运行。
sudo nvidia-ctk runtime configure --runtime=docker && \
sudo systemctl restart docker
现在是时候运行 LLM 容器了:
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
[!info]
如果您运行的 LLM 大于 GPU 内存,那么它们将部分加载到 GPU 内存和 RAM 内存中。这将导致提示符的响应时间变慢。
验证安装
部署 Ollama 容器后,您可以手动检查 Ollama 服务器是否成功运行。
docker exec ollama ollama list
您不会在列表中看到任何 LLM,因为我们没有下载任何内容。
部署 Web UI
我们将部署 Open WebUI,然后从我们的 Web 浏览器开始使用 Ollama。
由于我们的 Ollama 容器监听主机 TCP 11434 端口,我们将像这样运行我们的 Open WebUI:
docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
容器启动后,如果 Open WebUI 运行在您自己的计算机上,您可以打开浏览器并输入http://localhost:8080 。如果运行在另一台计算机上,您可以使用http://ip-address-or-domain:8080从浏览器访问 Open WebUI。
提取 LLM AI 模型
Ollama 提供可与 Ollama 服务器配合使用的 LLM。要查看所有模型,您可以前往Ollama 库。
由于我的 GPU 有 12GB 内存,因此我运行以下模型:
- 姓名:
deepseek-coder:6.7b-instruct-q8_0
,大小7.2GB
::我大部分时间都使用 LLM 来满足我的编码要求。 - 姓名:
llama3:8b-instruct-q8_0
,大小8.5 GB
::如果我正在写电子邮件或等等,我会使用该 LLM 进行聊天。 - 姓名:
deepseek-coder:33b-instruct-q4_0
,大小18 GB
::我使用 LLM 来满足具有挑战性的编码要求。
您可以将 LLM 名称粘贴到红色框中以拉取 LLM 图像。
表现
如果你想了解AI的表现,你可以检查i
AI的响应消息按钮。
第一次给法学硕士 (LLM) 发送消息时,需要几秒钟来加载你选择的模型。
如下所示,LLM 花了 9 秒加载完毕,然后在 1 秒内回复。
第一条之后的消息不需要那么load
长时间。
正如下面所见,它在 0.5 秒后开始响应,所有答复耗时 7.7 秒。
如果您想确定 LLM 在哪里运行,您还可以检查您的 GPU 静态。
对于 AMD GPU,您可以使用radeontop
对于 Nvidia GPU,您可以使用 nvidia-smi。
这是radeontop
提示运行时我的命令输出:
更多
如果您想使用已部署的 Ollama 服务器作为免费和私有的 Copilot/Cursor 替代品,您还可以阅读本系列的下一篇文章!
如果您喜欢这篇文章,您可以访问我的个人博客网站,阅读有关 DevOps、Linux、系统工程和家庭实验室自托管应用程序的更多信息!
鏂囩珷鏉ユ簮锛�https://dev.to/berk/running-ollama-and-open-webui-self-hosted-4ih5