当前位置:   article > 正文

将 ChatGLM2-6B 部署成 OpenAI API 服务_fastchat接口

fastchat接口

GitHub - lm-sys/FastChat: An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena.An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena. - GitHub - lm-sys/FastChat: An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena.icon-default.png?t=N7T8https://github.com/lm-sys/FastChat使用的开源项目是FastChat。

最近一直在使用 OpenAI 的 API 做一些学习和调研。使用 OpenAI 的 API,一是会产生费用,二是要解决网络问题,三是还有各种访问限速。

所以尝试使用开源大语言模型搭建一个本地的 OpenAI 的 API 服务。

此次使用的开源技术是 FastChat。

FastChat 部署使用 ChatGLM2-6B

1-1. 创建虚拟环境

  1. conda create -n fastchat python==3.11 -y
  2. conda activate fastchat

1-2. 克隆代码

  1. git clone https://github.com/lm-sys/FastChat.git
  2. pip install --upgrade pip
cd FastChat

1-3. 安装依赖库

  1. pip install -e ".[model_worker,webui]"
  2. pip install transformers_stream_generator
  3. pip install cpm_kernels

1-4. 使用 UI 进行推理

启动 controller,

python -m fastchat.serve.controller --host 0.0.0.0 --port 21001

启动 model worker(s),

python -m fastchat.serve.model_worker --model-path THUDM/chatglm2-6b

启动 model worker(s)完成后,启动 Gradio web server,

python -m fastchat.serve.gradio_web_server --host 0.0.0.0 --port 8888

问它几个问题,问题和答案截图如下,

 1-5. 使用 OpenAI API 方式进行推理

启动 controller,

python -m fastchat.serve.controller --host 0.0.0.0 --port 21001

启动 model worker(s),

python -m fastchat.serve.model_worker --model-names "gpt-3.5-turbo,text-davinci-003,text-embedding-ada-002" --model-path THUDM/chatglm2-6b

启动 RESTful API server,

python -m fastchat.serve.openai_api_server --host 0.0.0.0 --port 8000

设置 OpenAI base url,

export OPENAI_API_BASE=http://localhost:8000/v1

设置 OpenAI API key,

export OPENAI_API_KEY=EMPTY
  1. import os
  2. import openai
  3. from dotenv import load_dotenv, find_dotenv
  4. _ = load_dotenv(find_dotenv()) # read local .env file
  5. os.environ['OPENAI_API_KEY'] = 'EMPTY'
  6. os.environ['OPENAI_API_BASE'] = 'http://localhost:8000/v1'
  7. openai.api_key = 'none'
  8. openai.api_base = 'http://localhost:8000/v1'
  1. def get_completion(prompt, model="gpt-3.5-turbo"):
  2. messages = [{"role": "user", "content": prompt}]
  3. response = openai.ChatCompletion.create(
  4. model=model,
  5. messages=messages,
  6. temperature=0,
  7. )
  8. return response.choices[0].message["content"]
get_completion("你是谁?")

(可选)如果在创建嵌入时遇到 OOM 错误,请使用环境变量设置较小的 BATCH_SIZE,

export FASTCHAT_WORKER_API_EMBEDDING_BATCH_SIZE=1

(可选)如果遇到超时错误,

export FASTCHAT_WORKER_API_TIMEOUT=1200

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/179570
推荐阅读
相关标签
  

闽ICP备14008679号