轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

标题:轻松上云:快速部署 DeepSeek 大模型(蒸馏版)

资料

DeepSeek 是由中国一家叫深度求索的初创公司推出的大语言模型。它的开源模型主要有:

DeepSeek-V3 :这是一款通用的大语言模型,采用了 MoE 结构,拥有 671B 的参数,激活参数为 37B。它在 14.8T 的 token 上进行了预训练,能提供信息检索、数据分析和自然语言处理等多种服务,适合于客户服务、教育辅导和内容创作等场景;

DeepSeek-R1 :这个推理模型是基于 DeepSeek-V3-Base 训练而成,特别擅长处理数学、代码和自然语言推理等复杂任务,能够在复杂环境中稳定运行,适合工业自动化和家庭服务机器人等领域;

DeepSeek-R1-Distill :这个模型是基于 DeepSeek-R1 训练出的,经过 800K 样本微调,专为资源受限的场景设计。与 DeepSeek-R1 相比,它体积更小、能耗更低,同时性能依然很强大,方便在各种设备上部署。

接下来,我们将介绍三种在火山引擎云上快速部署 DeepSeek-R1-Distill 模型的方法:

第一种方案是基于 GPU 云服务器、容器服务 VKE 和持续交付 CP 的云原生 AI 部署方案,能够提供更强大的水平扩展能力;

第二种方案是基于函数服务 veFaaS 的无服务器化方案,灵活性和便捷性都很强;

第三种方案是基于开源 Terraform 的一键部署方案,用户只需复制脚本并执行,就能安全高效地完成基于 ECS 的部署。

方案一:容器化部署

在企业的生产环境中,结合容器与 AI 技术,可以显著缩短大模型服务的打包和部署时间,同时实现计算资源的快速部署和灵活调配。火山引擎的容器服务 VKE 利用新一代云原生技术,提供以容器为核心的高性能 Kubernetes 集群管理服务,用户可以借此快速构建容器化的 AI 应用。

步骤一:创建 VKE 集群

在正式部署 DeepSeek-R1-Distill 模型推理服务之前,我们得先创建 VKE 集群。请访问火山引擎容器服务 VKE 的工作台:https://console.volcengine.com/vke,然后创建托管集群(如下图所示),建议选择 VPC-CNI 作为网络模型:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

得益于内外资源的共用,火山引擎为用户提供了高弹性且性价比高的算力产品,覆盖多种型号,以满足企业在利用 AI 技术进行数字化转型时的算力需求。在大模型服务的部署中,我们建议使用不同的 GPU ECS,以获取更高的性价比。以 DeepSeek-R1-Distill 为例,以下是一些节点配置的推荐(用户也可以选择使用整机 8 卡机型来运行多个容器):

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

注:若想使用 ecs.gni3cg/ecs.gni3cl/ecs.pni3l,请联系客户经理申请

最后,在创建集群时,我们需要选择组件配置,额外选择 csi-tos 和 nvidia-device-plugin 两个组件进行安装(相关文档:https://www.volcengine.com/docs/6460/101014):

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

步骤二:创建部署集群

接下来的流程跟之前的 FLUX.1 和 Stable-Diffusion-WebUI 的部署类似,这次我们依然会使用火山引擎的持续交付 CP 的 AI 应用功能。它提供了预置模板,集成了主流的 AI 框架,并封装了操作系统、AI 框架以及依赖库等应用环境,能够快速在新创建的容器服务中部署 DeepSeek-R1-Distill,极大地降低了开发难度。

打开火山引擎持续交付产品工作台:https://console.volcengine.com/cp,在左侧菜单中选择“资源管理-部署资源”,点击“创建部署资源”:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

在创建部署资源的表单中,选择“接入类型”为“容器服务 VKE”;地域和部署集群则选择刚刚创建的 VKE 集群;共享范围可以选择所有工作区:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

步骤三:创建 AI 应用

基础信息配置:在持续交付 CP 的工作台左侧菜单中选择“AI 应用”(邀测功能,欢迎联系客户经理申请),然后点击“创建应用”:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

在应用创建表单中,选择“自定义创建”:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

完成应用名和部署集群的配置。要注意的是,这里的部署集群需要选择之前创建的部署集群:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

接下来完成启动镜像和模型的配置。针对 DeepSeek-R1-Distill,我们可以选择 SGLang 镜像进行部署;模型可直接选择“官方模型”中的 DeepSeek-R1-Distill,挂载路径设置为“/model”:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

SGLang 默认的启动命令如下,用户也可以根据实际推理服务的需求,对默认启动命令进行调整。

轻松上手 DeepSeek-R1-Distill 部署指南

首先,我们要启动推理服务,可以用下面的命令:

python3 -m sglang.launch_server –model-path /model –context-length 2048 –trust-remote-code –host 0.0.0.0 –port 8080

接下来,设置一下推理服务的规格。这里选一个实例,数量为1。根据不同参数量的 DeepSeek-R1-Distill,咱们可以参考下面的配置建议:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

好了,服务配置完成后,咱们只需耐心等大约 5 分钟,DeepSeek-R1-Distill 的服务就能顺利部署完成。

步骤四:创建负载均衡访问推理服务

火山引擎的负载均衡 CLB 是一种可以将流量按策略分配给多个后端服务器的服务,这样可以增强系统的对外服务能力,避免单点故障,让系统更加稳定。我们接下来就用 CLB 来对外展示服务。

在 AI 应用页面,点击“访问设置”:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

然后选择“添加负载均衡”,根据需要选“公网”或“内网”,这里我们以公网为例。如果没有公网 CLB,可以点击“创建负载均衡”:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

在创建负载均衡时,记得要选择和之前 VKE 集群相同的私有网络配置:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

创建完成后,点击这个负载均衡,配置端口,确保容器端口与之前的应用端口一致即可:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

完成这些步骤后,在“访问设置”页面就能看到公网 IP 了:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

到这里,我们就完成了 DeepSeek-R1-Distill 的整个部署和对外服务,接下来可以用本地的 curl 命令来调用 API,体验一下大模型的问答能力,命令如下:

curl -X POST http://你的负载均衡IP/v1/chat/completions -H “Content-Type: application/json” -d ‘{
“model”: “/models”,
“messages”: [
{
“role”: “user”,
“content”: “你对DeepSeek的提问”
}
],
“stream”: false,
“temperature”: 0.7
}’

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

方案二:Serverless化部署

推荐的第二种方案是通过 Serverless 方式进行轻量化部署。火山引擎的函数服务 veFaaS 是一个事件驱动的全托管计算平台,使用它部署 DeepSeek-R1-Distill 时,用户无需担心底层资源的维护和自动扩展,只需编写代码并上传,便能以弹性、安全、可靠的方式运行。而且,费用只针对实际运行的资源和调用次数,代码不运行就不收费,特别适合需要灵活和敏捷业务的场景。

如果想通过函数服务 veFaaS 来部署 DeepSeek-R1-Distill,通常需要做好以下准备:

本地开发环境:

需要安装 Docker Desktop 或者 Docker:https://www.docker.com/get-started/

【可选】可以安装 ollama 命令行工具:https://ollama.com/download

火山引擎账户在 cn-beijing 区域开通以下服务:

函数服务 veFaaS (用于执行 Ollama 推理服务):https://console.volcengine.com/vefaas并且开通了 Serverless GPU 功能的试用

API 网关:https://console.volcengine.com/veapig

【可选】对象存储 TOS:https://console.volcengine.com/tos

步骤一:创建 Ollama 模型推理服务

进入火山引擎的函数服务 veFaaS 工作台:

https://console.volcengine.com/vefaas,创建一个“Web 应用”。在这里选择公共镜像的 Ollama 镜像模板进行部署,计算模式选 GPU 加速(如果是邀测功能,可以联系客户经理申请):

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

创建完成后,点击右上角的发布按钮,服务就部署好了:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

步骤二:创建 API 网关接入点

火山引擎的 API 网关 APIG 是一个基于云原生的高扩展性和高可用性的云上网关托管服务。它在传统流量网关的基础上,集成了丰富的服务发现和治理能力,能帮助用户实现微服务架构内外部网络的快速安全通信。我们将利用 APIG 来暴露 DeepSeek-R1-Distill 服务。

轻松上手火山引擎 API 网关:一步步教你如何创建和测试

首先,咱们从火山引擎的 API 网关 APIG 工作台开始,直接访问这个链接:

https://console.volcengine.com/veapig

在这里,你可以创建一个新的 API 网关实例。为了方便测试,建议选择 Serverless 网关,这样更易于使用。

创建API网关实例

网关实例创建好之后,接下来的步骤就是新建一个网关服务,以便对外公开一个可以访问的域名。

新建网关服务

然后,回到火山引擎的 veFaaS 控制台,找到你刚刚创建的 API 网关实例和服务,接着创建 API 网关触发器。

创建API网关触发器

Step3:在本地测试 open-webui

在这一步,我们将利用一个开源项目 open-webui(你可以在这里找到:https://github.com/open-webui/open-webui),在本地启动前端控制台,访问在步骤2和步骤3中配置的 Ollama 服务。

注意!启动参数中,我们需要做几件事情:

  • 设定 open-webui 使用 ollama 作为推理后端,并填写 ollama 后端的地址;
  • 关闭 openAI API 的访问;
  • 关闭访问鉴权(这样测试会方便很多);
  • 禁用 open-webui 自带的 embedding 模型和 whisper 模型的自动更新。

本地启动命令(确保你已经安装了 Docker Desktop):

docker run -p 3000:8080 
-v open-webui:/app/backend/data 
--name open-webui-new 
--restart always 
--env=OLLAMA_BASE_URL=[这里替换为Step3 API 网关 地址] 
--env=ENABLE_OPENAI_API=false 
--env=ENABLE_WEBSOCKET_SUPPORT=false 
--env=ENABLE_RAG_WEB_SEARCH=true 
--env=RAG_WEB_SEARCH_ENGINE=duckduckgo 
--env=WEBUI_AUTH=false 
--env=RAG_RERANKING_MODEL_AUTO_UPDATE=false 
--env=WHISPER_MODEL_AUTO_UPDATE=false 
--env=RAG_EMBEDDING_MODEL_AUTO_UPDATE=false 
ghcr.io/open-webui/open-webui:main

完成这些后,打开浏览器,输入 localhost:3000 来访问你的服务。

访问本地服务

(可选)Step4:添加并使用其他模型

公共镜像中已经包含了 DeepSeek-R1-Distill-Qwen-1.5B 模型。如果你想尝试其他的 DeepSeek 蒸馏模型版本,可以把模型下载到 TOS 对象存储,并挂载到相应的函数服务路径上。

关于 Ollama 模型,你可以查看这里:https://ollama.com/library;下面以 DeepSeek-R1-Distill-Qwen-7B 为例:

使用 Ollama 命令行工具下载模型文件:

ollama run deepseek-r1:7b

嘿,你好呀!很高兴见到你,有什么我可以帮忙的吗?无论是有什么问题、建议,还是想聊聊天,我都在这儿哦。😊

Ollama 模型文件默认会保存在 ~/.ollama/models 目录下

➜ ls -lb ~/.ollama/models

如果你看到这些内容:

total 0
drwxr-xr-x@ 22 bytedance staff 704B Feb 6 13:49 blobs/
drwxr-xr-x@ 3 bytedance staff 96B Feb 3 23:45 manifests/

关于函数服务挂载对象存储的详细信息可以参考这个链接:https://www.volcengine.com/docs/6662/1222882。记得,AKSK 需要拥有 TOS 存储桶的读写权限哦!

对象存储挂载

挂载完成后,别忘了设置环境变量 OLLAMA_MODELS 为模型的挂载路径。完成挂载和更新环境变量后,别忘了重新发布以使其生效:

环境变量设置

最后,重复一下 Step3 的本地测试步骤,你会发现多个模型选项已经出现了!

多个模型选项

方案三:用 Terraform 一键搞定部署

说到 Terraform,这可是个开源的基础设施即代码(IaC)工具,专门帮助大家用声明式的配置文件来自动化创建和管理云资源,支持超过 300 家云服务商。这样一来,用户就能轻松实现多云架构的统一管理,真的很方便。

火山引擎为了积极融入开源生态,已经和 Terraform 进行了大量集成,用户可以通过 Terraform 来编排火山引擎上的各种云资源。因此,我们强烈推荐使用 Terraform 脚本来自动创建所需的云资源,进而实现 DeepSeek 的一键部署。

Step1:准备 Terraform 环境

首先,咱得安装 Terraform,并初始化使用环境,这样才能为接下来的 DeepSeek-R1-Distill 一键部署做好准备。

Terraform 是以可执行的二进制文件发布的,所以你只需下载官方版本的 Terraform,然后把可执行文件的目录加到系统环境变量的 PATH 中就行了。具体的操作步骤可以参考这个链接:https://www.volcengine.com/docs/6706/101977。

Step2:创建并执行 Terraform 脚本

接下来,创建一个名为 main.tf 的文件,把下面的代码粘进去,记得修改 ecs_instance 中的登录密码 password。然后执行 terraform init,接着执行 terraform apply,等它执行完就好了。

要注意的是,模型下载的速度和 ECS 所在的区域是有关系的。如果你把 ECS 实例和镜像/模型存储的位置设置为同一地区,会大大加快下载速度。当前的示例脚本是针对 cn-beijing 的,如果你需要切换区域,请修改 main.tf 文件里的 zone_id 参数,以及执行脚本时的 region 相关参数。

terraform {

required_providers {

volcengine = {

source = “volcengine/volcengine”

version = “0.0.159”

}

}

}

resource “volcengine_vpc” “foo” {

vpc_name = “acc-test-vpc”

cidr_block = “172.16.0.0/16”

}

resource “volcengine_subnet” “foo” {

subnet_name = “acc-test-subnet”

cidr_block = “172.16.0.0/24”

zone_id = “cn-beijing-c”

vpc_id = volcengine_vpc.foo.id

}

data “volcengine_images” “foo” {

image_name = “Ubuntu 20.04 with GPU Driver 535.154.05 and mlx 5.8-3”

}

resource “volcengine_security_group” “foo” {

security_group_name = “acc-test-security-group”

vpc_id = volcengine_vpc.foo.id

}

resource “volcengine_security_group_rule” “foo” {

direction = “egress”

security_group_id = “${volcengine_security_group.foo.id}”

protocol = “tcp”

port_start = 22

port_end = 8080

cidr_ip = “0.0.0.0/0”

}

resource “volcengine_security_group_rule” “foo1” {

direction = “ingress”

security_group_id = “${volcengine_security_group.foo.id}”

protocol = “tcp”

port_start = 22

port_end = 8080

cidr_ip = “0.0.0.0/0”

}

resource “volcengine_ecs_instance” “foo” {

instance_name = “深度搜索一键部署”

轻松部署深度搜索实例

我们这边有个描述,叫“acc-test”,其实就是用来标识这个实例的。

主机名也是“acc-test”,这样更方便识别。

接下来,关于镜像ID,我们会用到一张特定的图片,具体来说,就是从我们的镜像数据中获取的第一张。

这次实例的类型是“ecs.gni3cg.5xlarge”,算是个比较强劲的配置。

登录这个实例需要一个密码,当然出于安全考虑,这个密码我就不写出来了,记得自己设置一个安全的哦。

实例的计费方式是后付费的,这样你可以先用后付。

系统盘的类型是“ESSD_FlexPL”,性能和灵活性都有保障。

而系统盘的大小设置在500GB,基本上够用。

在用户数据部分,实际上是包含了一些脚本,用于初始化和配置这个实例,确保它运行顺利。

接下来是数据卷的配置,这部分同样选择了“ESSD_FlexPL”,同样是500GB的大小,确保存储需求得到满足。

标题:轻松配置你的ECS实例,体验大模型问答能力!

“`html

delete_with_instance = true

}

subnet_id = volcengine_subnet.foo.id

security_group_ids = [volcengine_security_group.foo.id]

project_name = “default”

}

resource “volcengine_eip_address” “foo” {

billing_type = “PostPaidByTraffic”

}

resource “volcengine_eip_associate” “foo” {

allocation_id = volcengine_eip_address.foo.id

instance_id = volcengine_ecs_instance.foo.id

instance_type = “EcsInstance”

}

步骤三:测试验证

首先,登录到你创建的ECS实例,去看一下/home/result这个文件,直到你看到“脚本执行完成”的字样,这就意味着安装和启动容器的命令已经成功执行了。这时,可以用docker logsCONTAINER_ID来检查容器是否已经拉取到模型和权重。等一等,预期大约3-5分钟后就能准备好了。接下来,就可以用下面的命令来试试大模型的问答功能了:

curl -X POST http://0.0.0.0:6001/v1/chat/completions -H “Content-Type: application/json” -d ‘{
“model”: “/data00/models/DeepSeek-R1-Distill-Qwen-7B”,
“messages”: [
{
“role”: “user”,
“content”: “请证明一下黎曼猜想”
}
],
“stream”: true,
“max_tokens”: 100,
“temperature”: 0.7
}’

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

小提醒:有些朋友在执行curl命令时可能会看到连接被拒绝的提示(如下图所示),这通常是因为权重文件还没完全下载和加载完,稍等一下再重试就好。

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

(可选)步骤四:调整配置

为了提高模型的下载速度,建议大家根据你所在的地区选择离你最近的ECS实例。在上面的例子里,Terraform默认使用的是cn-beijing区域。如果你想在华北2(北京)以外的地方启动DeepSeek-R1-Distill实例,可以调整相关参数:

轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!

具体的调整方法是在执行脚本中修改对应字段,然后把整个文件进行base64编码,放到main.tf中的user_data字段里。修改完成后,再重新执行main.tf文件就行了。

DeepSeek-R1-Distill蒸馏版qwen-7B执行脚本:

#!/bin/bash

设置输出文件路径

RESULT_FILE=”/home/result”

touch RESULT_FILEecho””>RESULT_FILEecho“”>RESULT_FILE

echo “正在更新软件包列表…” >> RESULT_FILEsudoaptupdate>>RESULT_FILEsudoaptupdate>>RESULT_FILE 2>&1

echo “正在安装所需的包…” >> RESULT_FILEsudoaptinstall−yca−certificatescurlgnupglsb−release>>RESULT_FILEsudoaptinstallycacertificatescurlgnupglsbrelease>>RESULT_FILE 2>&1

“`

轻松搞定 Docker 安装指南

首先,我们得给 apt 的密钥环准备一个目录。可以用这个命令:echo "正在创建 apt 密钥环目录..." >> RESULT_FILE; sudo mkdir -p /etc/apt/keyrings >> RESULT_FILE 2>&1

接下来,我们要获取 Docker 的 GPG 密钥,执行这个命令:echo "正在获取 Docker GPG 密钥..." >> RESULT_FILE; curl -fsSL https://mirrors.ivolces.com/docker/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg >> RESULT_FILE 2>&1

然后,别忘了添加 Docker 的仓库。可以这样做:echo "正在添加 Docker 仓库..." >> RESULT_FILE; echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ivolces.com/docker/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list >> RESULT_FILE 2>&1

接下来,更新 apt 并安装 Docker。运行这两个命令:echo "正在更新 apt 并安装 Docker..." >> RESULT_FILE; sudo apt update >> RESULT_FILE 2>&1sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >> RESULT_FILE 2>&1

然后,我们要添加 Nvidia 的仓库,执行以下命令:echo "正在添加 Nvidia 仓库..." >> RESULT_FILE; curl -s https://mirrors.ivolces.com/nvidia_all/ubuntu2204/x86_64/3bf863cc.pub | sudo apt-key add - >> RESULT_FILE 2>&1。接着,使用下面的命令来添加仓库:cat > RESULT_FILE 2>&1 然后输入 deb http://mirrors.ivolces.com/nvidia_all/ubuntu2204/x86_64/ /,最后加上 EOF

继续更新 apt,并安装 Nvidia 容器工具包,使用这两个命令:echo "正在更新 apt 并安装 Nvidia 容器工具包..." >> RESULT_FILE; sudo apt update >> RESULT_FILE 2>&1sudo apt install -y nvidia-container-toolkit >> RESULT_FILE 2>&1

接下来,我们需要配置 Nvidia 的运行时为 Docker,使用这个命令:echo "正在配置 Nvidia 运行时..." >> RESULT_FILE; sudo nvidia-ctk runtime configure --runtime=docker >> RESULT_FILE 2>&1

最后,重启 Docker,让一切生效:echo "正在重启 Docker..." >> RESULT_FILE; sudo systemctl restart docker >> RESULT_FILE 2>&1

现在,你就可以开始运行 Docker 容器了!

轻松启动你的Docker容器!

其实呢,我们可以通过这条命令来运行Docker容器:“正在运行Docker容器…” 这句提示会被记录到RESULT_FILE里。接下来的那串命令就是真正的关键了,它包含了很多参数,比如网络配置、特权模式和GPU设置。这样一来,我们就能创建一个名为vllm_qwen7B的容器,并把模型路径、端口和模型名称都设置好,确保一切正常运行。哦对了,记得把模型镜像的地址也写上,最后再把结果输出到RESULT_FILE里,这样你就能看到运行的状态了哦!

任务完成!

执行完脚本后,我们还会在RESULT_FILE里写上“脚本执行已完成。”,这样就能一目了然了。

小结一下

总之,以上就是如何利用火山引擎的GPU云服务器、容器服务VKE、持续交付CP和函数服务veFaaS等工具,快速启动DeepSeek-R1-Distill模型服务的完整流程。如果你对这些服务感兴趣,随时可以开通体验哦!

来源:百家号
原文标题:火山引擎云上实战:一键部署 DeepSeek 大模型
声明:
文章来自网络收集后经过ai改写发布,如不小心侵犯了您的权益,请联系本站删除,给您带来困扰,深表歉意!

《轻松一键,火山引擎云上部署 DeepSeek 大模型,实战体验不容错过!》有10条评论

发表评论