一、引言

随着大语言模型(LLM)在自然语言处理(NLP)领域的广泛应用,如何高效部署、推理和微调这些模型成为了一个重要的研究方向。DeepSeek - R1 作为一款在推理能力方面表现突出的大型语言模型,凭借其独特的架构设计与先进的训练技术,在各类推理任务中脱颖而出。而 MS - Swift 框架则为大模型的高效部署提供了全面且强大的支持,两者结合,为开发者和研究人员提供了极具潜力的技术方案。本文将深入且细致地阐述基于 MS - Swift 框架的 DeepSeek - R1 模型在部署、推理和微调方面的实践操作,帮助大家快速掌握并熟练运用这一技术组合,从而在自然语言处理相关项目中充分发挥其优势。

二、MS-Swift 框架简介

MS - Swift 是一款专为大模型部署而精心打造的高效框架,具备出色的兼容性与丰富的功能特性。在模型类型支持上,无论是专注于文本处理的纯文本模型,还是融合文本、图像、音频等多种信息模态的多模态模型,亦或是擅长文本序列分类任务的序列分类模型,MS - Swift 均能为其提供适配的部署环境。另外在功能层面,MS - Swift 框架提供了基于 Gradio 的 Web UI。Gradio 作为开源的界面构建工具,能够以直观、便捷的方式搭建起用户与模型交互的可视化界面,即便非专业开发人员也能轻松上手,通过简单操作与模型进行对话、输入指令等。

三、DeepSeek-R1 模型简介

DeepSeek-R1 是一款专为提升推理能力而设计的大型语言模型。它在自然语言处理领域,尤其是复杂推理任务中表现出色,这得益于其独特的训练方式和优化策略。DeepSeek-R1 采用了强化学习技术,通过与环境的交互不断优化模型的推理能力,使其能够在面对复杂的逻辑推理和多步骤问题时,生成准确且连贯的答案。此外,为了进一步提升模型的实用性和效率,DeepSeek-R1 还结合了蒸馏技术,将大型模型的知识和能力迁移到更小的模型中,从而在保持推理性能的同时,显著降低了资源消耗。
DeepSeek-R1 提供了多种蒸馏版本,以满足不同用户的需求。具体信息如下:
在这里插入图片描述
DeepSeek-R1-Distill-Qwen-7B 是一款在资源受限环境下具有突出优势的蒸馏模型。它既不像一些小型模型那样对硬件资源要求极低但推理性能有限,也不像大型模型那样对硬件资源需求较高但能在复杂场景中展现卓越的推理能力。它以适中的参数规模,在保持较为出色的推理性能的同时,能很好地适应普通个人电脑、小型服务器等资源受限的设备,为这些设备提供了高效推理的解决方案,是平衡资源与性能的最佳选择,能够满足大多数对推理效率有一定要求且受限于硬件资源的应用场景。 而其他DeepSeek-R1-Distill-Qwen-14B 和 DeepSeek-R1-Distill-Qwen-32B等更大参数的蒸馏模型,在推理能力上表现更出色,更适合对性能要求较高的复杂场景。

四、DeepSeek-R1 部署实践

1. 环境准备

在部署 DeepSeek-R1 模型之前,需要准备合适的硬件和软件环境:
操作系统选用Ubuntu 22.04,其稳定性和丰富的软件资源,为AI开发提供了良好的基础。Python版本选择3.10,它在性能和兼容性上表现出色,广泛应用于各类AI项目。同时,安装PyTorch 2.1.2,作为深度学习的核心框架,PyTorch为模型的运行提供了高效的计算库和灵活的编程接口。此外,还需安装Cuda 11.8,它能充分发挥NVIDIA GPU的并行计算能力,加速模型的训练与推理过程。

2. 安装swift

# pip install git+https://github.com/modelscope/ms-swift.git

git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .

下载完成如下:
在这里插入图片描述

3. vllm加速

vLLM 是一个高性能、灵活且易于部署的大语言模型推理框架,适用于需要高效处理大模型的场景。它通过优化的内存管理和高效的调度算法,显著提升了推理效率

# 临时指定清华源安装(推荐)
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple
# 临时指定阿里源安装(备用)pip install vllm -i https://mirrors.aliyun.com/pypi/simple

安装完成如下:
在这里插入图片描述

4. 模型下载

DeepSeek-R1 的蒸馏版本可以通过 modelscope或者Hugging Face 下载。以下以 DeepSeek-R1-Distill-Qwen-7B 为例:
使用 modelscope 中的 snapshot_download 函数下载模型(提前安装modelscope :pip install modelscope)。第一个参数为模型名称,参数 cache_dir 用于指定模型的下载路径。在 /root/autodl-tmp 路径下新建 download.ipynb 文件,并在其中输入以下内容:

from modelscope import snapshot_download
model_dir = snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-7B', cache_dir='/root/autodl-tmp', revision='master')

运行代码执行下载,如下:
在这里插入图片描述

5. 模型部署

使用 MS-Swift 框架,可以通过以下命令启动模型服务:

CUDA_VISIBLE_DEVICES=0 swift deploy \
    --model /root/autodl-tmp/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
    --infer_backend vllm

模型部署启动成功如下:
在这里插入图片描述

服务启动后,可以通过 HTTP API 访问模型。

我们可以使用cli命令脚本调用模型服务,在终端中输入以下命令:

curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-R1-Distill-Qwen-7B",
"messages": [{"role": "user", "content": "用最精炼的语言介绍一下AI大模型"}],
"temperature": 0
}'

模型API返回如下:

{"model":"DeepSeek-R1-Distill-Qwen-7B","choices":[{"index":0,"message":{"role":"assistant","content":"<think>\n好的,我现在要介绍AI大模型。首先,我需要明确什么是AI大模型。AI大模型通常指的是像GPT、BERT这样的大型预训练模型,它们通过大量数据训练,能够处理复杂的自然语言任务。\n\n接下来,我应该解释这些模型的特点,比如它们的规模大、参数多,能够处理多种语言和任务。然后,说明它们的应用领域,比如文本生成、信息检索、对话系统等。\n\n最后,要提到这些模型对社会的积极影响,比如推动创新、提高效率,同时也要注意潜在的挑战,如隐私和伦理问题。\n\n现在,把这些点组织成一个连贯的介绍,语言要简洁明了,适合快速理解。\n</think>\n\nAI大模型是指经过大规模预训练的高级人工智能模型,具备处理复杂语言任务的能力,广泛应用于文本生成、信息检索和对话系统等领域,推动创新和效率提升,同时需注意隐私和伦理挑战。","tool_calls":null},"finish_reason":"stop","logprobs":null}],"usage":{"prompt_tokens":14,"completion_tokens":194,"total_tokens":208},"id":"61a7a02a832d4dd5ba6dd185a9fa417d","object":"chat.completion","created":1741687627}

部署推理资源消耗情况如下(28G左右):
在这里插入图片描述

五、DeepSeek-R1 推理实践

推理是 DeepSeek-R1 的核心应用场景之一。以下是一个基于 MS-Swift 框架的推理代码示例:

CUDA_VISIBLE_DEVICES=0 swift infer \
    --model /root/autodl-tmp/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
    --stream true \
    --infer_backend vllm \
    --max_new_tokens 2048

脚本执行成功,推理效果如下:
在这里插入图片描述

六、DeepSeek-R1 微调实践

微调是提升 DeepSeek-R1 模型性能的重要手段。以下是一个基于 MS-Swift 框架的微调步骤:

1、数据集准备

为对DeepSeek-R1-Distill-Qwen-7B模型开展微调,找了一份有趣的数据集(https://github.com/KMnO4-zx/huanhuan-chat),内容如下:
在这里插入图片描述

2、模型微调训练

以下是一个基于 MS-Swift 框架的lora微调代码示例:

CUDA_VISIBLE_DEVICES=0 \
swift sft \
    --model '/root/autodl-tmp/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B' \
    --train_type lora \
    --dataset '/root/autodl-tmp/datasets/huanhuan.json' \
    --num_train_epochs 1 \
    --per_device_train_batch_size 1 \
    --learning_rate 1e-4 \
    --lora_rank 8 \
    --lora_alpha 32 \
    --gradient_accumulation_steps 16 \
    --eval_steps 100 \
    --save_steps 100 \
    --save_total_limit 2 \
--logging_steps 5 

参数说明:
–model:指定预训练模型的名称或路径
–train_type lora :指定训练类型为 LoRA(Low-Rank Adaptation),一种高效的微调方法
–dataset :指定训练数据集的名称或路径
–num_train_epochs:指定训练的总轮数(epoch),这里设置为 1 轮
–per_device_train_batch_size:指定每个设备(GPU)的训练批次大小,这里设置为 1
–learning_rate:设置学习率,这里为 1e-4
–lora_rank:设置 LoRA 的秩(rank),用于控制 LoRA 层的参数数量,这里设置为 8
–lora_alpha:设置 LoRA 的缩放因子 alpha,用于控制 LoRA 层的缩放比例,这里设置为 32
–gradient_accumulation_steps:设置梯度累积步数,用于在小批次情况下模拟大批次训练,这里设置为 16 步
–eval_steps:每隔多少步进行一次评估,这里设置为每 100 步评估一次
–save_steps:每隔多少步保存一次模型,这里设置为每 100 步保存一次
–save_total_limit:保存的模型总数限制,这里最多保存 2 个模型
–logging_steps:每隔多少步记录一次日志,这里设置为每 5 步记录一次
–model_author swift:指定模型作者,这里为 “swift”
–model_name swift-robot:指定保存的模型名称,这里为 “swift-robot”
微调训练结果如下:
在这里插入图片描述

微调后生成的新的checkpoint权重文件如下:
/root/autodl-tmp/output/DeepSeek-R1-Distill-Qwen-7B/v0-20250312-093007/checkpoint-230
在微调过程中,建议使用结构化的提示数据,并通过拒绝采样生成更多训练样本。

3、推理训练后权重文件

直接加载微调后的权重文件,快速验证微调效果是否生效。

CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --adapters /root/autodl-tmp/output/DeepSeek-R1-Distill-Qwen-7B/v0-20250312-093007/checkpoint-230 \
    --stream true \
    --temperature 0 \
--max_new_tokens 2048

微调效果:
在这里插入图片描述

微调训练后的权重文件实际上既包含了主模型的通用知识,也包含了微调后的特定知识,可以通过上面的方式快速查看微调效果。

4、LoRA合并&推理训练后的权重文件

不仅加载微调后的权重文件,还通过 LoRA 合并进一步优化推理结果。

# merge-lora and use vLLM for inference acceleration
CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --adapters /root/autodl-tmp/output/DeepSeek-R1-Distill-Qwen-7B/v0-20250312-093007/checkpoint-230 \
    --stream true \
    --merge_lora true \
    --infer_backend vllm \
    --max_model_len 8192 \
    --temperature 0 \
--max_new_tokens 2048

即可得到新的模型权重文件:
/root/autodl-tmp/output/DeepSeek-R1-Distill-Qwen-7B/v0-20250312-093007/checkpoint-230-merged

七、性能优化与评估

  1. deepseek硬件优化
  • 对于非常小的馏模型(如 1.5B),只需要GTX 1650、RTX 3060
    • 对于较小的蒸馏模型(如 7B),单卡 V100 或 A100 即可满足需求。
    • 对于较大的模型(如 14B),推荐使用多卡并行。
  1. 推理性能优化

    • 使用 MS-Swift 框架的 vllm 模式可以显著提升推理速度。
    • 在推理时,可以通过调整 max_new_tokenstemperature 参数来优化生成结果。
  2. 微调性能优化

    • 在微调时,建议增加 epoch 次数或扩充数据集。
    • 如果显存不足,可以减小 batch_size 或增大 gradient_accumulation_steps
  3. 性能评估

    • 使用标准的推理基准测试(如 AIME 2024)评估模型性能。
    • 比较不同蒸馏版本的性能,选择最适合的模型。

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

在这里插入图片描述
👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐