当前位置: 首页 > news >正文

LLaMA-Factory训练DeepSeek大模型+本地部署

前言

前面我们介绍了基于硅基流动训练私有大模型《10分钟教你微调自己的私有大模型》,该平台有三个不好的点就是可选的模型有限,训练时间需要排队等待耗时长,另外还要 给钱。今天我们换一个平台,使用:魔搭平台 + llamaFactory训练私有模型。平台会赠送服务器时长这样我们就可以不用花钱就可以训练自己的大模型了(学习使用)

魔搭-启动服务器

官网:https://www.modelscope.cn/ ,ModelScope社区与阿里云合作,Notebook功能由阿里云提供算力支持,进去之后需要做一下阿里云授权。这里准备了2个服务器,一个CPU型的,一个GPU型的,关键是它为开发者量身打造的云端深度学习开发环境,内置JupyterLab、WebIDE及Terminal,无需任何运维配置即可编写、调试及运行Python代码

在这里插入图片描述
点击启动后 - 查看Notebook就会进入到服务器控制台页面 - 通过terminal就可以和机器对话了 - 上方可以增加对话窗口。如下:
在这里插入图片描述

安装LLAMA-Factory

官网:https://llamafactory.readthedocs.io/zh-cn/latest/index.html , LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调。

在安装 LLaMA-Factory 之前,请确保您安装了下列依赖: 运行以下指令以安装 LLaMA-Factory 及其依赖:

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install --upgrade pip
pip install -e ".[torch,metrics]"

如果出现环境冲突,请尝试使用 pip install --no-deps -e . 解决 ,
如果提升升级pip请根据提示自行: pip install --upgrade pip升级pip 后重新安装 。 如果clone下载不下来可以手动下载后,上传到服务器中解压使用。

安装DeepSeek模型

接下来我们安装deepseek大模型,因为要从Huggingface下载(需要梯子),为了加速下载我们需要配置Huggingface的国内镜像https://hf-mirror.com,以及模型安装目录,通过huggingface-cli下载模型,模型可以在HuggingFace官网去查找:https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B , 执行下面命令:模型会下载到 /mnt/workspace/huggingface 目录

export HF_ENDPOINT=https://hf-mirror.com
export HF_HOME=/mnt/workspace/huggingface
echo $HF_HOME
huggingface-cli download --resume-download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B

安装后进入/mnt/workspace/huggingface目录查看模型路径和名字,我的模型路径是:/mnt/workspace/huggingface/hub/models--deepseek-ai--DeepSeek-R1-Distill-Qwen-1.5B/snapshots/ad9f0ae0864d7fbcd1cd905e3c6c5b069cc8b562
在这里插入图片描述

启动UI界面

LLaMA-Factory 支持通过 WebUI 零代码微调大语言模型。 在完成 安装 后,您可以通过以下指令进入 WebUI:

export USE_MODELSCOPE_HUB=1 && llamafactory-cli webui

启动的端口是7860,但是只能内网访问
在这里插入图片描述
这里我们使用Natapp做一下内网穿透,访问:https://natapp.cn/ 找到客户端下载 - 找到linux版本-复制地址
在这里插入图片描述
然后回到服务器 - 新开一个终端 - 执行 wget https://download.natapp.cn/assets/downloads/clients/2_4_0/natapp_linux_amd64/natapp 下载到当前目录,然后登录到natapp中,购买一个免费的隧道-端口需要配置为7860
在这里插入图片描述
配置好之后复制一下token,然后在服务器终端执行:./natapp -authtoken=9ab6b9040axxxxxx 使用你的Token即可,启动效果:
在这里插入图片描述
该域名是可以外网访问的,访问效果如下:
在这里插入图片描述
注意:模型路径一定要指向我们刚才下载的模型的路径哦。加载模型 :找到下方的 chat - 点击加载模型 - 模型加载成功之后可以和模型对话,如下:
在这里插入图片描述

执行模型微调

instruction 列对应的内容为人类指令, input 列对应的内容为人类输入, output 列对应的内容为模型回答。下面是一个例子

"alpaca_zh_demo.json"
{"instruction": "计算这些物品的总费用。 ","input": "输入:汽车 - $3000,衣服 - $100,书 - $20。","output": "汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120。"
},

LLAma准备了一些测试的微调数据,存放在LLaMA安装目录的/data/目录中,我们可以下载一个数据下来参考一下格式:
在这里插入图片描述
dataset_info.json 包含了所有经过预处理的 本地数据集 以及 在线数据集。如果要自定义数据集,需要在 dataset_info.json 文件中添加对数据集及其内容的定义

回到UI界面-点击 train微调 - 选择数据集 ,在企业中真是微调肯定要选择自己的数据,右侧可以预览数据集,您需要配置以下关键参数以进行模型微调:

  • 语言:选择模型支持的语言,例如zh。
  • 模型名称:选择要微调的模型,例如deepseek
  • 微调方法:选择微调技术,如lora。
  • 数据集:选择用于训练的数据集。
  • 学习率:设置模型训练的学习率。
  • 计算类型:根据GPU类型选择计算精度,如bf16或fp16。
  • 梯度累计:设置梯度累计的批次数。
  • LoRA+学习率比例:设置LoRA+的相对学习率。
  • LoRA作用模块:选择LoRA层挂载的模型部分。
    在这里插入图片描述

微调的方式:有三种,默认情况下为lora,因为使用lora轻量化微调方法能极大程度地节约显存。

  • full:全参微调,将整个模型都进行微调,对显存要求巨大。
  • freeze:冻结微调,将模型的大部分参数冻结,只对部分参数进行微调,可以降低对显存的要求。
  • lora:将模型的部分参数冻结,只对部分参数进行微调,但只在特定的层上进行微调,极大节约显存。

学习率 :是最重要的超参数之一,它决定了在每次参数更新时参数改变的幅度。一个太大的学习率可能会导致模型训练不稳定,而太小的学习率会导致训练过程缓慢。微调时,通常使用比预训练阶段更小的学习率,因为我们希望模型参数的改变更加细微,以免破坏已学到的有用信息。

  • 1e-1(0.1):相对较大的学习率,用于初期快速探索。

  • 1e-2(0.01):中等大小的学习率,常用于许多标准模型的初始学习率。

  • 1e-3(0.001):较小的学习率,适用于接近优化目标时的细致调整。

  • 1e-4(0.0001):更小的学习率,用于当模型接近收敛时的微调。

  • 5e-5(0.00005):非常小的学习率,常见于预训练模型的微调阶段,例如在自然语言处理中微调BERT模型。

截断长度:句子越长,显存占用越多,如果显存不够可以考虑降低到512甚至256。可以根据微调目标需要的长度进行设置。微调后,模型处理长度大于Cutoff Length的句子的能力会下降。

计算精度 :大模型的计算精度是指在训练和推理过程中,模型参数和计算操作所使用的数值表示方式的精确程度,较低的精度可以提高计算速度、减少内存占用,但可能会影响模型的准确性。因此在实际应用中,需要根据具体需求和硬件条件来选择合适的精度。

训练轮数:也称为epochs,是模型训练过程中的一个重要参数。它表示模型在训练集上训练的完整次数。例如,如果我们有一个训练集,并且我们的模型需要学习这个训练集的所有数据,那么一个epoch就是指模型对这个训练集进行一次完整的遍历

梯度累积(Gradient Accumulation):的基本思想是将一次性的整批参数更新的梯度计算变为以一小步一小步的方式进行。具体而言该方法以小批次的方式进行模型前向传播和反向传播,过程中迭代计算多个小批次梯度并累加,当累积到足够多的梯度时,执行模型的优化步骤更新参数。这也是一种典型的时间换空间的做法,即我们可以实现在有限的GPU内存上更新大量参数,不过额外添加的小批次前向传播和后向传播会使得训练速度变慢一些。例如,若目标批量大小是1,024,但设备每次只能处理256个样本,那么可以通过累积四个步骤中每个步骤的256个样本的梯度,来模拟出一个包含1,024个样本的批量更新。

LoRA(Low-Rank Approximation)是一种用于大模型微调的方法,它通过降低模型参数矩阵的秩来减少模型的计算和存储成本。在微调大模型时,往往需要大量的计算资源和存储空间,而LoRA可以通过降低模型参数矩阵的秩来大幅度减少这些需求。

具体来说,LoRA使用矩阵分解方法,将模型参数矩阵分解为两个较低秩的矩阵的乘积。这样做的好处是可以用较低秩的矩阵近似代替原始的参数矩阵,从而降低了模型的复杂度和存储需求。

LoRA秩可以根据模型的需求进行设置。一般来说,秩越低,模型的复杂度越低,但性能可能会受到一定的影响。所以在微调大模型时,需要根据具体情况来选择合适的秩大小,以平衡模型的性能和资源的使用。

建议根据硬件条件进行选择,一般可选16或32,模型微调效果较佳。

LoRA的缩放系数:是用来表示模型中每个层的相对重要性的参数。在LoRA中,每个层都有一个缩放系数,用于调整该层对总体损失函数的贡献。较高的缩放系数表示该层的权重更大,较低的缩放系数表示该层的权重较小。

缩放系数的选取可以根据问题的特点和需求进行调整。通常情况下,较低层的缩放系数可以设置为较小的值,以保留更多的原始特征信息;而较高层的缩放系数可以设置为较大的值,以强调更高级别的抽象特征。

LoRA+学习率比例点击 LoRA 参数设置,设置LoRA+学习率比例为16,LoRA+被证明是比LoRA学习效果更好的算法。

LoRA作用模块在LoRA作用模块中填写 all,即将LoRA层挂载到模型的所有线性层上,提高拟合效果。

设置好参数后滑动到下面,点击开始,LLAMA就会帮我们开始微调-微调完成后,您可以在界面上观察到训练进度和损失曲线,直到训练完成,控制台可以看到训练的过程
在这里插入图片描述
在Web UI中设置好参数后,您可以开始模型微调过程。微调完成后,您可以在界面上观察到训练进度和损失曲线,直到训练完成,控制台可以看到训练的过程 , 也可以在预览命令中拷贝微调命令,在终端去执行:
在这里插入图片描述

–stage pt:指定训练阶段为预训练
–do_train:指定是训练任务
–model_name_or_path:本地模型的文件路径或 Hugging Face 的模型标识符
–dataset:指定数据集
–finetuning_type lora:指定微调方法为lora
–lora_target q_proj,v_proj:Lora作用模块为q_proj,v_proj 此参数后续详解
–output_dir: 保存训练结果的路径
–overwrite_cache: 覆盖缓存的训练集和评估集
–per_device_train_batch_size 2: 每个gpu的批处理大小,训练参数
–gradient_accumulation_steps 2:梯度累计的步数,训练参数
–lr_scheduler_type cosine:学习率调度器,训练参数
–logging_steps 10:每两次日志输出间的更新步数,训练参数
–save_steps 1000:每两次断点保存间的更新步数,训练参数
–learning_rate 5e-5:学习率,adamW优化器的默认值为5e-5,训练参数
–num_train_epochs 3.0:需要执行的训练轮数,训练参数
–plot_loss:是否保存训练损失曲线
–fp16:使用fp16混合精度训练,此参数后续详解

启动微调后需要等待大约几十分钟,待模型下载完毕后,可在界面观察到训练进度和损失曲线。当显示训练完毕时,代表模型微调成功。
在这里插入图片描述

模型评估

模型训练完成之后-选择模型评估 - 选择用来评估的数据集(评估就是验证一下微调的效果好不好) -
在这里插入图片描述
模型评估大约需要5分钟,评估完成后会在界面上显示验证集的分数。
在这里插入图片描述
其中,ROUGE分数衡量了模型输出答案(predict)和验证集中的标准答案(label)的相似度,ROUGE分数越高代表模型学习得越好。你可以拷贝这个结果去问一问大模型你的模型评估结果是好是坏

现在我们选择一个检查点:选择刚才微调的模型,点击chat - 加载模型 和它对话,测试一下微调的效果
在这里插入图片描述
在Web UI的Chat页签下,加载微调后的模型进行对话测试。您可以输入文本与模型进行交互,并观察模型的回答是否符合预期。

导出模型

训练完成后,我们可以导出模型,从而发布到HF上或者用来本地部署。
在这里插入图片描述
找到导出目录就可以看到我们自己训练的模型了
在这里插入图片描述

  • config.json:模型的配置文件,包含架构和超参数信息。
  • ModelFile : 模型文件
  • generation_config.json:用于文本生成任务的配置文件。
  • model.safetensors:模型权重文件
  • tokenizer_config.json:分词器的配置文件。
  • tokenizer.json:包含分词器的完整信息,用于将文本转换为标记。

Ollama 部署模型

Ollama 是一个开源的大型语言模型服务工具,旨在帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以通过一条命令轻松启动和运行开源的大型语言模型。 它提供了一个简洁易用的命令行界面和服务器,专为构建大型语言模型应用而设计。用户可以轻松下载、运行和管理各种开源 LLM。安装Ollama

curl -fsSL https://ollama.com/install.sh | sh

安装过程会比较慢,实在安装不上就参考官网手动安装:https://github.com/ollama/ollama/blob/main/docs/linux.md

安装好后在 Ollama 中创建模型 , 基于我们自己训练的模型进行创建

ollama create my-deepseek -f /mnt/workspace/LLaMA-Factory-main/my-deepseek/Modelfile

启动自己训练的大模型

ollama run my-deepseek

总结

本文讲解了如何使用LLaMA Factory微调大模型,包括环境搭建、数据准备、参数配置、训练和效果评估等,最终成功微调模型并使用Ollama部署,其中有很多坑还是需要同学自己去踩的,如果文章对你有帮助就给个好评吧。

相关文章:

LLaMA-Factory训练DeepSeek大模型+本地部署

前言 前面我们介绍了基于硅基流动训练私有大模型《10分钟教你微调自己的私有大模型》,该平台有三个不好的点就是可选的模型有限,训练时间需要排队等待耗时长,另外还要 给钱。今天我们换一个平台,使用:魔搭平台 llama…...

mapbox-gl的Popup的使用详解

下面提供一个完整的 HTML 示例代码,展示了如何使用 mapbox-gl 的 Popup。代码中包含了两种使用方式: 在地图加载时直接创建一个 Popup;结合 Marker,在点击 Marker 或地图任意位置时显示 Popup。请确保将 YOUR_MAPBOX_ACCESS_TOKEN 替换为你自己的 Mapbox 访问令牌。下面是代…...

【K8s】专题十六(3):Kubernetes 包管理工具之 Helm 语法

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正! 如果对您有帮助,烦请点赞、关注、转发、订阅专栏! 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】(全…...

仅仅使用pytorch来手撕transformer架构(3):编码器模块和编码器类的实现和向前传播

仅仅使用pytorch来手撕transformer架构(2):编码器模块和编码器类的实现和向前传播 往期文章: 仅仅使用pytorch来手撕transformer架构(1):位置编码的类的实现和向前传播 最适合小白入门的Transformer介绍 仅仅使用pytorch来手撕transformer…...

LWIP网络模型及接口简介(DAY 01)

目录 1.网络协议分层模型 2. LWIP三种编程接口 1.网络协议分层模型 其中各层级的封装与拆封过程 2. LWIP三种编程接口 LwIP 提供了三种编程接口,分别为 RAW/Callback API、NETCONN API、SOCKET API。它们的易用性从左到右依次提高,而执行效率从左到右依…...

Docker构建启动jar包

Docker构建启动jar包 1、首先是把java服务打包成jar包 mvn clean install -Dmaven.skip.testtrue package -Pprod这个命令的意思是,跳过测试,打包prod环境。 2、编写Dockerfile文件 # 拉取jdk8作为基础镜像 FROM registry.supos.ai/library/openjdk:…...

基于Python+Vue开发的电影订票管理系统源码+运行步骤

项目简介 该项目是基于PythonVue开发的电影订票管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的电影订…...

javase集合框架List篇

一、Vector和ArrayList、LinkedList联系和区别,分别的使用场景 ArrayList:底层是数组实现,线程不安全,查询和修改非常快,但是增加和删除慢 LinkedList: 底层是双向链表,线程不安全,查询和修改…...

Kafka×DeepSeek:智能决策破取经八十一难!

《西游记》的故事中,唐僧师徒四人历经九九八十一难,从东土大唐前往西天取经。一路上,火焰山酷热难耐、通天河水位忽高忽低、妖怪神出鬼没…… 现在,唐僧师徒取经路上的种种难题,在KafkaDeepSeek双引擎加持下有了全新解…...

python-leetcode-反转字符串中的元音字母

345. 反转字符串中的元音字母 - 力扣(LeetCode) 使用双指针的方法高效地反转字符串中的元音字母。以下是 Python 代码实现: def reverseVowels(s: str) -> str:vowels set("aeiouAEIOU")s list(s) # 将字符串转换为列表&…...

Blender UV纹理贴图,导出FBX到Unity

加载ps好的模型贴图。右下角选择《材质》基础色里面选择《图像纹理》,选择你的图片。 选择上面UV选项卡。左上角选择UV编辑器。选中物体,TAB进入编辑模式。即可调整映射的图像范围。 其中渲染设置可以在左侧下边脱出。 导出带纹理FBX模型 路径选择复…...

AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘

AttributeError: module backend_interagg has no attribute FigureCanvas 这个错误通常是由于 Matplotlib 的后端配置问题引起的。具体来说,Matplotlib 在尝试加载某个后端时,发现该后端模块中缺少必要的属性(如 FigureCanvas)&a…...

调试正常 ≠ 运行正常:Keil5中MicroLIB的“量子态BUG”破解实录

调试正常 ≠ 运行正常:Keil5中MicroLIB的“量子态BUG”破解实录——从勾选一个选项到理解半主机模式,嵌入式开发的认知升级 📌 现象描述:调试与烧录的诡异差异 在线调试时 程序正常运行 - 独立运行时 设备无响应 ! 编译过程 0 Err…...

【Pandas】pandas Series update

Pandas2.2 Series Computations descriptive stats 方法描述Series.compare(other[, align_axis, …])用于比较两个 SeriesSeries.update(other)用于用另一个序列(Series)中的值更新当前序列 pandas.Series.update pandas.Series.update(other) 方法…...

2025软件供应链安全案例︱证券行业云原生DevSecOps敏捷安全实践

最佳实践 打造云原生DevSecOps敏捷安全治理体系 以容器、微服务、服务网格、声明式API等为代表的云原生技术的深入应用,改变了以往的研发方式:传统瀑布流开发模式逐渐被取代,DevOps敏捷开发成为主流。在云原生架构下,服务数量和…...

Android : Camera之CHI API

来自: https://www.cnblogs.com/szsky/articles/10861918.html 一、CAM CHI API功能介绍: CHI API建立在Google HAL3的灵活性基础之上,目的是将Camera2/HAL3接口分离出来用于使用相机功能,它是一个灵活的图像处理驱动程序&#…...

【动手实验】TCP 连接的建立与关闭抓包分析

本文是基于知识星球程序员踩坑案例分享中的作业进行的复现和总结,借此加深对 TCP 协议的理解, 原文参见TCP 连接的建立和关闭 —— 强烈建议新手看看。 实验环境 这里使用两台位于同一子网的腾讯云服务器,IP 分别是 node2(172.1…...

语音识别踩坑记录

本来想在原来的语音识别的基础上增加本地扩展本地词典, 采用的语音识别是Vosk识别器,模型是 vosk-model-small-cn-0.22 // 初始化Vosk识别器 if (recognizer null) {using (Model model new Model(modelPath)){string grammar "{""…...

Conda常用命令汇总

Conda 是一个流行的包管理器和环境管理工具,广泛应用于数据科学、机器学习等领域。它可以帮助我们管理 Python 包以及不同版本的环境,避免包冲突,提升项目的可复现性。以下是一些常用的 Conda 命令,涵盖环境创建、管理、包安装等常…...

消息队列MQ使用场景有哪些?

MQ 在实际项目中的应用场景主要围绕异步处理、系统解耦、流量控制三大核心能力展开,结合具体业务需求可细分为以下场景: 1. 异步处理 典型场景:用户注册成功后发送短信/邮件、支付成功后通知物流系统发货、商品上架后同步至搜索引擎。优势&…...

5. 前后端实现文件上传与解析

1. 说明 在实际开发中,比较常见的一个功能是需要在前端页面中选择系统中的某个文件上传到服务器中进行解析,解析后的文件内容可以用来在服务器中当作参数,或者传递给其它组件使用,或者需要存储到数据库中。所以本文就提供一种方式…...

基于腾讯云高性能HAI-CPU的跨境电商客服助手全链路解析

跨境电商的背景以及痛点 根据Statista数据,2025年全球跨境电商市场规模预计达6.57万亿美元,年增长率保持在12.5% 。随着平台规则趋严(如亚马逊封店潮),更多卖家选择自建独立站,2024年独立站占比已达35%。A…...

python中time模块的常用方法及应用

Python 的 time 模块是自带的标准模块,不需要额外安装,可以直接通过import time的方式导入并使用其中的函数和类。该模块提供了与时间相关的各种功能,以下是一些常用方法及其应用场景和示例: ### 1. time.time() - **功能**&…...

JavaScript性能优化

JavaScript性能优化指南 一:性能分析与指标确立 使用性能分析工具 • 使用Lighthouse、Chrome DevTools的Performance面板和WebPageTest进行基准测试,识别加载时间、脚本执行时长等瓶颈。 • 关注核心Web指标:LCP(最大内容绘制&a…...

《React 属性与状态江湖:从验证到表单受控的实战探险》

属性初识 属性能解决两个大问题&#xff1a;通信和复用 props.js: import React, { Component } from react import Navbar from ./Navbarexport default class App extends Component {state {a:100}render() {return (<div><div><h2>首页</h2>&l…...

Android Retrofit 框架注解定义与解析模块深度剖析(一)

一、引言 在现代 Android 和 Java 开发中&#xff0c;网络请求是不可或缺的一部分。Retrofit 作为 Square 公司开源的一款强大的类型安全的 HTTP 客户端&#xff0c;凭借其简洁易用的 API 和高效的性能&#xff0c;在开发者社区中广受欢迎。Retrofit 的核心特性之一便是通过注…...

嵌入式学习L6网络编程D3TCP

TCP编程 写代码 第一步socket 绑定 先填充 点分十进制转换成32位整数 client 然后就连接成功了就可以读写数据了 client #include "net.h"int main (void) {int fd -1;struct sockaddr_in sin;/* 1. 创建socket fd */if ((fd socket (AF_INET, SOCK_S…...

【玩转23种Java设计模式】结构型模式篇:享元模式

软件设计模式&#xff08;Design pattern&#xff09;&#xff0c;又称设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 汇总目录链接&…...

超分之DeSRA

Desra: detect and delete the artifacts of gan-based real-world super-resolution models.DeSRA&#xff1a;检测并消除基于GAN的真实世界超分辨率模型中的伪影Xie L, Wang X, Chen X, et al.arXiv preprint arXiv:2307.02457, 2023. 摘要 背景&#xff1a; GAN-SR模型虽然…...

产城融合典范:树莓科技如何助力宜宾数字经济腾飞​

宜宾在推动数字经济发展的征程中&#xff0c;树莓科技扮演着至关重要的角色&#xff0c;堪称产城融合的典范。 树莓科技入驻宜宾后&#xff0c;积极与当地政府合作&#xff0c;以产业发展带动城市建设&#xff0c;以城市功能完善促进产业升级。在产业布局上&#xff0c;树莓科…...

Java数据结构第二十二期:Map与Set的高效应用之道(一)

专栏&#xff1a;Java数据结构秘籍 个人主页&#xff1a;手握风云 目录 一、Map和Set 1.1. 概念 二、搜索树 2.1. 概念 2.2. 查找操作 2.2. 插入操作 2.3. 删除操作 2.4. 性能分析 三、搜索 3.1. 概念及场景 3.2. 模型 四、Map 4.1. Map的说明 3.2. Map的使用 五…...

焊接安全的新纪元:智能监管系统的力量

在现代制造业中&#xff0c;焊接作为一项关键工艺&#xff0c;其安全性直接关系到生产质量和人员安全。为了应对这一挑战&#xff0c;一款创新的焊接联网智能化监管系统应运而生&#xff0c;为焊接行业带来了新的安全保障。 智能监管&#xff0c;安全升级 这款系统通过“一机…...

OpenGL中绘制图形元素的实现(使用visual studio(C++)绘制一个矩形)

目标&#xff1a;使用OpenGL提供的函数绘制矩形、线段、三角形等基本图形元素 所需效果 实验步骤 1、配置OpenGL&#xff08;详情参见OpenGL的配置&#xff09; 2、头文件引入 #include <gl/glut.h> 3、编写方法体 1>矩形实现 //绘制矩形 void DisplayRectangl…...

政安晨【零基础玩转各类开源AI项目】Wan 2.1 本地部署,基于ComfyUI运行,最强文生视频 图生视频,一键生成高质量影片

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 目录 下载项目 创建虚拟环境 安装项目依赖 尝试运行 依次下载模型 完成 我们今天要使…...

DeepLabv3+改进8:在主干网络中添加SIM注意力机制|助力涨点

🔥【DeepLabv3+改进专栏!探索语义分割新高度】 🌟 你是否在为图像分割的精度与效率发愁? 📢 本专栏重磅推出: ✅ 独家改进策略:融合注意力机制、轻量化设计与多尺度优化 ✅ 即插即用模块:ASPP+升级、解码器 PS:订阅专栏提供完整代码 论文简介 在本文中,我们提出了…...

卷积神经网络(笔记01)

视觉处理三大任务&#xff1a;分类、目标检测、图像分割 CNN网络主要有三部分构成&#xff1a;卷积层&#xff08;Convolutional Layer&#xff09;、池化层&#xff08;Pooling Layer&#xff09;和激活函数 一、解释卷积层中的偏置项是什么&#xff0c;并讨论在神经网络中引…...

从自己电脑的浏览器访问阿里云主机中运行的LLaMA-Factory webui

阿里云主机上LLaMA-Factory的webui在0.0.0.0:7860侦听&#xff0c;无法直接打开&#xff0c;需要通过代理的方法访问。 在LLaMA-Factory目录下创建一个脚本文件run.sh&#xff0c;并加上执行权限&#xff0c;内容如下&#xff1a; #!/bin/shexport GRADIO_SERVER_PORT7860 ex…...

大数据面试之路 (一) 数据倾斜

记录大数据面试历程 数据倾斜 大数据岗位 &#xff0c;数据倾斜面试必问的一个问题。 一、数据倾斜的表现与原因 表现 某个或某几个Task执行时间过长&#xff0c;其他Task快速完成。 Spark/MapReduce作业卡在某个阶段&#xff08;如reduce阶段&#xff09;&#xff0c;日志显…...

文件上传漏洞 upload-labs靶场

&#xff08;这个没删就是还没做完 ; ω ; &#xff09; 目录 Pass-01 前端绕过 关卡分析 绕过&#xff1a;Burpsuite抓包修改或页面禁用js Pass-02 服务器端检测–IMME类型 关卡分析 Content-type 绕过&#xff1a;抓包修改文件的content-type Pass-03 黑名单绕过 关…...

「 DelegateUI 」Ant-d 风格的 Qt Qml UI 套件

写在前面&#xff1a;关于为什么要写一套新的UI框架 一方面&#xff0c;Qt Qml 生态中缺乏一套既遵循现代设计规范(自带的功能少且丑,懂得都懂)&#xff0c;又能深度整合 Qt 生态的开源组件库。 另一方面&#xff0c;Qt Qml 中也有一些其他方案&#xff0c;例如 FluentUI Qml…...

数字人分身开发指南:从概念到实战

一、什么是数字人分身&#xff1f; 想象一下&#xff0c;在电脑或手机屏幕里&#xff0c;一个能跟你聊天、回答问题&#xff0c;甚至还能做表情的虚拟角色。这就是数字人分身&#xff0c;它用上了人工智能技术&#xff0c;让机器也能像人一样交流。无论是在线客服、网络主播还…...

Java小白-管理项目工具Maven(2)初识Maven

一、Maven安装 ①安装jdk1.8或以上版本 ②下载Maven&#xff08;此为3.6.0&#xff09;&#xff1a;地址&#xff1a;Download Apache Maven – Maven 下载地址&#xff1a;Index of /dist/maven/maven-3/3.6.0/binaries ③安装Maven到无中文路径即可 bin&#xff1a;含…...

【附JS、Python、C++题解】Leetcode 面试150题(8)

一、题目 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。你不能倾斜…...

什么是向量数据库向量搜索?

向量数据库 专为高效存储与检索高维向量设计&#xff0c;支持语义搜索、推荐系统等AI场景&#xff0c;如文本/图像嵌入的相似性匹配。 ChromaDB 轻量级开源向量数据库&#xff0c;优势在于易用性&#xff08;快速部署、简洁API&#xff09;和小规模场景&#xff08;本地开发、…...

【WRF-Urban】使用 LCZ 替换 WRF 运行中的 LUCC 数据

使用 LCZ 替换 WRF 运行中的 LUCC 数据 WRF-UCM中的城市类型LCZ的背景介绍完整步骤总结1. 获取 LCZ 数据2. 获取 WRF 运行所需的 LUCC 数据3. 使用 w2w 替换 WRF 的 LUCC 数据4. 运行 WRF 预处理(WPS & REAL)5. 运行 WRF 并优化城市参数化Q1:使用 LCZ 替换 WRF 运行中的…...

centos 7 安装apache服务

四步骤 解包 使用tar -zxvf 对.tar.gz 进行解压 使用tar -jxvf 对.tar.bz2 进行解压 rpm命令使用集合 rpm -qa 查询系统已安装的软件包 rpm -ql查看指定软件包存放的位置 rpm -qi查看指定软件包的属性 rpm -qf查看指定文件或目录是由哪个软件包所安装的 rpm -qpi查看指…...

2025各省市建筑产业和工程建设计划安排

1. 前言 十四届全国人大三次会议3月5日上午9时在人民大会堂开幕&#xff0c;国务院总理李强作政府工作报告。 《2025年政府工作报告》&#xff08;以下简称 “报告”&#xff09;作为统筹国家经济、战略布局与社会发展的蓝图&#xff0c;与建筑业息息相关&#xff0c;为今后的…...

广告营销,会被AI重构吗?

DeepSeek设计&#xff0c;即梦AI绘图&#xff0c;剪映成片。 DeepSeek的热度还在高开疯走。 用户对于各个场景下DS应用的探索也还在持续&#xff0c;各种DS的模式被挖掘出来&#xff0c;超级个体们开始给手下的大模型团队进行分工&#xff0c;实践出各种场景下最佳的排列组合方…...

01 音视频知识学习(视频)

图像基础概念 ◼像素&#xff1a;像素是一个图片的基本单位&#xff0c;pix是英语单词picture的简写&#xff0c;加上英 语单词“元素element”&#xff0c;就得到了“pixel”&#xff0c;简称px&#xff0c;所以“像素”有“图像元素” 之意。 ◼ 分辨率&#xff1a;是指图像…...

深入探究 Ryu REST API

Ryu 4.34 REST API 详细接口说明与示例 Ryu 4.34 的 REST API 提供了对 SDN 网络的核心管理功能&#xff0c;涵盖交换机、流表、端口、拓扑和 QoS 等操作。以下是详细的接口分类、功能说明及 Python 示例代码。 1. 交换机管理 1.1 获取所有交换机 DPID 端点: GET /stats/swi…...