Skip to content

DeepSeek-R1模型部署教程:手把手设计网页动图

DeepSeek的热度还在持续攀升,但随之而来的问答卡顿、服务器繁忙问题,也让许多用户头疼不已。如何让DeepSeek-R1不仅能实时对话、生成代码,还能设计酷炫网页动图?

最近,超算互联网上线DeepSeek-R1全家桶模型,可免费快速下载模型文件进行开发部署。本次实操,我们手把手分享基于超算互联网基础镜像,部署DeepSeek-R1模型,生成个性化网页背景动图。

准备好开启你的专属DeepSeek-R1之旅了吗?跟随我们的步骤,轻松部署。

一、创建环境和项目空间

第一步:创建Notebook在线启动异构加速卡基础镜像 登录超算互联网https://www.scnet.cn个人账号,点击右上角“控制台”; 1.png 点击快捷入口中的“Notebook”,进入创建Notebook页面; 2.png 选择区域、选择异构加速卡AI-64GB,点击“基础镜像”,在列表中选择pytorch:2.3.0-ubuntu22.04-dtk24.04.2点击创建; 3.png 创建成功后,点击“JupyterLab”进入Notebook页面; 4.png 在Notebook中打开“终端”页面,使用命令进入private_data文件夹,创建个人项目文件夹;

shell
cd private_data
mkdir -p my/deepseek
#随后进入项目文件夹
cd my/deepseek

此时的notebook处在一个完全干净的运行环境与项目空间。 5.png

二、部署deepseek

第一步:导入模型文件

登录超算互联网,在应用商城中搜索deepseek-r1,并选择“DeepSeek-R1-Distill-14B”模型文件商品,勾选服务协议后,点击“立即使用”,等待商品交付完成,点击“查看”;如果之前购买过商品,点击“去使用”,即可进入已购商品详情页面。 6.png 点击“下载到区域”,新建文件夹deepseek,并选择该文件夹 7.png8.png 下载完成后,点击“在区域中打开”--“命令行打开” 9.png10.png 使用pwd查看模型文件路径,并复制路径 11.png 再回到之前创建的项目文件夹终端页面,使用命令mv 压缩包路径 ./ 移动模型文件,等待移动完成后,即可看到DeepSeek-R1-Distill-14B模型文件压缩包,随后使用命令tar -xvf 解压,解压后即可看到DeepSeek-R1-Distill-14B模型文件。 12.png

第二步:安装模型运行的依赖包

执行命令:

shell
pip install transformers==4.46.3 safetensors==0.4.5 accelerate==1.3.0

第三步:新建笔记本

新建笔记本重命名为inference,用于编写代码运行模型 13.png

第四步:编写加载模型代码,并运行代码

shell
#导入相关模块
import os
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
#环境变量设置
os.environ["TOKENIZERS_PARALLELISM"] = "false"
#设置模型路径
model_id = "./DeepSeek-R1-Distill-Qwen-14B"
#加载模型之前释放显存
torch.cuda.empty_cache()
print(f"开始加载{model_id}模型...")

tokenizer = AutoTokenizer.from_pretrained(model_id, padding_side='left')
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", torch_dtype=torch.bfloat16)
print(f"\033[32m模型加载完成...\033[0m\n")

等待模型加载完成(单元格下面会出现模型加载完成字样)。 14.png

第五步:编写模型推理代码

shell
#设置输入
prompt = '请用html语言生成星空的动画背景,要求星空效果明显。同时我还希望在中间加入一个logo图,科技感十足,红色文字,文字采用极具霸气的中国泼墨风格,logo图文字SCNet,文字动态效果为心跳'
messages=[
            {"role": "system", "content": "你是一个知识丰富的html代码专家,请提供清晰、准确的答案。"},
            { 'role': 'user', 'content': prompt}
        ]

output = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to("cuda")
max_length = 2048
tokenizer.padding_side = 'left'
tokenizer.pad_token = tokenizer.eos_token
tokenizer.add_special_tokens({'pad_token': '[PAD]'})
str_output = ""
#逐步生成输出
for _ in range(max_length):
#获取模型的预测
    outputs = model.generate(
        input_ids=output,
        max_length=len(output[0]) + 1,
        pad_token_id=tokenizer.pad_token_id,
        bos_token_id=tokenizer.bos_token_id,
        eos_token_id=tokenizer.eos_token_id,
        do_sample=True,
        top_k=10,
        temperature=0.7
    )
    new_token = outputs[0, -1].unsqueeze(0)
#解码并打印生成的token
    decoded_output = tokenizer.decode(new_token, skip_special_tokens=True)
    print(decoded_output, end='', flush=False)
    str_output += decoded_output
#更新output
    output = torch.cat([output, outputs[:, -1].unsqueeze(1)], dim=1)
#Stop if end of sequence token is generated
    if new_token.item() == tokenizer.eos_token_id:
        break

在单元格下方即可看到DeepSeek-R1-Distill-Qwen-14B模型针对该问题所进行的深度思考和生成的html代码。
16.png

三、生成动画背景图

将生成的html代码复制到在线html生成器中进行生成,可以得到最后的结果。
在线html生成器推荐:https://www.mimashengcheng.com/runjs/
15.png

以上就是本次实操教程的全部内容了,大家可参照此步骤,在超算互联网使用DeepSeek-R1基础镜像创意化设计网页动画。

希望本篇最佳实践为您提供一些有价值的信息和实践技巧。