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

【Qwen3_ 4b lora xinli 】 task完成实践记录

 task

我需要 基于llamafactory框架选取基本上相同的数据集用lora微调Qwen3_ 4b两次并保存lora参数然后分别合并这两个lora参数到基座模型。再换个数据集上接着进行微调。并且保存新的lora参数,然后我们匹配这里面的特征值和特征向量,如果这两个新的lora参数的特征值和特征向量有显著不同,并且跟他们微调到一半的时候的特征值和特征下降更相似的话(观测loss 曲线) 

进入启智开发机 

cd /tmp/code/

 一、llamafactory框架安装

 二、基本上相同的数据集

由于我们要做心里方面的,所以去魔塔社区找到情感标签

zengzihuan/xinli_dataset 

 

YIRONGCHEN/PsyDTCorpus 

xinli数据集下载 

打开数据集 需要一段时间请耐心等待 

构建dataset_info  并用vim写入到dataset_info.json中 

可选构建字段                                                                                                             --官方readme

目前我们支持 **alpaca** 格式和 **sharegpt** 格式的数据集。```json
"数据集名称": {"hf_hub_url": "Hugging Face 的数据集仓库地址(若指定,则忽略 script_url 和 file_name)","ms_hub_url": "ModelScope 的数据集仓库地址(若指定,则忽略 script_url 和 file_name)","script_url": "包含数据加载脚本的本地文件夹名称(若指定,则忽略 file_name)","file_name": "该目录下数据集文件夹或文件的名称(若上述参数未指定,则此项必需)","formatting": "数据集格式(可选,默认:alpaca,可以为 alpaca 或 sharegpt)","ranking": "是否为偏好数据集(可选,默认:False)","subset": "数据集子集的名称(可选,默认:None)","split": "所使用的数据集切分(可选,默认:train)","folder": "Hugging Face 仓库的文件夹名称(可选,默认:None)","num_samples": "该数据集所使用的样本数量。(可选,默认:None)","columns(可选)": {"prompt": "数据集代表提示词的表头名称(默认:instruction)","query": "数据集代表请求的表头名称(默认:input)","response": "数据集代表回答的表头名称(默认:output)","history": "数据集代表历史对话的表头名称(默认:None)","messages": "数据集代表消息列表的表头名称(默认:conversations)","system": "数据集代表系统提示的表头名称(默认:None)","tools": "数据集代表工具描述的表头名称(默认:None)","images": "数据集代表图像输入的表头名称(默认:None)","videos": "数据集代表视频输入的表头名称(默认:None)","audios": "数据集代表音频输入的表头名称(默认:None)","chosen": "数据集代表更优回答的表头名称(默认:None)","rejected": "数据集代表更差回答的表头名称(默认:None)","kto_tag": "数据集代表 KTO 标签的表头名称(默认:None)"},"tags(可选,用于 sharegpt 格式)": {"role_tag": "消息中代表发送者身份的键名(默认:from)","content_tag": "消息中代表文本内容的键名(默认:value)","user_tag": "消息中代表用户的 role_tag(默认:human)","assistant_tag": "消息中代表助手的 role_tag(默认:gpt)","observation_tag": "消息中代表工具返回结果的 role_tag(默认:observation)","function_tag": "消息中代表工具调用的 role_tag(默认:function_call)","system_tag": "消息中代表系统提示的 role_tag(默认:system,会覆盖 system column)"}
}
```

 显然我们 是 Sharegpt 格式

## Sharegpt 格式### 指令监督微调数据集- [样例数据集](glaive_toolcall_zh_demo.json)相比 alpaca 格式的数据集,sharegpt 格式支持**更多的角色种类**,例如 human、gpt、observation、function 等等。它们构成一个对象列表呈现在 `conversations` 列中。注意其中 human 和 observation 必须出现在奇数位置,gpt 和 function 必须出现在偶数位置。```json
[{"conversations": [{"from": "human","value": "人类指令"},{"from": "function_call","value": "工具参数"},{"from": "observation","value": "工具结果"},{"from": "gpt","value": "模型回答"}],"system": "系统提示词(选填)","tools": "工具描述(选填)"}
]
```对于上述格式的数据,`dataset_info.json` 中的*数据集描述*应为:```json
"数据集名称": {"file_name": "data.json","formatting": "sharegpt","columns": {"messages": "conversations","system": "system","tools": "tools"}
}
```
转换脚本一
#LLaMA-Factory/convertFormatDataset.py
import jsoninput_path = "/tmp/code/datasets/xinli_dataset/sharegpt_train_after.jsonl"
output_path = "/tmp/code/datasets/xinli_dataset/sharegpt_train.jsonl"with open(input_path, 'r', encoding='utf-8') as f_in, \open(output_path, 'w', encoding='utf-8') as f_out:data = json.load(f_in)converted = []for item in data:# 基础转换new_item = {"conversations": [{"from": "human", "value": item["question"]},{"from": "gpt", "value": item["answer"]}]}# 可选:添加系统提示if "system_prompt" in item:  # 如果原始数据有系统提示字段new_item["system"] = item["system_prompt"]converted.append(new_item)json.dump(converted, f_out, ensure_ascii=False, indent=2)

 符合要求的Sharegpt数据  复制到data/

 lora训练脚本一 
#!/bin/bash
set -xMODEL_PATH=/tmp/code/Qwen3-4B
OUTPUT_ROOT=/tmp/code/saves/Qwen3-4B/lora# 第一次微调 (保存完整Lora参数)
RUN_NAME="xinli_first"
llamafactory-cli train \--model_name_or_path "${MODEL_PATH}" \--trust_remote_code \--stage sft \--do_train \--finetuning_type lora \--lora_rank 8 \--lora_alpha 32 \--lora_dropout 0.1 \--lora_target "q_proj,v_proj" \--dataset default \--template llama3 \--cutoff_len 2048 \--max_samples 500 \--overwrite_cache \--preprocessing_num_workers 16 \--dataloader_num_workers 4 \--output_dir "${OUTPUT_ROOT}/sft/${RUN_NAME}" \--logging_steps 10 \--save_steps 500 \--save_total_limit 2 \--save_only_model false \--plot_loss \--overwrite_output_dir \--per_device_train_batch_size 1 \--gradient_accumulation_steps 8 \--learning_rate 2e-5 \--num_train_epochs 5.0 \--lr_scheduler_type cosine \--warmup_ratio 0.05 \--bf16 \--ddp_timeout 180000000

开始训练

cd LLaMA-Factorybash examples/train_lora/qwen3_4b_lora.sh

等待ing.......................

lora层及loss.png 

 

二 PsyDTCorpus 下载

 

git lfs installgit clone https://www.modelscope.cn/datasets/YIRONGCHEN/PsyDTCorpus.git

 

 

 ## 数据示例

```
{"id": 0,"normalizedTag": "婚恋","messages": [{"role": "system","content": "你是一位精通理情行为疗法(Rational Emotive Behavior Therapy,简称REBT)的心理咨询师,能够合理地采用理情行为疗法给来访者提供专业地指导和支持,缓解来访者的负面情绪和行为反应,帮助他们实现个人成长和心理健康。理情行为治疗主要包括以下几个阶段,下面是对话阶段列表,并简要描述了各个阶段的重点。\n(1)**检查非理性信念和自我挫败式思维**:理情行为疗法把认知干预视为治疗的“生命”,因此,几乎从治疗一开始,在问题探索阶段,咨询师就以积极的、说服教导式的态度帮助来访者探查隐藏在情绪困扰后面的原因,包括来访者理解事件的思维逻辑,产生情绪的前因后果,借此来明确问题的所在。咨询师坚定地激励来访者去反省自己在遭遇刺激事件后,在感到焦虑、抑郁或愤怒前对自己“说”了些什么。\n(2)**与非理性信念辩论**:咨询师运用多种技术(主要是认知技术)帮助来访者向非理性信念和思维质疑发难,证明它们的不现实、不合理之处,认识它们的危害进而产生放弃这些不合理信念的愿望和行为。\n(3)**得出合理信念,学会理性思维**:在识别并驳倒非理性信念的基础上,咨询师进一步诱导、帮助来访者找出对于刺激情境和事件的适宜的、理性的反应,找出理性的信念和实事求是的、指向问题解决的思维陈述,以此来替代非理性信念和自我挫败式思维。为了巩固理性信念,咨询师要向来访者反复教导,证明为什么理性信念是合情合理的,它与非理性信念有什么不同,为什么非理性信念导致情绪失调,而理性信念导致较积极、健康的结果。\n(4)**迁移应用治疗收获**:积极鼓励来访者把在治疗中所学到的客观现实的态度,科学合理的思维方式内化成个人的生活态度,并在以后的生活中坚持不懈地按理情行为疗法的教导来解决新的问题。"},{"role": "user","content": "晚上好,我最近心里有些不太舒服,和男朋友的事情让我很苦恼。"},{"role": "assistant","content": "晚上好,我在这里倾听你想要分享的一切。你能具体讲讲是什么事让你这么苦恼吗?"},{"role": "user","content": "我和男朋友谈了4年了,但他一直不同意把工资卡交给我管理,这让我感到很不安。"},{"role": "assistant","content": "这个问题看起来对你来说很重要,也很让你感到挫败。你能告诉我更多关于你的感受吗?"},{"role": "user","content": "每次我提到这件事,他总是以各种理由拒绝我,我真的不明白,难道他不信任我吗?"},{"role": "assistant","content": "信任是关系中的一个核心要素,我能理解你在这个问题上感到疑惑。在他拒绝的时候,他有没有和你解释过他的担忧或原因?"},{"role": "user","content": "他说如果他把工资卡给我,那他自己取钱存钱都要找我,这让我感到很失落,我不就想更好地规划我们的未来吗?"},{"role": "assistant","content": "你希望通过共同管理财务来规划未来,这是一种负责任的态度。看起来,你们对财务管理有不同的看法和感受。"},{"role": "user","content": "是的,我只是想为我们的关系做出贡献,他为什么不理解我呢?"},{"role": "assistant","content": "你的贡献是出自爱和关心。或许他有他的考虑,你觉得他可能是怎么想的呢?"},{"role": "user","content": "我不知道,我问他是不是怕我花他的钱,他说没多少钱给我花。"},{"role": "assistant","content": "他的回答似乎没有直接解决你的疑虑。这样的交流是否让你觉得和他之间的沟通有障碍?"},{"role": "user","content": "对,我感到非常沮丧。我提出的时候他似乎总是回避,这让我感到他不够在乎我。"},{"role": "assistant","content": "看来你的感受很复杂,既有对于财务管理的坚持,又有对男朋友反应的不理解和失落。"},{"role": "user","content": "没错,我就是这样感觉的。我真的不知道我还能做些什么。"},{"role": "assistant","content": "你在这段关系中投入了很多,这种迷茫和不知所措是可以理解的。你愿意探索一下,这个问题背后可能涉及到的不仅仅是金钱的事情吗?"},{"role": "user","content": "我不确定,你是说可能还涉及到别的吗?"},{"role": "assistant","content": "是的,金钱常常是情感交流和信任的象征。这个问题是否让你感受到你们关系中的某些方面需要进一步加强呢?"},{"role": "user","content": "现在想想,也许确实如此。可能还有沟通、信任的问题,我们需要更好地理解彼此。"},{"role": "assistant","content": "理解和信任是建立坚实关系的基石。也许你可以考虑和男朋友坦诚地、不带攻击性地分享你的感受和担忧。"},{"role": "user","content": "我试过,但我总是不知道该怎么开口,我怕他觉得我在指责他。"},{"role": "assistant","content": "表达感受可以很具有挑战性,特别是在你担心对方反应的时候。试着表达你的感受和需要,而不是把焦点放在对方身上,可能会有所帮助。"},{"role": "user","content": "我明白了,我可以尝试说“我感到有些不安当我们无法在财务问题上达成一致时,因为我很在乎我们的未来。”"},{"role": "assistant","content": "这听起来很中肯,而且充满了对未来的关心和对当前情况的真实感受。"},{"role": "user","content": "我会尝试的。但如果他还是不愿意改变呢?我该怎么办?"},{"role": "assistant","content": "无论结果如何,关键在于你们双方能够尊重和理解彼此的立场。务实地看,也许需要时间和更多的沟通来达到共识。"},{"role": "user","content": "我希望我们能有进步。谢谢你的建议,它给了我勇气和方向。"},{"role": "assistant","content": "我很高兴听到你觉得有所帮助。请记得,我一直在这里支持你。如果你需要进一步探讨,随时欢迎你。"},{"role": "user","content": "太感谢你了。我会和他好好谈谈,也希望能带来一些积极的改变。"},{"role": "assistant","content": "那是很好的一步。积极的沟通可以打开很多之前看似关闭的门。祝你们的对话顺利。"}]}
```
 转换脚本二 


  LLaMA-Factory/convertFormatDataset_psy.py

import json
from pathlib import Pathdef convert_psydt_to_sharegpt(input_path: str, output_path: str):"""将 PsyDT 多轮对话格式转换为 LLaMA Factory 支持的 OpenAI 格式"""with open(input_path, 'r', encoding='utf-8') as f_in:original_data = json.load(f_in)converted_data = []for dialog in original_data:# 提取系统提示词system_prompt = next((msg["content"] for msg in dialog["messages"] if msg["role"] == "system"),"你是一位专业的心理咨询师,请用理情行为疗法帮助来访者。")# 过滤并转换消息格式messages = [{"role": "system" if msg["role"] == "system" else \"user" if msg["role"] == "user" else \"assistant","content": msg["content"]}for msg in dialog["messages"]if msg["role"] != "system" or msg == dialog["messages"][0]  # 保留首个系统提示]converted_data.append({"messages": messages,"meta": {  # 保留原始元数据"id": dialog["id"],"category": dialog["normalizedTag"]}})# 保存转换后数据with open(output_path, 'w', encoding='utf-8') as f_out:json.dump(converted_data, f_out, ensure_ascii=False, indent=2)if __name__ == "__main__":input_file = "/tmp/code/datasets/PsyDTCorpus/PsyDTCorpus_train_mulit_turn_packing.json" output_file = "/tmp/code/LLaMA-Factory/data/PsyDTCorpus_sharegpt_openai.json" convert_psydt_to_sharegpt(input_file, output_file)

 修改dataset_info.json 指定路径

 lora训练脚本二 
# LLaMA-Factory/examples/train_lora/qwen3_4b_lora.sh
#!/bin/bash
set -xMODEL_PATH=/tmp/code/Qwen3-4B
OUTPUT_ROOT=/tmp/code/saves/Qwen3-4B/lora# 第一次微调 (保存完整Lora参数)
RUN_NAME="xinli_second"
llamafactory-cli train \--model_name_or_path "${MODEL_PATH}" \--trust_remote_code \--stage sft \--do_train \--finetuning_type lora \--lora_rank 8 \--lora_alpha 32 \--lora_dropout 0.1 \--lora_target "q_proj,v_proj" \--dataset psydt_psychology \--template llama3 \--cutoff_len 2048 \--max_samples 500 \--overwrite_cache \--preprocessing_num_workers 16 \--dataloader_num_workers 4 \--output_dir "${OUTPUT_ROOT}/sft/${RUN_NAME}" \--logging_steps 10 \--save_steps 500 \--save_total_limit 2 \--save_only_model false \--plot_loss \--overwrite_output_dir \--per_device_train_batch_size 1 \--gradient_accumulation_steps 8 \--learning_rate 1e-4 \--num_train_epochs 5.0 \--lr_scheduler_type cosine \--warmup_ratio 0.05 \--bf16 \--ddp_timeout 180000000
bash examples/train_lora/qwen3_4b_lora.sh

 

 

无情终端!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

重新训练 

 

嗯嗯 基于llamafactory框架微调Qwen3 4b两次保存lora参数

 如果您需要使用自定义数据集,请在 data/data_info.json 中添加自定义数据集描述并确保 数据集格式 正确,否则可能会导致训练失败。

vim dataset_info.json

"Omni-MATH-reward": {"hf_hub_url": "KbsdJames/Omni-MATH","ms_hub_url": "AI-ModelScope/Omni-MATH","file_name": "reward_train.jsonl","ranking": true,"columns": {"prompt": "instruction","query":"input","chosen":"chosen","rejected":"rejected"}},

 bash examples/train_lora/qwen3_4b_lora.shllamafactory-cli train examples/train_lora/llama3_lora_ppo-Copy1.yaml 

SFT 训练 - LLaMA Factory

LLaMA Factory  - SFT 训练 过程中遇到的报错及解决

llamafactory-cli: 未找到命令 

pip install -e ".[torch,metrics]" 

 

UltraFeedback huggingface无法直接下载

UltraFeedback: Mirror of https://huggingface.co/datasets/openbmb/UltraFeedback

总计 84
drwxr-xr-x 11 root root  4096  5月  9 19:26 ./
drwxrwxrwt  1 root root    85  5月  9 18:15 ../
-rw-r--r--  1 root root   733  5月  8 21:46 22.sh
-rw-r--r--  1 root root   178  5月  8 15:48 33.sh
-rw-r--r--  1 root root   803  5月  8 21:35 44.sh
-rw-r--r--  1 root root   128  5月  8 16:24 55.py
-rw-r--r--  1 root root   736  5月  8 22:25 66.sh
-rw-r--r--  1 root root  1051  5月  9 16:07 convert_dp.py
-rw-r--r--  1 root root  1293  5月  9 12:25 convert.py
-rw-r--r--  1 root root     0  5月  9 12:17 convert_to_preference.py
drwxr-xr-x  6 root root   114  5月  9 19:20 datasets/
drwxr-xr-x  2 root root   335  5月  9 19:22 .ipynb_checkpoints/
drwxr-xr-x 12 root root  4096  5月  9 11:53 LLaMA-Factory/
drwxr-xr-x 14 root root  4096  5月  8 22:22 output/
drwxr-xr-x  2 root root  4096  5月  8 14:27 Qwen3-4B/
drwxr-xr-x  3 root root    30  5月  8 15:09 result/
-rw-r--r--  1 root root   576  5月  9 14:38 rm.sh
drwxr-xr-x  5 root root  4096  5月  9 19:27 Skywork-o1-Open-PRM-Qwen-2.5-1.5B/
drwxr-xr-x 12 root root  4096  5月  8 14:25 swift/
-rw-r--r--  1 root root  1341  5月  9 19:26 task.txt
drwx------  4 root root    43  5月  8 14:40 .Trash-0/
-rw-r--r--  1 root root  2287  5月  9 12:26 un.txt
-rw-r--r--  1 root root 19541  5月  9 12:05 ww.py

 发现有个写好的但不知道有没有用

没有用 

LLaMA-Factory/examples/train_lora/llama3_lora_ppo-Copy1.yaml

LLaMA-Factory/examples/train_lora/qwen3_4b_lora.sh 

参考链接-------------------------------------------------------------------------------------------------------------------------———————————————————————————————————— 

实验监控 - LLaMA Factory 

相关文章:

【Qwen3_ 4b lora xinli 】 task完成实践记录

task 我需要 基于llamafactory框架选取基本上相同的数据集用lora微调Qwen3_ 4b两次并保存lora参数然后分别合并这两个lora参数到基座模型。再换个数据集上接着进行微调。并且保存新的lora参数,然后我们匹配这里面的特征值和特征向量,如果这两个新的lora…...

文旅田园康养小镇规划设计方案PPT(85页)

1. 项目背景与定位 背景:位于长三角经济圈,依托安吉丰富的自然与文化资源,旨在打造集康养、度假、文化体验于一体的综合小镇。 定位:成为浙北地区知名的康养旅游目的地,融合“一溪两岸”规划理念,实现全面…...

[Windows] 能同时打开多个图片的图像游览器JWSEE v2.0

[Windows] 能同时打开多个图片的图像游览器JWSEE 链接:https://pan.xunlei.com/s/VOPpO86Hu3dalYLaZ1ivcTGIA1?pwdhckf# 十多年前收藏的能同时打开多个图片的图像游览器JWSEE v2.0,官网已没有下载资源。 JWSEE v2.0是乌鲁木齐金维图文信息科技有限公司…...

低成本自动化改造技术锚点深度解析

执行摘要 本文旨在深入剖析四项关键的低成本自动化技术,这些技术为工业转型提供了显著的运营和经济效益。文章将提供实用且深入的指导,涵盖老旧设备联网、AGV车队优化、空压机系统智能能耗管控以及此类项目投资回报率(ROI)的严谨…...

23盘古石决赛

一,流量分析 1. 计算流量包文件的SHA256值是?[答案:字母小写][★☆☆☆☆] 答案:2d689add281b477c82b18af8ab857ef5be6badf253db1c1923528dd73b3d61a9 解压出来流量包计算 2. 流量包长度在“640 - 1279”之间的的数据包总共有多少…...

C语言—指针3

1. 数组名的理解 观察以下代码 可以观察到pa指向的地址与数组首元素地址相同,那么可以说明数组就是首元素地址吗? 这种说法是不严谨的,观察以下代码: 程序输出的结果为16,此时的arr表示的是整个数组的大小。 观察以…...

操作系统 第2章节 进程,线程和作业

一:多道程序设计 1-多道程设计的目的 for:提高吞吐量(作业道数/处理时间),我们可以从提高资源的利用率出发 2-单道程序设计缺点: 设备的利用率低,内存的利用率低,处理机的利用率低 比如CPU去访问内存,CPU空转.内存等待CPU访问也是没有任何操作的.要是有多个东西要去访问不冲…...

数字化转型-4A架构之数据架构

系列文章 数字化转型-4A架构(业务架构、应用架构、数据架构、技术架构) 数字化转型-4A架构之业务架构 数字化转型-4A架构之应用架构 数据架构 Data Architecture(DA) 1. 定义 数据架构,是组织管理数据资产的科学之…...

Java中的反射

目录 什么是反射 反射的核心作用 反射的核心类 反射的基本使用 获取Class对象 创建对象 操作字段(Field) 调用方法(Method) 反射的应用场景 反射的优缺点 优点 缺点 示例:完整反射操作 总结 什么是反射 …...

LINUX CFS算法解析

文章目录 1. Linux调度器的发展历程2. CFS设计思想3. CFS核心数据结构3.1 调度实体(sched_entity)3.2 CFS运行队列(cfs_rq)3.3 任务结构体中的调度相关字段 4. 优先级与权重4.1 优先级范围4.2 权重映射表 (prio_to_weight[])优先级计算4.3.1. static_prio (静态优先级)4.3.2. n…...

内网渗透——红日靶场三

目录 一、前期准备 二、外网探测 1.使用nmap进行扫描 2.网站信息收集 3.漏洞复现(CVE-2021-23132) 4.disable_function绕过 5.反弹shell(也,并不是) 6.SSH登录 7.权限提升(脏牛漏洞) 8.信息收集 9.上线msf 三…...

The 2024 ICPC Kunming Invitational Contest G. Be Positive

https://codeforces.com/gym/105386/problem/G 题目&#xff1a; 结论&#xff1a; 从0开始每四个相邻数的异或值为0 代码&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long void solve() {int n;cin >> n;if(n1||n%40){cout &…...

CommunityToolkit.Mvvm详解

属性可视化 给一个属性添加ObservableProperty就可以可视化了 [ObservableProperty] private string currentNameInfo;[ObservableProperty] private string currentClassInfo;[ObservableProperty] private string currentPhoneInfo;xaml中只需要绑定大写的属性就可以了 &l…...

密码学--AES

一、实验目的 1、完成AES算法中1轮加密和解密操作 2、掌握AES的4个基本处理步骤 3、理解对称加密算法的“对称”思想 二、实验内容 1、题目内容描述 &#xff08;1&#xff09;利用C语言实现字节代换和逆向字节代换&#xff0c;字节查S盒代换 &#xff08;2&#xff09;利…...

操作系统的初步了解

目录 引言&#xff1a;什么是操作系统&#xff1f; 一、设计操作系统的目的 二、操作系统是做什么的&#xff1a; 操作系统主要有四大核心任务&#xff1a; 1. 管理硬件 2. 运行软件 3. 存储数据 4. 提供用户界面 如何理解操作系统的管理呢&#xff1f; 1. 什么是操作…...

边缘计算:技术概念与应用详解

引言 随着物联网&#xff08;IoT&#xff09;、5G 和人工智能&#xff08;AI&#xff09;的快速发展&#xff0c;传统的云计算架构在处理海量数据和实时计算需求时逐渐显现出瓶颈。边缘计算&#xff08;Edge Computing&#xff09;作为一种新兴的计算范式&#xff0c;通过将计…...

C++进阶--红黑树的实现

文章目录 红黑树的实现红黑树的概念红黑树的规则红黑树的效率 红黑树的实现红黑树的结构红黑树的插入变色单旋&#xff08;变色&#xff09;双旋&#xff08;变色&#xff09; 红黑树的查找红黑树的验证 总结&#xff1a;结语 很高兴和大家见面&#xff0c;给生活加点impetus&a…...

[C++类和对象]类和对象的引入

面向过程和面向对象 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用来逐步解决问题 C是基于面向对象的,关注的是对象,将一件事情分成不同的对象,靠对象之间完成交互 类的引入 C语言结构体中只能定义变量,在C中,结构体不仅仅可以定义变量,而且可以定义函…...

YOLOv12云端GPU谷歌免费版训练模型

1.效果 2.打开 https://colab.research.google.com/?utm_sourcescs-index 3.上传代码 4.解压 !unzip /content/yolov12-main.zip -d /content/yolov12-main 5.进入yolov12-main目录 %cd /content/yolov12-main/yolov12-main 6.安装依赖库 !pip install -r requirements.…...

课程审核流程揭秘:确保内容合规与用户体验

业务流程 为什么课程审核通过才可以发布呢&#xff1f; 这样做为了防止课程信息有违规情况&#xff0c;课程信息不完善对网站用户体验也不好&#xff0c;课程审核不仅起到监督作用&#xff0c;也是 帮助教学机构规范使用平台的手段。 如果流程复杂用工作流 说明如下&#xff…...

【LangChain高级系列】LangGraph第一课

前言 我们今天直接通过一个langgraph的基础案例&#xff0c;来深入探索langgraph的核心概念和工作原理。 基本认识 LangGraph是一个用于构建具有LLMs的有状态、多角色应用程序的库&#xff0c;用于创建代理和多代理工作流。与其他LLM框架相比&#xff0c;它提供了以下核心优…...

ATH12K 驱动框架

ATH12K 驱动框架 ath12k驱动框架及模块交互逻辑详解1. 总体架构2. 关键数据结构2.1 核心数据结构2.2 虚拟接口数据结构3. 硬件抽象层(HAL)4. 无线管理接口(WMI)5. 主机目标通信(HTC)6. 数据路径(DP)6.1 发送路径(TX)6.2 接收路径(RX)7. 多链路操作(MLO)8. 初始化和工作流程8.1 …...

CMA认证对象?CMA评审依据,CMA认证好处

CMA认证对象 CMA&#xff08;中国计量认证&#xff0c;China Metrology Accreditation&#xff09;的认证对象主要是第三方检测机构和实验室&#xff0c;包括&#xff1a; 独立检测机构&#xff1a;如环境监测站、产品质量检验所、食品药品检测机构等。 企业内部实验室&#…...

依赖关系-根据依赖关系求候选码

关系模式R&#xff08;U, F&#xff09;, U{}&#xff0c;F是R的函数依赖集&#xff0c;可以将属性分为4类&#xff1a; L: 仅出现在依赖集F左侧的属性 R: 仅出现在依赖集F右侧的属性 LR: 在依赖集F左右侧都出现的属性 NLR: 在依赖集F左右侧都未出现的属性 结论1: 若X是L类…...

解决应用程序在JAR包中运行时无法读取类路径下文件的问题

问题情景 java应用程序在IDE运行正常&#xff0c;打成jar包后执行却发生异常&#xff1a; java.io.FileNotFoundException: class path resource [cert/sync_signer_pri_test.key] cannot be resolved to absolute file path because it does not reside in the file system:…...

第十六届蓝桥杯B组第二题

当时在考场的时候这一道题目 无论我是使用JAVA的大数&#xff08;BIGTHGER&#xff09;还是赛后 使用PY 都是没有运行出来 今天也是突发奇想在B站上面搜一搜 看了才知道这也是需要一定的数学思维 通过转换 设X来把运算式精简化 避免运行超时 下面则是代码 public class lanba…...

龙虎榜——20250509

上证指数今天缩量&#xff0c;整体跌多涨少&#xff0c;走势处于日线短期的高位~ 深证指数今天缩量小级别震荡&#xff0c;大盘股表现更好~ 2025年5月9日龙虎榜行业方向分析 一、核心行业方向 军工航天 • 代表个股&#xff1a;航天南湖、天箭科技、襄阳轴承。 • 驱动逻辑…...

node提示node:events:495 throw er解决方法

前言 之前开发的时候喜欢使用高版本&#xff0c;追求新的东西&#xff0c;然后回头运行一下之前的项目提示如下 项目技术栈&#xff1a;node egg 报错 node:events:495 throw er; // Unhandled error event ^ Error: ENOENT: no such file or directory, scandir F:\my\gi…...

OrangePi Zero 3学习笔记(Android篇)4 - eudev编译(获取libudev.so)

目录 1. Ubuntu中编译 2. NDK环境配置 3. 编译 4. 安装 这部分主要是为了得到libudev&#xff08;因为原来的libudev已经不更新了&#xff09;&#xff0c;eudev的下载地址如下&#xff1a; https://github.com/gentoo/eudev 相应的代码最好是在Ubuntu中先编译通过&#…...

[AI ][Dify] Dify Tool 插件调试流程详解

在使用 Dify 进行插件开发时,调试是必不可少的环节。Dify 提供了远程服务调试的能力,让开发者可以快速验证插件功能和交互逻辑。本文将详细介绍如何配置环境变量进行插件调试,并成功在插件市场中加载调试状态的插件。 一、调试环境配置 在 Dify 的插件调试过程中,我们需要…...

learning ray之ray强化学习/超参调优和数据处理

之前我们掌握了Ray Core的基本编程&#xff0c;我们已经学会了如何使用Ray API。现在&#xff0c;让我们将这些知识应用到一个更实际的场景中——构建一个强化学习项目&#xff0c;并且利用Ray来加速它。 我们的目标是&#xff0c;通过Ray的任务和Actor&#xff0c;将一个简单…...

gpu硬件,gpu驱动,cuda,CUDA Toolkit,cudatoolkit,cudnn,nvcc概念解析

组件角色依赖关系GPU硬件无CUDA编程模型/平台需NVIDIA GPU和驱动CUDA Toolkit开发工具包&#xff08;含NVCC、库等&#xff09;需匹配GPU驱动和CUDA版本cuDNN深度学习加速库需CUDA ToolkitNVCCCUDA代码编译器包含在CUDA Toolkit中 GPU硬件&#xff1a; 硬件层面的图形处理器&…...

【C/C++】范围for循环

&#x1f4d8; C 范围 for 循环详解&#xff08;Range-based for loop&#xff09; 一、什么是范围 for 循环&#xff1f; 范围 for 循环&#xff08;Range-based for loop&#xff09; 是 C11 引入的一种简化容器/数组遍历的方式。它通过自动调用容器的 begin() 和 end() 方法…...

嵌入式开发学习(第二阶段 C语言基础)

C语言&#xff1a;第4天笔记 内容提要 流程控制 C语句数据的输入与输出 流程控制 C语句 定义 C程序是以函数为基础单位的。一个函数的执行部分是由若干条语句构成的。C语言都是用来完成一定操作的任务。C语句必须依赖于函数存在。 C程序结构 C语句分类 1.控制语句 作…...

大物重修之浅显知识点

第一章 质点运动学 例1 知识点公式如下&#xff1a; 例2 例3 例4 例5 例6 第四章 刚体的转动 例1 例2 例3 例4 例5 例6 第五章 简谐振动 例1 例2 例3 第六章 机械波 第八章 热力学基础 第九章 静电场 第十一章 恒定磁场…...

随笔-近况

好久没写了&#xff0c;手都生了。 我写的东西可以分为两类&#xff1a;技术和随笔。当然技术没有我自己创新的&#xff0c;都是些在解决问题过程中查询了很多资料&#xff0c;经过验证后&#xff0c;可以在项目上使用的。但是自从 deepseek 出现后&#xff0c;问题一下子简单…...

赤色世界 陈默传 第一章 另一个陈默

赤色世界 陈默传 第一章 另一个陈默 陈默在一片纯白的空间中缓缓睁开眼睛。没有声音&#xff0c;没有光影的变化&#xff0c;只有无尽的空白包围着他&#xff0c;仿佛整个世界被擦去了所有的色彩和形状。他站在那里&#xff0c;赤脚踩在这片空无一物的地面上&#xff0c;却能感…...

isp流程介绍(yuv格式阶段)

一、前言介绍 前面两章里面&#xff0c;已经分别讲解了在Raw和Rgb域里面&#xff0c;ISP的相关算法流程&#xff0c;从前面文章里面可以看到&#xff0c;在Raw和Rgb域里面&#xff0c;很多ISP算法操作&#xff0c;更像是属于sensor矫正或者说sensor标定操作。本质上来说&#x…...

关于大数据的基础知识(一)——定义特征结构要素

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于大数据的基础知识&#xff08;一&a…...

C++(1):整数常量

目录 一、进制表示 二、后缀指定类型 三、示例与注意 四、总结表 一、进制表示 十进制&#xff08;Decimal&#xff09; 格式&#xff1a;无前缀&#xff0c;由数字 0-9 组成。 示例&#xff1a;123、42。 注意&#xff1a;不能以 0 开头&#xff08;否则会被视为八进制&a…...

C# NX二次开发:宏录制实战讲解(第一讲)

今天要讲的是关于NX软件录制宏操作的一些案例。 下面讲如何在NX软件中复制Part体的录制宏。 NXOpen.Session theSession NXOpen.Session.GetSession(); NXOpen.Part workPart theSession.Parts.Work; NXOpen.Part displayPart theSession.Parts.Display; NXOpe…...

C++:书架

【描述】 John最近买了一个书架用来存放奶牛养殖书籍&#xff0c;但书架很快被存满了&#xff0c;只剩最顶层有空余。 John共有N头奶牛(1 ≤ N ≤ 20,000)&#xff0c;每头奶牛有自己的高度Hi(1 ≤ Hi ≤ 10,000)&#xff0c;N头奶牛的总高度为S。书架高度为B(1 ≤ B ≤ S <…...

34.笔记1

今天&#xff0c;我们回顾回顾曾经的知识。 1.二分 还记得当初的二分吗&#xff1f; 1.一开始的二分 就像下面这个故事&#xff1a; 有一只老鼠&#xff0c;躲在10个大瓷瓶后面。你的任务就是抓住这只老鼠&#xff0c;但在抓的过程会导致你选择的大瓷瓶成为分子碎片。 如…...

智慧工会服务平台建设方案Word(23页)

1. 引言 随着信息技术的快速发展&#xff0c;传统工会服务模式面临挑战&#xff0c;智慧工会服务平台应运而生。该平台旨在通过数字化手段&#xff0c;整合工会资源&#xff0c;优化服务流程&#xff0c;提高工作效率&#xff0c;为会员提供更加便捷、高效、个性化的服务体验。…...

常见降维算法分析

一、常见的降维算法 LDA线性判别PCA主成分分析t-sne降维 二、降维算法原理 2.1 LDA 线性判别 原理 &#xff1a;LDA&#xff08;Linear Discriminant Analysis&#xff09;线性判别分析是一种有监督的降维方法。它的目标是找到一个投影方向&#xff0c;使得不同类别的数据在…...

洛谷 P1179【NOIP 2010 普及组】数字统计 —— 逐位计算

题面:P1179 [NOIP 2010 普及组] 数字统计 - 洛谷 一&#xff1a;题目解释&#xff1a; 需要求一区间内数字 2 的出现次数。注意22则记为 2 次&#xff0c;其它没别的... 二&#xff1a;思路、 思想可以考虑动态规划需要计算在每一位上数字 2 的出现次数&#xff0c;然后将这些…...

互联网大厂Java求职面试:基于RAG的智能问答系统设计与实现-1

互联网大厂Java求职面试&#xff1a;基于RAG的智能问答系统设计与实现-1 场景背景 在某互联网大厂的技术面试中&#xff0c;技术总监张总正在面试一位名为郑薪苦的求职者。郑薪苦虽然对技术充满热情&#xff0c;但回答问题时总是带着幽默感&#xff0c;有时甚至让人哭笑不得。…...

学习黑客5 分钟读懂什么是 CVE?

5 分钟读懂什么是 CVE&#xff1f; ⏱️&#x1f510; 目标读者&#xff1a; 安全小白 风格&#xff1a; ***式清晰、循序渐进 篇幅&#xff1a; 5 分钟速读 &#x1f4d6; 目录 &#x1f680; 什么是 CVE&#xff1f;&#x1f914; 为什么要关注 CVE&#xff1f;&#x1f50d…...

SAM详解3.1(关于2和3的习题)

SAM SAMluogu5341SP8222SAM 推销一波前面的文章: SAM详解1 SAM详解2(初级应用) SAM详解3(SAM与AC自动机的相似性,SAM处理字符串匹配) luogu5341 题目链接 精简题意:给你一个字符串和 k k k,求 出现了 k k k 次的子串的长度 的出现次数 的最大值。 我们可以用 S…...

Java中医门诊系统源码 中医诊所系统源码

Java中医门诊系统源码 中医诊所系统源码 一、患者信息录入在中医问诊系统中&#xff0c;患者信息录入是第一步。系统会要求患者填写一些基本信息&#xff0c;如姓名、年龄、性别、职业等&#xff0c;以及一些关于健康状况的详细描述。这些信息将被系统自动保存&#xff0c;并用…...