FastChat启动与部署通义千问大模型

FastChat简介

FastChat is an open platform for training, serving, and evaluating large language model based chatbots.

  • FastChat powers Chatbot Arena, serving over 10 million chat requests for 70+ LLMs.
  • Chatbot Arena has collected over 500K human votes from side-by-side LLM battles to compile an online LLM Elo leaderboard.

FastChat’s core features include

  • The training and evaluation code for state-of-the-art models (e.g., Vicuna, MT-Bench).
  • A distributed multi-model serving system with web UI and OpenAI-compatible RESTful APIs.

FastChat Github地址: https://github.com/lm-sys/FastChat
FastChat架构:https://github.com/lm-sys/FastChat/blob/main/docs/server_arch.md

在这里插入图片描述

安装FastChat

pip3 install "fschat[model_worker,webui]"如果网速较慢或无网就使用国内镜像如:#阿里源
pip3 install "fschat[model_worker,webui]" -i https://mirrors.aliyun.com/pypi/simple/ #清华源
pip3 install "fschat[model_worker,webui]" -i https://pypi.tuna.tsinghua.edu.cn/simple/

# 下载模型到本地

这里以通义千问1.8b为例,其他模型类似,就是文件大小大了些,可以通过huggingface或modelscope两个网站进行下载
https://www.modelscope.cn/qwen/Qwen-1_8B-Chat.git
https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat

比如把模型下载到/home/liu/目录

#cd到目录
cd /home/liu/#大文件下载需要执行以下:
git lfs install#先下小文件,先用命令把小文件下了
GIT_LFS_SKIP_SMUDGE=1 git https://www.modelscope.cn/qwen/Qwen-1_8B-Chat.git#然后cd进去文件夹,下大文件,每个大文件之间可以续传,大文件内部不能续传,以下命令下载所有的大文件
git lfs pull#上面的git lfs pull是下载所有的大文件,可能你只需要下载模型下的部分大文件,可以通过git lfs pull指定匹配模式,下载部分文件,比如
#下载bin结尾文件
git lfs pull --include="*.bin"#如果你只想要单个文件,写文件名就可以,比如
git lfs pull --include "model-00001-of-00004.safetensors"

注: 如果上面的git lfs pull不成功或报错如git: ‘lfs’ is not a git command. See ‘git --help’.,可能是因为没有安装git lfs,执行安装即可,并执行git lfs install

sudo apt-get install git-lfs

启动服务(OpenAI-Compatible RESTful APIs)

官网参考:https://github.com/lm-sys/FastChat/blob/main/docs/openai_api.md

# 1.启动controller,默认端口为21001,可通过 --port 指定。
python3 -m fastchat.serve.controller > controller.log 2>&1 &# 2.启动model_worker,默认端口为21002,可通过 --port 指定,model_worker会向controller注册。
python3 -m fastchat.serve.model_worker --model-path /home/liu/Qwen-1_8B-Chat --model-name=Qwen-1_8B-Chat --num-gpus 1  > model_worker.log 2>&1 &# 3.启动openai_api_server,默认端口为 8000,可通过 --port 指定。
python3 -m fastchat.serve.openai_api_server --host 0.0.0.0 --port 9000  > openai_api_server.log 2>&1 &# 4.(可选),如果还需要web界面,启动gradio_web_server,默认端口为 7860,可通过 --port 指定。
python3 -m fastchat.serve.gradio_web_server > gradio_web_server.log 2>&1 &

注:

--num-gpus 指定运行模型的gpu个数
--model-name 默认以部署的model-path作为模型名称,可通过--model-name修改,比如--model-name Qwen

Api访问测试

python脚本测试

pip install openai

import openaiopenai.api_key = "EMPTY"
openai.base_url = "http://localhost:9000/v1/"model = "Qwen-1_8B-Chat"
prompt = "Once upon a time"# create a completion
completion = openai.completions.create(model=model, prompt=prompt, max_tokens=64)# print the completion
print(prompt + completion.choices[0].text)# create a chat completion
completion = openai.chat.completions.create(model=model,messages=[{"role": "user", "content": "Hello! What is your name?"}]
)# print the completion
print(completion.choices[0].message.content)

python流式输出测试

from openai import OpenAIclient = OpenAI(base_url="http://localhost:9000/v1", api_key="")
model = "Qwen-1_8B-Chat"completion = client.chat.completions.create(model = model,messages=[{"role": "user","content": "Hello",}],stream=True
)for chunk in completion:if chunk.choices[0].finish_reason == "stop":breakelse:print(chunk.choices[0].delta.content, end="", flush=True)

curl调用接口测试

curl -X POST http://0.0.0.0:9000/v1/chat/completions -H "Content-Type: application/json" -d "{\"model\": \"Qwen-1_8B-Chat\", \"messages\": [{\"role\": \"user\", \"content\": \"hello?\"}]}"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[SWPUCTF 2022 新生赛]android

安卓题第一次写 先解压,改apk后缀为zip再次解压用dex2jar反编译得到jar文件,再用jd-gui查看即可得到flag

AI大模型日报#0418:Stable Diffusion 3开放API、Meta新研究让AI Agent理解物理世界

导读: 欢迎阅读《AI大模型日报》,内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。标题: 微软刚发布了VASA-1 这个人工智能可以让单张图像具有生动的说话和歌唱能力 摘要: 微软发布了VASA-1人工智能,它能使单…

Webstorm 24.1 复制、剪切卡死问题官方回复

Webstorm 24.1 复制、剪切卡死问题官方回复 https://youtrack.jetbrains.com/issue/WEB-65787/WebStorm-2024.1-UI-was-frozen-for-N-ms-after-copy-paste 2024-04-20 更新: UI 卡死问题已于 2024-04-20。发布的 24.1.1 版本解决

Spark集群的搭建

1.1搭建Spark集群 Spark集群环境可分为单机版环境、单机伪分布式环境和完全分布式环境。本节任务是学习如何搭建不同模式的Spark集群,并查看Spark的服务监控。读者可从官网下载Spark安装包,本文使用的是spark-2.0.0-bin-hadoop2.7.gz。 1.1.1搭建单机版…

Linux——进程基本概念中篇

Linux——进程基本概念中篇 文章目录 Linux——进程基本概念中篇一、通过系统调用创建进程——fork1.1 fork的理解1.2 fork的返回值 二、进程状态2.1 运行状态2.2 睡眠状态和休眠状态2.3 停止状态和死亡状态2.4 僵尸进程2.5 孤儿进程2.6 前台和后台进程 三、进程优先级3.1 查看…

一文读懂Partisia Blockhain:兼顾去中心化、安全性与可扩展性

“Partisia Blockhain 解决了区块链领域长期存在的问题,其兼顾了去中心化、安全性以及可扩展性” Partisia Blockchain 是一个具有独特零知识证明预言机以及分片解决方案的 Layer1,解决了困扰整个区块链行业的问题。 目前,多样化的区块链层出…

个人开发微信小程序?我来劝退!

为什么小程序那么受欢迎? 相比传统app,小程序即点即用,免下载安装,这是小程序最明显的优势 但使得小程序真正能火爆,让众多开发者喜欢的原因,还是其强大的分享能力和多端互通能力。寄生与微信这么一个聊天…

SRIO系列-基本概念及IP核使用

参考:串行RapidIO: 高性能嵌入式互连技术 | 德州仪器 SRIO协议技术分析 - 知乎 PG007 目录 一、SRIO介绍 1.1 概要 1.2 SRIO与传统互联方式的比较 1.3 串行SRIO标准 1.4 SRIO层次结构: 1.4.1 逻辑层 1.4.2 传输层协议 1.4.3 物理层 二、Xilinx…

BADI-AC_DOCUMENT-交货单过账科目替代

BADI-AC_DOCUMENT-交货单过账科目替代 一、业务场景 事务代码VL02N/VL22N及其他交货单过账事务,在交货单过账生成会计凭证的时候对科目进行替代 二、BADI增强:AC_DOCUMENT 这个BADI理论上可以处理很多的会计凭证科目替代,不止是交货单过账…

服务注册与发现Eureka、Zookeeper、Consul 三个注册中心的异同点(CAP理论)

Eureka Eureka是由Netflix开源的一个服务注册和发现组件,它主要用于构建高可用、分布式系统的基础设施中。Eureka的服务器端被称为Eureka Server,客户端则是那些需要注册的服务。Eureka具有以下特点: 高可用性:Eureka支持多节点…

探索通过GPT和云平台搭建网安实战培训环境

项目背景 网络安全是一个不断演变的领域,面临着日益复杂的挑战和不断扩大的威胁。数字化时代,随着勒索攻击、数据窃取、网络钓鱼等频频出现,网络攻击的威胁指数和影响范围进一步增加,如何防范网络攻击,确保数据安全&a…

HTML5+CSS3小实例:菜单按钮的三种切换动画

实例:菜单按钮的三种切换动画 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initia…

漂亮的个人主页源码

源码介绍 漂亮的个人主页源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 效果截图 源码下载 漂亮的个人主页源码

【正则表达式】正则表达式基本语法元素

目录 字符类量词边界匹配逻辑和分组转义和特殊字符验证正则表达式是否能够成功提取数据 字符类 .&#xff1a;匹配除换行符之外的任何单个字符。 [abc]&#xff1a;匹配方括号内的任何字符。 [^abc]&#xff1a;匹配不在方括号内的任何字符。 [a-z]&#xff1a;匹配任何小写字…

DZY Loves Chemistry (并查集)

//新生训练 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <queue> using namespace std; bool a[60][60]; bool vis[60]; int n; long long int cnt; void bfs(int x) {int y;queue<int> q;v…

真实世界的密码学(二)

原文&#xff1a;annas-archive.org/md5/655c944001312f47533514408a1a919a 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第六章&#xff1a;非对称加密和混合加密 本章内容包括 对秘密信息进行加密的非对称加密方法 对数据进行加密到公钥的混合加密方法 非对称和…

互连芯片浪潮席卷AI服务器:突破瓶颈,再创辉煌

改变AI服务器&#xff1a;互连芯片技术创新和突破 AI服务器崛起&#xff0c;引领未来创新根据TrendForce数据&#xff0c;AI服务器出货量达130,000台&#xff0c;占服务器总出货量的1%。主要制造商推出生成式AI产品&#xff0c;推动订单激增。ChatGPT等应用的需求持续增长&…

使用WebSocket实现答题积分排名实时更新的功能

需求分析 接到一个需求&#xff0c;是一个答题积分小程序&#xff0c;其中有一个功能需求是需要实时更新答题积分排名的。之前通常比较常见的需求&#xff0c;都是指定某个时间点才更新答题排行榜的数据的。 经过技术调研&#xff0c;要实现答题积分排名实时更新的功能&#…

加速产能!推荐五款制造业项目管理软件

随着技术的不断发展&#xff0c;许多制造企业开始意识到使用制造业项目管理软件的重要性。在本文中&#xff0c;我们将探讨适用于制造业的项目管理软件&#xff0c;制造业项目管理软件推荐&#xff0c;以帮助项目团队更加高效管理资源。 制造业项目管理难题 怎样正确利用工作资…

Redis底层数据结构之SDS

目录 一、概述二、SDS结构三、为什么使用SDS 下一篇 redis底层数据结构之ziplist 一、概述 Redis 中的 SDS&#xff08;Simple Dynamic String&#xff0c;简单动态字符串&#xff09;是 Redis 用于存储字符串值的底层实现&#xff0c;是对 C 语言传统字符串&#xff08;以 nu…