制作 llama3 RAG 系统的 Docker 容器

2024/9/26 21:03:46

本文主要是介绍制作 llama3 RAG 系统的 Docker 容器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本文档描述了如何使用 Llama 3 和 Ollama 设置 Retrieval-Augmented Generation (RAG) 系统的 Docker 容器。

以下是步骤分解:

使用 Ollama Docker 镜像:

Ollama 提供了一个 Docker 镜像(ollama/ollama:latest),其中包含了运行 Llama 3 所需的所有组件。

验证 Ollama:
  • 本指南概述了检查 Ollama 是否在容器中运行的命令,以及如何调整其地址和端口。
创建 Dockerfile:
  • 提供了一个示例 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安装
  1. 配置生产仓库:
    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
  1. 使用 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

关注我们在 LinkedInTwitterYouTube,和 Facebook



这篇关于制作 llama3 RAG 系统的 Docker 容器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程