ChatGLM2-6B + M3E-large + FastGPT + OneAPI

ChatGLM2-6B + M3E-large + FastGPT + OneAPI

相关网站:

AutoDL算力云(适合学习使用,低至1.18一小时):https://www.autodl.com

https://github.com/THUDM/ChatGLM2-6B

https://huggingface.co/THUDM/chatglm2-6b

https://huggingface.co/moka-ai/m3e-large/tree/main

https://doc.fastgpt.run/docs/custom-models/chatglm2/

一、租用算力

  1. 在AutoDL网站上购买,推荐RTX A5000 ,价格便宜。

  2. 在镜像中进行如下选择Pytorch 2.0.0---Python 3.8--Cuda 11.8:

  3. 在容器实例列表点击AutoPanel -- 实用工具 确保pip源是阿里源

  4. 在容器实例列表点击JupyterLab 再点击终端进入终端(也可通过SSH)。

二、安装ChatGLM2

1. 配置资源加速:

# 配置资源加速 详情https://www.autodl.com/docs/network_turbo/
# 或直接执行↓:
source /etc/network_turbo

2. 拉取chatglm-6b模型

进入:https://huggingface.co/THUDM/chatglm2-6b/tree/main clone下所有文件

git clone https://huggingface.co/THUDM/chatglm2-6b


执行完成后进入chatglm2-6b文件夹,需要把红框文件删除,通过wget命令重新下载。

获取地址:

wget批量下载:

1. 新建url.txt文件
2. 编辑url.txt,写入8个地址。
3. 执行 wget -i url.txt

3.(可忽略)使用web demo访问模型:

可以通过web demo访问,如果与FAST GPT整合可以忽略此步骤

  1. 在root目录下创建web-demo文件夹

  2. 进入web-demo文件夹,从https://github.com/THUDM/ChatGLM2-6B 拉取文件

  3. 进入/root/web-demo/ChatGLM2-6B执行pip install -r requirements.txt

  4. 修改web_demo.py,一共修改3处
    把模型的地址修改为/root/chatglm2-6b ,也就是刚才做批量下载的那个文件夹。

    最后修改最后一行,增加端口。

  5. 修改完成后执行python web_demo.py,会看到正在加载模型。

    加载完成后:

访问:

租用的这个算力不提供公网ip,他们是通过url:port的方式,且只暴露了6006端口。
参考:https://www.autodl.com/docs/port/

安装M3E-large

与ChatGLM2类似

  1. 在root目录下执行:
    git clone https://huggingface.co/moka-ai/m3e-large
    
  2. 删除目录中的pytorch_model.bin,并下载pytorch_model.bin
    wget https://huggingface.co/moka-ai/m3e-large/resolve/main/pytorch_model.bin
    

使用openai_api.py

在https://github.com/labring/FastGPT/tree/main/files/models/ChatGLM2 下载

- openai_api.py
- requirement.txt

我把它放在了/root/目录下

执行pip install -r requirement.txt

执行python -m pip install -U pydantic spacy
(由python中的后端包“pydantic”的兼容性问题引起的问题:TypeError: issubclass() arg 1 must be a class,)

修改openai_api.py

  1. 配置token (86行)
  2. 修改(41行):
    role: typing.Literal["user", "assistant", "system"]
    改为
    role: Literal["user", "assistant", "system"]
    
  3. 修改3处(177、194、202行)
    # 把
    yield "{}".format(chunk.json(exclude_unset=True, ensure_ascii=False))
    # 修改为
    yield "{}".format(chunk.model_dump_json(exclude_unset=True))
    
  4. 最后

最后执行python openai_api.py

One API

OneAPI部署到了其它环境

添加渠道——chatglm2:

添加渠道——m3e

生成令牌:

FAST GPT

  1. 修改环境变量
    • OPENAI_BASE_URL : oneAPI的地址 + /v1
    • CHAT_API_KEY : oneAPI中生成的令牌
  2. 修改配置文件:
{
  "FeConfig": {
    "show_emptyChat": true,
    "show_register": false,
    "show_appStore": false,
    "show_userDetail": false,
    "show_contact": true,
    "show_git": true,
    "show_doc": true,
    "systemTitle": "FastGPT",
    "authorText": "Made by FastGPT Team.",
    "limit": {
      "exportLimitMinutes": 0
    },
    "scripts": []
  },
  "SystemParams": {
    "vectorMaxProcess": 15,
    "qaMaxProcess": 15,
    "pgIvfflatProbe": 20
  },
  "ChatModels": [
    {
      "model": "chatglm2",
      "name": "chatglm2",
      "contextMaxToken": 8000,
      "quoteMaxToken": 4000,
      "maxTemperature": 1.2,
      "price": 0,
      "defaultSystem": ""
    }
  ],
  "VectorModels": [
    {
      "model": "m3e",
      "name": "M3E(测试使用)",
      "price": 0,
      "defaultToken": 500,
      "maxToken": 1800
    }
  ],
  "QAModel": {
    "model": "chatglm2",
    "name": "chatglm2",
    "maxToken": 16000,
    "price": 0
  },
  "ExtractModel": {
    "model": "chatglm2",
    "functionCall": false,
    "name": "chatglm2",
    "maxToken": 16000,
    "price": 0,
    "prompt": ""
  },
  "CQModel": {
    "model": "chatglm2",
    "functionCall": false,
    "name": "chatglm2",
    "maxToken": 16000,
    "price": 0,
    "prompt": ""
  }
}

测试

fastGPT知识库中导入数据集:

成功

创建应用,也可以成功从知识库中得出信息:

posted @ 2024-02-20 15:09  邓晓晖  阅读(2195)  评论(0编辑  收藏  举报