DeepSeek企業級部署實戰指南:從服務器選型到Dify私有化落地

對于個人開發者或嘗鮮者而言,本地想要部署 DeepSeek 有很多種方案,但是一旦涉及到企業級部署,則步驟將會繁瑣很多。

比如我們的第一步就需要先根據實際業務場景評估出我們到底需要部署什么規格的模型,以及我們所要部署的模型,到底需要多少服務器資源來進行承接,也就是資源預估先行。

預估完我們的服務器資源以后,還需要評估我們的業務場景是否需要二次開發模型。

如果只是簡單的微調模型就可以符合我們的業務需求,那么使用Ollama、LM Studio、GTP4All 或許就可以滿足我們的訴求。

但是如果需要對模型進行定制化開發,則需要考慮進行模型的原生部署。

所以本篇文章主要解決四個問題:

  1. 如何合理評估我們的服務器資源

  2. Ollama 部署指定版本的 DeepSeek

  3. 原生部署 DeepSeek

  4. 搭建 Dify 構建企業內的私有知識庫、工作流

評估服務器資源

評估服務資源前我們需要先考慮將要部署的模型參數量、模型的序列長度、批次大小和量化類型。

模型參數量

模型參數量:就是該模型神經網絡的輸入權重和輸出閾值的總和,模型參數量的大小,直接影響到模型智能化程度的高低,模型參數量越高耗費的服務器資源越多,反之亦然。

模型序列長度

那么在我們可以確認了模型的參數規模后,就需要根據業務場景評估該模型的序列長度。

序列長度是該模型一次能處理的最大 Token 數,針對 QA 問答的模型,你可以理解為你每次問模型問題時可以輸入的最大Token限制,如果用戶的問題超出了這個長度,則用戶的問題可能會被截斷或者被分為多個部分進行分別處理。

模型量化類型

而模型的量化類型,則是該模型的參數精度,我們在之前的模型原理中提到過,訓練好的模型實際存儲的就是一堆參數值,而這些參數值本身就是浮點數,所以量化類型的值越大則模型的精度越準確,智能化程度越高。

服務器資源計算

了解了上述的基本概念后,你可能會覺得我依然無法評估模型到底應該占用多少服務器資源呀?怎么辦?

吶,不要急。

關于具體的參數映射到底應該配置什么樣的服務器資源,有網友已經做了一個配置計算器工具。

你只需要根據上面的概念選擇自己的模型規模,便會自動計算出所需要的服務器資源。

Ollama 部署 DeepSeek


Ollama 是本地運行大模型的一款工具,支持在 Mac、Linux、Windows 上下載并運行對應的模型。

Ollama 安裝

# MacOS、Windows 用戶直接訪問Ollama官網https://ollama.com/download 下載對應的安裝包直接安裝即可# Linux安裝
curl -fsSL https://ollama.com/install.sh | sudo bash
sudo usermod -aG ollama $USER  # 添加用戶權限
sudo systemctl start ollama    # 啟動服務

Ollama安裝完成后,在對應的命令行輸入:

ollama -v

此時輸出Ollama version is 0.5.7,則表示安裝成功。

DeepSeek模型安裝

Ollama 安裝成功后則訪問 Ollama 的官網查找我們要安裝的模型

1、訪問 Ollama 官網

2、選擇適合當前機器配置的模型參數,然后拷貝對應的執行命令即可

3、命令行終端直接執行對應的命令

ollama run deepseek-r1:7b
# 執行后
pulling manifest
pulling 96c415656d37... 100% ▕██████████████▏ 4.7 GB
pulling 369ca498f347... 100% ▕██████████████▏ 387 B
pulling 6e4c38e1172f... 100% ▕██████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕██████████████▏ 148 B
pulling 40fb844194b2... 100% ▕██████████████▏ 487 B
verifying sha256 digest
writing manifest
success
> > > Send a message (/? for help)
> > > `
#當看到上述提示,即可開始模型對話,此時我發送一個問題:你是誰
>>> 你是誰
<think>
</think>
您好!我是由中國的深度求索(DeepSeek)公司開發的智能助手DeepSeek-R1。如您有任何任何問題,我會盡我所能為您提供幫助。
>>>

恭喜!出現上述的對話內容,表示當前 DeepSeek 已經在你本地可以正常運行了。

nomic-embed-text模型安裝

此時我們需要另外再部署一個新的模型,nomic-embed-text,這是一個文本向量化的模型,主要是后續基于 Dify 做向量化檢索時使用。

ollama pull nomic-embed-text
#執行后
pulling manifest 
pulling 970aa74c0a90... 100% ▕█████████ 274 MB                         
pulling c71d239df917... 100%  █████████ 11 KB                         
pulling ce4a164fc046... 100%  █████████ 17 B                         
pulling 31df23ea7daa... 100%  █████████ 420 B                         
verifying sha256 digest 
writing manifest 
#看到該提示表示安裝成功
success 

部署圖形化客戶端

有些同學在部署完 DeepSeek 后就想直接找個 UI 工具和 DeepSeek 聊天了,而不是一直在對應的命令行工具中聊天。

此時我們直接部署一套 UI 工具,連接我們的 DeepSeek 模型即可。

可以連接 DeepSeep 模型的 UI 工具有很多:

  1. ChatBox 客戶端(圖形化界面)支持 Web 網頁,也支持本地客戶端。

  2. AnythingLLM 客戶端(圖形化界面)

  3. Open WebUI 客戶端(圖形化界面) 支持 Web 網頁,類似 ChatGPT。

  4. Cherry Studio 客戶端(圖形化界面)

  5. Page Assist 客戶端(瀏覽器擴展)支持「聯網搜索」

此時我們以 ChatBox 為例,直接訪問對應的官網下載對應的客戶端即可

下載完成后我們在 ChatBox 的設置中填寫 Ollama API 的地址和對應的模型名稱,然后保存即可。

然后我們直接打開一個新的對話框,選擇要運行的模型即可開始對話。

原生部署 DeepSeek

原生部署 DeepSeek 則需要參考官方所提供的部署方式進行部署

上述提到DeepSeek可以支持SGLang、LMDeploy、TensorRT-LLM、vLLM框架進行部署。

此處我們使用 LMDeploy 來部署 DeepSeek

ppqq LMDeploy 是一個用于大型語言模型(LLMs)和視覺-語言模型(VLMs)壓縮、部署和服務的 Python 庫。 其核心推理引擎包括 TurboMind 引擎和 PyTorch 引擎。前者由 C++ 和 CUDA 開發,致力于推理性能的優化,而后者純 Python 開發,旨在降低開發者的門檻。

想要使用 LMDeploy 的前提是需要先使用 conda 或者 pip 安裝對應的python 庫依賴才行。

conda create -n lmdeploy python=3.8 -y
conda activate lmdeploy
pip install lmdeploy

關于LMDeploy具體的安裝方式也可以直接參考安裝文檔

編寫運行代碼

from lmdeploy import pipeline, TurbomindEngineConfig# 模型路徑,可以是以下幾種選項之一:
# 1. 本地目錄路徑,指向一個turbomind模型
# 2. lmdeploy-quantized模型的model_id
# 3. 存放在模型倉庫中的模型的model_id
model = 'deepseek-ai/DeepSeek-R1-Distill-Qwen-7B'# Turbomind引擎配置,用于設置模型的后端參數
backend_config = TurbomindEngineConfig(cache_max_entry_count=0.2,  # 緩存最大條目數max_context_token_num=20544,  # 最大上下文token數量session_len=20544  # 會話長度
)# 生成配置,用于設置生成文本的參數
gen_config = GenerationConfig(top_p=0.95,  # 采樣閾值temperature=0.6,  # 溫度參數,影響生成的多樣性max_new_tokens=8192,  # 最大新生成token數量stop_token_ids=[151329, 151336, 151338],  # 停止token的ID列表do_sample=True  # 啟用采樣
)# DeepSeekAI服務類
class DeepSeekAiServicer:def __init__(self, model: str, backend_config: TurbomindEngineConfig, gen_config: GenerationConfig):# 初始化服務,加載模型和配置self.llm = pipeline(model, backend_config=backend_config)self.gen_config = gen_configdef chat(self, content):# 根據DeepSeek官方推薦,每個提示需要以<think>\n結尾# 如果是數學推理內容,建議包含以下(中英文):# 請逐步推理,并將最終答案放在\boxed{}中。prompts = [{"role": "user","content": "生活的意義是什么?<think>\n"}]# 響應示例:# "<think> 生活的意義是快樂。 </think> 我認為生活的意義是快樂。"response = self.llm(prompts, gen_config=self.gen_config)return response

將上述代碼直接在 python 環境中運行便可以直接啟動我們的 DeepSeek 模型。

由于我們采用 LMDeploy 代碼來部署模型,因此我們獲得了更大的調整靈活性。我們能夠針對內存管理、并發處理和負載均衡等多個方面進行細致的優化。此外,LMDeploy 允許我們集成其他 Python 庫,以便對模型進行微調并添加自定義層,這些功能進一步提升了我們的定制化能力,確保了模型部署的靈活性和效率。

部署 Dify

Dify 是一款開源的大語言模型(LLM) 應用開發平臺。它融合了后端即服務(Backend as Service)和 LLMOps 的理念,使開發者可以快速搭建生產級的生成式 AI 應用。即使你是非技術人員,也能參與到 AI 應用的定義和數據運營過程中。

由于 Dify 內置了構建 LLM 應用所需的關鍵技術棧,包括對數百個模型的支持、直觀的 Prompt 編排界面、高質量的 RAG 引擎、穩健的 Agent 框架、靈活的流程編排,并同時提供了一套易用的界面和 API。這為開發者節省了許多重復造輪子的時間,使其可以專注在創新和業務需求上。

簡單來說如果你想使用模型構建自己的 RAG 知識引擎或者流程編排,那你少不寫一堆LangChain的代碼,但是 Dify 將這塊業務進行了封裝,你只需要在可視化的頁面上操作,便可以實現相同的效果,快速的構建出自己的 AI 應用。

運行 Dify

Dify 的部署需要我們本地先支持 Docker 和 Git 的依賴環境,然后我們在對應的終端直接執行下面的代碼,便可以直接運行 Dify

#克隆 Dify 源代碼至本地環境。
git clone https://github.com/langgenius/dify.git#進入 Dify 源代碼的 Docker 目錄
cd dify/docker#復制環境配置文件
cp .env.example .env#啟動 Docker 容器
docker-compose up -d

添加模型

Dify 啟動成功后,我們直接瀏覽器訪問:http://localhost

此時進入到 Dify 的主頁面會提示新建賬號密碼,賬號密碼新建完成后,在右上角admin 處點擊設置,然后新增我們的本地模型配置。

此處添加 LLM 模型為deepseek-r1:7b,基礎 URL 為:http://host.docker.internal:11434

添加完 LLM 模型后,我們再新增一個Text Embedding 模型,還記得最開始我們使用 ollama 還安裝了一套nomic-embed-text模型嗎?對的,就是在這里使用的。

兩個模型都添加完以后,就可以在模型列表中看到我們已經添加的模型信息了

構建知識庫

在對應的知識庫模塊新建知識庫,并上傳我們的私有數據

文本分段與清洗中選擇使用我們的nomic-embed-text模型進行清洗

然后我么直接保存為知識庫即可

新建聊天助手

在機器人的上下文中選擇我們剛剛新建的知識庫:“數字生命賈克斯”

當我們問他一些知識庫中獨有的內容時,他便會根據知識庫中獨有的內容,來給與對應的回復。

我們可以點擊發布將該機器人單獨給發布出去,此時其他人也可以使用你這個機器人來獲取知識庫中的信息了。

工作流

Dify 中還有一個非常殺手锏的應用,那就是工作流!

我一直認為 Dify 中最有價值的一個模塊就是工作流模塊,合理構建自己的工作流,就好比讓一個只有大腦能力的模型,瞬間具備了手的能力。

原本只能通過問答來交互的模型,瞬間具備了和外界交互的能力。

通過工作流,Dify 可以自動執行一系列復雜任務,比如數據分析、報告生成、資源調度甚至是跨平臺操作。

這些任務不再是孤立的指令,而是形成了一個有機的整體,每個步驟都緊密相連,協同工作,從而極大地提升了工作效率。

文章轉載自:陳咬金

原文鏈接:InfoQ 寫作社區-專業技術博客社區

體驗地址:引邁 - JNPF快速開發平臺_低代碼開發平臺_零代碼開發平臺_流程設計器_表單引擎_工作流引擎_軟件架構

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895789.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895789.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895789.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

I2C、SPI、UART

I2C&#xff1a;串口通信&#xff0c;同步&#xff0c;半雙工&#xff0c;雙線&#xff08;數據線SDA時鐘線SCL&#xff09;&#xff0c;最大距離1米到幾米 SPI&#xff08;串行外設接口&#xff09;&#xff1a;串口通信&#xff0c;同步&#xff0c;全雙工&#xff0c;四線&…

uniapp 連接mqtt

1&#xff1a;下載插件 npm install mqtt 2&#xff1a;創建 mqtt.js /* main.js 項目主入口注入實例 */ // import mqttTool from ./lib/mqttTool.js // Vue.prototype.$mqttTool mqttTool/* 使用范例見 /pages/index/index.vue */ // mqtt協議&#xff1a;H5使用ws/wss APP-…

shell腳本備份PostgreSQL數據庫和庫下表

注意&#xff1a; 以下為對PostgreSQL13.16版本數據庫備份shell腳本參考請確認備份節點上psql和pgdump的版本不至于太低&#xff0c;建議>13.16該腳本目前是對于整庫、&#xff08;默認針對public這個schema&#xff0c;如果有其他schema&#xff0c;請自行添加一層循環&am…

EXCEL解決IF函數“您已為此函數輸入太多個參數”的報錯

IF函數的基本結構是IF(條件, 值為真時的結果, 值為假時的結果)&#xff0c;所以標準的IF函數最多只能有三個參數。當用戶輸入的參數超過三個時&#xff0c;Excel就會報這個錯誤。比如多個IF語句疊加&#xff0c;但可能在嵌套的過程中沒有正確關閉每個IF函數的括號&#xff0c;導…

圖像質量評價指標-UCIQE-UIQM

一、評價指標UCIQE 在文章《An underwater color image quality evaluation metric》中&#xff0c;提到的了評價指標UCIQE&#xff08;Underwater Colour Image Quality Evaluation&#xff09;&#xff0c;是一種無參考圖像質量評價指標&#xff0c;主要用于評估水下圖像的質…

Vue 前端開發中的路由知識:從入門到精通

文章目錄 引言1. Vue Router 簡介1.1 安裝 Vue Router1.2 配置 Vue Router1.3 在 Vue 實例中使用 Vue Router 2. 路由的基本用法2.1 路由映射2.2 路由視圖2.3 路由鏈接 3. 動態路由3.1 動態路徑參數3.2 訪問動態參數3.3 響應路由參數的變化 4. 嵌套路由4.1 定義嵌套路由4.2 渲染…

基于Springboot+微信小程序調用文心一言大模型實現AI聊天

一、文章前言 此文主要實現基于Springboot微信小程序調用文心一言大模型實現AI聊天對話功能&#xff0c;使用Java作為后端語言進行支持&#xff0c;界面友好&#xff0c;開發簡單。 二、開發流程及工具準備 2.1、登錄百度智能云平臺&#xff0c;獲取 API Key 和 Secret Key兩個…

leaflet前端初始化項目

1、通過npm安裝leaflet包&#xff0c;或者直接在項目中引入leaflet.js庫文件。 npm 安裝&#xff1a;npm i leaflet 如果在index.html中引入leaflet.js,在項目中可以直接使用變量L. 注意:盡量要么使用npm包&#xff0c;要么使用leaflet.js庫&#xff0c;兩者一起使用容易發生…

Deepseek官網接口文檔

API 接口 生成完成 生成聊天完成 創建模型 列出本地模型 顯示模型信息 復制模型 刪除模型 拉取模型 推送模型 生成嵌入 列出運行中的模型 版本 約定 模型名稱 模型名稱遵循 model:tag 格式&#xff0c;其中 model 可以有一個可選的命名空間&#xff0c;例如 ex…

容器運行常見數據庫

一.涉及鏡像壓縮包 均為amd架構版本&#xff1a;mysql:5.7.42、postgres:13.16、dm8:20250206_rev257733_x86_rh6_64、oceanbase-ce:v4.0、opengauss:5.0.2 通過網盤分享的文件&#xff1a;db.tgz 鏈接: https://pan.baidu.com/s/1EBbFPZj1FxCA4_GxjVunWg?pwd563s 提取碼: 5…

python爬蟲系列課程2:如何下載Xpath Helper

python爬蟲系列課程2:如何下載Xpath Helper 一、訪問極簡插件官網二、點擊搜索按鈕三、輸入xpath并點擊搜索四、點擊推薦下載五、將下載下來的文件解壓縮六、打開擴展程序界面七、將xpath.crx文件拖入擴展程序界面一、訪問極簡插件官網 極簡插件官網地址:https://chrome.zzz…

PHP支付寶--轉賬到支付寶賬戶

官方參考文檔&#xff1a; ?https://opendocs.alipay.com/open/62987723_alipay.fund.trans.uni.transfer?sceneca56bca529e64125a2786703c6192d41&pathHash66064890? 可以使用默認應用&#xff0c;也可以自建新應用&#xff0c;此處以默認應用來講解【默認應用默認支持…

前端開發崗模擬面試題套卷A答案及解析(一)技術面部分

前端開發崗模擬面試題套卷A答案及解析(一)技術面部分 (一)技術面 一、JavaScript核心技術(ES6+) 1-1、實現防抖函數 function debounce(fn, delay) {let timer = null;return function(...args) {clearTimeout(timer); // 清除已有定時器timer = setTimeout(() =>…

對稱加密算法——IDEA加密算法

Java IDEA算法詳解 1. 理論背景 IDEA&#xff08;International Data Encryption Algorithm&#xff09;是一種對稱密鑰加密算法&#xff0c;由Xuejia Lai和James Massey于1991年提出。它被設計用于替代DES&#xff08;Data Encryption Standard&#xff09;算法&#xff0c;…

單例模式、構造函數、左值右值

拷貝構造函數 簡單的說就是——用一個對象構造另外一個對象 class Myclass {public:int d0;Myclass(int d_){d d_}; //常用的構造函數Myclass(Myclass c) //拷貝構造函數{d c.d;} }; //對比 class Myclass {public:int d0;Myclass(int d_){d d_}; //常用的構造函數Myclass…

rustdesk遠程桌面自建服務器

首先&#xff0c;我這里用到的是阿里云服務器 centos7版本&#xff0c;win版客戶端。 準備工作 centos7 服務器端文件&#xff1a; https://github.com/rustdesk/rustdesk-server/releases/download/1.1.11-1/rustdesk-server-linux-amd64.zip win版客戶端安裝包&#xff1…

【深度學習】Transformer入門:通俗易懂的介紹

【深度學習】Transformer入門&#xff1a;通俗易懂的介紹 一、引言二、從前的“讀句子”方式三、Transformer的“超級閱讀能力”四、Transformer是怎么做到的&#xff1f;五、Transformer的“多視角”能力六、Transformer的“位置記憶”七、Transformer的“翻譯流程”八、Trans…

用deepseek學大模型03-數學基礎 概率論 最大似然估計(MLE)最大后驗估計(MAP)

https://metaso.cn/s/r4kq4Ni 什么是最大似然估計&#xff08;MLE&#xff09;最大后驗估計&#xff08;MAP&#xff09;&#xff1f;深度學習中如何應用&#xff0c;舉例說明。 好的&#xff0c;我現在需要回答關于最大似然估計&#xff08;MLE&#xff09;和最大后驗估計&…

Socket通訊協議理解及客戶端服務器程序流程

Socket通訊我們可以從以下幾個方面簡單理解 1.Socket是網絡通信中的一項重要技術&#xff0c;它提供了在網絡上進行數據交換的接口。用C#、Java、C等開發語言&#xff0c;都可以開發Socket網絡通信程序。 2.Socket(套接字)是計算機網絡編程中的一種抽象&#xff0c;它允許不同…

《Stable Diffusion繪畫完全指南:從入門到精通的Prompt設計藝術》-配套代碼示例

第一章&#xff1a;模型加載與基礎生成 1.1 基礎模型加載 from diffusers import StableDiffusionPipeline import torch# 加載SD 1.5基礎模型&#xff08;FP32精度&#xff09; pipe StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5",…