注:此文章內容均節選自充電了么創始人,CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》(跟我一起學人工智能)【陳敬雷編著】【清華大學出版社】
GPT多模態大模型與AI Agent智能體書籍本章配套視頻課程【陳敬雷】
文章目錄
- GPT多模態大模型與AI Agent智能體系列十五
- DeepSeek 微調實踐:DeepSeek-R1 大模型基于 MS-Swift 框架部署 / 推理 / 微調實踐大全
- 一、引言
- 二、MS - Swift框架簡介
- 三、DeepSeek - R1模型簡介
- 四、DeepSeek - R1部署實踐
- 4.1 環境準備
- 4.2 安裝swift
- 4.3 vllm加速
- 4.4 模型下載
- 4.5 模型部署
- 五、DeepSeek - R1推理實踐
- 六、DeepSeek - R1微調實踐
- 6.1 數據集準備
- 6.2 模型微調訓練
- 6.3 推理訓練后權重文件
- 6.4 LoRA合并&推理訓練后的權重文件
- 七、性能優化與評估
- 7.1 deepseek硬件優化
- 7.2 推理性能優化
- 7.3 微調性能優化
- 7.4 性能評估
- 更多技術內容
- 總結
GPT多模態大模型與AI Agent智能體系列十五
DeepSeek 微調實踐:DeepSeek-R1 大模型基于 MS-Swift 框架部署 / 推理 / 微調實踐大全
一、引言
隨著大語言模型(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部署實踐
4.1 環境準備
在部署DeepSeek - R1模型之前,需要準備合適的硬件和軟件環境:
操作系統選用Ubuntu 22.04,其穩定性和豐富的軟件資源,為AI開發提供了良好的基礎。Python版本選擇3.10,它在性能和兼容性上表現出色,廣泛應用于各類AI項目。同時,安裝PyTorch 2.1.2,作為深度學習的核心框架,PyTorch為模型的運行提供了高效的計算庫和靈活的編程接口。此外,還需安裝Cuda 11.8,它能充分發揮NVIDIA GPU的并行計算能力,加速模型的訓練與推理過程。
4.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.
下載完成如下:[此處插入下載完成后的相關截圖描述]
4.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.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')
運行代碼執行下載,如下:[此處插入模型下載過程及完成后的截圖描述]
4.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框架的微調步驟:
6.1 數據集準備
為對DeepSeek - R1 - Distill - Qwen - 7B模型開展微調,找了一份有趣的數據集(https://github.com/KMnO4 - zx/huanhuan - chat),內容如下:[此處插入數據集內容相關截圖描述]
6.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
在微調過程中,建議使用結構化的提示數據,并通過拒絕采樣生成更多訓練樣本。
6.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
微調效果:[此處插入微調后推理結果相關截圖描述]
微調訓練后的權重文件實際上既包含了主模型的通用知識,也包含了微調后的特定知識,可以通過上面的方式快速查看微調效果。
6.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
七、性能優化與評估
7.1 deepseek硬件優化
對于非常小的餾模型(如1.5B),只需要GTX 1650、RTX 3060
對于較小的蒸餾模型(如7B),單卡V100或A100即可滿足需求。
對于較大的模型(如14B),推薦使用多卡并行。
7.2 推理性能優化
使用MS - Swift框架的vllm模式可以顯著提升推理速度。
在推理時,可以通過調整max_new_tokens和temperature參數來優化生成結果。
7.3 微調性能優化
在微調時,建議增加epoch次數或擴充數據集。
如果顯存不足,可以減小batch_size或增大gradient_accumulation_steps。
7.4 性能評估
使用標準的推理基準測試(如AIME 2024)評估模型性能。
比較不同蒸餾版本的性能,選擇最適合的模型。
更多技術內容
更多技術內容可參見
《GPT多模態大模型與AI Agent智能體》(跟我一起學人工智能)【陳敬雷編著】【清華大學出版社】書籍。
更多的技術交流和探討也歡迎加我個人微信chenjinglei66。
總結
此文章有對應的配套新書教材和視頻:
【配套新書教材】
《GPT多模態大模型與AI Agent智能體》(跟我一起學人工智能)【陳敬雷編著】【清華大學出版社】
新書特色:《GPT多模態大模型與AI Agent智能體》(跟我一起學人工智能)是一本2025年清華大學出版社出版的圖書,作者是陳敬雷,本書深入探討了GPT多模態大模型與AI Agent智能體的技術原理及其在企業中的應用落地。
全書共8章,從大模型技術原理切入,逐步深入大模型訓練及微調,還介紹了眾多國內外主流大模型。LangChain技術、RAG檢索增強生成、多模態大模型等均有深入講解。對AI Agent智能體,從定義、原理到主流框架也都進行了深入講解。在企業應用落地方面,本書提供了豐富的案例分析,如基于大模型的對話式推薦系統、多模態搜索、NL2SQL數據即席查詢、智能客服對話機器人、多模態數字人,以及多模態具身智能等。這些案例不僅展示了大模型技術的實際應用,也為讀者提供了寶貴的實踐經驗。
本書適合對大模型、多模態技術及AI Agent感興趣的讀者閱讀,也特別適合作為高等院校本科生和研究生的教材或參考書。書中內容豐富、系統,既有理論知識的深入講解,也有大量的實踐案例和代碼示例,能夠幫助學生在掌握理論知識的同時,培養實際操作能力和解決問題的能力。通過閱讀本書,讀者將能夠更好地理解大模型技術的前沿發展,并將其應用于實際工作中,推動人工智能技術的進步和創新。
【配套視頻】
GPT多模態大模型與AI Agent智能體書籍本章配套視頻 - 第1章 大模型技術原理【陳敬雷】
視頻特色: 前沿技術深度解析,把握行業脈搏
揭秘 DeepSeek、Sora、GPT-4 等多模態大模型的技術底層邏輯,詳解 Transformer 架構如何突破傳統神經網絡局限,實現長距離依賴捕捉與跨模態信息融合。
對比編碼預訓練(BERT)、解碼預訓練(GPT 系列)及編解碼架構(BART、T5)的技術差異,掌握大模型從 “理解” 到 “生成” 的核心邏輯。
實戰驅動,掌握大模型開發全流程
提示學習與指令微調:通過 Zero-shot、Few-shot 等案例,演示如何用提示詞激活大模型潛能,結合 LoRA 輕量化微調技術,實現廣告生成、文本摘要等場景落地(附 ChatGLM3-6B 微調實戰代碼)。
人類反饋強化學習(RLHF):拆解 PPO 算法原理,通過智譜 AI 等案例,掌握如何用人類偏好優化模型輸出,提升對話系統的安全性與實用性。
智能涌現與 AGI 前瞻,搶占技術高地
解析大模型 “智能涌現” 現象(如上下文學習、思維鏈推理),理解為何參數規模突破閾值后,模型能實現從 “量變” 到 “質變” 的能力躍升。
前瞻通用人工智能(AGI)發展趨勢,探討多模態模型(如 Sora)如何推動 AI 從 “單一任務” 向 “類人智能” 進化,提前布局未來技術賽道。
上一篇:《GPT多模態大模型與AI Agent智能體》系列一》大模型技術原理 - 大模型技術的起源、思想
下一篇:DeepSeek大模型技術系列五》DeepSeek大模型基礎設施全解析:支撐萬億參數模型的幕后英雄