內容簡介
本書是一本全面介紹開發與應用DeepSeek大模型的實戰指南,旨在幫助讀者全面掌握大模型的技術與應用。本書首先介紹DeepSeek的核心概念、功能及未來發展方向,隨後深入探討大模型部署的硬件要求、量化技術、推理速度優化等關鍵問題,並詳細介紹Transforme架構和混合專家模型的理論基礎。接著介紹了如何用Ollama和LMStudio等工具在本地部署DeepSeek-R1模型,並結合Cherry Studio構建本地知識庫,實現智能問答和知識檢索功能。此外,本書還介紹AnythingLLM和Chatbox等大模型應用構建平臺,幫助讀者擴展應用場景。針對API與程序庫的使用,本書詳細講解Ollama的RESTful API、 OpenAI 兼容API以及相關程序庫。最後,本書通過介紹多個實戰項目(如代碼注釋翻譯器、構建知識庫、文章 智能配圖器、意圖鑒別服務、多模態聊天機器人),使讀者可以將理論知識應用于實際開發中,掌握大模型的核心技術。
本書通俗易懂,適合數據科學家、大模型開發者、應用開發者、相關專業學生以及技術愛好者閱讀,無論是初學者還是有經驗的開發者,都能從本書中獲得有價值的知識和技能。
作者簡介
李甯 華為HDE(HUAWEI Developer Experts),開放原子基金會銀牌講師,51CTO學堂金牌講師,IT暢銷書作者。從事軟件研究和開發超過20年,長期從事編譯器、人工智能、Python、JavaScript、Java及跨平臺技術的研究和開發工作,曾出版多本圖書,包括《鴻蒙征途:App開發實戰》《AIGC自動化編程:基於CHATGPT和GITHUB COPILOT》
目錄
第 1章 走進DeepSeek世界1
1 1 什麼是DeepSeek1
1 1 1 DeepSeek的發展歷程2
1 1 2 DeepSeek的核心功能2
1 1 3 DeepSeek的優勢3
1 1 4 DeepSeek與其他大模型的比較4
1 2 DeepSeek能做什麼4
1 2 1 DeepSeek的應用場景5
1 2 2 用DeepSeek做數學題5
1 2 3 用DeepSeek編程7
1 3 如何使用DeepSeek11
1 3 1 DeepSeek的用戶界面和基本操作11
1 3 2 移動端DeepSeek App12
1 3 3 DeepSeek API13
1 4 DeepSeek的DeepSeek-R1模型和蒸餾模型18
1 4 1 DeepSeek-R1模型的原理18
1 4 2 蒸餾模型19
1 5 DeepSeek的未來展望21
1 5 1 DeepSeek的發展趨勢和挑戰21
1 5 2 DeepSeek對AIGC領域和社會的影響22
1 6 本章 小結23
第 2章 DeepSeek大模型部署的硬件要求和技術24
2 1 本地部署DeepSeek-R1的硬件條件24
2 2 大模型到底需要多大的顯存26
2 2 1 模型量化與顯存佔用:不同”精度”的顯存開銷27
2 2 2 激活參數與推理顯存:生成token的”動態”消耗27
2 2 3 多用戶併發:顯存需求的”乘法效應”28
2 2 4 如何估算大模型推理的顯存需求29
2 3 精度與體積的權衡:揭示大模型量化的秘密30
2 3 1 何謂模型量化:為大模型”精打細算”30
2 3 2 精度標尺:FP32、FP16、Q8 與Q4的”位之爭”30
2 3 3 參數、量化和蒸餾之間的關係31
2 3 4 比特之內的秘密:量化參數的”廬山真面目”32
2 4 存儲帶寬瓶頸:推理速度的限制32
2 4 1 什麼是存儲帶寬:數據傳輸的”高速公路”32
2 4 2 存儲帶寬在大模型推理中的作用:將數據”喂”給計算單元33
2 4 3 量化如何緩解存儲帶寬的壓力:數據”瘦身”加速傳輸33
2 4 4 優化技術與存儲帶寬:”多管齊下”提升效率33
2 5 推理速度與延遲:除了顯存,性能也很重要34
2 5 1 推理速度與延遲:用戶體驗的”晴雨錶”34
2 5 2 影響推理性能的其他因素34
2 5 3 CPU與GPU的協同:軟硬結合,發揮最大效能35
2 6 大模型背後的秘密武器:Transformer架構36
2 6 1 從”注意力”機制開始:像人類一樣思考36
2 6 2 Transformer架構的基本結構:積木搭建的”變形金剛”36
2 6 3 Transformer架構與硬件需求:”大力士”的胃口37
2 7 DeepSeek中的MoE38
2 7 1 MoE的基本原理38
2 7 2 MoE的應用38
2 7 3 DeepSeek的創新性MoE39
2 8 本章 小結39
第3章 用Ollama本地部署DeepSeek-R141
3 1 Ollama簡介41
3 2 安裝Ollama42
3 3 Ollama支持的DeepSeek系列模型43
3 4 用Ollama部署模型44
3 5 模型的存儲位置45
3 6 在Ollama中進行推理46
3 7 Ollama命令行參數和子命令詳解47
3 8 導入GGUF格式的模型文件51
3 9 本章 小結51
第4章 用LM Studio本地部署DeepSeek-R152
4 1 LM Studio簡介52
4 1 1 什麼是LM Studio52
4 1 2 LM Studio的核心功能52
4 1 3 LM Studio的優勢53
4 1 4 LM Studio支持的平臺53
4 1 5 LM Studio的硬件要求54
4 2 LM Studio的適用場景54
4 3 安裝LM Studio55
4 4 LM Studio支持的大模型格式56
4 4 1 大模型格式——GGUF56
4 4 2 模型格式——MLX57
4 5 本地部署DeepSeek-R1模型58
4 5 1 從Hugging Face下載模型文件58
4 5 2 本地部署DeepSeek-R1模型60
4 5 3 模型加載設置詳解61
4 5 4 用LM Studio聊天64
4 5 5 模型推理參數設置65
4 6 本章 小結68
第5章 用Cherry Studio建立本地知識庫69
5 1 Cherry Studio簡介69
5 2 安裝Cherry Studio70
5 3 在Cherry Studio中使用DeepSeek-R171
5 4 在Cherry Studio中使用DeepSeek-R1聊天72
5 5 本地知識庫的理論基礎73
5 5 1 本地知識庫、嵌入模型與向量數據庫的關係73
5 5 2 嵌入模型74
5 5 3 向量數據庫75
5 5 4 嵌入模型與向量數據庫的工作流程76
5 5 5 整合本地模型與嵌入模型76
5 6 建立和使用本地知識庫78
5 6 1 本地部署嵌入模型78
5 6 2 建立本地知識庫78
5 6 3 使用DeepSeek-R1編寫倉頡代碼80
5 7 智能體80
5 7 1 Cherry Studio中的智能體80
5 7 2 在自定義的智能體中使用知識庫82
5 8 遠程訪問Ollama服務83
5 9 本章 小結83
第6章 更多的大模型應用構建平臺84
6 1 一體化的開源AI應用平臺——AnythingLLM84
6 1 1 AnythingLLM簡介84
6 1 2 安裝AnythingLLM85
6 1 3 本地部署DeepSeek-R1模型86
6 1 4 訪問Ollama中的大語言模型87
6 1 5 在AnythingLLM中聊天87
6 1 6 在AnythingLLM中建立本地知識庫88
6 2 聊天機器人應用——Chatbox89
6 2 1 Chatbox簡介89
6 2 2 安裝Chatbox90
6 2 3 配置Chatbox90
6 2 4 在Chatbox中聊天90
6 3 本章 小結91
第7章 Ollama的RESTful API92
7 1 Ollama API簡介92
7 1 1 RESTful API92
7 1 2 程序庫93
7 1 3 OpenAI兼容API94
7 2 使用curl測試Ollama RESTful API95
7 2 1 curl簡介95
7 2 2 使用curl測試Ollama文本生成API96
7 3 Python Flask基礎98
7 3 1 Flask簡介98
7 3 2 安裝Flask99
7 3 3 一個簡單的Flask應用示例99
7 4 模型操作100
7 4 1 列出本地模型100
7 4 2 獲取模型信息103
7 4 3 拉取模型108
7 4 4 複製模型111
7 4 5 刪除模型112
7 4 6 創建模型113
7 5 會話管理117
7 5 1 單輪會話117
7 5 2 多輪會話124
7 6 文本向量生成126
7 7 本章 小結128
第8章 Ollama程序庫129
8 1 Ollama程序庫簡介129
8 2 安裝Ollama程序庫130
8 3 Node js基礎131
8 3 1 Node js簡介131
8 3 2 安裝Node js131
8 3 3 編寫一個Node js程序132
8 3 4 常用的Node js內置模塊133
8 3 5 使用第三方模塊133
8 4 模型操作133
8 4 1 用Python程序庫操作模型134
8 4 2 用JavaScript程序庫操作模型135
8 5 會話136
8 5 1 用Python程序庫實現會話136
8 5 2 用JavaScript程序庫實現會話138
8 6 生成文本向量139
8 6 1 用Python程序庫生成文本向量139
8 6 2 用JavaScript程序庫生成文本向量140
8 7 本章 小結141
第9章 Ollama OpenAI兼容API142
9 1 OpenAI API簡介142
9 1 1 OpenAI API的概念和特點142
9 1 2 OpenAI API成為兼容標準的原因143
9 1 3 兼容OpenAI API的好處143
9 2 OpenAI API程序庫144
9 2 1 使用OpenAI API程序庫的優勢144
9 2 2 安裝OpenAI API程序庫145
9 2 3 用其他語言訪問OpenAI API146
9 3 3種編程語言實現多輪會話147
9 3 1 用Python通過OpenAI API程序庫實現多輪會話147
9 3 2 用JavaScript通過OpenAI API程序庫實現多輪會話149
9 3 3 用Go通過HTTP實現多輪會話151
9 4 3種編程語言實現函數調用154
9 4 1 函數調用簡介154
9 4 2 用Python通過OpenAI API程序庫實現函數調用155
9 4 3 用JavaScript通過OpenAI API程序庫實現函數調用159
9 4 4 用Go通過HTTP實現函數調用162
9 5 3種編程語言獲取文本向量166
9 5 1 用Python通過OpenAI API程序庫獲取文本向量167
9 5 2 用JavaScript通過OpenAI API程序庫獲取文本向量168
9 5 3 用Go通過HTTP獲取文本向量168
9 6 調用LM