本地部署基于LLama3知识库问答 (OLLama+Oneapi+Fastgpt)

本文详细介绍了如何使用Docker安装NVIDIAContainerToolkit,配置ChatOllama容器下载模型,以及部署one-api和fastgpt容器,涉及SQLite、MongoDB和PostgreSQL数据库的初始化和连接设置。
摘要由CSDN通过智能技术生成

1.使用docker搭建ollama容器

1.Install the NVIDIA Container Toolkit.

Configure the repository

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
sudo apt-get update

2.Install the NVIDIA Container Toolkit packages

sudo apt-get install -y nvidia-container-toolkit

3.Start the container

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

2.使用ChatOllama下载模型 以及体验模型

1.创建chatollama文件夹 然后下载docker-compose.yml
2.运行容器

docker-compose build
docker-compose up

3.首次运行需要初始化初始化SQLite数据库

docker compose exec chatollama npx prisma migrate dev

4.登录127.0.0.1:3000 访问chatOllama 配置ollama地址
在这里插入图片描述
5.下载embedding和chat模型 进行推理 以及可以插入本地数据库数据
在这里插入图片描述
在这里插入图片描述

3.Docker命令创建one-api容器(ip:3001):

sudo docker run --name oneapi -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api

创建容器 访问127.0.0.1:3001 创建一个令牌 设置无线访问 以及无限访问时间
在这里插入图片描述

创建chat以及embedding渠道

embeding渠道

设置秘钥为 sk-aaabbbcccdddeeefffggghhhiiijjjkkk
设置秘钥为 sk-aaabbbcccdddeeefffggghhhiiijjjkkk

chat渠道

在这里插入图片描述

4.Docker命令创建fastgpt容器(ip:3020):

在任意目录中手动创建文件夹fastgpt,并在这个文件夹中手动创建docker-compose.yml和config.json文件

docker-compose.yml

# 非 host 版本, 不使用本机代理
version: '3.3'
services:
  pg:
    image: ankane/pgvector:v0.5.0 # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.5.0 # 阿里云
    container_name: pg
    restart: always
    ports: # 生产环境建议不要暴露
      - 5432:5432
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - POSTGRES_USER=username
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=postgres
    volumes:
      - ./pg/data:/var/lib/postgresql/data
  mongo:
    image: mongo:5.0.18
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
    container_name: mongo
    restart: always
    ports: # 生产环境建议不要暴露
      - 27017:27017
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - MONGO_INITDB_ROOT_USERNAME=username
      - MONGO_INITDB_ROOT_PASSWORD=password
    volumes:
      - ./mongo/data:/data/db
  fastgpt:
    container_name: fastgpt
    #image: ghcr.io/labring/fastgpt:latest # git
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.6.6 # 阿里云
    ports:
      - 3020:3000 #与One API的默认3000地址冲突,所有修改为3020
    networks:
      - fastgpt
    depends_on:
      - mongo
      - pg
    restart: always
    environment:
      # root 密码,用户名为: root
      - DEFAULT_ROOT_PSW=1234
      # 中转地址,如果是用官方号,不需要管
      - OPENAI_BASE_URL=http://192.168.35.134:3000/v1
      - CHAT_API_KEY=sk-ZZKMAmTrQcv5Xbiw16857a9a070d454bAdF95aEf814f0e38
      - DB_MAX_LINK=5 # database max link
      - TOKEN_KEY=any
      - ROOT_KEY=root_key
      - FILE_TOKEN_KEY=filetoken
      # mongo 配置,不需要改. 如果连不上,可能需要去掉 ?authSource=admin
      - MONGODB_URI=mongodb://username:password@mongo:27017/fastgpt?authSource=admin
      # pg配置. 不需要改
      - PG_URL=postgresql://username:password@pg:5432/postgres
    volumes:
      - ./config.json:/app/data/config.json
networks:
  fastgpt:

主要修改以下

- OPENAI_BASE_URL=http://192.168.35.134:3000/v1   你的Ipv4地址
- CHAT_API_KEY=sk-ZZKMAmTrQcv5Xbiw16857a9a070d4   换成你的秘钥

config.json


{
  "systemEnv": {
    "openapiPrefix": "fastgpt",
    "vectorMaxProcess": 15,
    "qaMaxProcess": 15,
    "pgHNSWEfSearch": 100
  },
  "chatModels": [
    {
      "model": "chatglm3",
      "name": "chatglm3",
      "inputPrice": 0,
      "outputPrice": 0,
      "maxContext": 4000,
      "maxResponse": 4000,
      "quoteMaxToken": 2000,
      "maxTemperature": 1.2,
      "censor": false,
      "vision": false,
      "defaultSystemChatPrompt": ""
    }
   
  ],
  "qaModels": [
    {
      "model": "chatglm3",
      "name": "chatglm3",
      "inputPrice": 0,
      "outputPrice": 0,
      "maxContext": 4000,
      "maxResponse": 4000,
      "quoteMaxToken": 2000,
      "maxTemperature": 1.2,
      "censor": false,
      "vision": false,
      "defaultSystemChatPrompt": ""
    }
  ],
  "cqModels": [
    {
      "model": "chatglm3",
      "name": "chatglm3",
      "inputPrice": 0,
      "outputPrice": 0,
      "maxContext": 4000,
      "maxResponse": 4000,
      "quoteMaxToken": 2000,
      "maxTemperature": 1.2,
      "censor": false,
      "vision": false,
      "defaultSystemChatPrompt": ""
    }
  ],
  "extractModels": [
    {
      "model": "chatglm3",
      "name": "chatglm3",
      "inputPrice": 0,
      "outputPrice": 0,
      "maxContext": 4000,
      "maxResponse": 4000,
      "quoteMaxToken": 2000,
      "maxTemperature": 1.2,
      "censor": false,
      "vision": false,
      "defaultSystemChatPrompt": ""
    }
  ],
  "qgModels": [
    {
      "model": "chatglm3",
      "name": "chatglm3",
      "inputPrice": 0,
      "outputPrice": 0,
      "maxContext": 4000,
      "maxResponse": 4000,
      "quoteMaxToken": 2000,
      "maxTemperature": 1.2,
      "censor": false,
      "vision": false,
      "defaultSystemChatPrompt": ""
    }
  ],
  "vectorModels": [
    {
      "model": "m3e",
      "name": "m3e",
      "price": 0.1,
      "defaultToken": 700,
      "maxToken": 3000
    }
  ],
  "reRankModels": [],
  "audioSpeechModels": [
    {
      "model": "tts-1",
      "name": "OpenAI TTS1",
      "inputPrice": 0,
      "outputPrice": 0,
      "voices": [
        { "label": "Alloy", "value": "alloy", "bufferId": "openai-Alloy" },
        { "label": "Echo", "value": "echo", "bufferId": "openai-Echo" },
        { "label": "Fable", "value": "fable", "bufferId": "openai-Fable" },
        { "label": "Onyx", "value": "onyx", "bufferId": "openai-Onyx" },
        { "label": "Nova", "value": "nova", "bufferId": "openai-Nova" },
        { "label": "Shimmer", "value": "shimmer", "bufferId": "openai-Shimmer" }
      ]
    }
  ],
  "whisperModel": {
    "model": "whisper-1",
    "name": "Whisper1",
    "inputPrice": 0,
    "outputPrice": 0
  }
}

然后在此目录下打开终端输入以下命令(创建的fastgpt文件夹内打开命令行):

docker-compose bulid  #依据docker-compose.yum生成镜像
docker-compose up -d  #启动容器加 -d代表后台守护进程启动

进入fastgpt的web页面:

输入默认的用户名root,密码1234 创建应用设置
在这里插入图片描述

设置知识库
在这里插入图片描述

进行对话

在这里插入图片描述
在这里插入图片描述

LLaMA+Alpaca是一个基于PyTorch的自然语言处理框架,主要用于生成式对话模型的训练和部署。以下是搭建、部署、训练LLaMA+Alpaca的步骤: 1. 安装依赖项:在安装LLaMA+Alpaca之前需要安装以下依赖项: - Python 3.7或更高版本 - PyTorch 1.7或更高版本 - Transformers 4.0或更高版本 - Flask 2. 下载代码:可以从LLaMA+Alpaca的GitHub页面上下载代码,也可以使用以下命令从GitHub上克隆代码: ``` git clone https://github.com/microsoft/LLaMA.git ``` 3. 部署:可以使用以下命令启动LLaMA+Alpaca的部署: ``` cd LLaMA/deployment python app.py ``` 这将会在本地启动一个Flask服务器并提供对话API。 4. 训练模型:可以使用以下命令在LLaMA+Alpaca上训练对话模型: ``` python train.py \ --dataset_path <path-to-dataset> \ --tokenizer_name <tokenizer-name> \ --model_name_or_path <model-name-or-path> \ --output_dir <output-dir> \ --num_train_epochs <num-epochs> \ --per_device_train_batch_size <batch-size> \ --gradient_accumulation_steps <accumulation-steps> \ --learning_rate <learning-rate> ``` 其中,\<path-to-dataset>是对话数据集的路径,\<tokenizer-name>和\<model-name-or-path>分别是使用的tokenizer和模型名称或路径,\<output-dir>是输出路径,\<num-epochs>是训练的epoch数,\<batch-size>是每个GPU上的批量大小,\<accumulation-steps>是梯度累积步骤数,\<learning-rate>是学习率。 5. 部署新模型:可以使用以下命令将新训练的模型部署到Flask服务器上: ``` python update_model.py \ --model_path <path-to-model> \ --tokenizer_name <tokenizer-name> \ --model_name <model-name> ``` 其中,\<path-to-model>是新训练的模型路径,\<tokenizer-name>是使用的tokenizer名称,\<model-name>是新模型名称。 以上就是搭建、部署、训练LLaMA+Alpaca的步骤。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值