目录

安装 FastChat & vLLM

安装 FastChat

pip install "fschat[model_worker,webui]"

安装 FlashAttention

  • Turing GPU T4 不支持 FlashAttention 2,需要使用 FlashAttention 1.x 。
  • Turing GPU T4 不支持 bf16,需要使用 fp16

安装 vLLM

pip install vllm -i https://mirrors.aliyun.com/pypi/simple/

升级 FastChat & vLLM

git pull
pip install -e ".[model_worker,webui]"
pip install -U vllm

部署 LLM

运行 Controller

python -m fastchat.serve.controller

运行 OpenAI API Server

python -m fastchat.serve.openai_api_server

运行 Model Worker

Qwen-1_8B-Chat

export CUDA_VISIBLE_DEVICES=0
python -m fastchat.serve.model_worker \
  --model-path Qwen/Qwen-1_8B-Chat \
  --model-names gpt-3.5-turbo \
  --port 21002 \
  --worker-address http://localhost:21002
  • --port 21002--worker-address http://localhost:21002 用于指定端口和地址,以便 Controller 能够找到 Model Worker。需要同时设置。

Qwen-7B-Chat(多卡)

export CUDA_VISIBLE_DEVICES=0,1
python -m fastchat.serve.model_worker \
  --model-path Qwen/Qwen-7B-Chat \
  --model-names gpt-3.5-turbo \
  --num-gpus 2
  • –num-gpus 2 用于指定使用的 GPU 数量。

Qwen-7B-Chat(INT8 量化)

export CUDA_VISIBLE_DEVICES=0,1
python -m fastchat.serve.model_worker \
  --model-path Qwen/Qwen-7B-Chat \
  --model-names gpt-3.5-turbo \
  --load-8bit \
  --num-gpus 2

ChatGLM3-6B

python -m fastchat.serve.model_worker \
  --model-path THUDM/chatglm3-6b --port 21003 \
  --worker-address http://localhost:21003

Vicuna-7b-v1.5

python -m fastchat.serve.model_worker \
    --model-path /data/models/llm/vicuna-7b-v1.5 \
    --model-names vicuna-7b,gpt-3.5-turbo
  • –model-names 给模型多个名称

运行 vLLM Worker

Qwen-1_8B-Chat

python -m fastchat.serve.vllm_worker \
  --model-path Qwen/Qwen-1_8B-Chat \
  --model-names gpt-3.5-turbo
  • –tensor-parallel-size 设置使用的 GPU 数量(默认为 1)
  • –dtype bfloat16
    • ValueError: Bfloat16 is only supported on GPUs with compute capability of at least 8.0. Your Tesla T4 GPU has compute capability 7.5. 使用 float16 代替。
    • torch.cuda.get_device_capability() 返回 (7, 5)

    如果不支持 bfloat16,则降至 float16

Qwen-7B-Chat

python -m fastchat.serve.vllm_worker \
  --model-path Qwen/Qwen-7B-Chat \
  --model-names gpt-3.5-turbo \
  --tensor-parallel-size 2

部署:嵌入模型

bge-base-zh-v1.5

python -m fastchat.serve.model_worker \
    --model-path bge-base-zh-v1.5 \
    --port 21100 \
    --worker-address http://localhost:21100 \
    --model-names text-embedding-ada-002

部署:聊天机器人

📌 模型变动需要重新部署聊天机器人

Gradio Web Server(选择部署的 LLM 进行聊天)

python -m fastchat.serve.gradio_web_server \
    --host 0.0.0.0 --port 8001

⚔️ Multi-Tab Gradio Web Server(同时选择两个不同的 LLM 进行同时聊天)

python -m fastchat.serve.gradio_web_server_multi \
    --host 0.0.0.0 --port 8002

关闭服务

关闭所有服务

python -m fastchat.serve.shutdown_serve --down all

关闭 Controller

python -m fastchat.serve.shutdown_serve --down controller

关闭 Model Worker

python -m fastchat.serve.shutdown_serve --down model_worker

关闭 OpenAI API Server

python -m fastchat.serve.shutdown_serve --down openai_api_server

杀死所有服务

kill -9 $(pgrep -f fastchat)

清除日志

rmlog.sh

rm *-conv.json
rm controller.log*
rm model_worker_*.log
rm gradio_web_server.log*
rm gradio_web_server_multi.log*
rm openai_api_server.log*

curl 测试