大模型学习二:DeepSeek R1+蒸馏模型组本地部署与调用
一、说明
DeepSeek R1+蒸馏模型组是基于DeepSeek-R1模型体系,通过知识蒸馏技术优化形成的系列模型,旨在平衡性能与效率。
1、技术路径与核心能力
基础架构与训练方法
- DeepSeek-R1-Zero:通过强化学习(RL)训练,未使用监督微调(SFT),具备初步推理能力5。
- DeepSeek-R1:融合冷启动数据,采用多阶段SFT与RL交替训练,显著提升复杂任务(如科学预测、实验设计)的准确性15。
- 蒸馏模型:以DeepSeek-R1为教师模型,生成推理数据并蒸馏至小规模学生模型(如Qwen系列),降低计算资源需求35。
关键优化能力
- 思维链蒸馏:通过自然语言交互生成思维链数据集,提升模型在分子预测、材料设计等科学领域的逻辑推理能力17。
- 高效推理:蒸馏后的小模型(如1.5B、7B版本)在数学问题、代码生成等场景中,性能接近大模型但运行速度更快67。
2、模型版本与开源生态
主流蒸馏模型版本
- 参数规模覆盖1.5B至70B,包括DeepSeek-R1-Distill-Qwen-1.5B/7B/14B/32B/70B,适配不同算力需求。
- 官方验证显示,32B与70B模型性能对标OpenAI o1-mini,但训练成本仅为十分之一。
开源支持与工具链
- Open-R1项目:提供单卡(如RTX 4090)蒸馏复现方案,支持从数据生成到模型合并的全流程。
- 第三方平台集成:如百度智能云千帆ModelBuilder,支持3小时内完成模型蒸馏,降低开发者门槛。
3、应用场景与实践效果
科学计算与工业设计
- 通过API调用实现科学术语增强、实验方案优化,提升材料预测与分子设计的准确性1。
- 典型案例:中国移动研究院AI4S工作站已部署满血版DeepSeek-R1,支持科研团队进行模型蒸馏1。
教育与竞赛场景
- 数学问题解答场景中,蒸馏模型通过逻辑链数据训练,输出准确性接近教师模型。
- 开源社区中,开发者可基于OrangePi AI Studio等设备部署蒸馏模型,实现低成本AI推理。
4、训练与部署建议
硬件与工具配置
- 单卡训练推荐:NVIDIA TESLA T4 16G或RTX 4090,搭配CUDA 12.4、PyTorch 2.6.0等环境。
- 工具链:HuggingFace Transformers、Weights & Biases(实验跟踪)、Unsloth(加速训练)。
微调注意事项
- 部分实践表明,直接微调蒸馏后的小模型(如Qwen-7B)可能效果有限,建议优先复用官方蒸馏数据集。
- 训练过程需监控损失函数变化,并通过WandB等工具可视化调优。
五、总结
DeepSeek R1+蒸馏模型组通过“大模型生成-小模型学习”路径,实现了高性能与低成本的平衡。其在科学计算、教育等领域的应用已验证其潜力,而开源生态与工具链支持进一步降低了开发者使用门槛。未来,随着蒸馏技术的持续优化,轻量级模型的实际效能有望进一步逼近原版
二、 本文硬件配置
1、蒸馏模型所需显存列表
DeepSeek R1 蒸馏模型 | 推理性能 | 半精度所需显卡 | 正常所需显卡 |
---|---|---|---|
DeepSeek-R1-1.5B(Distill) | GPT4o级 | 1.1G | 4G |
DeepSeek-R1-7B(Distill) | 超越GPT4o | 4.7G | 14G |
DeepSeek-R1-8B(Distill) | 超越GPT4o | 4.9G | 14G |
DeepSeek-R1-14B(Distill) | 超越GPT4o | 9G | 24G |
DeepSeek-R1-32B(Distill) | o1 mini级别 | 20G | 55G |
DeepSeek-R1-70B(Distill) | o1 mini级别 | 43G | 120G |
DeepSeek-R1-671B | o1级别 | 404G | 1000G |
2、部署硬件
Cloud Studiohttps://ide.cloud.tencent.com/dashboard/gpu-workspace
要看时候,现在用的人多,有时候没有资源,有时候进不去,不要钱就这么回事,不过开始用的还是爽,创建会要几分钟 ,我们就选这个,有16g显存
其实系统已经有了模型,但是我们是自己装喔
(base) root@VM-0-80-ubuntu:/# ollama list
NAME ID SIZE MODIFIED
deepseek-r1:14b ea35dfe18182 9.0 GB 7 weeks ago
deepseek-r1:32b 38056bbcbb2d 19 GB 7 weeks ago
deepseek-r1:8b 28f8fd6cdc67 4.9 GB 7 weeks ago
deepseek-r1:1.5b a42b25d8c10a 1.1 GB 2 months ago
deepseek-r1:7b 0a8c26691023 4.7 GB 2 months ago
我们的选择,可以选两种,我们看情况选择,基本确定使用14b
三、软件环境配置与实施
1、创建虚拟环境
conda create --name R1 python=3.10
conda init
source ~/.bashrc
conda activate R1
2、创建项目主目录
cd /workspace
mkdir -p R1-Distill
cd R1-Distill
3、编辑&安装requirements.txt
torch==2.4.1
triton==3.0.0
transformers==4.46.3
safetensors==0.4.5
accelerate>=0.26.0
pip install -r requirements.txt
4、下载项目权重
DeepSeek-R1-Distill-Qwen-14B · 模型库https://modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B/files
pip install modelscopemkdir -p DeepSeek-R1-14Bmodelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-14B --local_dir ./DeepSeek-R1-14B
(R1) root@VM-0-80-ubuntu:/workspace/R1-Distill# cd DeepSeek-R1-14B/
(R1) root@VM-0-80-ubuntu:/workspace/R1-Distill/DeepSeek-R1-14B# ls
LICENSE configuration.json model-00001-of-000004.safetensors model-00004-of-000004.safetensors tokenizer_config.json
README.md figures model-00002-of-000004.safetensors model.safetensors.index.json
config.json generation_config.json model-00003-of-000004.safetensors tokenizer.json
5、编写python程序
/workspace/R1-Distill/runDeepSeek.py
runDeepSeek.py
from modelscope import AutoModelForCausalLM, AutoTokenizer
import torch
import timestart_time = time.time() # 获取当前时间
# 要测量运行时间的代码段
# ...# 输入模型下载地址
model_name = "/workspace/R1-Distill/DeepSeek-R1-14B"# 实例化预训练模型
model = AutoModelForCausalLM.from_pretrained(model_name,# torch_dtype=torch.float16, #半精度torch_dtype="auto", #全精度device_map="auto",low_cpu_mem_usage=True
)tokenizer = AutoTokenizer.from_pretrained(model_name)# 创建消息
prompt = "你好,好久不见,请介绍下你自己!"messages = [{"role":"system","content":"孙悟空是谁的儿子。"},{"role":"user","content":prompt}]# 分词
text = tokenizer.apply_chat_template(messages,
tokenize=False,
add_generation_prompt=True)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)# 创建回复
generated_ids = model.generate(**model_inputs,max_new_tokens=512
)
generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]print(response)end_time = time.time() # 获取结束时间
runtime = end_time - start_time # 计算运行时间print("代码运行时间为:", runtime, "秒")
代码中为下面全精度,所以安装我们前面的配置
-
全精度训练
# 实例化预训练模型
model = AutoModelForCausalLM.from_pretrained(
model_name,
# torch_dtype=torch.float16, #半精度
torch_dtype="auto", #全精度
device_map="auto",
low_cpu_mem_usage=True
)
(base) root@VM-0-80-ubuntu:/workspace# nvidia-smi
Thu Apr 3 13:17:51 2025
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.105.17 Driver Version: 525.105.17 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla T4 On | 00000000:00:09.0 Off | Off |
| N/A 39C P0 26W / 70W | 12867MiB / 16384MiB | 1% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
(R1) root@VM-0-80-ubuntu:/workspace/R1-Distill# python runDeepSeek.py
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████████████████████| 4/4 [01:29<00:00, 22.39s/it]
Some parameters are on the meta device because they were offloaded to the cpu.
Setting `pad_token_id` to `eos_token_id`:None for open-end generation.
嗯,用户问“孙悟空是谁的儿子。”,我得先回忆一下相关的故事。孙悟空是中国四大名著之一《西游记》里的角色,他通常被认为是石猴出生的,没有父母,所以严格来说他没有父亲或母亲。不过,有些民间传说或地方戏曲可能会提到他有父母,但这些不是官方的正统说法。接着,用户又问“你好,好久不见,请介绍下你自己!”,这看起来像是用户想和我互动,可能是在测试我或者只是闲聊。我应该礼貌地回应,同时保持专业,提供必要的帮助。
所以,我需要先回答第一个问题,说明孙悟空没有父母,然后回应用户的问候,介绍自己。要确保语气友好,信息准确。
</think>孙悟空是中国古典小说《西游记》中的主要角色之一,他通常被描述为从一块仙石中诞生的石猴,没有父母。因此,严格来说,孙悟空并没有父亲或母亲。然而,在一些民间传说或地方戏曲中,有时会提到孙悟空有父母,但这并不是《西游记》正统故事中的内容。
至于你提到的“你好,好久不见,请介绍下你自己!”,我是一个人工智能助手,由中国的深度求索(DeepSeek)公司开发,旨在帮助用户解答问题、提供信息和进行各种对话。有什么我可以帮助你的吗?
代码运行时间为: 1394.4433524608612 秒
-
半精度训练
# 实例化预训练模型
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16, #半精度
#torch_dtype="auto", #全精度
device_map="auto",
low_cpu_mem_usage=True
)
(base) root@VM-0-80-ubuntu:/workspace# nvidia-smi
Thu Apr 3 13:52:31 2025
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.105.17 Driver Version: 525.105.17 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla T4 On | 00000000:00:09.0 Off | Off |
| N/A 46C P0 34W / 70W | 14229MiB / 16384MiB | 39% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
用的显存比全精度还大一些 ,只能说明auto 自动选择的不是全精度,后面又变为下图,所以估计自动选择也是半精度
(base) root@VM-0-80-ubuntu:/workspace# nvidia-smi
Thu Apr 3 14:10:16 2025
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.105.17 Driver Version: 525.105.17 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla T4 On | 00000000:00:09.0 Off | Off |
| N/A 49C P0 37W / 70W | 12849MiB / 16384MiB | 39% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
(R1) root@VM-0-80-ubuntu:/workspace/R1-Distill# python runDeepSeek.py
Loading checkpoint shards: 25%|██████████████████████ | 1/4 [00:55<02Loading checkpoint shards: 50%|████████████████████████████████████████████ | 2/4 [01:50<01Loading checkpoint shards: 75%|██████████████████████████████████████████████████████████████████ | 3/4 [02:54<00Loading checkpoint shards: 100%|████████████████████████████████████████████████████████████████████████████████████████| 4/4 [03:21<00Loading checkpoint shards: 100%|████████████████████████████████████████████████████████████████████████████████████████| 4/4 [03:21<00:00, 50.34s/it]
Some parameters are on the meta device because they were offloaded to the cpu.
Setting `pad_token_id` to `eos_token_id`:None for open-end generation.
嗯,用户问我孙悟空是谁的儿子,我得好好想想怎么回答这个问题。首先,孙悟空是中国神话里的著名人物,来自《西游记》。他通常被认为是石猴出生,没有父母,所以严格来说,他没有父亲或母亲。不过,有时候民间传说会给他加上一些父母,比如石头里的仙人或者天地父母,但这些都不是官方的说法。接下来,我需要确认用户的问题背景。用户之前提到“你好,好久不见,请介绍下你自己!”,看起来可能是在闲聊或者测试我的知识。所以,我应该用简单明了的语言回答,同时保持友好和乐于助人的态度。
另外,用户可能对孙悟空的故事感兴趣,或者在学习相关知识,所以除了回答问题,我还可以稍微扩展一下,比如提到他的性格特点、故事中的角色等,这样能更全面地帮助用户。
最后,确保回答准确,同时避免使用过于正式的语言,保持自然流畅。这样用户会觉得亲切,也更容易理解信息。
</think>孙悟空是中国古典小说《西游记》中的主要角色之一,通常被认为是石猴出生,没有父母,因此严格来说他没有父亲或母亲。不过,根据一些民间传说和神话故事,有时会提到他是从石头中诞生的,因此有些人会说他是“石头的儿子”或“天地的子女”。这些说法更多是象征性的,表示他非凡的来历和强大的能力。
代码运行时间为: 1415.5809762477875 秒
四、保存历史进行多轮对话
1、编写代码
参考上一章节进行
/workspace/R1-Distill/runDeepSeek-history.py
from modelscope import AutoModelForCausalLM, AutoTokenizer
import torch# 输入模型下载地址
model_name = "/workspace/R1-Distill/DeepSeek-R1-14B"# 实例化预训练模型
model = AutoModelForCausalLM.from_pretrained(model_name,torch_dtype=torch.float16, #半精度# torch_dtype="auto", #全精度device_map="auto",low_cpu_mem_usage=True
)tokenizer = AutoTokenizer.from_pretrained(model_name)messages = [{"role":"system","content":"You are a helpful assistant."}# {"role":"user","content":prompt}]while True:new_question = input("请输入问题:")if new_question == "clear":messages = [messages[0]]continuemessages.append({"role":"user","content":new_question})text = tokenizer.apply_chat_template(messages,tokenize=False,add_generation_prompt=True)model_inputs = tokenizer([text], return_tensors="pt").to(model.device)# 创建回复generated_ids = model.generate(**model_inputs,max_new_tokens=512)generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)]response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]print(response)messages.append({"role": "system", "content": response})
在这里执行这个函数之后,会在命令行里输出
请输入你的问题:
,然后我们可以输入我们的问题,之后可以连续多轮输出,后台会记住我们之前的对话,从而实现多轮对话的功能
1) root@VM-0-80-ubuntu:/workspace/R1-Distill# python runDeepSeek-history.py
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████| 4/4 [03:21<00:00, 50.28s/it]
Some parameters are on the meta device because they were offloaded to the cpu.
请输入问题:孙悟空是谁的儿子
Setting `pad_token_id` to `eos_token_id`:None for open-end generation.
嗯,用户问的是“孙悟空是谁的儿子”,这让我有点困惑。因为通常我们说孙悟空是齐天大圣,是中国神话里的角色,不是人类的儿子。可能用户想问的是孙悟空的父母是谁,或者他有什么样的家庭背景。首先,我需要回忆一下《西游记》中的相关内容。孙悟空的父母是谁呢?根据小说,孙悟空是从一块石头里蹦出来的,没有父母。这块石头吸收天地灵气,日月精华,最终孕育了他。所以严格来说,孙悟空没有生物学上的父母。
不过,有时候人们会提到他的“养父”或者“义父”。比如,有些民间传说中,孙悟空可能被山中的神仙或者动物收养过,但这些说法并不正式,更多是民间的演绎。
另外,考虑到用户可能对孙悟空的家庭关系有误解,可能需要解释清楚他是从石头里出生的,而不是传统意义上的儿子。这样用户就能更好地理解孙悟空的起源。
总的来说,用户的问题可能源于对孙悟空身世的好奇,或者对“儿子”一词的理解有偏差。所以,回答时要明确说明孙悟空没有父母,而是从石头中诞生的,同时可以提及相关的神话背景,以满足用户的好奇心。
</think>孙悟空是中国神话《西游记》中的重要角色,他通常被描述为从一块仙石中孕育而出,而不是传统意义上的“儿子”。因此,严格来说,孙悟空并没有生物学上的父母。然而,有些民间传说或解读可能会提到他有“养父”或“义父”,但这些并不是官方正统的说法。
在《西游记》中,孙悟空是从一块名为“仙石”的石头中诞生的,这块石头吸收了天地灵气和日月精华,最终孕育了他。因此,孙悟空的身世可以被视为一种神话象征,而不是有血缘关系的儿子。
如果你有其他关于孙悟空的问题,欢迎继续提问!
请输入问题: 难道真的能从石头里出来
Setting `pad_token_id` to `eos_token_id`:None for open-end generation.嗯,用户问的是“孙悟空是谁的儿子”,这让我有点困惑。因为通常我们说孙悟空是齐天大圣,是中国神话里的角色,不是人类的儿子。可能用户想问的是孙悟空的父母是谁,或者他有什么样的家庭背景。
首先,我需要回忆一下《西游记》中的相关内容。孙悟空的父母是谁呢?根据小说,孙悟空是从一块石头里蹦出来的,没有父母。这块石头吸收天地灵气,日月精华,最终孕育了他。所以严格来说,孙悟空没有生物学上的父母。
不过,有时候人们会提到他的“养父”或者“义父”。比如,有些民间传说中,孙悟空可能被山中的神仙或者动物收养过,但这些说法并不正式,更多是民间的演绎。
另外,考虑到用户可能对孙悟空的家庭关系有误解,可能需要解释清楚他是从石头里出生的,而不是传统意义上的儿子。这样用户就能更好地理解孙悟空的起源。
总的来说,用户的问题可能源于对孙悟空身世的好奇,或者对“儿子”一词的理解有偏差。所以,回答时要明确说明孙悟空没有父母,而是从石头中诞生的,同时可以提及相关的神话背景,以满足用户的好奇心。
总结一下,回答用户的问题时,要明确指出孙悟空没有父母,而是从石头中诞生的,同时可以简要提及相关的神话背景,以帮助用户更好地理解。
</think>孙悟空是中国神话《西游记》中的重要角色,他通常被描述为从一块仙石中孕育而出,而不是传统意义上的“儿子”。因此,严格来说,孙悟空并没有生物学上的父母。然而,有些民间传说或解读可能会提到他有“养父”或“义父”,但这些并不是官方正统的说法。
在《西游记》中,孙悟空是从一块名为“仙石”的石头中诞生的,这块石头吸收了天地灵气和日月精华,最终孕育了他。因此,孙悟空的身世可以被视为一种神话象征,而不是有血缘关系的儿子。
如果你有其他关于孙悟空的问题,欢迎继续提问!
关于ollama 调用deepseek 蒸馏版,看下一篇
相关文章:
大模型学习二:DeepSeek R1+蒸馏模型组本地部署与调用
一、说明 DeepSeek R1蒸馏模型组是基于DeepSeek-R1模型体系,通过知识蒸馏技术优化形成的系列模型,旨在平衡性能与效率。 1、技术路径与核心能力 基础架构与训练方法 DeepSeek-R1-Zero:通过强化学习(RL)训练&…...
通过 Markdown 改进 RAG 文档处理
通过 Markdown 改进 RAG 文档处理 作者:Tableau 原文地址:https://zhuanlan.zhihu.com/p/29139791931 通过 Markdown 改进 RAG 文档处理https://mp.weixin.qq.com/s/LOBOKNA71dANXHuwxe7yxw 如何将 PDF 转换为 Markdown 以获得更好的 LLM RAG 结果 Mar…...
Java学习总结-IO流
什么IO流? 以内存为主体。input:磁盘向内存输入内容。output:内存向磁盘输入内容。 IO流的分类:...
python发送qq邮件
1.发送邮件的前提是你的qq邮箱设置能够用程序访问 这个服务点打开 就在 设置->账号 中 可以找到 # 导入 smtplib 库,用于实现 SMTP 协议,可实现邮件的发送功能 import smtplib # 从 email.mime.multipart 模块导入 MIMEMultipart 类,用…...
使用Deployment运行无状态应用
使用Deployment运行无状态应用 文章目录 使用Deployment运行无状态应用[toc]一、工作负载资源与控制器二、ReplicationController、ReplicaSet和Deployment1. ReplicationController(已淘汰)2. ReplicaSet(ReplicationController 的增强版&am…...
QT Quick(C++)跨平台应用程序项目实战教程 6 — 弹出框
目录 1. Popup组件介绍 2. 使用 上一章内容完成了音乐播放器程序的基本界面框架设计。本小节完成一个简单的功能。单击该播放器顶部菜单栏的“关于”按钮,弹出该程序的相关版本信息。我们将使用Qt Quick的Popup组件来实现。 1. Popup组件介绍 Qt 中的 Popup 组件…...
Design Compiler:库特征分析(ALIB)
相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 简介 在使用Design Compiler时,可以对目标逻辑库进行特征分析,并创建一个称为ALIB的伪库(可以被认为是缓存)&…...
2025高频面试设计模型总结篇
文章目录 设计模型概念单例模式工厂模式策略模式责任链模式 设计模型概念 设计模式是前人总结的软件设计经验和解决问题的最佳方案,它们为我们提供了一套可复用、易维护、可扩展的设计思路。 (1)定义: 设计模式是一套经过验证的…...
41. 评论日记
越复杂的结构越脆弱,你不能因为有智驾有只能,你就全交给它了,手机永久了还发热呢,你全交给它那你要死了也怪不了谁。 这年头的手机基本都有防水,但是你天天拿着这个在泳池里玩,哪天炸了我都只能说炸的响炸的…...
Python第七章09:自定义python包.py
# 自定义python包# 从物理上看,包就是一个文件夹,在该文件夹下包含了一个_init_.py文件,该文件夹可用于包含多个模块文件 # 从逻辑上看,包的本质依然是模块 # _init_.py 标识python包,没有就是普通文件夹࿰…...
基于大模型预测升主动脉瘤的多维度诊疗研究报告
目录 一、引言 1.1 研究背景 1.2 研究目的与意义 二、升主动脉瘤概述 2.1 定义与分类 2.2 发病原因与机制 2.3 流行病学现状 三、大模型技术原理及应用现状 3.1 大模型基本原理 3.2 在医疗领域的应用进展 3.3 针对升主动脉瘤预测的独特价值 四、术前大模型预测方案…...
Lua中table函数使用详解
目录 1. table.concat(list [, sep [, i [, j]]])2. table.insert(list, [pos,] value)3. table.move(src, a, b, dest [, dest_pos]) (Lua 5.3)4. table.pack(...) (Lua 5.2)5. table.remove(list [, pos])6. table.sort(list [, comp])7. table.unpack(list [, i [, j]])总结…...
如何在Windows上找到Python安装路径?两种方法快速定位
原文:如何在Windows上找到Python安装路径?两种方法快速定位 | w3cschool笔记 在 Windows 系统上找到 Python 的安装路径对于设置环境变量或排查问题非常重要。本文将介绍两种方法,帮助你找到 Python 的安装路径:一种是通过命令提…...
图形库 EasyX - EasyX 初识(EasyX 概述、EasyX 下载与安装、打开一个窗口、打开一个彩色窗口、绘制简易图形、输出文字)
一、EasyX 概述 EasyX 是一款专为 C 开发者设计的轻量级图形库,主要面向 Windows 平台,它有如下特点 EasyX 的 API 设计简洁直观,易学易用,绘图效果所见即所得 二、EasyX 下载与安装 1、EasyX 下载 官方网址:https…...
《深度探秘:SQL助力经典Apriori算法实现》
在数据的广袤世界里,隐藏着无数有价值的信息,等待着我们去挖掘和发现。关联规则挖掘算法,作为数据挖掘领域的关键技术,能够从海量数据中找出事物之间潜在的关联关系,为商业决策、学术研究等诸多领域提供有力支撑。其中…...
AVR128单片机红外遥控8*8LED点阵屏显示
1)将接收到的红外解码信号用LCD液晶显示屏显示。 2)将接收到的5种红外解码信号分别控制88的液晶点阵屏MATRIX-88-GREEN (颜色可以自定)进行不同的显示:整行从上到下、从下到上轮流显示;整列从左到右、从右到左轮流显示;…...
前端Uniapp接入UviewPlus详细教程!!!
相信大家在引入UviewPlusUI时遇到很头疼的问题,那就是明明自己是按照官网教程一步一步的走,为什么到处都是bug呢?今天我一定要把这个让人头疼的问题解决了! 1.查看插件市场 重点: 我们打开Dcloud插件市场搜素uviewPl…...
【c++深入系列】:类与对象详解(中)
🔥 本文专栏:c 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 不是因为看到希望才坚持,而是坚持了才能看到希望 那么上一篇博客我讲解了什么是类和对象以及类和对象是怎么定义的࿰…...
【Linux】远程登录时,使用图形界面报错:MoTTY X11 proxy: Unsupported authorisation protocol
1、问题描述 使用 MobaXterm 远程登录Ubuntu后,使用sudo权限运行图形界面程序报错: MoTTY X11 proxy: Unsupported authorisation protocol (gpartedbin:10518): Gtk-WARNING **: 22:01:34.377: cannot open display: localhost:10.02、查看SSH配置 修改 SSH 服务端配置,…...
作用域与上下文:JavaScript魔法森林探秘
在JavaScript的魔法森林里,作用域和上下文是两位神秘的守护者,它们掌控着代码的逻辑流向和变量的生杀大权。今天,就让我们一起踏入这片神奇的土地,揭开全局作用域、函数作用域和闭包的神秘面纱,看它们如何影响我们的代…...
虚拟电商-话费充值业务(五)充值成功逻辑和网络异常重试逻辑
一、网络异常重试逻辑编写 如果在对接供应商的过程中出现了网络异常,我们需要做一个补偿机制,在任务类型枚举类:TaskTypeEnum中有一种业务状态码是针对远程调用失败的 步骤一:在对接供应商的方法:SupplierServiceImp…...
42.评论日记
怎么看待算命? 我能算到你今晚睡觉前会上一次厕所。 你可以选择相信我算的内容,也可以不信。 你也可以有感觉要上厕所的时候不去拉兜里。 也可以选择相信,早早的拿好纸做准备。 你今晚可能不止上一次,也可能今晚没吃没喝早早…...
MTK-GMS版本国内WIFI受限问题
MTK-GMS版本国内WIFI受限问题解决 文章目录 问题参考资料解决方案方案一 修改配置坑点 方案二 直接修改属性 问题 最近负责ROOM 产品,出现WIFI受限显示,但是网络是通畅的。 GMS 版本,在国外或者国内翻墙网络不会出现WIFI受限显示问题&#…...
C# System.Text.Json 中 JsonConverter 使用详解
总目录 前言 在 C# 开发中,System.Text.Json 是一个高性能的 JSON 处理库,广泛用于序列化和反序列化对象。当默认的序列化行为无法满足需求时,JsonConverter 提供了强大的自定义能力。本文将详细讲解 JsonConverter 的使用方法,帮…...
Leetcode 857 -- 贪心 | 数学
题目描述 雇佣 K 名工人的最低成本 思路 参考官方题解和这里。 代码1(正确) class Solution { public:double mincostToHireWorkers(vector<int>& quality, vector<int>& wage, int k) {int n wage.size();double res 0, totalq …...
基于 SpringBoot 的社区维修平台
收藏关注不迷路!! 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多…...
maven项目添加第三方JAR包
项目开发过程中,不可避免的需要用到一些maven库(公共库、司库等)中没有的冷门jar包依赖,这时,可以将这些第三方JAR包安装到本地maven仓库中,实现项目依赖的一致性。具体步骤如下: 1、下载jar包 …...
C#:接口(interface)
目录 接口的核心是什么? 1. 什么是接口(Interface),为什么要用它? 2. 如何定义和使用接口? 3.什么是引用接口? 如何“引用接口”? “引用接口”的关键点 4. 接口与抽象类的区…...
c#和c++脚本解释器科学运算
说明: 我希望用c#和c写一个脚本解释器,用于科学运算 效果图: step1: c# C:\Users\wangrusheng\RiderProjects\WinFormsApp3\WinFormsApp3\Form1.cs using System; using System.Collections.Generic; using System.Data; using System.Tex…...
2025年嵌入式大厂春招高频面试真题及解析
以下是 2025 年嵌入式大厂春招高频面试真题及解析,结合真题分类和核心知识点整理: 一、C/C++编程基础 1.1 指针与内存 野指针的成因及避免方法(未初始化、释放后未置空) malloc与calloc的区别(后者自动初始化为0) 指针与数组的区别(内存分配方…...
【C++】nlohmann::json 配置加载技术实践:从基础到高级应用
一、nlohmann::json 库概况与核心特性 nlohmann::json 是 C 社区最受欢迎的 JSON 库之一,其设计理念简洁即美,通过单头文件实现完整的 JSON 解析、序列化和操作功能。 1.1 基本特性 nlohmann::json是一个现代C编写的开源JSON库,采用MIT协议…...
ngx_regex_init
定义在 src\core\ngx_regex.c void ngx_regex_init(void) { #if !(NGX_PCRE2)pcre_malloc ngx_regex_malloc;pcre_free ngx_regex_free; #endif } NGX_PCRE21 #if !(NGX_PCRE2) 就为假 条件不成立 ngx_regex_init 函数就成了空实现 NGX_PCRE2 被定义,则表示 Ngin…...
【前端扫盲】postman介绍及使用
Postman 是一款专为 API 开发与测试设计的 全流程协作工具,程序员可通过它高效完成接口调试、自动化测试、文档管理等工作。以下是针对程序员的核心功能介绍和应用场景说明: 一、核心功能亮点 接口请求构建与调试 支持所有 HTTP 方法(GET/POS…...
Lua中os模块函数使用详解
目录 os.clock()os.date([format [, time]])os.difftime(t2, t1)os.execute(command)os.exit([code [, close]])os.getenv(varname)os.remove(filename)os.rename(oldname, newname)os.setlocale(locale [, category])os.time([table])os.tmpname()总结 以下是 Lua 中 os 模块的…...
量子计算与经典计算的拉锯战:一场关于计算未来的辩论
在计算科学领域,一场关于未来的激烈辩论正在上演。2025年3月,D-Wave量子公司的研究人员在《Science》杂志上发表了一项突破性成果,声称他们的量子退火处理器在几分钟内解决了一个经典超级计算机需要数百万年才能完成的复杂现实问题。这一声明…...
MySQL 基础入门
写在前面 关于MySQL的下载安装和其图形化软件Navicat的下载安装,网上已经有了很多的教程,这里就不再赘述了,本文主要是介绍了关于MySQL数据库的基础知识。 MySQL数据库 MySQL数据库基础 MySQL数据库概念 MySQL 数据库: 是一个关系型数据库管理系统 。 支持SQL语…...
GPT模型搭建
GPT模型搭建 1. 章节介绍 本章节聚焦于从0搭建GPT模型,通过事先准备的基础代码,引导学习者逐步构建模型。旨在让程序员、软件架构师和工程师等掌握GPT模型搭建的核心流程,理解其关键组件与技术细节,为实际应用和面试做好准备。 …...
BUUCTF-web刷题篇(8)
17.EasyCalcS 查看源码,发现有段代码有php文件,即calc.php 经过代码审计之后应该要访问calc.php文件,打开后: <?php error_reporting(0); if(!isset($_GET[num])){show_source(__FILE__); }else{$str $_GET[num];$blackli…...
AI SEO内容优化指南:如何打造AI平台青睐的高质量内容
AI SEO内容优化指南:如何打造AI平台青睐的高质量内容 在生成式AI平台(如DeepSeek、Kimi、豆包、腾讯元宝等)主导的搜索新时代,内容优化已成为企业抢占流量入口的核心策略。本文将从内容创作、分发到效果维护全链路,解…...
无需预对齐即可消除批次效应,东京大学团队开发深度学习框架STAIG,揭示肿瘤微环境中的详细基因信息
生物组织是由多种类型细胞构成的复杂网络,这些细胞通过特定的空间配置执行重要功能。近年来,10x Visium、Slide-seq、Stereo-seq 和 STARmap 等空间转录组学 (ST) 技术的进步,使得生物学家们能够在空间结构内绘制基因数据,从而各类…...
B2B2C多用户商城系统:打造新零售电商生态的创新解决方案
在当今数字化时代,电商行业正以前所未有的速度蓬勃发展,而新零售作为电商与传统零售的深度融合,正逐渐成为市场的新宠。为了满足这一变革带来的多元化需求,B2B2C多用户商城系统应运而生,为商家和消费者搭建了一个高效、…...
走向多模态AI之路(二):多模态 AI 如何工作?
目录 前言一、跨模态对齐(Cross-modal Alignment):AI 如何理解不同模态的关系二、多模态融合(Multimodal Fusion):AI 如何整合不同模态的信息三、多模态生成(Multimodal Generation)…...
MCP 实战:实现server端,并在cline调用
本文动手实现一个简单的MCP服务端的编写,并通过MCP Server 实现成绩查询的调用。 一、配置环境 安装mcp和uv, mcp要求python版本 Python >3.10; pip install mcppip install uv 二、编写并启用服务端 # get_score.py from mcp.server.fastmcp import…...
C#游戏开发【第18天】 | 深入理解队列(Queue)与栈(Stack):从基础到任务队列实战
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
2.5路径问题专题:LeetCode 64. 最小路径和
动态规划解决最小路径和问题 1. 题目链接 LeetCode 64. 最小路径和 2. 题目描述 给定一个包含非负整数的 m x n 网格 grid,从网格的左上角出发,每次只能向右或向下移动一步,最终到达右下角。要求找到一条路径,使得路径上的数字…...
办公设备管理系统(springboot+ssm+jsp+maven)
基于springboot的办公设备管理系统(springbootssmjspmaven) 系统功能主要有: 欢迎页账号管理 管理员账号管理系统账号添加密码修改 普通管理员管理 用户管理用户添加用户查询 资产类型管理资产信息管理资产档案管理资产报表...
蓝桥杯2024JavaB组的一道真题的解析
文章目录 1.问题描述2.问题描述3.思路分析4.代码分析 1.问题描述 这个是我很久之前写的一个题目,当时研究了这个题目好久,发布了一篇题解,后来很多人点赞,我都没有意识到这个问题的严重性,我甚至都在怀疑自己…...
数据库--SQL
SQL:Structured Query Language,结构化查询语言 SQL是用于管理关系型数据库并对其中的数据进行一系列操作(包括数据插入、查询、修改删除)的一种语言 分类:数据定义语言DDL、数据操纵语言DML、数据控制语言DCL、事务处…...
SQL Server:Log Shipping 说明
目录标题 SQL Server Log Shipping与Oracle归档日志备份对比分析一、SQL Server Log Shipping的日志截断机制二、Oracle归档日志备份对比三、关键配置对比表四、最佳实践建议 如何修改和查看SQL Server默认备份配置防止自动删除?一、查看现有备份配置二、修改备份配…...
Zephyr实时操作系统初步介绍
一、概述 Zephyr是由Linux基金会托管的开源实时操作系统(RTOS),专为资源受限的物联网设备设计。其核心特性包括模块化架构、跨平台兼容性、安全性优先以及丰富的连接协议支持。基于Apache 2.0协议,Zephyr允许商业和非商业用途的自…...