2025年蛇年春节,DeepSeek强势出圈,以十分之一的训练成本比肩OpenAI GPT-4o的性能,重塑AI世界新秩序。DeepSeek向全世界开源,为全球的数据科学家、AI爱好者乃至中小开发者开辟了一条通往前沿技术的道路。
DeepSeek是一款集成多种AI技术的开发平台,旨在为用户提供高效、便捷的AI模型训练、部署和应用服务。它支持自然语言处理(NLP)、计算机视觉(CV)、语音识别等多个领域的任务,还提供丰富的预训练模型和工具,帮助用户快速构建和优化AI应用。
DeepSeek点燃了AI应用。今天,我们就给大家分享如何利用手中的设备运行Deepseek。我们所采用的设备是OrangePi AI Studio。
OrangePi AI Studio:高算力人工智能算力卡
OrangePi AI Studio采用昇腾AI技术路线,融合“ARM core,AI core,Vector core,Image core”于一体,提供“基础通用算力+超强AI算力+编解码核心”,充分满足推训一体AI任务需求,拥有48GB /96GB LPDDR4X,速率高达4266Mbps。
OrangePi AI Studio汇聚了Type-C(USB4.0) 、电源接口、电源按键、LED指示灯等,可广泛应用于OCR识别、目标识别、人脸识别、搜索推荐、大模型多模态、内容审核、VR智能、数字医疗、物联网等诸多AI应用场景。
OrangePi AI Studio当前支持Ubuntu22.04.5、内核 linux5.15.0.126,即将支持Windows,满足市场对于算力的强烈需求,降低用户的学习成本、开发成本和运营成本。
实操指南:OrangePi AI Studio运行Deepseek
1.1.1. 硬件连接
使用USB4数据线连接opi ai studio和Ubuntu PC。开启Ubuntu PC,参考用户手册中驱动安装步骤安装驱动。
正确连接opi ai studio和pc后,在pc开机状态下,左右两侧指示灯常亮,中间指示灯闪烁。
1.1.2. 下载docker镜像
1) 首先在Ubuntu电脑中安装下docker软件,安装完docker后如果使用docker -v命令能看到版本号说明安装成功。
# apt update
# apt install -y docker.io
# docker -v
2) 打开下面的链接,再点击ATB-Models下载选项:
3) 然后点击镜像版本中的1.0.0-300I-Duo-py311-openeuler24.03-lts对应的下载选项。
4) 点击1.0.0-300I-Duo-py311-openeuler24.03-lts右侧的立即下载后会显示下面的安装步骤:
a) 使用root用户运行下面的命令获取登录访问权限,然后输入密码登录。不同账号看到的下载地址是不一样的,按照实际获取的信息填写。
# docker login -u cn-south-1@ADW7CJ164S04NRFEELZP swr.cn-south-1.myhuaweicloud.com
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
Login Succeeded
b) 然后下载镜像即可。
c) 下载好的镜像如下所示:
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie 1.0.0-300I-Duo-py311-openeuler24.03-lts 74a5b9615370
3 weeks ago 17.5GB
1.1.3. 使用docker镜像的方法
IMAGES_ID=$1
NAME=$2
if [ $# -ne 2 ]; then
echo "error: need one argument describing your container name."
exit 1
fi
docker run --name ${NAME} -it -d --net=host --shm-size=500g
--privileged=true
-w /home
--device=/dev/davinci_manager
--device=/dev/hisi_hdc
--device=/dev/devmm_svm
--entrypoint=bash
-v /models:/models
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver
-v /usr/local/dcmi:/usr/local/dcmi
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi
-v /usr/local/sbin:/usr/local/sbin
-v /home:/home
-v /tmp:/tmp
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
-e http_proxy=$http_proxy
-e https_proxy=$https_proxy
${IMAGES_ID}
2) 然后查看下docker镜像的IMAGE ID。
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie 1.0.0-300I-Duo-py311-openeuler24.03-lts 74a5b9615370
3 weeks ago 17.5GB
3) 然后依次执行如下命令启动并进入容器:
a. 首先运行start-docker.sh脚本创建运行容器,此命令只需执行一次。74a5b9615370是我们上一步中查询到的docker镜像ID,mindIE 是我们自定义的容器名,可以自行更改,之后进入docker容器的时候需要使用这个名字。
# bash start-docker.sh 74a5b9615370 deepseek
b. 然后运行下面的命令进入容器命令行。
# docker exec -it deepseek bash
1.1.4. DeepSeek-R1-Distill-Qwen-14B
1) 依次执行下面的命令,下载DeepSeek-R1-Distill-Qwen-14B模型权重,将其放到/models目录下。如无法下载可参考国内模型网站使用方法一小节的方法通过国内模型网站下载。
# mkdir /models
# cd /models
# apt install -y git-lfs
2) 如果是32GB或32GB以下内存的电脑,需要加大内存交换分区的大小,不然转换权重和执行推理程序时会由于内存不够而退出。这一步请在物理机上执行,不支持在docker容器内执行。
# fallocate -l 64G /swap_model
# chmod 600 /swap_model
# mkswap /swap_model
# swapon /swap_model
#使用完成后可以使用下面的命令释放空间
# swapoff /swap_model
# rm /swap_model
3) 使用chown命令将/models/DeepSeek-R1-Distill-Qwen-14B目录及其所有文件的所有者和组更改为root用户和root组。
# chown root:root -R /models/DeepSeek-R1-Distill-Qwen-14B
4) 推理DeepSeek-R1-Distill-Qwen-14B模型的命令如下所示:
# cd $ATB_SPEED_HOME_PATH
# torchrun --nproc_per_node 1 --master_port 20037 -m examples.run_pa --model_path /models/DeepSeek-R1-Distill-Qwen-14B/ --max_output_length 256
5) 推理成功后,在输出的最后,可以找到Question和Answer,结果如下所示:
6) 纯模型能够正常推理后,我们修改mindie server配置。
# vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
"httpsEnabled" : false,
"npuDeviceIds" : [[0]],
"modelName" : "DeepSeek",
"modelWeightPath" : "/models/DeepSeek-R1-Distill-Qwen-14B",
"worldSize" : 1,
7) 我们需要先修改模型目录下的config.json文件的权限为640,否则无法启动server服务。
# chmod 640 /models/DeepSeek-R1-Distill-Qwen-14B/config.json
8) 执行以下命令启动MindIE Server服务,如果最后有如下的输出,表示启动成功。
# cd /usr/local/Ascend/mindie/latest/mindie-service/bin
# ./mindieservice_daemon
......
Daemon start success!
9) 接着拉取聊天机器人案例代码。
10) 安装依赖。
# cd chat_robot
11) 启动聊天机器人demo程序。启动后,会打印如下信息,复制其中的url到浏览器打开。
a) 首先程序会自动查询当前设备上MindIE中运行的模型信息,并打印出来。
b) 如果提示暂不支持,请核对MindIE Server中的“modelName”字段。
c) 然后等一会就会打印两个ip地址。第一个url只能在启动主程序的电脑上访问,第二个url可以通过和启动主程序的电脑同一网络下的设备访问。
# python3 main.py
检测到mindie server中启动了DeepSeek模型。
* Serving Flask app 'main'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
Press CTRL+C to quit
12) 浏览器打开上面的链接后我们可以看到下面这个页面,左侧提供了一些问题,点击可以直接提问。
1.1.5. DeepSeek-R1-Distill-Qwen-1.5B
13) 依次执行下面的命令,下载DeepSeek-R1-Distill-Qwen-14B模型权重,将其放到/models目录下。如无法下载可参考国内模型网站使用方法一小节的方法通过国内模型网站下载。
# mkdir /models
# cd /models
# apt install -y git-lfs
14) 如果是32GB或32GB以下内存的电脑,需要加大内存交换分区的大小,不然转换权重和执行推理程序时会由于内存不够而退出。这一步请在物理机上执行,不支持在docker容器内执行。
# fallocate -l 64G /swap_model
# chmod 600 /swap_model
# mkswap /swap_model
# swapon /swap_model
#使用完成后可以使用下面的命令释放空间
# swapoff /swap_model
# rm /swap_model
15) 使用chown命令将/models/DeepSeek-R1-Distill-Qwen-1.5B目录及其所有文件的所有者和组更改为root用户和root组。
# chown root:root -R /models/DeepSeek-R1-Distill-Qwen-1.5B
16) 推理DeepSeek-R1-Distill-Qwen-14B模型的命令如下所示:
# cd $ATB_SPEED_HOME_PATH
# torchrun --nproc_per_node 1 --master_port 20037 -m examples.run_pa --model_path /models/DeepSeek-R1-Distill-Qwen-1.5B/ --max_output_length 256
17) 推理成功后,在输出的最后,可以找到Question和Answer,结果如下所示:
18) 纯模型能够正常推理后,我们修改mindie server配置。
# vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
"httpsEnabled" : false,
"npuDeviceIds" : [[0]],
"modelName" : "DeepSeek",
"modelWeightPath" : "/models/DeepSeek-R1-Distill-Qwen-1.5B",
"worldSize" : 1,
19) 我们需要先修改模型目录下的config.json文件的权限为640,否则无法启动server服务。
# chmod 640 /models/DeepSeek-R1-Distill-Qwen-1.5B/config.json
20) 执行以下命令启动MindIE Server服务,如果最后有如下的输出,表示启动成功。
# cd /usr/local/Ascend/mindie/latest/mindie-service/bin
# ./mindieservice_daemon
......
Daemon start success!
21) 接着拉取聊天机器人案例代码。
22) 安装依赖。
# cd chat_robot
23) 启动聊天机器人demo程序。启动后,会打印如下信息,复制其中的url到浏览器打开。
a)首先程序会自动查询当前设备上MindIE中运行的模型信息,并打印出来。
b)如果提示暂不支持,请核对MindIE Server中的“modelName”字段。
C)然后等一会就会打印两个ip地址。第一个url只能在启动主程序的电脑上访问,第二个url可以通过和启动主程序的电脑同一网络下的设备访问。
# python3 main.py
检测到mindie server中启动了DeepSeek模型。
* Serving Flask app 'main'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
Press CTRL+C to quit
24) 浏览器打开上面的链接后我们可以看到下面这个页面,左侧提供了一些问题,点击可以直接提问。