保姆级教程!教你如何基于deepgpu-llm和fastchat快速搭建通义千问web在线服务

简介: 【10月更文挑战第13天】

你好,这里是网络技术联盟站,我是瑞哥。

阿里通义千问确实牛逼,最近恰好我在研究AI,就在琢磨着能不能我自己搭一套属于自己的通义千问。

今天瑞哥就手把手、保姆级的教大家如何快速搭建通义千问web在线服务。只要跟着我的文章步骤,可以很负责任的告诉您,除去安装镜像的等待时间,15分钟就搞定了!

有人会问没有那么大的显卡怎么办?其实除了单显卡满足需求,大模型领域更多的是选择用多卡并行计算,满足性能需求的同时可以大大降低成本,这里可以用到大语言模型推理引擎DeepGPU-LLM。DeepGPU-LLM是阿里云开发的一款基于GPU云服务器的大语言模型(LLM)推理引擎,旨在优化大语言模型在GPU上的推理过程。DeepGPU-LLM通过优化和并行计算技术,为用户提供高性能、低延迟的大模型推理服务。它具有易用性和广泛适用性,能够满足各种大语言模型的推理需求。

下面瑞哥就带大家基于deepgpu-llm和fastchat快速搭建通义千问web在线服务。

一、创建GPU实例

1.1 访问购买页面

浏览器输入以下网址,进入阿里云ECS购买页面:

https://ecs-buy.aliyun.com/ecs

1.2 付费类型、可用区、规格

【付费类型】选择“按量付费”,【地域】我这里选择“南京”,大家可以根据自己的需要进行选择,【可用区】选择“南京 可用区 A|默认交换机”:

【实例】建议使用“ecs.gn6i-c24g1.12xlarge”,可以在实例搜索框中搜索,这个示例拥有两个NVIDIA T4 GPU,性能很好:

1.3 选择镜像

在【镜像】选择模块,“云市场镜像”中搜索“deepgpu-llm”:

在弹出的【镜像目录】中,选择“预装deepgpu-llm的ubuntu 22.04系统 24.3”:

1.4 默认配置

【存储】和【带宽和安全组】模块使用默认配置:

1.5 设置密码

在【管理设置】模块中,我个人倾向于自定义密码,大家可以根据自己的习惯进行设置:

1.6 下单并访问实例控制台

然后可以直接点击【确认下单】的按钮:

实例创建成功后,可以点击到控制台:

可以看到我们刚刚购买的实例了:

复制实例列表中的公网IP,我们准备使用SSH工具进行远程访问:

这里我使用的SSH工具是MobaXterm,大家也可以根据自己的喜好进行选择:

这里可以看到,成功登入:

  1. 这里需要输入的root密码就是【1.5 设置密码】中设置的密码
  2. 服务器想要成功SSH,需要开放22端口,这个在购买服务器的时候,【1.4 默认配置】检查一下安全组即可。

二、搭建通义千问web在线服务

2.1 前置检查:GPU状态

输入以下命令:

nvidia-smi

从输出信息来看,可以看到两个T4 GPU一切正常。

2.2 下载通义千问模型

首先安装好git大文件存储工具:

apt install -y git-lfs

Git LFS 的工作原理是用一个小的文本指针文件替换仓库中的大文件,这个指针文件包含了如何从远程服务器获取实际的大文件的信息。这样做的好处是,它允许开发者使用 Git 进行版本控制,而不会受到大文件带来的困扰。当您克隆一个使用了 Git LFS 的仓库时,您只会获得小的指针文件,而不是实际的大文件,直到您明确地检出(checkout)这些大文件。

下面创建一个用来存放镜像的目录:

mkdir -p deepgpu/models

切到这个目录:

cd deepgpu/models/

然后打开modelscope官网:

https://modelscope.cn/

搜索模型“qwen/Qwen1.5-4B-Chat”:

git-lfs clone https://modelscope.cn/qwen/Qwen1.5-4B-Chat.git

模型比较大,这里需要等待一段时间。

2.3 检查deepgpu-llm和transformers安装状态

在等待的时间,可以检查一下deepgpu-llm和transformers安装状态,需要另开一个SSH会话:

pip list | grep deepgpu

pip list | grep transformers

可以清晰的看到deepgpu和transformers都成功安装!

2.4 安装基于deepgpu-llm的fastchat

先安装几个特定版本的Python库:Jinja2(一个用于渲染HTML模板的库)、Plotly(一个用于创建交互式图表的库)、Pydantic(用于数据验证和设置管理的库)以及Gradio(一个可以快速构建和分享机器学习模型用户界面的库)。

pip3 install jinja2==3.1.2 plotly pydantic==1.10.13 gradio==3.50.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

升级Python的包管理工具setuptools、wheel和pip:

pip3 install --upgrade setuptools wheel pip -i https://pypi.tuna.tsinghua.edu.cn/simple

安装fschat:

pip3 install https://aiacc-inference-public-v2.oss-cn-hangzhou.aliyuncs.com/aiacc-inference-llm/fschat_deepgpu-0.2.31%2Bpt2.1-py3-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple --use-pep517

2.5 配置环境变量

export DEEPGPU_CB=True

2.6 启动fastchat控制器

python3.10 -m fastchat.serve.controller --host localhost --port 21001

看到下面的截图就代表启动成功:

安装到这里,我们再去看下镜像的下载已经成功了:

2.7 启动基于deepgpu-llm加速的qwen1.5-4b模型worker

CUDA_VISIBLE_DEVICES=0 python3.10 -m fastchat.serve.model_worker --model-names qwen-4b-deepgpu --model-path /root/deepgpu/models/Qwen1.5-4B-Chat --worker http://localhost:21002 --controller-address http://localhost:21001 --host localhost --port 21002

看到下面截图就代表启动成功了:

2.8 启动基于transformers框架的qwen1.5-4b模型worker

再启动一个SSH会话,输入命令:

CUDA_VISIBLE_DEVICES=1 python3.10 -m fastchat.serve.model_worker --model-names qwen-4b-base --model-path /root/deepgpu/models/Qwen1.5-4B-Chat --worker http://localhost:21003 --controller-address http://localhost:21001 --host localhost --port 21003

看到下面的输出就代表启动完成:

2.9 启动基于gradio的web服务

再打开一个SSH会话,输入命令:

python3.10 -m fastchat.serve.gradio_web_server_multi --controller-url http://localhost:21001 --host 0.0.0.0 --port 5001 --model-list-mode reload

看到这个信息就代表启动成功了。

至此,配置部分已经全部完成。

最后我们测试一下。

访问搭建好的通义千问web在线服务

在浏览器中输入:

http://47.122.5.157:5001/

如果大家都搭建到这里了,记得把地址换成自己的公网IP。

可是这里我们发现这个地址访问不了:

第一时间要想到这个5001的端口没有开,这里我们通过安全组开放一下:

https://ecs.console.aliyun.com/securityGroup/region/cn-nanjing

点击【手动添加】按钮,输入5001端口:

保存后,确认一下有没有添加成功:

再次访问,成功了!

我们输入一些提示词:

到这里,全部完工!

总体下来,体验感非常好,阿里云的GPU也很给力,不只是双卡,还可以4卡、8卡甚至更多,实现多机互联,搭配CFPS和OSS就能完美在云上解决大模型的所有问题!

目录
相关文章
|
1月前
|
存储 JSON API
实战派教程!Python Web开发中RESTful API的设计哲学与实现技巧,一网打尽!
在数字化时代,Web API成为连接前后端及构建复杂应用的关键。RESTful API因简洁直观而广受欢迎。本文通过实战案例,介绍Python Web开发中的RESTful API设计哲学与技巧,包括使用Flask框架构建一个图书管理系统的API,涵盖资源定义、请求响应设计及实现示例。通过准确使用HTTP状态码、版本控制、错误处理及文档化等技巧,帮助你深入理解RESTful API的设计与实现。希望本文能助力你的API设计之旅。
56 3
|
1月前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
在Web开发中,安全至关重要,尤其要警惕SQL注入和XSS攻击。SQL注入通过在数据库查询中插入恶意代码来窃取或篡改数据,而XSS攻击则通过注入恶意脚本来窃取用户敏感信息。本文将带你深入了解这两种威胁,并提供Python实战技巧,包括使用参数化查询和ORM框架防御SQL注入,以及利用模板引擎自动转义和内容安全策略(CSP)防范XSS攻击。通过掌握这些方法,你将能够更加自信地应对Web安全挑战,确保应用程序的安全性。
64 3
|
1月前
|
Java API Apache
从零到英雄的蜕变:如何用Apache Wicket打造你的第一个Web应用——不仅是教程,更是编程之旅的启航
【9月更文挑战第4天】学习Apache Wicket这一开源Java Web应用框架是一段激动人心的旅程。本文将指导你通过Maven搭建环境,并创建首个“Hello, World!”应用。从配置`pom.xml`到实现`HelloWorldApplication`类,再到`web.xml`的设置,一步步教你构建与部署简单网页。适合初学者快速上手,体验其简洁API与强大组件化设计的魅力。
37 1
|
3月前
|
人工智能 JSON 自然语言处理
国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]
【7月更文挑战第7天】国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]
199 10
国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]
|
2月前
|
开发框架 .NET API
在IIS上部署ASP.NET Core Web API和Blazor Wasm详细教程
在IIS上部署ASP.NET Core Web API和Blazor Wasm详细教程
160 3
|
2月前
|
SQL 运维 安全
GitHub爆赞的Web安全防护指南,网络安全零基础入门必备教程!
web安全现在占据了企业信息安全的很大一部分比重,每个企业都有对外发布的很多业务系统,如何保障web业务安全也是一项信息安全的重要内容。 然而Web 安全是一个实践性很强的领域,需要通过大量的练习来建立对漏洞的直观认识,并积累解决问题的经验。 Web安全与防护技术是当前安全界关注的热点,今天给小伙伴们分享的这份手册尝试针对各类漏洞的攻防技术进行体系化整理,从漏洞的原理到整体攻防技术演进过程进行详细讲解,从而形成对漏洞和web安全的体系化的认识。
|
2月前
|
SQL 运维 安全
GitHub爆赞的Web安全防护指南,网络安全零基础入门必备教程!
web安全现在占据了企业信息安全的很大一部分比重,每个企业都有对外发布的很多业务系统,如何保障web业务安全也是一项信息安全的重要内容。 然而Web 安全是一个实践性很强的领域,需要通过大量的练习来建立对漏洞的直观认识,并积累解决问题的经验。 Web安全与防护技术是当前安全界关注的热点,今天给小伙伴们分享的这份手册尝试针对各类漏洞的攻防技术进行体系化整理,从漏洞的原理到整体攻防技术演进过程进行详细讲解,从而形成对漏洞和web安全的体系化的认识。
|
3月前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
【7月更文挑战第26天】在 Web 开发中, SQL 注入与 XSS 攻击常令人担忧, 但掌握正确防御策略可化解风险. 对抗 SQL 注入的核心是避免直接拼接用户输入至 SQL 语句. 使用 Python 的参数化查询 (如 sqlite3 库) 和 ORM 框架 (如 Django, SQLAlchemy) 可有效防范. 防范 XSS 攻击需严格过滤及转义用户输入. 利用 Django 模板引擎自动转义功能, 或手动转义及设置内容安全策略 (CSP) 来增强防护. 掌握这些技巧, 让你在 Python Web 开发中更加安心. 安全是个持续学习的过程, 不断提升才能有效保护应用.
50 1
|
4月前
|
JavaScript 程序员 应用服务中间件
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(2)
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(2)
55 7
|
4月前
|
XML 存储 JavaScript
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(1)
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(1)
62 5