DeepSeek图解10页PDF
以前一直在关注国内外的一些AI工具,包括文本型、图像类的一些AI实践,最近DeepSeek突然爆火,从互联网收集一些资料与大家一起分享学习。
本章节分享的文件为网上流传的DeepSeek图解10页PDF,免费附件链接给出。
1 本地
1 本地部署并运行DeepSeek
1.1 为什么要在本地部署DeepSeek
在本地搭建大模型(如DeepSeek)具有多个重要的优势,比如:
1. 保护隐私与数据安全。数据不外传:本地运行模型可以完全避免数据上传至云端,确保敏感信息不被第三方访问。
2. 可定制化与优化。支持微调(Fine-tuning):可以根据特定业务需求对模型进行微调,以适应特定任务,如行业术语、企业内部知识库等。
3. 离线运行,适用于无网络环境。可在离线环境下运行:适用于无互联网连接或网络受限的场景。提高系统稳定性:即使云服务宕机,本地大模型依然可以正常工作,不受外部因素影响。

1.2 DeepSeek 本地部署三个步骤
一共只需要三步,就能做到DeepSeek 在本地运行并与它对话。
第一步,使用的是ollama 管理各种不同大模型,ollama 比较直接、干净,一键下载后安装就行,安装过程基本都是下一步。
Ollama的官网下载地址:Ollama
支持macos、windows、linux多端的安装包管理
Ollama windows安装_ollama 下载-CSDN博客安装windows下的ollama可以参考以上链接写的较为详细:Ollama windows安装_ollama 下载-CSDN博客
安装后,打开命令窗口,输入ollama,然后就能看到它的相关指令,一共10 个左右的命令,如下图2所示,就能帮我们管理好不同大模型:

第二步,命令窗口输入:ollama pull deepseek-r1:1.5b,下载大模型deepseekr1到我们自己的电脑,如下图3所示:

至此在我们本地电脑,DeepSeek 大模型就下载到我们本地电脑,接下来第三步就可以直接使用和它对话了。在cmd(Windows 电脑) 或terminal(苹果电脑) 执行命令:ollama run deepseek-r1:1.5b,很快就能进入对话界面,如下图4所示:

1.3 DeepSeek 本地运行使用演示
基于上面步骤搭建完成后,接下来提问DeepSeek 一个问题:请帮我分析Python 编程如何从零开始学习?,下面是它的回答,首先会有一个think标签,这里面嵌入的是它的思考过程,不是正式的回复:

等我们看到另一个结束标签think 后,表明它的思考已经结束,下面一行就是正式回答,如下图6所示:
2 DeepSeek 零基础必知
为了更深入理解DeepSeek-R1,首先需要掌握LLM 的基础知识,包括其工作原理、架构、训练方法。
近年来,人工智能(AI)技术的快速发展催生了大型语言模型((LargeLanguage Model, LLM))的兴起。LLM 在自然语言处理(NLP)领域发挥着越来越重要的作用,广泛应用于智能问答、文本生成、代码编写、机器翻译等任务。LLM 是一种基于深度学习的人工智能模型,其核心目标是通过预测下一个单词来理解和生成自然语言。训练LLM 需要大量的文本数据,使其能够掌握复杂的语言模式并应用于不同任务。接下来,咱们先从较为基础的概念开始。
2.1 LLM 基础概念
模型参数。其中比较重要的比如deepseek-r1:1.5b, qwen:7b, llama:8b,这里的1.5b, 7b、8b 代表什么?b 是英文的billion,意思是十亿,7b 就是70 亿,8b 就是80 亿,70 亿、80 亿是指大模型的神经元参数(权重参数weight+bias)的总量。目前大模型都是基于Transformer 架构,并且是很多层的Transformer结构,最后还有全连接层等,所有参数加起来70 亿,80 亿,还有的上千亿。
通用性更强。大模型和我们自己基于某个特定数据集(如ImageNet、20News-Group)训练的模型在本质上存在一些重要区别。主要区别之一,大模型更加通用,这是因为它们基于大量多样化的数据集进行训练,涵盖了不同领域和任务的数据。这种广泛的学习使得大模型具备了较强的知识迁移能力和多任务处理能力,从而展现出“无所不知、无所不晓”的特性。相比之下,我们基于单一数据集训练的模型通常具有较强的针对性,但其知识范围仅限于该数据集的领域或问题。因此,这类模型的应用范围较为局限,通常只能解决特定领域或单一任务的问题。Scaling Laws 大家可能在很多场合都见到过。它是一个什么法则呢?大模型之所以能基于大量多样化的数据集进行训练,并最终“学得好”,核心原因之一是Scaling Laws(扩展规律)的指导和模型自身架构的优势。Scaling Laws 指出参数越多,模型学习能力越强;训练数据规模越大、越多元化,模型最后就会越通用;即使包括噪声数据,模型仍能通过扩展规律提取出通用的知识。而Transformer 这种架构正好完美做到了Scaling Laws,Transformer 就是自然语言处理领域实现扩展规律的最好的网络结构。亿。
Scaling Laws 大家可能在很多场合都见到过。它是一个什么法则呢?大模型之所以能基于大量多样化的数据集进行训练,并最终“学得好”,核心原因之一是Scaling Laws(扩展规律)的指导和模型自身架构的优势。Scaling Laws 指出参数越多,模型学习能力越强;训练数据规模越大、越多元化,模型最后就会越通用;即使包括噪声数据,模型仍能通过扩展规律提取出通用的知识。而Transformer 这种架构正好完美做到了Scaling Laws,Transformer 就是自然语言处理领域实现扩展规律的最好的网络结构。
2.2 Transformer 基础架构
LLM 依赖于2017 年Google 提出的Transformer 模型,该架构相比传统的RNN(递归神经网络)和LSTM(长短时记忆网络)具有更高的训练效率和更强的长距离依赖建模能力。Transformer 由多个关键组件组成:1. 自注意力机制(Self-Attention):模型在处理文本时,会自动关注句子中的重要单词,理解不同词语间的联系。2. 多头注意力(Multi-Head Attention):使用多个注意力头同时分析不同的语义信息,使得模型的理解能力更强。3. 前馈神经网络(FFN):非线性变换模块,提升模型的表达能力。4. 位置编码(Positional Encoding):在没有循环结构的情况下,帮助模型理解单词的顺序信息。

2.3 LLM 基本训练方法
2.3.1 预训练(Pretraining)
LLM 训练通常采用大规模无监督学习,即:1. 从互联网上收集大量文本数据,如书籍、新闻、社交媒体等。2. 让模型学习词语之间的概率分布,理解句子结构。3. 训练目标是最小化预测误差,使其能更好地完成语言任务。
2.3.2 监督微调(Supervised Fine-Tuning, SFT)
在预训练之后,通常需要对模型进行监督微调(SFT):使用人工标注的数
据集,让模型在特定任务上优化表现。调整参数,使其更符合人类需求,如
问答、对话生成等任务。
2.3.3 强化学习(Reinforcement Learning, RL)
采用强化学习(RL)方法进行优化,主要通过人类反馈强化学习(RLHF,
Reinforcement Learning from Human Feedback):

3 DeepSeek-R1 精华图解
3.1 DeepSeek-R1 完整训练过程
DeepSeek-R1 主要亮点在于出色的数学和逻辑推理能力,区别于一般的通用AI 模型。其训练方式结合了强化学习(RL)与监督微调(SFT),创造了一种高效训练,高推理能力AI 模型的方法。
整个训练过程分为核心两阶段,第一步训练基于DeepSeek-V3 论文中的基础模型(而非最终版本),并经历了SFT 和基于纯强化学习调优+ 通用性偏好调整,如下图7所示:

训练起点。DeepSeek-R1 的训练起点是DeepSeek-v3-Base,作为基础模型进行训练,为后续的推理优化奠定基础。
3.1.1 核心创新1:含R1-Zero 的中间推理模型
如图7所示,推理导向的强化学习(Reasoning-Oriented Reinforcement Learning) 得到中间推理模型(Iterim reasoning model), 图8会详细解释中间模 型的训练过程
DeepSeek-R1 核心贡献:首次验证了通过纯强化学习也能大幅提升大模
型推理能力,开源纯强化学习推理模型DeepSeek-R1-Zero
R1-Zero 能生成高质量的推理数据,包括大量长链式思维(Chain-of-Thought,CoT)示例,用于支持后续的SFT 阶段,如图7所示。更加详细介绍参考3.2节。
3.1.2 核心创新2:通用强化学习
第一阶段R1-Zero 虽然展现出惊人的推理能力提升,但是也出现了回复时语言混合,非推理任务回复效果差的问题,为了解决这些问题,DeepSeek提出通用强化学习训练框架。如图7所示,通用强化学习(General Reinforcement Learning)基于SFTcheckpoint,模型进行通用强化学习(RL)训练,优化其在推理任务和其他通用任务上的表现。更加详细介绍参考3.3节。
3.2 含R1-Zero 的中间推理模型训练过程
中间模型占据主要训练精力的阶段,实际上完全通过推理导向的强化学习直接训练而成,完全跳过了监督微调(SFT),如下图8所示,只在强化学习的冷启动阶段使用了SFT

大规模推理导向的强化学习训练,必不可少的就是推理数据,手动标注就太繁琐了,成本昂贵,所以DeepSeek 团队为了解决这个问题,训了一个R1-Zero 模型,这是核心创新。R1-Zero 完全跳过SFT(监督微调)阶段,直接使用强化学习训练,如下图9所示,基于V3,直接使用强化学习开训:

这样做竟然达到了惊人的、意想不到的效果,推理超越OpenAI O1,如下图10所示,蓝线表示单次推理(pass@1)的准确率,红线表示16 次推理取一致性结果(cons@16)的准确率,可以看出一致性推理提高了最终性能。虚线代表OpenAI O1 的基准表现,图中可以看到DeepSeek-R1-Zero 的性能逐步接近甚至超越了OpenAI O1.

中间模型虽然推理能力很强,但存在可读性和多任务能力不足的问题,所以
才有了第二个创新。
3.3 通用强化学习训练过程
最终偏好调整(Preference Tuning),如下图11所示。通用强化学习训练过程后,使得R1 不仅在推理任务中表现卓越,同时在非推理任务中也表现出色。但由于其能力拓展至非推理类应用,因此在这些应用中引入了帮助性(helpfulness)和安全性(safety)奖励模型(类似于Llama 模型),以优化与这些应用相关的提示处理能力。
DeepSeek-R1 是训练流程的终点,结合了R1-Zero 的推理能力和通用强化学习的任务适应能力,成为一个兼具强推理和通用能力的高效AI 模型。

3.4 总结DeepSeek-R1
中间推理模型生成:通过推理导向的强化学习(Reasoning-Oriented RL),直接生成高质量的推理数据(CoT 示例),减少人工标注依赖。通用强化学习优化:基于帮助性和安全性奖励模型,优化推理与非推理任务表现,构建通用性强的模型。最终,DeepSeek-R1 将R1-Zero 的推理能力与通用强化学习的适应能力相结合,成为一个兼具强推理能力和任务广泛适应性的高效AI 模型。

相关文章:
DeepSeek图解10页PDF
以前一直在关注国内外的一些AI工具,包括文本型、图像类的一些AI实践,最近DeepSeek突然爆火,从互联网收集一些资料与大家一起分享学习。 本章节分享的文件为网上流传的DeepSeek图解10页PDF,免费附件链接给出。 1 本地 1 本地部…...
机器学习中常用的评价指标
一、分类任务常用指标 1. 准确率(Accuracy) 定义:正确预测样本数占总样本数的比例。优点:直观易懂,适用于类别平衡的数据。缺点:对类别不平衡数据敏感(如欺诈检测中99%的负样本)。…...
3. 【.NET Aspire 从入门到实战】--理论入门与环境搭建--环境搭建
构建现代云原生应用程序时,开发环境的搭建至关重要。NET Aspire 作为一款专为云原生应用设计的开发框架,提供了一整套工具、模板和集成包,旨在简化分布式系统的构建和管理。开始项目初始化之前,确保开发环境的正确配置是成功的第一…...
【Golang学习之旅】Go + MySQL 数据库操作详解
文章目录 前言1. GORM简介2. 安装GORM并连接MySQL2.1 安装GORM和MySQL驱动2.2 连接MySQL 3. GORM数据模型(Model)3.1 定义User结构体3.2 自动迁移(AutoMigrate) 4. GORM CRUD 操作4.1 插入数据(Create)4.2 …...
33.日常算法
1.螺旋矩阵 题目来源 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] class Solution { public:vec…...
ArgoCD实战指南:GitOps驱动下的Kubernetes自动化部署与Helm/Kustomize集成
摘要 ArgoCD 是一种 GitOps 持续交付工具,专为 Kubernetes 设计。它能够自动同步 Git 仓库中的声明性配置,并将其应用到 Kubernetes 集群中。本文将介绍 ArgoCD 的架构、安装步骤,以及如何结合 Helm 和 Kustomize 进行 Kubernetes 自动化部署。 引言 为什么选择 ArgoCD?…...
每日Attention学习22——Inverted Residual RWKV
模块出处 [arXiv 25] [link] [code] RWKV-UNet: Improving UNet with Long-Range Cooperation for Effective Medical Image Segmentation 模块名称 Inverted Residual RWKV (IR-RWKV) 模块作用 用于vision的RWKV结构 模块结构 模块代码 注:cpp扩展请参考作者原…...
机器学习之数学基础:线性代数、微积分、概率论 | PyTorch 深度学习实战
前一篇文章,使用线性回归模型逼近目标模型 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章内容来自于 强化学习必修课:引领人工智能新时代【梗直哥瞿炜】 线性代数、微积分、概率论 …...
UNI-MOL: A UNIVERSAL 3D MOLECULAR REPRESENTATION LEARNING FRAMEWORK
UNI-MOL: A UNIVERSAL 3D MOLECULAR REPRESENTATION LEARNING FRAMEWORK Neurips23 推荐指数:#paper/⭐⭐⭐#(工作量不小) 动机 在大多数分子表征学习方法中,分子被视为 1D 顺序标记或2D 拓扑图,这限制了它们为下游任务整合…...
SQL Server查询计划操作符(7.3)——查询计划相关操作符(6)
7.3. 查询计划相关操作符 48)Key Lookup:该操作符对一个有簇索引的表进行书签查找。参数列包含簇索引的名字和用于查找簇索引中数据行的簇键。该操作符总是伴随一个Nested Loops操作符。如果其参数列中出现WITH PREFETCH子句,则查询处理器已决定使用异步预取(预读,read-ah…...
C语言【基础篇】之数组——解锁多维与动态数组的编程奥秘
数组 🚀前言🦜数组的由来与用途🌟一维数组详解🖊️二维数组进阶💯动态数组原理🤔常见误区扫盲💻学习路径建议✍️总结 🚀前言 大家好!我是 EnigmaCoder。本文收录于我的专…...
C++ 字符串编码转换
UTF8 的string 转 UTF16 的 wstring std::wstring Utf8ToUtf16(const std::string& utf8Str) { // 获取 UTF-16 字符串所需的缓冲区大小 int wstrLength = MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, NULL, 0); if (wstrLength == 0) { // …...
通讯录管理小程序
通讯录管理系统 是对c基础语法的巩固,比较简单的一个小程序,重点在于养成良好的c代码习惯。 通讯录是一个可以记录亲人、好友信息的工具。 本教程主要利用C来实现一个通讯录管理系统 下面是一些需要实现的功能: 1. 添加联系人 功能描述&…...
掌握API和控制点(从Java到JNI接口)_38 JNI从C调用Java函数 01
1. Why? 将控制点下移到下C/C层 对古典视角的反思 App接近User,所以App在整体架构里,是主导者,拥有控制权。所以, App是架构的控制点所在。Java函数调用C/C层函数,是合理的。 但是EIT造形告诉我们: App…...
理解UML中的四种关系:依赖、关联、泛化和实现
在软件工程中,统一建模语言(UML)是一种广泛使用的工具,用于可视化、设计、构造和文档化软件系统。UML提供了多种图表类型,如类图、用例图、序列图等,帮助开发者和设计师更好地理解系统的结构和行为。在UML中…...
windows蓝牙驱动开发-蓝牙 LE 邻近感应配置文件
邻近感应检测是蓝牙低功耗 (LE) 的常见用途。 本部分提供了创建可用于开发 UWP 设备应用的邻近感应配置文件的设备实现的指南。 在开发此应用之前,应熟悉蓝牙 LE 函数和蓝牙 LE 邻近感应配置文件规范。 示例服务声明 蓝牙低功耗引入了一个新的物理层,…...
【截图】selenium自动通过浏览器截取指定元素div的图片
【截图】selenium自动通过浏览器截取指定元素div的图片 思路 截取完整网页截图 通过元素的坐标 截图到指定位置的图片 前提是已经获取到 driver 了 # 定位目标divtarget_div driver.find_element(By.CLASS_NAME, headlines-right)# 获取div的位置和大小location target_div…...
【算法】动态规划专题⑨ —— 二维费用背包问题 python
目录 前置知识进入正题实战演练 前置知识 【算法】动态规划专题⑤ —— 0-1背包问题 滚动数组优化 python 进入正题 二维费用背包问题 方法思路 二维费用背包问题在传统背包问题的基础上增加了第二个维度的限制(如重量)。 每个物品具有两种费用&#x…...
免费windows pdf编辑工具Epdf
Epdf(完全免费) 作者:不染心 时间:2025/2/6 Github: https://github.com/dog-tired/Epdf Epdf Epdf 是一款使用 Rust 编写的 PDF 编辑器,目前仍在开发中。它提供了一系列实用的命令行选项,方便用户对 PDF …...
MVCC机制深度解析
在数据库管理系统中,多版本并发控制(MVCC,Multi-Version Concurrency Control)是一种用于提高数据库并发性能的技术。它通过在同一数据项上存储多个版本,允许事务在读取数据时不必等待其他事务的完成,从而提…...
C++:类和对象初识
C:类和对象初识 前言类的引入与定义引入定义类的两种定义方法1. 声明和定义全部放在类体中2. 声明和定义分离式 类的成员变量命名规则 类的访问限定符及封装访问限定符封装 类的作用域与实例化类的作用域类实例化实例化方式: 类对象模型类对象的大小存储…...
伪分布式Spark3.4.4安装
参考:Spark2.1.0入门:Spark的安装和使用_厦大数据库实验室博客 我的版本: hadoop 3.1.3 hbase 2.2.2 java openjdk version "1.8.0_432" 问了chatgpt,建议下载Spark3.4.4,不适合下载Spark 2.1.0: step1 Spark下载…...
kafka服务端之控制器
文章目录 概述控制器的选举与故障恢复控制器的选举故障恢复 优雅关闭分区leader的选举 概述 在Kafka集群中会有一个或多个broker,其中有一个broker会被选举为控制器(Kafka Controler),它负责管理整个集群中所有分区和副本的状态。…...
element-plus el-tree-select 修改 value 字段
element-plus el-tree-select 修改 value 字段 ,不显示label 需要注意两个地方: <el-tree-select v-model"value" :data"data" multiple :render-after-expand"false" show-checkbox style"width: 240px" …...
SQL最佳实践(笔记)
写在前面: 之前baeldung的Java Weekly Reviews里面推荐了一篇关于SQL优化的文章,正好最近在学习数据库相关知识,记一些学习笔记 原文地址:SQL Best Practices Every Java Engineer Must Know 1. 使用索引 使用索引…...
在 Java 中执行一个复杂的 SQL 查询(包含多表连接、子查询和聚合函数),如何确保查询的性能?请列举至少三条措施。请简要描述其工作原理?
在Java中执行复杂的SQL查询时,确保查询性能是非常重要的。 以下是三条关键措施,以及它们的详细解释、代码示例和实际开发中的注意事项。 1. 使用索引 索引是提高数据库查询性能的最基本手段之一。通过在查询条件中使用的列上创建索引,可以…...
java将list转成树结构
首先是实体类 public class DwdCusPtlSelectDto {//idprivate String key;//值private String value;//中文名private String title;private List<DwdCusPtlSelectDto> children;private String parentId;public void addChild(DwdCusPtlSelectDto child) {if(this.chil…...
【R语言】数据分析
一、描述性统计量 借助R语言内置的airquality数据集进行简单地演示: 1、集中趋势:均值和中位数 head(airquality) # 求集中趋势 mean(airquality$Ozone, na.rmT) # 求均值 median(airquality$Ozone, na.rmT) # 求中位数 2、众数 众数(mod…...
传输层协议 UDP 与 TCP
🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 前置复盘🦋 传输层🦋 再谈端口号🦋 端口号范围划分🦋 认识知名端口号 (Well-Know Port Number) 二…...
Linux 调用可执行程序
Linux 调用可执行程序 1. system() 函数1.1 system() 函数的声明1.2 system() 函数的不同场景返回值1.3 system() 函数的代码示例 2. exec() 函数族2.1 exec() 函数族的声明2.2 exec() 函数族执行失败的情况2.3 exec() 函数族的代码示例 3. exec() 与 system() 的区别以及使用注…...
