当前位置:   article > 正文

使用Fastchat部署vicuna大模型_lmsys/vicuna-7b-v1.5

lmsys/vicuna-7b-v1.5

  FastChat是一个用于训练、提供服务和评估基于大型语言模型的聊天机器人的开放平台。其核心特点包括:

  • 最先进模型(例如 Vicuna)的权重、训练代码和评估代码。
  • 一个分布式的多模型提供服务系统,配备 Web 用户界面和与 OpenAI 兼容的 RESTful API。

  本篇博客介绍如何在aws instance上通过FastChat部署vicuna大模型。首先需要在aws申请带GPU的instance,以及安装CUDA driver,这部分内容,请参考上一篇博客

  配置好CUDA的driver后,就可以按照FastChat官方给出的安装步骤开始部署大模型了。

下载FastChat代码

git clone https://github.com/lm-sys/FastChat.git
cd FastChat

安装相关依赖包

  1. pip3 install --upgrade pip # enable PEP 660 support
  2. pip3 install -e ".[model_worker,webui]"

下载大模型参数以及启动大模型

python3 -m fastchat.serve.cli --model-path lmsys/vicuna-7b-v1.5


  如果在启动过程中,提示缺少protobuf包的错误,那么执行命令安装protobuf。 安装命令:pip install protobuf。如果下载启动模型过程中无问题,会看到下面的截图信息,可以看到执行上面的命令过程中,下载了大模型参数文件,也就是xxx.bin文件,下载完成后,启动了大模型。

  大模型启动成功后,在USER:字段后面输入信息,就会得到大模型返回的内容,具体如下图所示:ASSISTANT字段后面的内容就是大模型返回的内容。

  除了直接通过命令行中输入信息与大模型交互外,FastChat还支持提供与OpenAI 兼容的 RESTful API,要启动API只需要执行下面三行命令即可:

  1. #Launch controller
  2. pip3 install -e ".[model_worker,webui]"
  3. #Launch model work
  4. python3 -m fastchat.serve.model_worker --model-path lmsys/vicuna-7b-v1.5
  5. #Launch the RESTful API server
  6. python3 -m fastchat.serve.openai_api_server --host localhost --port 8000

  执行完上面的命令,就可以通过API调用的方式与部署的大模型进行交互了。以下图为例,输入curl命令,可以看到返回了内容。且这个API是完全兼容了OpenAI api。

  1. curl http://localhost:8000/v1/chat/completions \
  2. -H "Content-Type: application/json" \
  3. -d '{
  4. "model": "vicuna-7b-v1.5",
  5. "messages": [{"role": "user", "content": "Hello! What is your name?"}]
  6. }'

除了通过接口与大模型直接对话,还可以通过接口获取输入信息的向量信息。

  1. curl http://localhost:8000/v1/embeddings \
  2. -H "Content-Type: application/json" \
  3. -d '{
  4. "model": "vicuna-7b-v1.5",
  5. "input": "Hello world!"
  6. }'

返回的向量信息如下图所示:

  除了通过curl命令调用接口外,还支持通过编程方式调用api。安装openai的包(pip install --upgrade openai),编写调用接口的代码。

  1. import openai
  2. # to get proper authentication, make sure to use a valid key that's listed in
  3. # the --api-keys flag. if no flag value is provided, the `api_key` will be ignored.
  4. openai.api_key = "EMPTY"
  5. openai.api_base = "http://localhost:8000/v1"
  6. model = "vicuna-7b-v1.5"
  7. prompt = "Once upon a time"
  8. # create a completion
  9. completion = openai.Completion.create(model=model, prompt=prompt, max_tokens=64)
  10. # print the completion
  11. print(prompt + completion.choices[0].text)
  12. # create a chat completion
  13. completion = openai.ChatCompletion.create(
  14. model=model,
  15. messages=[{"role": "user", "content": "Hello! What is your name?"}]
  16. )
  17. # print the completion
  18. print(completion.choices[0].message.content)

  执行上面的python脚本,可以看到打印了大模型返回的信息,结果如下图所示:


  上面只介绍了部署vicuna大模型,以及如何启动大模型的api。实际上,FastChat支持部署多个大模型,例如,国内的ChatGLM大模型以及国外的很多开源大模型。具体可见官网信息。在部署过程中只需要修改--model-path=xx即可。例如:如果要通过fastchat部署国内的ChatGLM大模型,部署命令是: “python3 -m fastchat.serve.cli --model-path=THUDM/chatglm-6b”,在调用api的时候,接口参数model的值替换成自己部署的大模型名称即可,例如ChatGLM模型,调用的时候接口参数的mode=chatglm-6b.

   以上就是对如果通过FastChat部署开源大模型的过程介绍。

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

闽ICP备14008679号