基于DeepSeek R1模型的私有化部署实践

3,122 阅读5分钟

DeepSeek R1

DeepSeek R1模型的成功发布,具有以下几点重要意义:

技术突破DeepSeek R1模型采用纯强化学习(RL)训练,无需任何监督微调(SFT)数据,即可实现推理能力的自主进化。这一创新不仅验证了弱监督学习在复杂认知任务中的可行性,还通过“冷启动数据注入—推理导向强化学习—拒绝采样优化—全场景强化学习”的四阶段训练流程,使模型展现出卓越的自进化能力。此外,DeepSeek R1还通过知识蒸馏技术,将推理能力迁移到较小的模型中,使得小模型在特定任务中能够媲美大模型。

开源精神:MIT开源策略体现了中国工程师对开源文化的重视和贡献。通过开源,DeepSeek R1为全球科研社区提供了宝贵的资源,促进了国际间的合作与交流。

全球影响力:标志着中国工程师在人工智能领域从跟随者向自主创新者的转变,提升了中国在全球AI领域的影响力,也为中国企业在国际市场上赢得了更多的话语权。

应对挑战:在面对美国对先进半导体的出口管制时,DeepSeek R1的成功表明中国工程师能够在有限的资源下,通过自主创新实现技术突破。

要想私有化部署 DeepSeek R1 模型首先需要搭建 GPU 算力集群

GPUStack

GPUStack 是由梁胜博士带领的Seal团队,设计并开源的支持基于任何品牌的异构 GPU 集群管理器。 以下是 GPUStack 的主要特性:

1. 广泛的硬件兼容性

  • 多平台支持:支持 macOS、Windows (10, 11) 和多种 Linux 发行版(如 Ubuntu >= 20.04, Debian >= 11, RHEL >= 8, Rocky >= 8, Fedora >= 36, OpenSUSE >= 15.3 (leap), OpenEuler >= 22.03)。
  • 多架构支持:支持 AMD64 和 ARM64 架构。
  • 多 GPU 支持:支持多种品牌的 GPU,包括 Apple Metal、NVIDIA CUDA、华为昇腾、摩尔线程等。

2. 广泛的模型支持

  • 多种模型类型:支持大型语言模型(LLMs)、扩散模型、音频模型、嵌入模型和重新排序模型。
  • 模型部署:支持从 Hugging Face、ModelScope、Ollama Library 和本地路径部署模型。
  • 推理引擎:支持 vLLM、llama-box(基于 llama.cpp 与 stable-diffusion.cpp)和 vox-box 推理引擎。

3. 可扩展性和分布式推理

  • 单节点多 GPU 和多节点推理:支持单节点多 GPU 和多节点推理及服务,可以轻松扩展操作规模。
  • 分布式推理:对于无法在单个 GPU 节点运行的大参数量模型,GPUStack 提供分布式推理功能,可以自动将模型运行在跨主机的多个 GPU 上。
  • 调度优化:优化自动调度优先级,将分布式推理的优先级调整至高于 CPU 推理,增强了手动调度选卡功能,支持选择多卡,包括单机多卡(vLLM)和多机多卡(llama-box)。

4. 轻量级设计和兼容性

  • 轻量级 Python 包:依赖项和操作开销最小,提供与 OpenAI 标准兼容的 API。
  • OpenAI 兼容 API:提供与 OpenAI 标准兼容的 API,开发人员可以通过 OpenAI 兼容的 API 访问私有模型服务。

5. 企业级管理能力

  • 用户和 API 密钥管理:简化了用户和 API 密钥的管理。
  • GPU 指标监控:实时监控 GPU 性能和利用率。
  • 令牌使用和速率限制:追踪令牌使用情况并有效管理速率限制。

6. 新增特性(v0.5 版本)

  • 模型 Catalog:提供经过验证的模型集合,简化模型部署流程,降低用户认知负担。
  • 增强 Windows 和 macOS 模型支持:将 VLM 多模态模型支持和 Tool Calling 能力扩展到 Windows 和 macOS 平台。
  • 图生图功能:为 Image 模型新增图生图(图像编辑)功能,提供对应的 API 和 Playground UI。
  • 模型管理优化:新增模型启动检查功能,支持模型的停止和启动操作,支持对无法自动识别的模型进行手动分类。
  • 扩展集成能力:增加了 AMD GPU 支持,为 Dify 的 GPUStack Provider 添加了 STT 和 TTS 语音模型支持,提供了 RAGFlow 的 GPUStack Provider。

安装 GPUStack

$ curl -sfL https://get.gpustack.ai | sh -s -

安装完成后访问 localhost

image.png

查看资源

image.png

扩展算力

image.png

部署DeepSeek R1模型

image.png

由于笔者仅用了一台M2 Pro芯片的机器,所以这里选择80亿个参数的模型

image.png

确保模型已经安装完成并处于 Running 状态

image.png

测试

进入试验场并设置系统消息

image.png

image.png

基于私有大模型构建智能体

首先需要在GPUStack创建API访问密钥

image.png

创建AI工程

创建一个文件夹 deepseek 然后初始化 node.js 项目

(base) ➜  deepseek tree .
.
├── package.json
├── src
│   └── index.ts
├── tsconfig.build.json
└── tsconfig.json

安装 typescripttsx

pnpm add typescript -D
pnpm add tsx -D

package.json 的内容

{
  "name": "deepseek",
  "version": "1.0.0",
  "scripts": {
    "dev": "tsx --watch src/index.ts"
  },
  "devDependencies": {
    "tsx": "^4.19.2",
    "typescript": "^5.7.3"
  }
}

安装依赖

安装Vercel AI SDK

pnpm add ai

由于GPUStack提供OpenAI兼容API所以我们直接使用OpenAI Provider

pnpm add @ai-sdk/openai

代码示例

import { generateText } from "ai"
import { createOpenAI } from "@ai-sdk/openai"

const openai = createOpenAI({
    apiKey: "你的 GPUStack API 密钥",
    baseURL: "http://127.0.0.1/v1-openai"
});

async function main() {
    const { text } = await generateText({
        model: openai("deepseek-r1"),
        prompt: "请编写一段关于DeepSeek R1模型的介绍"
    });

    console.log(text);
};

main();

执行效果

image.png

阅读更多

动态智能体与智能体编排