本文档描述了如何使用 Llama 3 和 Ollama 设置 Retrieval-Augmented Generation (RAG) 系统的 Docker 容器。
以下是步骤分解:
使用 Ollama Docker 镜像:Ollama 提供了一个 Docker 镜像(ollama/ollama:latest
),其中包含了运行 Llama 3 所需的所有组件。
- 本指南概述了检查 Ollama 是否在容器中运行的命令,以及如何调整其地址和端口。
-
提供了一个示例 Dockerfile,定义了多个服务:
-
ollama-faqs
: 此服务运行一个使用 Ollama 的问答应用程序。 -
ollama
: 这是核心的 Ollama 服务。 ollama-webui
: 此服务提供一个与 Ollama 交互的网页界面。
这个设置允许你使用 Docker 容器部署一个完整的 RAG 系统,其中包括 Llama 3 和 Ollama。
Ollama Docker 镜像 ollama/docs/docker.md at main · ollama/ollama 使用 Llama 3、Mistral、Gemma 和其他大型语言模型快速上手 - ollama/docs/docker.md at main ·…github.com Ollama docker-compose.yml ollama-docker/docker-compose.yml at main · valiantlynx/ollama-docker 欢迎使用 Ollama Docker Compose 部署!此项目简化了使用 Docker Compose 部署 Ollama 的过程…github.com 验证 Ollama 是否正在运行这里有个窍门:在你的终端中执行以下命令:
$ docker ps
aa492e7068d7 ollama/ollama:latest "/bin/ollama serve" 9 秒前 Up 8 秒 0.0.0.0:11434->11434/tcp ollama
$ curl localhost:11434
Ollama 正在运行
添加地址和端口
Ollama 默认绑定 127.0.0.1 的 11434 端口。可以通过 OLLAMA_HOST 环境变量更改绑定地址。
langchain_community.embeddings.ollama.OllamaEmbeddings - 🦜🔗 LangChain 0.2.2 编辑描述api.python.langchain.com model = Ollama(model=MODEL, base_url='http://ollama:11434')
Dockerfile
version: "3.9"
services:
ollama-faqs:
image: ollama-app
env_file:
- .env
networks:
- ollama-network
ports:
- 8000:8080
depends_on:
- ollama
ollama:
image: ollama/ollama:latest
ports:
- 7869:11434
volumes:
- .:/code
- ./ollama/ollama:/root/.ollama
container_name: ollama
pull_policy: always
tty: true
restart: always
environment:
- OLLAMA_KEEP_ALIVE=24h
- OLLAMA_HOST=0.0.0.0
networks:
- ollama-network
ollama-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: ollama-webui
volumes:
- ./ollama/ollama-webui:/app/backend/data
depends_on:
- ollama
ports:
- 8080:8080
environment: # https://docs.openwebui.com/getting-started/env-configuration#default_models
- OLLAMA_BASE_URLS=http://host.docker.internal:7869 # 用逗号分隔的 ollama 主机
- ENV=dev
- WEBUI_AUTH=False
- WEBUI_NAME=valiantlynx AI
- WEBUI_URL=http://localhost:8080
- WEBUI_SECRET_KEY=t0p-s3cr3t
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
networks:
- ollama-network
networks:
ollama-network:
external: true
使用GPU的Docker-compose
basdonax-ai-rag/docker-compose.yml at master · fcori47/basdonax-ai-rag 在 GitHub 上贡献
Nvidia GPU
https://hub.docker.com/r/ollama/ollama
添加 GPU 到 Docker
安装 NVIDIA Container Toolkit - NVIDIA Container Toolkit 1.15.0 文档curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o…docs.nvidia.com 使用Apt安装- 配置生产仓库:
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
可选地,配置仓库以使用实验性软件包:
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
从仓库更新软件包列表:
sudo apt-get update
- 安装NVIDIA容器工具包:
sudo apt-get install -y nvidia-container-toolkit
配置Docker
- 使用
nvidia-ctk
命令配置容器运行时:
sudo nvidia-ctk runtime configure --runtime=docker
-
nvidia-ctk
命令修改主机上的/etc/docker/daemon.json
文件。更新该文件以使 Docker 可以使用 NVIDIA Container Runtime。 - 重启 Docker 守护进程:
sudo systemctl restart docker
gedit /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker.ir"
],
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}
添加到Docker
version: "3.8" # 如需调整,请更改版本
services:
your-service:
image: your-image:latest
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: [gpu]
count: 1 # 如需调整,请更改数量
运行 Docker-compose
llama_new_context_with_model: CPU 输出缓冲区大小 = 0.00 MiB
llama_new_context_with_model: CUDA0 计算缓冲区大小 = 23.00 MiB
llama_new_context_with_model: CUDA_Host 计算缓冲区大小 = 3.50 MiB
…
访问我们的网站 DataDrivenInvestor.com
订阅 DDIntel 此处。
特色文章:
新加坡:揭开无限可能与全球联系的画卷 | DataDrivenInvestor 迁往新加坡的旅程开启了无限可能与丰富多彩的文化世界的大门……www.datadriveninvestor.com 介绍新加坡基金平台 | DataDrivenInvestor 加速基金的设立、启动和运营效率加入我们的创作者生态系统 here。
DDI 官方 Telegram 频道: https://t.me/+tafUp6ecEys4YjQ1
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章