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

LLaMA-Factory 数据集成从入门到精通

一、框架概述

LLaMA-Factory 框架通过Alpaca/Sharegpt双格式体系实现多任务适配,其中Alpaca专注结构化指令微调(含SFT/DPO/预训练),Sharegpt支持多角色对话及多模态数据集成。核心配置依托 dataset_info.json 实现数据源映射、格式定义(formatting)、列名绑定(columns)及角色标签(tags)设置,需特别注意多模态路径与文本标记的严格匹配。优先级规则遵循:云端仓库 > 本地脚本 > 文件直读,配置时须规避角色标签冲突和路径验证疏漏等常见误区。


二、数据集配置规范

dataset_info.json 包含了所有可用的数据集。如果您希望使用自定义数据集,请务必dataset_info.json 文件中添加数据集描述,并通过修改 dataset: 数据集名称 配置来使用数据集。

目前我们支持 alpaca 格式和 sharegpt 格式的数据集。

"数据集名称": {"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)"}
}

Alpaca 格式

指令监督微调数据集

  • 样例数据集

在指令监督微调时,instruction 列对应的内容会与 input 列对应的内容拼接后作为人类指令,即人类指令为 instruction\ninput。而 output 列对应的内容为模型回答。

如果指定,system 列对应的内容将被作为系统提示词。

history 列是由多个字符串二元组构成的列表,分别代表历史消息中每轮对话的指令和回答。注意在指令监督微调时,历史消息中的回答内容也会被用于模型学习

[{"instruction": "人类指令(必填)","input": "人类输入(选填)","output": "模型回答(必填)","system": "系统提示词(选填)","history": [["第一轮指令(选填)", "第一轮回答(选填)"],["第二轮指令(选填)", "第二轮回答(选填)"]]}
]

对于上述格式的数据,dataset_info.json 中的数据集描述应为:

"数据集名称": {"file_name": "data.json","columns": {"prompt": "instruction","query": "input","response": "output","system": "system","history": "history"}
}

预训练数据集

  • 样例数据集

在预训练时,只有 text 列中的内容会用于模型学习。

[{"text": "document"},{"text": "document"}
]

对于上述格式的数据,dataset_info.json 中的数据集描述应为:

"数据集名称": {"file_name": "data.json","columns": {"prompt": "text"}
}

偏好数据集

偏好数据集用于奖励模型训练、DPO 训练、ORPO 训练和 SimPO 训练。

它需要在 chosen 列中提供更优的回答,并在 rejected 列中提供更差的回答。

[{"instruction": "人类指令(必填)","input": "人类输入(选填)","chosen": "优质回答(必填)","rejected": "劣质回答(必填)"}
]

对于上述格式的数据,dataset_info.json 中的数据集描述应为:

"数据集名称": {"file_name": "data.json","ranking": true,"columns": {"prompt": "instruction","query": "input","chosen": "chosen","rejected": "rejected"}
}

KTO 数据集

KTO 数据集需要提供额外的 kto_tag 列。详情请参阅 sharegpt。

多模态图像数据集

多模态图像数据集需要提供额外的 images 列。详情请参阅 sharegpt。

多模态视频数据集

多模态视频数据集需要提供额外的 videos 列。详情请参阅 sharegpt。

多模态音频数据集

多模态音频数据集需要提供额外的 audios 列。详情请参阅 sharegpt。

Sharegpt 格式

指令监督微调数据集

  • 样例数据集

相比 alpaca 格式的数据集,sharegpt 格式支持更多的角色种类,例如 human、gpt、observation、function 等等。它们构成一个对象列表呈现在 conversations 列中。

注意其中 human 和 observation 必须出现在奇数位置,gpt 和 function 必须出现在偶数位置。

[{"conversations": [{"from": "human","value": "人类指令"},{"from": "function_call","value": "工具参数"},{"from": "observation","value": "工具结果"},{"from": "gpt","value": "模型回答"}],"system": "系统提示词(选填)","tools": "工具描述(选填)"}
]

对于上述格式的数据,dataset_info.json 中的数据集描述应为:

"数据集名称": {"file_name": "data.json","formatting": "sharegpt","columns": {"messages": "conversations","system": "system","tools": "tools"}
}

预训练数据集

尚不支持,请使用 alpaca 格式。

偏好数据集

  • 样例数据集

Sharegpt 格式的偏好数据集同样需要在 chosen 列中提供更优的消息,并在 rejected 列中提供更差的消息。

[{"conversations": [{"from": "human","value": "人类指令"},{"from": "gpt","value": "模型回答"},{"from": "human","value": "人类指令"}],"chosen": {"from": "gpt","value": "优质回答"},"rejected": {"from": "gpt","value": "劣质回答"}}
]

对于上述格式的数据,dataset_info.json 中的数据集描述应为:

"数据集名称": {"file_name": "data.json","formatting": "sharegpt","ranking": true,"columns": {"messages": "conversations","chosen": "chosen","rejected": "rejected"}
}

KTO 数据集

  • 样例数据集

KTO 数据集需要额外添加一个 kto_tag 列,包含 bool 类型的人类反馈。

[{"conversations": [{"from": "human","value": "人类指令"},{"from": "gpt","value": "模型回答"}],"kto_tag": "人类反馈 [true/false](必填)"}
]

对于上述格式的数据,dataset_info.json 中的数据集描述应为:

"数据集名称": {"file_name": "data.json","formatting": "sharegpt","columns": {"messages": "conversations","kto_tag": "kto_tag"}
}

多模态图像数据集

  • 样例数据集

多模态图像数据集需要额外添加一个 images 列,包含输入图像的路径。

注意图片的数量必须与文本中所有 <image> 标记的数量严格一致。

[{"conversations": [{"from": "human","value": "<image>人类指令"},{"from": "gpt","value": "模型回答"}],"images": ["图像路径(必填)"]}
]

对于上述格式的数据,dataset_info.json 中的数据集描述应为:

"数据集名称": {"file_name": "data.json","formatting": "sharegpt","columns": {"messages": "conversations","images": "images"}
}

多模态视频数据集

  • 样例数据集

多模态视频数据集需要额外添加一个 videos 列,包含输入视频的路径。

注意视频的数量必须与文本中所有 <video> 标记的数量严格一致。

[{"conversations": [{"from": "human","value": "<video>人类指令"},{"from": "gpt","value": "模型回答"}],"videos": ["视频路径(必填)"]}
]

对于上述格式的数据,dataset_info.json 中的数据集描述应为:

"数据集名称": {"file_name": "data.json","formatting": "sharegpt","columns": {"messages": "conversations","videos": "videos"}
}

多模态音频数据集

  • 样例数据集

多模态音频数据集需要额外添加一个 audios 列,包含输入音频的路径。

注意音频的数量必须与文本中所有 <audio> 标记的数量严格一致。

[{"conversations": [{"from": "human","value": "<audio>人类指令"},{"from": "gpt","value": "模型回答"}],"audios": ["音频路径(必填)"]}
]

对于上述格式的数据,dataset_info.json 中的数据集描述应为:

"数据集名称": {"file_name": "data.json","formatting": "sharegpt","columns": {"messages": "conversations","audios": "audios"}
}

OpenAI 格式

OpenAI 格式仅仅是 sharegpt 格式的一种特殊情况,其中第一条消息可能是系统提示词。

[{"messages": [{"role": "system","content": "系统提示词(选填)"},{"role": "user","content": "人类指令"},{"role": "assistant","content": "模型回答"}]}
]

对于上述格式的数据,dataset_info.json 中的数据集描述应为:

"数据集名称": {"file_name": "data.json","formatting": "sharegpt","columns": {"messages": "messages"},"tags": {"role_tag": "role","content_tag": "content","user_tag": "user","assistant_tag": "assistant","system_tag": "system"}
}

三、常见问题排查


问题dataset_info.jsonhf_hub_urlms_hub_urlscript_urlfile_name 的优先级关系是什么?

答案

优先级为 hf_hub_url/ms_hub_url > script_url > file_name。若指定了 hf_hub_urlms_hub_url,系统会直接从 Hugging Face 或 ModelScope 加载数据集,忽略 script_urlfile_name;若未指定,则依次检查 script_urlfile_name

误区举例:用户可能同时填写多个字段(如同时指定 hf_hub_urlfile_name),导致实际加载数据集时忽略本地文件,引发数据路径错误。


问题:偏好数据集(DPO/ORPO)的配置中,Alpaca 格式和 Sharegpt 格式的 columns 字段有何差异?

答案

  • Alpaca 格式需指定 chosenrejected 列,对应优质和劣质回答,并设置 "ranking": true
  • Sharegpt 格式需将 chosenrejected 配置为消息对象(如 {"from": "gpt", "value": "回答"}),并同样设置 "ranking": true

误区举例:用户可能误将 Sharegpt 格式的 chosen/rejected 配置为纯文本(而非消息对象),导致解析失败;或在 Alpaca 格式中遗漏 "ranking": true,导致数据集未被识别为偏好类型。


问题:多模态数据集(如图像)的配置中,images 列与文本中的 <image> 标记为何需严格数量一致?

答案

images 列中的文件路径数量必须与文本中 <image> 标记的数量完全一致,以确保模型能正确关联图像输入与文本指令。例如,若文本中有 2 个 <image> 标记,则 images 列必须包含 2 个路径。

误区举例:用户可能在数据预处理时未检查标记数量与文件路径的匹配性,导致训练时因数据格式错误而中断。


问题:Sharegpt 格式的 tags 字段(如 role_taguser_tag)有何作用?如何适配 OpenAI 格式数据?

答案

  • tags 字段用于自定义消息中角色和内容的键名。例如,OpenAI 格式的 rolecontent 需通过 tags 映射为 role_tag: "role"content_tag: "content"
  • 适配 OpenAI 格式需额外设置 user_tag: "user"assistant_tag: "assistant"system_tag: "system"

误区举例:用户可能未正确配置 tags,导致无法解析第三方格式(如 OpenAI)的消息结构,或因角色标签冲突(如 system 覆盖系统列)引发错误。


问题:KTO 数据集的 kto_tag 列在配置时需要注意什么?

答案

kto_tag 列需包含布尔类型(True/False)的标签,表示人类对回答的反馈。在 dataset_info.json 中需显式声明 "kto_tag": "列名",且数据集格式必须为 Sharegpt。

误区举例:用户可能误将 kto_tag 配置为字符串(如 "true" 而非布尔值 true),或忘记设置 "formatting": "sharegpt",导致数据加载失败。


问题:在 Alpaca 格式中,history 列的作用是什么?如何正确配置它?

答案

  • 作用: history 列存储历史对话的指令和回答(二元组列表),用于多轮对话场景。模型会学习历史对话内容,而不仅是当前指令和回答。
  • 配置: 需在 dataset_info.json 中明确指定 "history": "列名",且数据格式应为 [["指令1", "回答1"], ["指令2", "回答2"]]

误区举例: 用户可能忽略 history 列的存在,导致多轮对话数据未被利用;或错误配置为单字符串(如 "instruction,answer"),引发解析错误。


问题:预训练数据集的 Alpaca 格式为何只需 text 列?如何与指令微调数据集区分?

答案

  • 原因: 预训练目标是学习通用文本表示,因此仅需原始文本(text 列),无需指令或回答结构。
  • 区分: 指令微调需 instruction/output 等列,而预训练只需 "columns": {"prompt": "text"}。若误用指令数据配置预训练,会导致模型忽略关键字段。

误区举例: 用户可能混淆预训练和微调的数据格式,错误地将指令数据用于预训练,浪费计算资源。


问题:Sharegpt 格式中,tools 列的作用是什么?是否必须与 function_call 角色配合使用?

答案

  • 作用: tools 列定义工具的描述(如 API 文档),供模型生成工具调用参数(function_call 角色)。
  • 配合要求: 是。若数据包含 function_call 消息,则需提供 tools 列;若无工具调用,可省略。

误区举例: 用户可能遗漏 tools 列但保留 function_call 消息,导致模型无法理解工具定义;或反向误配,引发训练错误。


问题:如何正确处理多模态数据(如图像、视频)中的路径问题?

答案

  • 要求: 文件路径需为绝对路径相对于数据集根目录的相对路径,且确保文件实际存在。
  • 验证: 在加载数据集前,应检查 images/videos/audios 列中的路径是否有效,避免因路径错误导致训练中断。

误区举例: 用户可能使用错误路径格式(如未处理系统路径分隔符差异),或未验证文件是否存在,导致多模态数据加载失败。


问题subsetsplit 字段在 dataset_info.json 中有何区别?

答案

  • subset: 指定 Hugging Face/ModelScope 数据集的子集名称(如 "zh" 表示中文子集)。
  • split: 定义数据切分(如 traintest),默认为 train。两者可同时使用(如 "subset": "zh", "split": "test")。

误区举例: 用户可能误将 subset 当作数据切分,或混淆两者优先级,导致加载错误的数据子集。


问题:如何为自定义数据集选择正确的 formatting 值(alpacasharegpt)?

答案

  • 关键判断点:
    1. 角色多样性: 若需多角色(如 human/gpt/function),选 sharegpt
    2. 工具/多模态支持: 涉及工具调用或媒体输入时,必须用 sharegpt
    3. 结构简化性: 若仅需 instruction-output 结构,用 alpaca

误区举例: 用户可能因未全面评估数据复杂度而选错格式,导致后续配置无法适配。


相关文章:

LLaMA-Factory 数据集成从入门到精通

一、框架概述 LLaMA-Factory 框架通过Alpaca/Sharegpt双格式体系实现多任务适配&#xff0c;其中Alpaca专注结构化指令微调&#xff08;含SFT/DPO/预训练&#xff09;&#xff0c;Sharegpt支持多角色对话及多模态数据集成。核心配置依托 dataset_info.json 实现数据源映射、格…...

高级:JVM面试题深度剖析

一、引言 在Java技术面试中&#xff0c;JVM&#xff08;Java虚拟机&#xff09;相关知识是考察重点之一。深入理解JVM的内存模型、垃圾回收机制、类加载机制等&#xff0c;不仅能帮助开发者优化Java应用性能&#xff0c;还能在面试中展现深厚的技术功底。本文将针对这些高频知…...

Spring MVC 中 @ResponseBody 注解深度使用教程

一、注解核心作用 ResponseBody 是 Spring MVC 中处理 响应体内容 的核心注解&#xff0c;主要功能&#xff1a; 跳过视图解析器&#xff1a;直接返回数据而非视图名称自动数据转换&#xff1a;根据返回值类型自动转换响应格式&#xff08;JSON/XML/纯文本&#xff09;RESTfu…...

数据结构第一轮复习--第七章查找(包含课程代码)

基于数组实现顺序查找代码 //顺序查找的实现 typedef struct{ //查找表的数据结构&#xff08;顺序表&#xff09; ElemType *elem; //指向开辟的动态数组基址 &#xff08;起始地址&#xff09; int TableLen; //表的长度 }SSTable; //顺序查找 int Search_Seq(SSTable ST…...

Springboot JPA 集成ShardingSphere

Spring Boot集成JPA与ShardingSphere可通过以下步骤实现分库分表功能&#xff0c;需重点关注依赖配置、分片规则定义及JPA适配问题&#xff1a; 一、依赖配置 1‌. 引入核心依赖‌ 在pom.xml中添加ShardingSphere和JPA相关依赖&#xff1a; <!-- ShardingSphere JDBC --&…...

详细介绍javaspringboot操控redis的高级特性1. 事务支持2. 发布/订阅3. Pipeline批量操作

Spring Boot 对 Redis 的操作提供了丰富的高级特性&#xff0c;以下是对事务支持、发布 / 订阅、Pipeline 批量操作的详细介绍&#xff1a; 事务支持 原理&#xff1a;Redis 事务是一个单独的隔离操作&#xff0c;它可以包含多个命令&#xff0c;这些命令要么全部执行&#x…...

第一次3D打印,一个简单的小方块(Rhino)

一、建模 打开犀牛&#xff0c;我们选择立方体 我们点击上册的中心点 输入0&#xff0c;然后回车0 而后我们输长度&#xff1a;10&#xff0c;回车确认 同样的&#xff0c;宽度10 高度同样是10 回车确认后&#xff0c;我们得到一个正方形 二、导出模型 我们选择文件—>保存…...

数据分享:汽车测评数据

说明&#xff1a;如需数据可以直接到文章最后关注获取。 1.数据背景 Car Evaluation汽车测评数据集是一个经典的机器学习数据集&#xff0c;最初由 Marko Bohanec 和 Blaz Zupan 创建&#xff0c;并在 1997 年发表于论文 "Classifier learning from examples: Common …...

硬盘分区格式之GPT(GUID Partition Table)笔记250406

硬盘分区格式之GPT&#xff08;GUID Partition Table&#xff09;笔记250406 GPT&#xff08;GUID Partition Table&#xff09;硬盘分区格式详解 GPT&#xff08;GUID Partition Table&#xff09;是替代传统 MBR 的现代分区方案&#xff0c;专为 UEFI&#xff08;统一可扩展固…...

辉视智慧医院:以科技温度 重塑医疗未来新生态

大家是否想过&#xff0c;医院里的广播对讲系统也能变身‘智慧管家’&#xff1f;今天带您走进辉视智慧医院&#xff0c;看看他们如何用四大黑科技&#xff0c;让医患沟通更暖心、更高效&#xff01; 一、物联网技术&#xff1a;医疗设备‘开口说话’&#xff0c;广播系统秒变‘…...

Google 发布 Sec-Gemini v1:用 AI 重塑网络安全防御格局?

在网络威胁日益复杂化、自动化程度不断提高的今天&#xff0c;防御方常常感到力不从心。为了扭转这一局面&#xff0c;Google 近日迈出了重要一步&#xff0c;宣布推出专为网络安全领域量身打造的实验性 AI 模型——Sec-Gemini v1。该模型由 Google 内部的 Sec-Gemini 团队成员…...

Android 使用ninja加速编译的方法

ninja的简介 随着Android版本的更迭&#xff0c;makefile体系逐渐增多&#xff0c;导致make单编模块的时间越来越长&#xff0c;每次都需要半个小时甚至更长时间&#xff0c;其原因为每次make都会重新加载所有mk文件&#xff0c;再生成ninja编译&#xff0c;此完整过程十分耗时…...

windterm终端软件使用

windterm终端软件使用 下载安装包&#xff1a;https://github.com/kingToolbox/WindTerm/releases ssh连接&#xff1a; 可以复用vscode连接ssh信息 onekey 相当于服务器主机的用户名和密码 点击配置标签如Linux&#xff0c;输入用户名如root, identity file指定本地公钥&a…...

《操作系统真象还原》第六章——完善内核

文章目录 [toc]前言调用约定和混合编程调用约定混合编程 实现打印函数print.S显卡的端口控制实现单个字符打印put_char定义数据类型put_char编码修改内核main.c验证put_char 实现字符串打印put_str 结语 前言 学完上一章后&#xff0c;我们已经完成了一个操作系统最基本的三个…...

上海餐饮市场数据分析与可视化

上海作为中国的经济中心和国际化大都市,其餐饮市场具有高度的多样性和竞争性。随着消费者需求的不断变化,餐饮行业的从业者和投资者需要深入了解市场现状和趋势,以便制定更有效的商业策略。本文将通过数据分析和可视化技术,深入探讨上海餐饮市场的现状和趋势,为餐饮从业者…...

不花钱也能玩GPT-4o,国内可用

家人们&#xff01;最近GPT-4o生图功能真的离谱到不真实&#xff0c;各种吉卜力、宫崎骏、3D风格等刷爆小红书。 由于只有GPT官网&#xff0c;只有Plus用户才能用&#xff0c;很多小伙伴们都没有机会体验过GPT&#xff0c;本期就分享一个国内也能直接玩的方法。 第一步&#x…...

ResNet改进(22):提升特征选择能力的卷积神经网络SKNet

在计算机视觉领域,残差网络(ResNet)一直是图像分类任务中的经典架构。本文将介绍一种改进版的ResNet18,它融合了选择性核(SK)机制,能够自适应地调整不同感受野的特征权重,从而提升模型性能。下面我们将详细解析这个实现代码。 一、代码概述 这个Python脚本实现了一个带有S…...

实战代码:esp32-cam按钮控制手机拍照V1.0

#include <WiFi.h> #include <HTTPClient.h> // WiFi设置 const char* ssid “MIFI-020806-2.4G”; const char* password “12345678”; // 静态IP配置 IPAddress staticIP(192, 168, 1, 32); // 设置为固定IP IPAddress gateway(192, 168, 1, 1); // 网关地址…...

Base64是密码吗?编码与加密的本质区别

&#xff08;本文完全由deepseek生成&#xff0c;特此声明&#xff01;&#xff09;‌ 引言&#xff1a;一个让开发者“翻车”的经典误区‌ 我们常看到类似这样的提问&#xff1a; “我用Base64加密了用户的密码&#xff0c;为什么还是被黑客破解了&#xff1f;” “Base64解…...

原理图输出网表及调入

一、输出网表操作步骤 &#xff08;1&#xff09;选中.dsn文件&#xff0c;选者N或进入tools下拉列表选择Creat Netlists &#xff08;2&#xff09;导出网表后的文件 二、网表的导入 &#xff08;1&#xff09;执行菜单命令“File-Import-Logic/netlist”&#xff0c;将原理…...

C++ 模板的应用——智能指针、STL库

#include "head.h" #include <stdio.h> using namespace std;void registerUser(vector<string>& number,vector<string>& passwd){string username;string Passwd;cout << "请输入账号:" << endl;cin >> use…...

基于层次建模与交叉注意力融合的医学视觉问答系统(HiCA-VQA)详解

论文地址:https://arxiv.org/pdf/2504.03135 一、论文结构概述 这篇论文提出了一种针对医学视觉问答(Medical Visual Question Answering, Med-VQA)的层次化建模框架 ​HiCA-VQA,旨在解决现有方法在层次化语义建模和跨模态融合上的不足。以下是论文的核心结构: ​引言 介…...

比较与分析敏捷开发方法:XP、Scrum、FDD等的特点与适用场景

目录 前言1. 极限编程 (XP)1.1 极限编程的核心特点1.2 极限编程的适用场景 2. Scrum2.1 Scrum的核心特点2.2 Scrum的适用场景 3. 水晶方法 (Crystal)3.1 水晶方法的核心特点3.2 水晶方法的适用场景 4. 特征驱动开发 (FDD)4.1 特征驱动开发的核心特点4.2 特征驱动开发的适用场景…...

ICMP 协议深度解析

ICMP 协议深度解析 一、协议定位与核心作用 ICMP&#xff08;互联网控制报文协议&#xff09;是IP协议体系的"哨兵系统"&#xff0c;专用于网络状态监控与异常反馈。其核心价值体现在&#xff1a; 轻量级控制&#xff1a;仅传递关键状态信息&#xff0c;不承载业务…...

C语言基础20

内容提要 预处理 库文件 预处理 C语言编译步骤 预处理 编译 汇编 链接 什么是预处理 预处理就是在源文件&#xff08;.c文件&#xff09;编译之前&#xff0c;所进行的一部分预备操作&#xff0c;这部分操作是由预处理程序自动完成。当源文件在编译时&#xff0c;编译…...

conda常用命令

要查看使用conda创建的虚拟环境&#xff0c;可以按照以下步骤操作&#xff1a; 打开终端或命令行工具&#xff1a;确保你已经打开了终端或命令行界面&#xff0c;以便输入conda命令。 输入命令查看环境列表&#xff1a; 使用以下任一命令查看conda创建的虚拟环境&#xff1a…...

Ubunut18.04 离线安装MySQL 5.7.35

一、环境准备 1.1 官方下载MySQL5.7.35 完整包 1.2 上传包 & 解压 上传包名称是&#xff1a;mysql-server_5.7.35-1ubuntu18.04_amd64.deb-bundle.tar # 切换到上传目录 cd /home/MySQL # 解压&#xff1a; tar -xvf mysql-server_5.7.35-1ubuntu18.04_amd64.deb-bundle…...

地图与图层操作

地图文档本质上就是存储在磁盘上的地图&#xff0c;包括地理数据、图名、图例等一系列要素&#xff0c;当完成地图制作、图层要素标注及符号显示设置后&#xff0c;可以将其作为图层文件保存到磁盘中&#xff0c;在一个图层文件中&#xff0c;包括了定义如何在地图上描述地理数…...

红宝书第三十一讲:通俗易懂的包管理器指南:npm 与 Yarn

红宝书第三十一讲&#xff1a;通俗易懂的包管理器指南&#xff1a;npm 与 Yarn 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、基础概念 包管理器&#xff1a;帮你自动下载和管理第三方代码库&#xff08;如…...

李建忠:智能体正将互联网从信息网络重构为行动网络

引言 模型正在从训练为主转换为推理为主的新范式&#xff0c;智能体正将互联网从信息网络重构为行动网络&#xff0c;我们正处在从人类使用互联网到 AI 代理使用互联网的转折点。这不是未来&#xff0c;而是此刻已经发生的颠覆。 3 月 22 日&#xff0c;在腾讯云架构师技术同…...

瑞芯微AI处理器详解

瑞芯微&#xff08;Rockchip&#xff09;的芯片产品线覆盖从低功耗MCU到高性能AIoT处理器&#xff0c;以下是其主流芯片系列及RK3568的市场定位分析&#xff1a; 一、瑞芯微主要芯片系列 旗舰级 RK3588&#xff1a;12nm工艺&#xff0c;4A764A55&#xff0c;6TOPS NPU&#xff…...

Compose Multiplatform+Kotlin Multiplatfrom 第五弹跨平台

截图功能 Compose MultiplatformKotlin Multiplatfrom下实现桌面端的截图功能&#xff0c;起码搞了两星期&#xff0c;最后终于做出来了&#xff0c;操作都很流畅&#xff0c;截取的文件大小也正常&#xff0c;可参考支持讨论&#xff01; 功能效果 代码实现 //在jvmMain下创…...

linux安装ollama

俩种方式都可 一、linux通过docker安装ollama镜像 1.下载安装ollama镜像 # 安装 Docker sudo yum install docker sudo systemctl start docker#docker查看所有容器 docker ps -a # 查看所有容器# docker查看指定容器 docker ps -a |grep ollama# 创建模型存储目录&#xff…...

113. 在 Vue 3 中使用 OpenLayers 实现鼠标移动显示坐标信息

✨ 写在前面 在地图类项目开发中&#xff0c;一个常见需求就是&#xff1a;实时获取用户鼠标在地图上的经纬度坐标&#xff0c;并展示在地图上。 本文将通过一个简单的案例&#xff0c;手把手带大家在 Vue 3 项目中集成 OpenLayers 地图库&#xff0c;并实现以下功能&#xf…...

跳跃游戏的最优解法——贪心算法的智慧与实践

跳跃游戏的最优解法——贪心算法的智慧与实践 跳跃游戏是一类经典的算法题&#xff0c;既有趣又充满挑战&#xff0c;不仅能锻炼思维能力&#xff0c;还能直观展现贪心算法的核心思想。今天&#xff0c;我们从题目入手&#xff0c;拆解贪心算法的原理&#xff0c;用通俗易懂的…...

搭建docker registry私服,并且支持https推送

搭建docker registry私服&#xff0c;并且支持https推送 一、为什么写这篇文章二、搭建过程三、验证 一、为什么写这篇文章 网上关于搭建docker registry的文章一大把&#xff0c;但是都是配置为http方式推送&#xff0c;且需要显示端口&#xff0c;这个在真正项目使用中&…...

UniApp Vue 3 中的网络请求封装及用法

在UniApp中&#xff0c;结合Vue 3的强大特性&#xff0c;进行网络请求的封装是项目中常见的需求。这样的封装不仅提高了代码的可维护性&#xff0c;还使得在组件中使用网络请求更加简洁。本文将详细介绍UniApp Vue 3中的网络请求封装&#xff0c;并提供一个简单的用法示例。 创…...

策略模式结合模板方法模式

之前学习了策略模式加模板方法模式 策略模式单独详解 模板方法模式单独详解 这里回忆起完全可以进行策略和模板方法模式的组合。 import java.util.HashMap; import java.util.Map;// 上下文对象&#xff08;解决参数传递问题&#xff09; class OrderContext {private final…...

每日算法-250407

记录一下今天刷的三道 LeetCode 题目。 2389. 和有限的最长子序列 题目 思路 排序 前缀和 二分查找 解题过程 理解题意: 题目要求我们对于 queries 数组中的每个查询值 q&#xff0c;找出 nums 数组中元素和 小于等于 q 的 最长子序列 的长度。注意&#xff0c;是子序列&am…...

【Git “ls-tree“ 命令详解】

本章目录: 1. 命令简介2. 命令的基本语法和用法基本语法常见使用场景示例 1&#xff1a;查看当前提交的文件树示例 2&#xff1a;查看某个分支的文件树示例 3&#xff1a;查看特定路径下的文件树 3. 命令的常用选项及参数常用选项&#xff1a; 4. 命令的执行示例示例 1&#xf…...

Text-to-SQL技术深度解析:从理论突破到工程实践

引言:Text-to-SQL的技术演进与当代价值 在当今数据驱动的商业环境中,结构化数据查询语言(SQL)仍然是访问和分析企业数据的核心工具。然而,SQL的专业性要求构成了数据民主化的主要障碍——据统计,仅约35%的开发人员接受过系统的SQL培训,而超过51%的专业岗位需要SQL技能。T…...

Spring Boot 整合 Servlet三大组件(Servlet / Filter / Listene)

Spring Boot 整合 “Servlet三大组件“ ( Servlet / Filter / Listene ) 目录如下&#xff1a; pom.xml配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.…...

react 18 可中断的理解以及应用

React 的“可中断&#xff08;interruptible&#xff09;”渲染&#xff0c;指的是 React 在执行渲染过程中可以暂停、中断、再继续或放弃更新。这是 React 18 引入的并发特性的一部分&#xff0c;目的是让界面响应更流畅&#xff0c;防止“卡顿”。 &#x1f4d6; 举个例子&am…...

C++使用Qt Charts可视化大规模点集

引言 数据可视化是数据分析和决策过程中的重要环节。随着数据量的不断增长&#xff0c;如何高效地可视化大规模数据集成为了一个挑战。Qt Charts 提供了一个强大的工具集&#xff0c;用于创建直观的数据可视化图表。本文将探讨如何使用 C 和 Qt Charts 可视化大规模点集&#…...

第一部分——Docker篇 第二章 Docker安装

关于系统的改造探索 开篇&#xff1a;系统改造的调研报告 第一部分——Docker篇 第一章 Docker容器 第二章 Docker安装 第三章 构建自定义镜像 第四章 搭建镜像仓库 第五章 容器编排 第六章 容器监控 文章目录 关于系统的改造探索第一部分——Docker篇 前言一、在线环境二、…...

Transformer - 多头自注意力机制复现

一、数学原理 1. 多头注意力机制 多头注意力机制允许模型在不同的表示子空间中关注输入序列的不同部分。它通过并行计算多个注意力头来实现这一点&#xff0c;每个头学习序列的不同部分。 2. 注意力分数计算 3. 掩码机制 掩码机制用于防止模型访问某些位置的信息。例如&…...

SpringCloud-快速通关(一)

本文是基于【雷丰阳老师&#xff1a;尚硅谷2025最新SpringCloud - 快速通关】进行实践操作&#xff0c;并对雷神的笔记做一个更详细的补充&#xff0c;供大家学习参考&#xff0c;一起加油&#xff01; 视频地址&#xff1a;SpringCloud快速通关_教程简介_哔哩哔哩_bilibili …...

Ansible Playbook详解:自动化配置管理的核心

1. 引言 Ansible Playbook是Ansible自动化系统的核心,它使用YAML格式描述一系列要在远程系统上执行的任务。通过Playbook,我们可以将复杂的IT操作转化为可重复、可版本控制的代码。本文将深入探讨Playbook的结构、语法和高级特性,帮助读者掌握编写高效、可维护的Playbook的…...

【实践总结】如何编写“多角色适配”的高质量技术文档?

一份文档想要“一稿多用”?先别急着开写!先读完这篇总结,你将学会如何拆解目标、设计结构、提升可读性,让文档不再顾此失彼。 🔍 背景:一文多用,常常适得其反 在实际的软件项目中,我们往往希望通过一份设计文档,同时完成以下多个目标: ✅ 描述系统结构,便于团队成…...

Ansible 入门教程:从零开始掌握自动化运维

1. 引言 在当今快速发展的IT环境中,自动化运维已成为提高效率、减少人为错误的关键。Ansible作为一个简单yet强大的自动化工具,正受到越来越多DevOps工程师的青睐。本文将带领读者从零开始,逐步掌握Ansible的核心概念和基本用法,为自动化运维之路打下坚实基础。 2. Ansible简…...