一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答:包括671B满血版和各个蒸馏版的部署

前言

自从deepseek R1发布之后「详见《一文速览DeepSeek R1:如何通过纯RL训练大模型的推理能力以比肩甚至超越OpenAI o1(含Kimi K1.5的解读)》」,deepseek便爆火

爆火以后便应了“人红是非多”那句话,不但遭受各种大规模攻击,即便后来挡住了大部分攻击,但海内外大量闯入deepseek官网一探究竟的网友也把他们的服务器压得不堪重负

导致一提问,要么频繁显示:服务器繁忙,请稍后再试;要么回答了 但无法联网,致使我朋友圈内一些不知情的朋友说:看把媒体给能的,各种瞎吹,但其实不过尔尔..

怎么办呢?

  • 一方面,微信上的好友老师木发圈表示
    这个春节有点特别,虽然没有休息一天,大家也没有怨言。看到DeepSeek创造的一个又一个奇迹,我很焦急但苦于没有资源,同事突发奇想:国产卡多,用国产卡吧 ”
    于是,在25年的2.1日,硅基流动 x 华为云联合推出基于昇腾云的 DeepSeek R1 & V3 推理服务!

    个人认为这是国产GPU替代英伟达GPU之路的里程碑时刻
    虽然在此之前,华为以及不少国内公司在GPU国产化上做了很多工作、努力,而且在不少政务单位已经做了很多替代
    但我们过去两年 对外接各种大模型项目的时候——我司「七月在线」除了开发一系列内部产品 也对外接各种项目,不论是客户还是我们内部,对国产GPU是否好适配、以及适配之后是否丝滑好用 始终存在着一定的担忧

    我相信,这一情况会随着本次的「昇腾云的 DeepSeek R1 & V3 推理服务」而越来越好
  • 二方面,我原本不想看什么本地部署的,也不得不关注下各种版本下的本地部署
    本文便来重点探讨各种版本下、各种情况下的DeepSeek-R1的本地部署「当然,某乎上也有很多类似“ 如何在本地部署DeepSeek-R1模型?” 的帖子」

如此,本文来了,以下是本文的更新记录

  1. 2.3日下午,在我自己的iMac上本地部署了下R1 7B蒸馏版,详见下文的
    2.1.1 Ollama下的终端命令行交互
    2.1.2 Ollama下的open-webui交互:基于docker安装,且支持联网搜索
  2. 2.4日晚上,可能是自己早已习惯在博客中尽可能把所有细节一次性讲清楚
    所以我自己又尝试了
    2.1.3 通过 Ollama + chatboxai部署deepseek-r1:7b
    2.1.4 基于Ollama + Page Assist搭建本地知识库问答系统:且支持联网搜索


    且同时让同事文弱尝试了通过vLLM推理deepseek-r1:8b,也已更新在了下文的
    2.2 通过vLLM推理deepseek-r1:8b:R1-Distill-Llama-8B

第一部分 本地部署之前的准备工作:各个版本、推理框架、硬件资源

1.1 DeepSeek-R1的多个版本:加上2个原装671B的,总计8个参数版本

在huggingface上总共有以下几种参数的deepseek R1

  1. DeepSeek-R1 671B
  2. DeepSeek-R1-Zero 671B
  3. DeepSeek-R1-Distill-Llama-70B
  4. DeepSeek-R1-Distill-Qwen-32B
  5. DeepSeek-R1-Distill-Qwen-14B
  6. DeepSeek-R1-Distill-Llama-8B
  7. DeepSeek-R1-Distill-Qwen-7B
  8. DeepSeek-R1-Distill-Qwen-1.5B

1.2 主流的大模型推理框架:分为PC端和Android端

首先,看推理框架,目前主流的大模型推理框架主要有以下5种:

  • SGLang
    完全支持 BF16 和 FP8 推理模式下的 DeepSeek-V3 模型
  • Ollama,相对简单易用,大众用户首选
  • vLLM,开发者首选,便于商业化诉求
    支持 FP8 和 BF16 模式的 DeekSeek-V3 模型,用于张量并行和管道并行
    详见:一文通透vLLM与其核心技术PagedAttention:减少KV Cache碎片、提高GPU显存利用率(推理加速利器)
  • LLaMA.cpp
  • MNN-LLM,偏Android手机端
    MNN-LLM展现了卓越的CPU性能,预填充速度相较于llama.cpp提高了8.6倍,相较于fastllm提升了20.5倍,解码速度分别快了2.3倍和8.9倍
    更多详情,请参见论文《MNN-LLM: A Generic Inference Engine for Fast Large Language Model Deployment on Mobile Devices》

1.3 不同参数的模型所要求的硬件

其次,看硬件要求,很显然,不同参数的模型所要求的硬件各不相同(下表修改自微信好友杨老师整理的表格)

模型参数最低GPU配置最低CPU配置建议内存建议硬盘空间
R1 or R1-Zero 满血版

A/H100(80G) x 16-18

某乎上便有篇文章:16张H100部署模型DeepSeek-R1

值得一提的是,A100/A800原生并不支持FP8运算,如果A800要执行FP8精度计算,需要在指令层面进行模拟(存在精度转换计算)

如下图所示(图源)

Xeon 8核192GB2TB固态
R1-distill-llama70BRTX 4090(24GB) x 2i9-13900K64GB1TB固态
R1-distill-Qwen32BRTX 4090(24GB)i7-13700K64GB1TB固态
R1-distill-Qwen14BRTX 4060S(16GB)Ryzen 732GB500G固态

可以看到

  • 完全开源的DeepSeek-R1 671B参数进行本地私有化部署的显卡资源要求极高
    包括我司七月在线内部之前也最多用过8张80G的A100——通过1.5K条paper-review数据微调LLaMA2 70B「详见此文《七月论文审稿GPT第4.2版:通过15K条paper-review数据微调Llama2 70B(含各种坑)》
  • 由于 FP8 训练是Deepseek 的框架中原生采用的,故DeepSeek-R1/3均(DeepSeek-R1基于DeepSeek-V3-base后训练)均为FP8精度训练「详见此文《一文通透让Meta恐慌的DeepSeek-V3:在MoE、GRPO、MLA基础上提出Multi-Token预测(含FP8训练详解)》」,下图是各个精读的对比(图源)

因此提供的精度就是FP8(e4m3),占单个Byte空间

"quantization_config": {"activation_scheme": "dynamic""fmt": "e4m3","quant method": "fp8""weight_block_size": [128,128]}
  • 模型分片163个,模型的文件总计约为642G,如果以FP3精度加载到显存,模型参数就需要642GB空间
    按PagedAttention论文预估的KV-Cache+和激化值估计至少要占到30%左石
  • 在推理场景下,输出大多是长文本,那就更多了,而且具体模型还要实测,或用Nvidia Nisight+分析显存占用。估计常规部署都需要800GB以上,10张A800打底

而大部分消费者或开发者拥有的硬件资源是有限的,故关于网上大多数人所谓部署的R1都是其蒸馏Llama/Qwen后的8B/32B/70B版本,本质是微调后的Llama或Qwen模型

1.4 蒸馏版和满血版的两类部署

最后,咱们下面有两种部署对象

  1. 一个是部署各种蒸馏版

    也不要小看蒸馏版,虽然R1蒸馏llama/qwen的版本效果上不及R1 671B满血版,但还是挺能打的


    详见下图,在与GPT-4o 0513、o1 mini、QwQ-32B preview PK的过程中,各个蒸馏版在六个榜单中的五个榜单 都拿到了第一

  2. 一个是部署R1 or R1-Zero 满血版

第二部分 通过Ollama、vLLM本地部署DeepSeek-R1蒸馏版:支持联网搜索

2.1 4种交互方式:终端、open-webui、chatbox、Page Assist知识库问答

2.1.1 Ollama下的终端命令行交互

首先,671B的R1光模型本身就有688G:

  • huggingface.co/deepseek-ai/DeepSeek-R1,没有一定的GPU集群 确实不好弄
  • 即便是量化版本,最极端的Q1量化,也要94G:​​​​​​huggingface.co/bartowski/DeepSeek-R1-GGUF/tree/main/DeepSeek-R1-IQ1_S
  • Q4量化版,则大概360G,如果有5张 A100 80G,则可以试一下
    ​​​​​​huggingface.co/bartowski/DeepSeek-R1-GGUF/tree/main/DeepSeek-R1-IQ4_XS

所以,一般用户比较好跑的还是R1的蒸馏版

  • 如果是10G显存
    可以跑这个R1蒸馏Qwen 2.5 14b的IQ4_NL版本​​​​​​huggingface.co/bartowski/DeepSeek-R1-Distill-Qwen-14B-GGUF/blob/main/DeepSeek-R1-Distill-Qwen-14B-IQ4_NL.gguf
  • 如果是16G显存
    一方面,可以试试蒸馏的Qwen 2.5 32b的版本,IQ3_M量化,不过,有人实测后,说损失有点严重——相当于Q4以下量化都不太推荐
    二方面,我司七月的《DeepSeek项目实战营》提供的GPU预装了DeepSeek-R1-Distill-Llama-8B:https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama-8B,欢迎大伙体验

ollama目前支持部署多种模型,包括且不限于目前最流行的deepseek R1,也包括之前的llama 3.3等

我下午在我自己的iMac上本地部署了下R1 7B蒸馏版,还想办法支持了联网搜索,这一切确实比之前更平权了,速度可以的,效果的话 毕竟就7B嘛——和671B 满血版还是有很大差距的

具体怎么操作呢,进入Ollama页面

  1. Download Ollama,我个人电脑因为是iMac,故选择macOS版本——180M大小
  2. 在模型列表页面,下载deepseek R1模型:ollama.com/library/deepseek-r1,然后可以选择比如R1蒸馏qwen2 7B的蒸馏版

  3. 打开本地的命令提示符「我个人电脑是iMac,故在启动台的搜索框里:输入终端,即可打开」,输入以下命令后,回车键开始下载安装对应参数的模型:
    ollama pull deepseek-r1:7b
    下载完成后,可以通过ollama list指令查看所有本地模型占用的存储空间
    ollama list
    想看具体某一个模型的参数。可以使用ollama show指令:
    ollama show <模型名称>
    具体如下图所示

  4. 然后再运行以下命令,便可以和deepseek R1对话了
    ollama run deepseek-r1:7b

    比如可以提问它:为何deepseek影响力这么大

2.1.2 Ollama下的open-webui交互:基于docker安装,且支持联网搜索

当然,如果你希望有更好的交互方式,则可以考虑用ollama的标配前端open-webui

  1. 首先通过docker的官网下载docker
    docker.p2hp.com
    我直接用的Google账号注册

  2. 安装好后在右下角点击Terminal,打开控制台

  3. 输入以下命令——等待安装完成
    docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
    然后在docker页面可以看到如下呈现

  4. 点击上面的链接:http://localhost:3000/auth,创建相关管理员账号之后

    即可开始和R1对话拉

可能有同学疑问,这个7B没法联网,有点弱智啊,好问题

  1. 巧的是,在管理员面板上:http://localhost:3000/admin/settings,可以打开联网搜索滴,如果有相应搜索引擎的API,则自行设置,否则可以选择免费的duckduckgo

  2. 然后点击聊天界面的左下角 + 按钮,选择联网搜索

  3. 则一切大功告成

2.1.3 基于Ollama + ChatBox部署deepseek-r1:7b

除了上面的open-webui之外,当然,也有人说,chatbox 是个很方便的图形界面,比open web-UI 好用

一不做二不休,那我们再试下这个chatbox

  1. 通过Ollama部署好deepseek-r1:7b之后,再通过chatbox官网下载对应的客户端:chatboxai
  2. 下载好chatbox之后,进行如下图所示的一系列设置「比如模型的提供方选择OLLAMA.API,且在下拉框处选择本地已经安装的模型deepseek-r1:7b」

  3. 接下来,便可以提问R1 7B拉

2.1.4 基于Ollama + Page Assist搭建本地知识库问答系统:且支持联网搜索

也有人称,Page Assist 直接提供了一个类似Open WebUI的交互界面来运行本地的大模型,故我们再试下这个Page Assist

在通过Ollama部署好deepseek-r1:7b之后,如果你想让DeepSeek R1不仅仅是一个问答机器人,而是一个具有专有知识的智能助手,那就需要搭建本地知识库了

实现也很简单——基于Page Assist即可

  1. 直接打开Chrome的插件市场,搜索并添加Page Assist插件

  2. 安装完插件后,点击插件图标,选择本地搭建的DeepSeek模型,进行配置,且支持联网搜索——背后还是基于免费的duckduckgo

  3. 且点击页面右上角的设置按钮,还可以进入RAG(RetrievalAugmented Generation)模式

  4. 上传你自己的知识库

2.2 通过vLLM推理deepseek-r1:8b:R1-Distill-Llama-8B

本2.2节基本为我司大模型项目组的文弱编写

  1. 首先,新建一个conda环境:
    ​​​​​​​conda create -n vllm_test python=3.10
  2. 然后配置该conda环境:
    conda activate vllm_testpip install vllm
  3. 配置好以后,启动vllm推理服务:
    vllm serve path_to/DeepSeek-R1-Distill-Llama-8B --tensor-parallel-size 1 --max-model-len 32768 --enforce-eager --gpu_memory_utilization=0.98 --enable-chunked-prefill --port 6060

    默认是8000端口,可以修改port里的参数来改变服务端口
    vllm serve后面的模型路径改为本地下载好的模型的实际绝对路径
  4. 启动vllm服务后,便可以直接提问了,比如输入如下命令行:
    ​
    curl http://localhost:6060/v1/chat/completions \-H "Content-Type: application/json" \-d '{"model": "path_to/DeepSeek-R1-Distill-Llama-8B ","messages": [{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "题目:有五个人站成一排,每个人手中都拿着一顶帽子,帽子的颜色可以是红色、蓝色或绿色。每个人都能看到自己前面的人头上的帽子颜色,但看不见自己头上的帽子,且每个人只能看到前面人的帽子颜色,而无法看见自己的帽子和别人背后的帽子。每个人都可以听到别人说话的内容,但不能交换信息。规则:每个人都知道一共有三种颜色的帽子(红、蓝、绿),并且帽子是随机分配的,每种颜色可能有多个,但也可能没有。每个人会依次回答自己头上的帽子颜色,能正确猜出自己帽子颜色的人可以获得奖励。第一个人只能听到后面四个人的回答,无法知道任何自己的信息;第二个人只能听到后面三个人的回答,依此类推。第一个人可以先做一个声明,告知后面的人如何推理他们自己的帽子颜色。问题:如果所有人都能完美推理出自己头上的帽子颜色,问:第一个人应该如何开始,才能确保最多的人能够猜对自己帽子颜色?"}],"max_tokens": 2000,"temperature": 0.7,"top_p": 0.9}'

2.3(选读) 本地手机端部署DeepSeek-R1蒸馏Llama/Qwen后的版本

直接通过这个链接:mnn_llm_app_debug_0_1.apk,下载Android apk,安装之后,在应用内的模型列表最后一个,直接安装R1-1.5B-Qwen-MNN

// 待更

第三部分 无蒸馏前提下本地部署R1 or R1-Zero 671B满血版

本地部署R1 or R1-Zero 满血版又分为两种方式

  1. 一种是做了各种量化的,此乃属于追求满血版但资源还是有限不得不做的折中处理
  2. 一种是不做任何量化的,这种属于土豪路径,如果你是用的这个路线,请私我,原因很简单,我也想多一些土豪朋友

3.1 折中路径:无蒸馏但量化部署Deepseek-R1 671B满血版

3.1.1 本地CPU上运行 Deepseek-R1 的完整的硬件 + 软件设置

huggingface 的一工程师Matthew Carrigan展示了在本地CPU上运行 Deepseek-R1 的完整的硬件 + 软件设置「他使用的是 670B 模型,无蒸馏,Q8 量化,实现全质量,总成本 6,000 美元——GPU版本得10万美元+

核心硬件方面

  • 主板:技嘉 MZ73-LM0 或 MZ73-LM1。有 2 个 EPYC 插槽,以获得 24 个 DDR5 RAM 通道
  • CPU:2x 任何 AMD EPYC 9004 或 9005 CPU
    “LLM 一代的瓶颈在于内存带宽,因此您不需要高端产品。如果真的想降低成本,请购买 9115 甚至 9015”
  • RAM:24×32GB DDR5-RDIMM
    因为需要 768GB(以适应模型)跨 24 个 RAM 通道(以获得足够快的带宽),故意味着 24 x 32GB DDR5-RDIMM 模块

关键组件方面

  • 电源:该系统的功耗出奇地低!(<400W)
    “但是,您需要大量的 CPU 电源线来为 2 个 EPYC CPU 供电。Corsair HX1000i 的功率足够了。”
  • 机箱:具有用于安装完整服务器主板的螺丝安装座
  • 散热器:适合AMD EPYC 有 SP5 插槽的就行

系统调优方面

  • 最后,SSD:任何适合 R1 的 1TB 或更大的 SSD 都可以。“推荐 NVMe,只是因为启动模型时你必须将 700GB 复制到 RAM 中
  • 软件部分:安装 Linux,进入 BIOS 并将 NUMA 组数设置为 0。这将确保模型的每一层都交错在所有 RAM 芯片上,从而使我们的吞吐量加倍。安装 Llama。下载 700G 的DeepSeek-R1-Q8_0 版本

软件部署

  1. 安装llama.cpp:git clone https://github.com/ggerganov/llama.cpp
  2. 下载模型权重:HuggingFace Q8_0目录全量700GB(⚠️确保存储空间)
  3. 一切完成后,设置以下代码:
    llama-cli -m ./DeepSeek-R1.Q8_0-00001-of-00015.gguf --temp 0.6 -no-cnv -c 16384 -p "<|User|>How many Rs are there in strawberry? <|Assistant|>"

这个版本没有 GPU,生成速度是每秒 6 到 8 个tokens,作者认为考虑到价格,这个非 GPU 硬件的方案可以接受。因为运行的是 Q8 量化的完整 670B 模型,因此质量应与 Deepseek API 无异

至于为什么不用GPU?

  1. 显存墙限制:保持Q8精度需700GB+显存,单张H100仅80GB → 需9张组集群 → 成本超10万美元
  2. 量化损耗困境:若降精度至FP16,8卡H100即可运行 → 但模型质量显著下降 ≈ 智商砍半
  3. 性价比暴击:本方案以1/20成本实现可用推理速度(对比GPU方案6-8tps vs 50-100tps)

3.1.2 GPU上跑无蒸馏但量化的Deepseek-R1 671B满血版

Unsloth AI 在 HuggingFace 上提供了 “动态量化” 版本来大幅缩减模型的体积

所谓“动态量化” 的核心思路是:对模型的少数关键层进行高质量的 4-6bit 量化,而对大部分相对没那么关键的混合专家层(MoE)进行大刀阔斧的 1-2bit 量化

为什么可以做呢,原因在于他们观察到,DeepSeek 的前 3 层是全连接层,而非 MoE 层


作为回顾,MoE(专家混合)层使得能够在不增加模型计算量(FLOPs)的情况下增加参数数量,因为他们动态地将大多数条目掩码为 0,因此实际上跳过了对这些零值条目的矩阵乘法运算「更多请参阅此条推文:x.com/danielhanchen/status/1868748998783517093

  1. 总之,通过这种方法,DeepSeek R1 全量模型可压缩至最小 131GB(1.58-bit 量化),极大降低了本地部署门槛,甚至能在单台 Mac Studio 上运行
  2. Unsloth AI 提供了4 种动态量化模型(1.58 至 2.51 比特,文件体积为 131GB 至 212GB)
    MoE BitsDisk SizeTypeQualityLinkDown_proj
    1.58-bit131GBIQ1_SFairhuggingface.co/unsloth/DeepSeek-R1-GGUF/tree/main/DeepSeek-R1-UD-IQ1_S2.06/1.56bit
    1.73-bit158GBIQ1_MGoodhuggingface.co/unsloth/DeepSeek-R1-GGUF/tree/main/DeepSeek-R1-UD-IQ1_M2.06bit
    2.22-bit183GBIQ2_XXSBetterhuggingface.co/unsloth/DeepSeek-R1-GGUF/tree/main/DeepSeek-R1-UD-IQ2_XXS2.5/2.06bit
    2.51-bit212GBQ2_K_XLBesthuggingface.co/unsloth/DeepSeek-R1-GGUF/tree/main/DeepSeek-R1-UD-Q2_K_XL3.5/2.5bit

部署此类大模型的主要瓶颈是内存+显存容量,建议配置如下:

  • DeepSeek-R1-UD-IQ1_M:内存 + 显存 ≥ 200 GB
  • DeepSeek-R1-Q4_K_M:内存 + 显存 ≥ 500 GB

若硬件条件有限,可尝试体积更小的 1.58-bit 量化版(131GB),可运行于:

  • 单台 Mac Studio
    192GB 统一内存,参考案例可见 X 上的 @ggerganov,成本约 5600 美元
  • 2×Nvidia H100 80GB
    参考案例可见 X 上的 @hokazuya,成本约 4~5 美元 / 小时

且在这些硬件上的运行速度可达到 10+ token / 秒

// 待更

3.2 土豪路径:无蒸馏不量化部署Deepseek-R1 671B满血版

// 待更

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/69052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

队列 + 宽搜(4题)

目录 1.n叉树的层序遍历 2.二叉树的锯齿形层序遍历 3.二叉树的最大宽度 4.在每个树行中找最大值 1.n叉树的层序遍历 429. N 叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 我们只需要把某个节点出队的时候把它的孩子节点添加进来即可。 出队的次数就是最开始队列…

惰性函数【Ⅱ】《事件绑定的自我修养:从青铜到王者的进化之路》

【Ⅱ】《事件绑定的自我修养&#xff1a;从青铜到王者的进化之路》 1. 代码功能大白话&#xff08;给室友讲明白版&#xff09; // 青铜写法&#xff1a;每次都要问浏览器"你行不行&#xff1f;" function addEvent青铜版(element, type, handler) {if (window.add…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.28 NumPy+Matplotlib:科学可视化的核心引擎

2.28 NumPyMatplotlib&#xff1a;科学可视化的核心引擎 目录 #mermaid-svg-KTB8Uqiv5DLVJx7r {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-KTB8Uqiv5DLVJx7r .error-icon{fill:#552222;}#mermaid-svg-KTB8Uqiv5…

upload-labs安装与配置

前言 作者进行upload-labs靶场练习时&#xff0c;在环境上出了很多问题&#xff0c;吃了很多苦头&#xff0c;甚至改了很多配置也没有成功。 upload-labs很多操作都是旧时代的产物了&#xff0c;配置普遍都比较老&#xff0c;比如PHP版本用5.2.17&#xff08;还有中间件等&am…

【OS】AUTOSAR架构下的Interrupt详解(下篇)

目录 3.代码分析 3.1中断配置代码 3.2 OS如何找到中断处理函数 3.3 Os_InitialEnableInterruptSources实现 3.4 Os_EnableInterruptSource 3.5 DisableAllInterrupts 3.5.1Os_IntSuspendCat1 3.5.2 Os_InterruptDisableAllEnter 3.5.3 Disable二类中断 3.5.4 Disable一…

RabbitMQ快速上手及入门

概念 概念&#xff1a; publisher&#xff1a;生产者&#xff0c;也就是发送消息的一方 consumer&#xff1a;消费者&#xff0c;也就是消费消息的一方 queue&#xff1a;队列&#xff0c;存储消息。生产者投递的消息会暂存在消息队列中&#xff0c;等待消费者处理 exchang…

糖化之前,为什么要进行麦芽粉碎?

糖化的目的是将麦芽中的淀粉转化为可发酵性的糖分&#xff0c;而糖化之前&#xff0c;进行麦芽粉碎是确保糖化效果的关键步骤。本文天泰将阐述麦芽粉碎的重要性及其对酿造过程的影响。 一、麦芽粉碎的目的 增加酶的作用面积&#xff1a;麦芽中的淀粉和蛋白质等物质需要通过酶…

【办公类-99-01】20250201学具PDF打印会缩小一圈——解决办法:换一个PDF阅读器

背景需求&#xff1a; 2024年1月13日&#xff0c;快要放寒假了&#xff0c;组长拿着我们班的打印好的一叠教案来调整。 “前面周计划下面的家园共育有调整&#xff0c;你自己看批注。” “还有你这个教案部分的模版有问题&#xff0c;太小&#xff08;窄&#xff09;了。考虑…

利用腾讯云cloud studio云端免费部署deepseek-R1

1. cloud studio 1.1 cloud studio介绍 Cloud Studio&#xff08;云端 IDE&#xff09;是基于浏览器的集成式开发环境&#xff0c;为开发者提供了一个稳定的云端工作站。支持CPU与GPU的访问。用户在使用 Cloud Studio 时无需安装&#xff0c;随时随地打开浏览器即可使用。Clo…

《黑马点评》实战笔记

目录 P1 Redis企业实战课程介绍 P2 短信登录 导入黑马点评项目 P3 短信登录 基于session实现短信登录的流程 P4 短信登录 实现发送短信验证码功能 P5 短信登录 实现短信验证码登录和注册功能 P6 短信登录 实现登录校验拦截器 P7 短信登录 隐藏用户敏感信息 P8 短信登录 …

python的pre-commit库的使用

在软件开发过程中&#xff0c;保持代码的一致性和高质量是非常重要的。pre-commit 是一个强大的工具&#xff0c;它可以帮助我们在提交代码到版本控制系统&#xff08;如 Git&#xff09;之前自动运行一系列的代码检查和格式化操作。通过这种方式&#xff0c;我们可以确保每次提…

第一性原理:游戏开发成本的思考

利润 营收-成本 营收定价x销量x分成比例 销量 曝光量x 点击率x &#xff08;购买率- 退款率&#xff09; 分成比例 100%- 平台抽成- 税- 引擎费- 发行抽成 成本开发成本运营成本 开发成本 人工外包办公地点租金水电设备折旧 人工成本设计成本开发成本迭代修改成本后续内容…

Hot100之矩阵

73矩阵置零 题目 思路解析 收集0位置所在的行和列 然后该行全部初始化为0 该列全部初始化为0 代码 class Solution {public void setZeroes(int[][] matrix) {int m matrix.length;int n matrix[0].length;List<Integer> list1 new ArrayList<>();List<…

详解分布式锁

目录 基于MYSQL实现 通过 insert 实现 通过 select 实现 基于Redis实现 基于set实现 redlock 基于zookeeper实现 在分布式系统中对于共享资源我们需要确保在任何时刻只有一个节点或进程能够访问&#xff0c;也就需要加锁&#xff0c;而我们的本地锁无法满足这个需求&…

五. Redis 配置内容(详细配置说明)

五. Redis 配置内容(详细配置说明) 文章目录 五. Redis 配置内容(详细配置说明)1. Units 单位配置2. INCLUDES (包含)配置3. NETWORK (网络)配置3.1 bind(配置访问内容)3.2 protected-mode (保护模式)3.3 port(端口)配置3.4 timeout(客户端超时时间)配置3.5 tcp-keepalive()配置…

物业管理系统源码提升社区智能化管理效率与用户体验

内容概要 物业管理系统源码是一种针对社区管理需求而设计的软件解决方案&#xff0c;通过先进的智能化技术&#xff0c;使物业管理变得更加高效和人性化。随着城市化进程的加快&#xff0c;社区的管理复杂性不断增加&#xff0c;而这一系统的推出恰好为物业公司提供了极大的便…

springboot集成钉钉,发送钉钉日报

目录 1.说明 2.示例 3.总结 1.说明 学习地图 - 钉钉开放平台 在钉钉开放文档中可以查看有关日志相关的api&#xff0c;主要用到以下几个api&#xff1a; ①获取模板详情 ②获取用户发送日志的概要信息 ③获取日志接收人员列表 ④创建日志 发送日志时需要根据模板规定日志…

python算法和数据结构刷题[1]:数组、矩阵、字符串

一画图二伪代码三写代码 LeetCode必刷100题&#xff1a;一份来自面试官的算法地图&#xff08;题解持续更新中&#xff09;-CSDN博客 算法通关手册&#xff08;LeetCode&#xff09; | 算法通关手册&#xff08;LeetCode&#xff09; (itcharge.cn) 面试经典 150 题 - 学习计…

院校联合以项目驱动联合培养医工计算机AI人才路径探析

一、引言 1.1 研究背景与意义 在科技飞速发展的当下&#xff0c;医疗人工智能作为一个极具潜力的新兴领域&#xff0c;正深刻地改变着传统医疗模式。从疾病的早期诊断、个性化治疗方案的制定&#xff0c;到药物研发的加速&#xff0c;人工智能技术的应用极大地提升了医疗服务…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.18 对象数组:在NumPy中存储Python对象

2.18 对象数组&#xff1a;在NumPy中存储Python对象 目录 #mermaid-svg-shERrGOBuM2rBzeB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-shERrGOBuM2rBzeB .error-icon{fill:#552222;}#mermaid-svg-shERrGOBuM2rB…