DeepSeek开发实战

978-7-115-67065-6
作者: 李宁
译者:
编辑: 张涛

图书目录:

第 1章 走进DeepSeek世界 1

1.1 什么是DeepSeek 1

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 如何使用DeepSeek 11

1.3.1 DeepSeek的用户界面和基本操作 11

1.3.2 移动端DeepSeek App 12

1.3.3 DeepSeek API 13

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中的MoE 38

2.7.1 MoE的基本原理 38

2.7.2 MoE的应用 38

2.7.3 DeepSeek的创新性MoE 39

2.8 本章小结 39

第3章 用Ollama本地部署DeepSeek-R1 41

3.1 Ollama简介 41

3.2 安装Ollama 42

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-R1 52

4.1 LM Studio简介 52

4.1.1 什么是LM Studio 52

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 Studio 55

4.4 LM Studio支持的大模型格式 56

4.4.1 大模型格式——GGUF 56

4.4.2 模型格式——MLX 57

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 Studio 70

5.3 在Cherry Studio中使用DeepSeek-R1 71

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应用平台——AnythingLLM 84

6.1.1 AnythingLLM简介 84

6.1.2 安装AnythingLLM 85

6.1.3 本地部署DeepSeek-R1模型 86

6.1.4 访问Ollama中的大语言模型 87

6.1.5 在AnythingLLM中聊天 87

6.1.6 在AnythingLLM中建立本地知识库 88

6.2 聊天机器人应用——Chatbox 89

6.2.1 Chatbox简介 89

6.2.2 安装Chatbox 90

6.2.3 配置Chatbox 90

6.2.4 在Chatbox中聊天 90

6.3 本章小结 91

第7章 Ollama的RESTful API 92

7.1 Ollama API简介 92

7.1.1 RESTful API 92

7.1.2 程序库 93

7.1.3 OpenAI兼容API 94

7.2 使用curl测试Ollama RESTful API 95

7.2.1 curl简介 95

7.2.2 使用curl测试Ollama文本生成API 96

7.3 Python Flask基础 98

7.3.1 Flask简介 98

7.3.2 安装Flask 99

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.js 131

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兼容API 142

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 API 146

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 Studio的OpenAI兼容API 170

9.7 本章小结 171

第 10章 llama.cpp实战 172

10.1 llama.cpp基础 172

10.1.1 llama.cpp简介 172

10.1.2 llama.cpp安装 174

10.1.3 命令行交互利器llama-cli 176

10.1.4 更简单的大语言模型推理方案llama-run 179

10.1.5 大语言模型服务化工具llama-server 180

10.1.6 大语言模型基准测试工具llama-bench 184

10.1.7 大语言模型量化工具llama-quantize 185

10.2 llama-cpp-python基础 187

10.2.1 llama-cpp-python简介 187

10.2.2 安装llama-cpp-python 188

10.2.3 用llama-cpp-python生成文本 189

10.2.4 用llama-cpp-python获取文本向量 190

10.3 本章小结 191

第 11章 项目实战:代码注释翻译器 192

11.1 项目简介 192

11.2 项目设计与架构 193

11.2.1 两大核心模块 193

11.2.2 代码注释翻译器的工作流程 194

11.3 核心模块代码解析 198

11.3.1 注释提取的统一入口 198

11.3.2 编程语言类型的快速识别 199

11.3.3 注释提取的核心原理与实现技巧 200

11.3.4 批量生成翻译prompt 203

11.4 主程序代码解析 204

11.4.1 加载API配置信息 204

11.4.2 调用OpenAI API进行翻译 206

11.4.3 替换源代码中的注释 208

11.5 运行项目 210

11.6 改进方向和扩展 211

11.7 本章小结 212

第 12章 项目实战:构建知识库 213

12.1 知识库与向量数据库 213

12.1.1 知识库的原理 213

12.1.2 什么是向量数据库 214

12.1.3 嵌入模型、向量数据库与知识库的关系 214

12.2 Chroma基础 215

12.2.1 Chroma简介 215

12.2.2 Chroma的主要功能 215

12.2.3 安装Chroma 216

12.2.4 向量存储与检索 216

12.2.5 数据持久化保存 217

12.2.6 关联元数据 219

12.3 知识库服务项目基础 220

12.3.1 项目简介 220

12.3.2 项目设计与架构 221

12.4 核心代码实现 222

12.4.1 获取嵌入向量 222

12.4.2 加载知识库 223

12.4.3 实现检索功能 224

12.4.4 基于Flask的Web服务 226

12.5 运行和测试项目 227

12.5.1 建立知识库 227

12.5.2 启动服务 227

12.5.3 使用curl测试项目 227

12.5.4 使用Python测试项目 228

12.6 改进方向和扩展 228

12.7 本章小结 229

第 13章 项目实战:文章智能配图器 230

13.1 项目简介 230

13.2 项目设计与架构 231

13.3 Stable Diffusion基础 231

13.3.1 Stable Diffusion简介 232

13.3.2 安装Stable Diffusion 232

13.3.3 使用Stable Diffusion生成图像 233

13.4 Stable Diffusion API 234

13.4.1 文生图 234

13.4.2 图生图 236

13.5 项目核心代码实现 238

13.5.1 配置与初始化 238

13.5.2 文本处理与prompt生成 239

13.5.3 图像生成与保存 240

13.6 运行和测试项目 242

13.7 改进方向与未来展望 242

13.8 本章小结 243

第 14章 项目实战:意图鉴别服务 244

14.1 项目简介 244

14.1.1 意图鉴别:大模型的“调度器” 244

14.1.2 技术创新点:用装饰器定义意图方法 245

14.2 项目设计与架构 246

14.2.1 意图鉴别服务的工作流程 246

14.2.2 系统架构 248

14.2.3 项目核心文件及其作用 249

14.3 核心代码实现详解 250

14.3.1 定义意图方法的装饰器 250

14.3.2 使用装饰器定义意图方法 251

14.3.3 参数类型映射 253

14.3.4 解析装饰器方法并生成Tools JSON 254

14.3.5 获取意图信息 255

14.3.6 构建意图鉴别Web服务 256

14.4 运行和测试项目 258

14.5 本章小结 259

第 15章 项目实战:多模态聊天机器人 260

15.1 项目简介 260

15.2 项目设计与架构 261

15.2.1 总体设计理念 261

15.2.2 系统架构 261

15.2.3 运作流程 262

15.3 项目核心代码实现 262

15.3.1 文件结构与功能概述 263

15.3.2 主文件解析 263

15.3.3 处理文生图请求 266

15.3.4 文章配图功能调用 267

15.3.5 使用知识库回答问题 267

15.4 运行和测试项目 268

15.5 本章小结 270

详情

内 容 提 要 本书是一本全面介绍开发与应用DeepSeek大模型的实战指南,旨在帮助读者全面掌握大模型的技术与应用。本书首先介绍DeepSeek的核心概念、功能及未来发展方向,随后深入探讨大模型部署的硬件要求、量化技术、推理速度优化等关键问题,并详细介绍Transformer架构和混合专家模型的理论基础。接着介绍了如何用Ollama和LM Studio等工具在本地部署DeepSeek-R1模型,并结合Cherry Studio构建本地知识库,实现智能问答和知识检索功能。此外,本书还介绍AnythingLLM和Chatbox等大模型应用构建平台,帮助读者扩展应用场景。针对API与程序库的使用,本书详细讲解Ollama的RESTful API、OpenAI兼容API以及相关程序库。最后,本书通过介绍多个实战项目(如代码注释翻译器、构建知识库、文章智能配图器、意图鉴别服务、多模态聊天机器人),使读者可以将理论知识应用于实际开发中,掌握大模型的核心技术。 本书通俗易懂,适合数据科学家、大模型开发者、应用开发者、相关专业学生以及技术爱好者阅读,无论是初学者还是有经验的开发者,都能从本书中获得有价值的知识和技能。

图书摘要

相关图书

大模型应用开发 动手做AI Agent
大模型应用开发 动手做AI Agent
生成式人工智能(基于PyTorch实现)
生成式人工智能(基于PyTorch实现)
AI原生应用开发:提示工程原理与实战
AI原生应用开发:提示工程原理与实战
Cursor与Copilot开发实战让烦琐编程智能化
Cursor与Copilot开发实战让烦琐编程智能化
AI辅助编程实战
AI辅助编程实战
大语言模型工程师手册:从概念到生产实践
大语言模型工程师手册:从概念到生产实践

相关文章

相关课程