当前位置:   article > 正文

FastGPT+ChatGLM3本地部署_fastgpt 与glm3本地部署

fastgpt 与glm3本地部署

FastGPT+ChatGLM本地部署

本地部署硬性要求:显存13g以上
在这里插入图片描述

关于环境的安装就不多赘述,conda + pip 可以解决大部分问题

ChatGLM本地运行

  • m3e-base
  • chatglm3-6b

在huggingface上可以下载上述模型,如果没有梯子可以使用huggingface镜像

github上拉取fastGPTchatglm3两个项目

下载好上述模型后,需要按照FastGPT的 file -> models -> ChatGLM2 -> openai_api.py 来配置ChatGLM3 的 openai_api_demo -> api-server.py

api-server.py 加入下述code

class EmbeddingRequest(BaseModel):
    input: List[str]
    model: str

def num_tokens_from_string(string: str) -> int:
    """Returns the number of tokens in a text string."""
    encoding = tiktoken.get_encoding('cl100k_base')
    num_tokens = len(encoding.encode(string))
    return num_tokens


def expand_features(embedding, target_length):
    poly = PolynomialFeatures(degree=2)
    expanded_embedding = poly.fit_transform(embedding.reshape(1, -1))
    expanded_embedding = expanded_embedding.flatten()
    if len(expanded_embedding) > target_length:
        # 如果扩展后的特征超过目标长度,可以通过截断或其他方法来减少维度
        expanded_embedding = expanded_embedding[:target_length]
    elif len(expanded_embedding) < target_length:
        # 如果扩展后的特征少于目标长度,可以通过填充或其他方法来增加维度
        expanded_embedding = np.pad(
            expanded_embedding, (0, target_length - len(expanded_embedding))
        )
    return expanded_embedding

if __name__ == "__main__":
   
    # Load LLM
    tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_PATH, trust_remote_code=True)
    model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True, device_map="auto").eval()

    # load Embedding
    embeddings_model = SentenceTransformer('/home/eleven/PycharmProjects/tingsheng/m3e-base', device='cpu')
    uvicorn.run(app, host='0.0.0.0', port=8000, workers=1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

加入的目的就是为了填补api_server.py中的一些适配的函数。修改embedding_modeks中模型路径,改成你下载的m3e-base的绝对路径,device选择cpu或cuda都可以

环境的缺失报错就用pip安装即可

打开终端,在api-server.py所在路径下输入下述命令

MODEL_PATH=/home/eleven/PycharmProjects/tingsheng/chatglm3-6b python api_server.py
  • 1

其中MODEL_PATH为你chatglm3模型的绝对路径

运行结果如下:

在这里插入图片描述

可以看到模型在8000端口运行

docker部署

官方教程链接

官方的教程很详细,建议参考官方教程部署docker

这里重点说一下bug问题,以及配置本地模型供fastGPT使用

本地模型连接

上述的chatglm的本地运行端口号为8000,所以需要修改docker-compose.yaml文件中的OPENAI_BASE_URL来适配本地大模型。

  fastgpt:
    container_name: fastgpt
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.7 # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.7 # 阿里云
    ports:
      - 3000:3000
    networks:
      - fastgpt
    depends_on:
      - mongo
      - pg
    restart: always
    environment:
      # root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。
      - DEFAULT_ROOT_PSW=1234
      # AI模型的API地址哦。务必加 /v1。改成你本地的IP地址加上模型运行的端口号8000
      - OPENAI_BASE_URL=http://192.168.1.1:8000/v1
      # AI模型的API Key。(这里默认填写了OneAPI的快速默认key,测试通后,务必及时修改)
      - CHAT_API_KEY=sk-fastgpt
      # 数据库最大连接数
      - DB_MAX_LINK=30
      # 登录凭证密钥
      - TOKEN_KEY=any
      # root的密钥,常用于升级时候的初始化请求
      - ROOT_KEY=root_key
      # 文件阅读加密
      - FILE_TOKEN_KEY=filetoken
      # MongoDB 连接参数. 用户名myusername,密码mypassword。
      - MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin
      # pg 连接参数
      - PG_URL=postgresql://username:password@pg:5432/postgres
    volumes:
      - ./config.json:/app/data/config.json
      - ./fastgpt/tmp:/app/tmp
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

然后sudo docker-compose up -d启动容器

在这里插入图片描述

打开本地链接localhost:3000,默认用户名root,密码1234

连接成功后

在这里插入图片描述

可以看到调试使用的模型是chatGLM3-6B

在这里插入图片描述

Bug问题

目前遇到最主要的bug问题都集中在MongoDB上

在登录出现Network error或者出现输入用户名密码后出现登录超时都是Mongo没有正确启动

在遇到上述情况时,在终端输入

sudo docker logs mongo
  • 1

查看mongoDB有没有正确启动

我所遇到的bug有两个

  • waiting for MongoDB to start…
  • 连接超时

这时需要注意mongoDB的版本问题,如果你使用最新的版本(5.X)不行就降低版本(4.4.24),在保证mongoDB能正确启动的情况下再去访问localhost:3000

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/593750
推荐阅读
相关标签
  

闽ICP备14008679号