Qwen3高效微调
高效微调
场景、模型、数据、算力
高效微调的应用场景
对话风格微调:高效微调可以用于根据特定需求调整模型的对话风格。例如,针对客服系统、虚拟助理等场景,模型可以通过微调来适应不同的 语气、礼貌程度 或 回答方式,从而在与用户互动时提供更符合要求的对话体验。通过微调少量的参数(例如对话生成的策略、情感表达等),可以使
模型表现出更具针对性和个性化的风格。
知识灌注:知识灌注是指将外部知识或领域特定的信息快速集成到已有的预训练模型中。通过高效微调,模型可以更好地学习新领域的专有知识,而无需重新从头开始训练。例如,对于法律、医疗等专业领域,可以使用少量的标注数据对预训练模型进行微调,帮助模型理解特定行业的术语、规
则和知识,进而提升专业领域的问答能力。
推理能力提升:高效微调还可以用于提升大模型的推理能力,尤其是在处理更复杂推理任务时。通过微调,模型能够更加高效地理解长文本、推理隐含信息,或者从数据中提取逻辑关系,进而在多轮推理任务中提供更准确的答案。这种微调方式可以帮助模型在解答复杂问题时,提高推理准确性并减少错误。
Agent能力(Function calling能力、或者MCP能力)提升:在多任务协作或功能调用场景中,高
效微调能够显著提升模型的Agent能力,使得模型能够有效地与其他系统进行交互、调用外部API或
执行特定任务。通过针对性微调,模型可以学会更精准的功能调用策略、参数解析和操作指令,从
而在自动化服务、智能助手或机器人控制等领域表现得更加高效和智能。
模型微调技术
1.1 微调基本概念
所谓大模型微调,指的在已有的大规模预训练模型基础上,通过对标注数据进行训练,进一步优化
模型的表现,以适应特定任务或场景的需求。不同于RAG或者Agent技术,通过搭建工作流来优化模型表现,微调是通过修改模型参数来优化模型能力,是一种能够让模型“永久”掌握某种能力的方法。
1.2 全量微调与高效微调
从方法的大类上来划分,微调又可以划分为全量微调:带入全部数据进行微调,和高效微调:只
带入部分数据进行微调。毫无疑问,全量微调是一种算力消耗更大、但对模型的能力改造更为彻底的方法,而高效微调则更类似一种“四两拨千斤”的方法,通过修改模型部分参数,来调整模型整体能力。
1.3 模型微调的优劣势分析
尽管模型微调能够通过修改模型参数的方式,永久的修改模型的能力,但这其实是一把双刃剑,如
果处理不当,很可能造成模型原始能力的灾难性遗忘、即会导致模型原始能力丢失,对于复杂模型尤其如此。而为了能够满足微调最初目标,我们必须小心谨慎的设计模型微调数据集和微调训练流程,并经过反复多次训练验证,得到一个最佳模型。
1.4 高效微调与LoRA、QLoRA
用于大模型的最主流的高效微调方法只有一种—LoRA。
LoRA(Low-Rank Adaptation)微调是一种参数高效的微调方法,旨在通过引入低秩矩阵来减少微
调时需要调整的参数数量,从而显著降低显存和计算资源的消耗。具体来说,LoRA 微调并不直接调整原始模型的所有参数,而是通过在某些层中插入低秩的适配器(Adapter)层来进行训练。
LoRA的原理:
在标准微调中,我们会修改模型的所有权重,而在 LoRA 中,只有某些低秩矩阵(适配器)被训练
和调整。这意味着原始模型的参数保持不变,只是通过少量的新参数来调整模型的输出。低秩矩阵的引入可以在显存和计算能力有限的情况下,依然有效地对大型预训练模型进行微调,从而让 LoRA 成为显存较小的设备上的理想选择。
LoRA的优势:
- 显存优化: 只需要调整少量的参数(适配器),显著减少了显存需求,适合显存有限的GPU。
- 计算效率: 微调过程中的计算负担也更轻,因为减少了需要调整的参数量。
- 灵活性: 可以与现有的预训练模型轻松结合使用,适用于多种任务,如文本生成、分类、问答等。
QLoRA(Quantized Low-Rank Adaptation)
是 LoRA 的一个扩展版本,它结合了 LoRA 的
低秩适配器和量化技术。QLoRA 进一步优化了计算效率和存储需求,特别是在极端显存受限的环境下。与 LoRA 不同的是,QLoRA 会将插入的低秩适配器层的部分权重进行量化(通常是量化为 INT4 或INT8),在保持性能的同时显著降低模型的存储和计算需求。
核心思想
在 LoRA 的基础上加入量化技术,减少权重表示的位数,从而降低显存和计算需求。QLoRA 结合了低秩适配器和量化的优点,能够在显存有限的设备上进行更高效的微调。
量化: 通过将模型权重量化为低精度(如 INT4),减少内存占用,并提高推理和训练速度。
优势:在显存非常有限的情况下仍能进行微调。
Qwen 3 模型
网络结构主要的改进点:
attention层
使用了grouped query attention:主要是节约显存
Q和K做attention前分别做了RMSNorm:分别做归一化,主要是为了后续梯度下降时快速收敛,避免来回震荡
MLP层
经典的MLP就是多层全连接,但这里明显多了linear层,核心目的是做信息筛选(通过乘以矩阵过滤某些不重要的信息),所以取名Gate。经过Gate后才是相乘来融合信息,最终再经过linear降维进入output
滑动窗口
最长已经到128K了,这么长的context,attention怎么做?attention的算法是找到距离接近的token,然后把value按照weight比例加过来,核心目的做信息融合:距离近的value多融合一些,距离远的就少融合一些;从业务上讲意义接近的token之间的距离不会太远,比如几十万字的书,某个章节内部的token之间距离较近,章节之间的token距离不会那么近了,所以站在业务角度:短距离内的token再计算相似度就行了,距离太远其实已经没啥业务关联了,没必要做attention!按照这个思路,Qwen3把attention的距离缩短到了4096个,也就是4k的距离,使用的是sliding windows实现的
图示如下:
专家模型
大参数model还是用MOE,推理的时候选择top 8个expert计算:
训练过程
- 网络爬取的高质量文本;
- 使用qwen2.5-VL从PDF文档中提取的内容.这是个多模态的model,应该是从图片提取文本
- 由Qwen2.5-Math和awen2.5-Coder合成的专业领域数据
数据准备妥当后,就要train了;总所周知,LLM目前train的范式分别是pre-train、post-train;pre-train没啥说的,核心是post-train了,一般先做SFT,再做RL;Qwen3也不例外,也是这个套路,不过因为需求多样,post-train做了4个阶段
- 阶段1:使用math、code、long-cot、STEM等问题做SFT,让model具备这些领域的知识,配备基础的推理能力
- 阶段2:做大规模的RL,利用基于规则(code、math等很容易判断对错)的reward让model做大量的exploration,提升其探索、专研能力
- 阶段3:在一份包括long-cot数据和常用的instruction数据的组合数据上对模型进行微调,将非思考模式整合到思考模型中,确保了推理和快速响应能力的无缝结合。
并不是所有的问题都要深度思考,比如用户问1+1等于多少?这种简单问题还做long-cot这种思考推理那就是浪费用户时间和自己的算力;所以也要用一些non-cot数据训练,让model学会快速响应和回复! - 阶段4:在包括指令遵循、格式遵循和Agent 能力等在内的 20 多个通用领域的任务上应用了RL,以进一步增强模型的通用能力并纠正不良行为。让model严格遵循指令输出response,比如输出json格式的数据;或则按照agent的需求输出结果,所以这一步需要加强训练,以便输出的格式符合预期!
大模型训练完后,为了方便不同层级和场景的用户使用,需要蒸馏成不同的尺寸.
Qwen3一个明显的特点是支持两种不同的思考模式:
思考模式:在这种模式下,模型会逐步推理,经过深思熟虑后给出最终答案。这种方法非常适合需要深入思考的复杂问题。
非思考模式:在此模式中,模型提供快速、近乎即时的响应,适用于那些对速度要求高于深度的简单问题:自动带上think标签,并且标签里面是空的;
数据
如何创建和选取模型微调数据集,是决定模型微调效果成败的最关键因素,截止目前,已经诞生了各类不同的微调框架和海量的微调数据集,在绝大多数情况下,我们只需要选择不同的微调框架并搭配不同的数据集即可。但伴随着模型能力越来越复杂,包括现阶段很多模型具备了Function calling功能,甚至是具备了推理或者混合推理能力,此时如果希望进行一些复杂功能****,希望给模型进行特定领域的知识关注,或者提升模型对于特殊工具组的工具调用准确率,此时就需要手动创建微调数据集了。而要手动合并或者创建微调数据集,就必须深入了解微调数据集构造背后的原理。
对于当代大模型来说,普遍需要通过一些特殊字符来标记用户的不同类型输入、系统提示词、以及工具调用或者多模态输入。其中 <|im_start|> 代表文本开始,而 user 则代表消息身份,用于构建多轮对话,**而 <|im_end|> 则代表文本结束,即用户输入结束,**而 <|im_start|> 代表新一段文本开始, assistant 代表接下来由模型创建消息,而 <|im_end|> 同样代表模型创建消息的结束。
模型通过这样一组特殊字符标记来规范自己的行为,判断当前消息类型,以及通过输出特
殊标记来确定停止时间。对于绝大多数模型,我们可以在模型的 tokenizer_config.json 中看到完整的特殊标记符(以及系统提示词模板)
以Qwen3为例:
1. 模型内置特殊字符及提示词模板
在实际微调过程中,我们都知道需要有监督的数据集、也就是需要输入QA对来进行微调。以著名的alpaca_zh中文微调数据集来说,其基本格式如下:
而在真实的微调过程中,如果是针对Qwen3进行微调,微调脚本会将这条数据集(无论什么格式)转化为如下格式:
在实际训练过程中,模型就会根据assistant前的内容,学习assistant后面的输出内容。
2. 带有系统提示和Function calling微调数据集格式
在很多场景下,我们还会发现一些带有 instruction 字段的微调数据集,那 instruction 字段是
如何带入到微调过程中的呢?
答案非常简单,还是依靠特殊字符。例如有一个对话内容如下:
系统提示词(instruction):你是一名助人为乐的助手。
用户输入(input):你好,好久不见。
助手回复(output):是的呀,好久不见,最近有什么有趣的事情要和我分享么?
此时模型的输入和输出如下:
即会通过 <|im_start|>system…<|im_end|> 来标记系统提示词。实际进行微调时,模型会根据
assistant为界,学习assistant之前的文本输入情况下应该如何输出。
更进一步的,如果对话过程中带入了Function calling,此时首先模型会读取提前准备好的tool
schema(也可能是自动生成的,例如MCP即可自动创建tool schema):
而假设我们的对话内容如下:
系统提示词(instruction):你是一名助人为乐的助手。当用户查询天气的时候,请调用
get_weather函数进行天气信息查询。
用户输入(input):你好,请帮我查询下北京天气。
助手回复(output):{"name": "get_weather", "arguments": {"location": "北京"}}
此时回复内容就是一条Function call message
而此时模型真实的输入和输出内容如下:
<|im_start|>system
你是一名助人为乐的助手。当用户查询天气的时候,请调用get_weather函数进行天气信息查询。
#Tools
You may call one or more functions to assist with the user query.
You are provided with function signatures within <tools></tools> XML tags:
<tools>
{"name": "get_weather", "description": "查询指定城市的天气信息", "parameters":
{"type": "object", "properties": {"location": {"type": "string", "description":
"要查询天气的城市名称"}}, "required": ["location"]}}
</tools>
For each function call, return a json object with function name and arguments
within <tool_call></tool_call> XML tags:
<tool_call>
{"name": <function-name>, "arguments": <args-json-object>}
</tool_call>
<|im_end|>
<|im_start|>user
你好,请帮我查询下北京天气。<|im_end|>
<|im_start|>assistant
<tool_call>
{"name": "get_weather", "arguments": {"location": "北京"}}
</tool_call><|im_end|>
接下来在进行训练时,**模型同样根据assistant前的内容,学习assistant后面的输出内容。**不过需要注意的是,由于高效微调调整的参数量较少,因此只能优化模型的Function calling能力,并不能从无到有让模型学会Function calling.
3. 带有思考过程的微调数据集结构
<|im_start|>system 你是一名助人为乐的助手。<|im_end|>
<|im_start|>user你好,好久不见。<|im_end|> <|im_start|>assistant < think>好的,用户发来“你好,好久不见!”,我需要回应。首先,用户可能希望得到亲切的回应,所以应该用友好的 语气。 </ think>是的呀,好久不见,最近有什么有趣的事情要和我分享么?<|im_end|>
模型同样根据assistant前的内容,学习assistant后面的输出内容。也就是说,所谓的思考过程,本质上其实是一种文本响应格式,通过模型训练而来。
最后难度升级,假设是带有思考过程、系统提示词的Function calling流程呢?
内容如下:
系统提示词(instruction):你是一名助人为乐的助手。当用户查询天气的时候,请调用
get_weather函数进行天气信息查询。
用户输入(input):你好,请帮我查询下北京天气。
助手回复(output):好的,用户问北京今天的天气,我应该尝试调用工具get_weather,并将参
数设置为北京。/n{“name”: “get_weather”, “arguments”: {“location”: “北京”}}
无法成功后返回结果等数据,此外,在真实的Functioncalling能力训练数据集中,还需要包含至少几十种或者上百种API工具调用,才能让大模型本身识别外部工具的能力得到泛化。
个人建议:
- 微调数据集2000-5000条最佳,因为随着轮次和数据量的增加,会导致模型参数频繁更新,当不断更新时,会导致参数偏离原始权重参数
- 微调数据集1w条以上,需要混入推理数据,最好再搭配一万条其它类型的聊天数据,2万条数学类或代码类的推理类通用数据集
- 和数据配比1:1,禁止1万推理数据集,然后另一万数据集直接去掉,相同的问法,但是不一样的回答会导致模型变傻
主流微调工具介绍
在入手学习大模型微调时,首先推荐功能层次封装层次较高的微调工具:unsloth、LlamaFactory。除此之外,也可以借助更加底层的库,如peft、LoRA、transformer等实现高效微调。目前首推使用现成工具来进行微调。
unsloth
是一个专为大型语言模型(LLM)设计的动态量化与微调框架,旨在提高微调效率并减少显存占用。 相比传统方法,Unsloth采用独家4bit动态量化技术,能够在更短的时间内完成微调任务,节省时间成本,使 LLM 的微调速度提高 2-5 倍,显存使用量减少约 80%,且准确度无明显下降。目前,关于 Qwen3 模型在 4-bit 动态量化下的具体性能下降数据尚不全面。然而,根据最近的一项研究,Qwen3 模型在4bit动态量化时,仅损失不到1%的性能。
不过需要注意的是,动态量化由利也有弊,其好处在于可以极大程度压缩模型运行所需占用的显存
大小,同时几乎不损失性能,但问题在于动态量化的模型,无论是推理还是微调,只能单卡运行,这就使得其吞吐量有限,无法在一台物理机上实现多GPU并行从而扩大吞吐量。
LLama-Factory
LLaMA-Factory 是一个统一且高效的微调框架,旨在为超过 100 种**大型语言模型(LLMs)和视觉
语言模型(VLMs)**提供便捷的微调支持。 用户能够灵活地定制模型以适应各种下游任务。: 除了传统的文本任务外,LLaMA-Factory 还视频识别、音频理解等多种任务类型。
相关文章:

Qwen3高效微调
高效微调 场景、模型、数据、算力 高效微调的应用场景 对话风格微调:高效微调可以用于根据特定需求调整模型的对话风格。例如,针对客服系统、虚拟助理等场景,模型可以通过微调来适应不同的 语气、礼貌程度 或 回答方式,从而在与…...

Gitee Wiki:重塑关键领域软件研发的知识管理范式
在数字化转型浪潮席卷全球的当下,关键领域软件研发正面临前所未有的知识管理挑战。传统文档管理模式的局限性日益凸显,知识传承的断层问题愈发严重,团队协作效率的瓶颈亟待突破。Gitee Wiki作为新一代知识管理平台,正在通过技术创…...

redis的哨兵模式和Redis cluster
目录 一. redis的主从复制 二. 哨兵模式 2.1 定义 2.2 作用 2.3 配置实例 三. Redis cluster 3.1 定义 3.2 作用 3.3 配置实例 1. 新建集群文件目录 2. 准备可执行文件到每个文件夹 3. 开启群集功能 4. 启动redis节点 5. 查看是否启动成功 6. 启动集群 7. 测试…...
MySQL计算精度计算加减乘除取模方式和方法总计
以下是 MySQL 中常用计算方式和方法 的总结,涵盖不同场景下的使用方式及示例说明: 1. 基本算术运算 适用场景: 对表中的字段或数值进行基础数学运算(加、减、乘、除、取模)。适用于单条记录的字段计算(如单价+税金、折扣后的价格等)。运算符: 运算符描述示例+加法SELE…...

农业机器人的开发
农业机器人的开发 喷农药机器人 番茄采摘机器人 葡萄采摘机器人 黄瓜采摘机器人 西瓜采摘机器人 蘑菇采摘机器人 草莓采摘机器人 草莓采摘机器人综述 视觉系统 CCD摄像机,距离传感器,PC计算机 其中CCD摄像机的作用是进行彩色图像的采集和进行果…...

Swift 解锁 LeetCode 热门难题:不改数组也能找出重复数字?
文章目录 摘要描述题解答案题解代码分析解读: 示例测试及结果时间复杂度空间复杂度总结实际场景类比可运行 Demo(Swift Playground)未来展望 摘要 在数组中找出唯一的重复数字,听起来像一道简单的题目,但如果你不能修…...
2025年微信小程序开发:趋势、最佳实践与AI整合
引言 微信小程序自2017年推出以来,已成为中国互联网生态中不可或缺的一部分。根据最新数据,截至2024年,微信小程序的日活跃用户超过4.5亿,总数超过430万个,95%的中国企业拥有自己的小程序(WeChat Mini Pro…...

【深度学习】15. Segment Anything Model (SAM) :基于提示的分割新时代
Segment Anything Model (SAM) :基于提示的分割新时代 基本介绍 The first foundation model for promptable segmentation. Segment Anything Model(简称 SAM)是 Meta AI 于 2023 年提出的一种通用型图像分割基础模型。与以往分割模型不同&…...

Java从入门到精通 - 常用API(一)
常用 API 此笔记参考黑马教程,仅学习使用,如有侵权,联系必删 文章目录 常用 API1. 包代码演示 2. String2.1 String 概述代码演示总结 2.2 String 的常用方法代码演示 2.3 String 使用时的注意事项第一点第二点代码演示 总结题目 2.4 String…...
SQL 筛选出在表1但不在表2中的数据
SQL 筛选出在表1但不在表2中的数据 在SQL中,要筛选出存在于表1但不存在于表2中的数据,有几种常见的方法: 方法1:使用LEFT JOIN WHERE IS NULL SELECT t1.* FROM table1 t1 LEFT JOIN table2 t2 ON t1.join_key t2.join_key W…...
MATLAB实战:实现数字调制解调仿真
以下是使用MATLAB实现BPSK和QPSK数字调制解调仿真的完整代码。该代码包括调制、AWGN信道、匹配滤波/相关解调、星座图绘制以及误码率计算与理论值比较。 %% 清理环境 clear all; close all; clc; %% 参数设置 numBits 100000; % 传输比特数 EbN0_dB 0:2:10; …...
ccf中学生计算机程序设计入门篇课后题p164页test(1)-2 输入一个数,统计这个数二进制中1的个数
include <iostream> using namespace std;int main() {int x;int n 0;// 输入数据cin >> x;// 统计x二进制中1的个数for (n 0; x ! 0; x & x - 1) {n;}// 输出结果cout << n << endl;return 0; }程序解释: 输入:程序从标…...

实现Cursor + Pycharm 交互
效果演示: 直接可以在cursor或Pycharm中点击右键点击,然后就可以跳转到另一个应用的对应位置了 使用方法: 分别在两个应用中安装插件【Switch2Cursor Switch2IDEA,这两个插件分别安装在 IDEA 和 Cursor 中】: Switc…...

C++标准模板库
C标准库参考: C 标准库-CSDN博客 标准模板库STL C 标准库 和 STL 的关系 1. 严格来说,STL ≠ C 标准库 STL(Standard Template Library) 是 C 标准库的一个子集,主要提供泛型编程相关的组件(如容器、迭代器…...

dvwa6——Insecure CAPTCHA
captcha:大概是“我不是机器人”的一个勾选框或者图片验证 LOW: 先输入密码正常修改试一下(123),发现报错 查看源码: <?phpif( isset( $_POST[ Change ] ) && ( $_POST[ step ] 1 ) ) {// Hide the C…...
【机器学习及深度学习】机器学习模型的误差:偏差、方差及噪声
机器学习模型的误差分析 V1.0机器学习模型的衡量准则概念引入机器学习模型误差分析误差出现的原因及消除 V1.0 机器学习模型的衡量准则 衡量机器学习模型的好坏可以考虑以下几个方面: 偏差(Bias): 在充分训练的情况下࿰…...

【学习笔记】On the Biology of a Large Language Model
On the Biology of a Large Language Model 1 Introduction 目标是对这些模型的内部工作机制进行逆向工程,从而更好地理解它们,并评估它们是否适合特定用途。 正如细胞是生物系统的基本构建单元,我们假设特征是模型内部计算的基本单位。仅仅…...

飞腾D2000,麒麟系统V10,docker,ubuntu1804,小白入门喂饭级教程
#下载docker Index of linux/static/stable/ 根据电脑的CPU类型选择: Intel和AMD选x86_64飞腾D2000选aarch64 #选择较新的版本 #在包含下载的docker-XX.X.X.tgz的文件夹中右键->打开终端 # 解压安装包(根据实际下载的文件) tar -zxvf …...

星野录(博客系统)测试报告
目录 一. 项目背景 二、项目功能 三、测试计划 1. 功能测试 1.1 测试用例 1.2 执行测试部分操作截图 2. 使用selenium进行自动化测试 2.1 添加相关依赖 2.2 登录页面测试 3.3 注册页面测试 3.4 博客列表页面测试 3.5 博客详情页测试 3.6 博客编辑页面测试 3.7 个人…...

使用 Java 实现一个简单且高效的任务调度框架
目录 一、任务调度系统概述 (一)任务调度的目标 (二)任务调度框架的关键组成 二、任务状态设计 (一)任务状态流转设计 (二)任务表设计(SQL) 三、单机任务调度实现 (一)获取待处理任务 (二)执行任务 代码实现(单线程版本) (三)多线程提高吞吐量 四…...

2022—2025年:申博之路及硕士阶段总结
文章目录 1 前景概要2 打造神兵利器2.1 夺天地之精2.2 锻兵魂之形2.3 契人兵之命 3 潜心闭关修炼3.1 第一阶段:苦心智3.2 第二阶段:劳筋骨3.3 第三阶段:摧意志 4 突破晋级4.1 突破失败4.2 聚气凝神4.3 心魔再现4.4 新起点 5 回顾及深思 1 前景…...

项目执行中缺乏灵活应对机制,如何增强适应性?
项目执行中缺乏灵活应对机制可以通过建立风险预警机制、培养团队快速响应能力、制定动态调整方案、加强团队沟通协作、引入敏捷管理理念来增强适应性。 其中,培养团队快速响应能力尤为重要。这种能力意味着当项目遇到突发状况时,团队能迅速评估问题、确定…...

Agentic Workflow是什么?Agentic Workflow会成为下一个AI风口吗?
无论是想要学习人工智能当做主业营收,还是像我一样作为开发工程师但依然要运用这个颠覆开发的时代宠儿,都有必要了解、学习一下人工智能。 近期发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,入行门槛低&#x…...
大模型模型推理的成本过高,如何进行量化或蒸馏优化
在人工智能的浪潮中,大模型已经成为推动技术革新的核心引擎。从自然语言处理到图像生成,再到复杂的多模态任务,像GPT、BERT、T5这样的庞大模型展现出了惊人的能力。它们在翻译、对话系统、内容生成等领域大放异彩,甚至在医疗、金融等行业中也开始扮演重要角色。可以说,这些…...

BUUCTF[极客大挑战 2019]EasySQL 1题解
[极客大挑战 2019]EasySQL题解 分析解题过程漏洞原理分析明确注入点:尝试万能密码法法一法二 总结 分析 从题目分析,这道题应该与SQL注入有关,启动靶机之后,访问url是一个登录界面,随便输入用户名密码之后࿰…...
Css样式中设置gap: 12px以后左右出现距离问题解析
原因核心: 虽然写的是: display: flex; gap: 12px;但在实际 DOM 中,这段结构: <div class"el-form-item__content"><div class"el-input"><input type"text" class"el-inpu…...
MySQL问题:count(*)与count(1)有什么区别
Count(1)查询过程 如果表里只有主键索引,没有二级索引时,InnoDB循环遍历主键索引,将读取到的记录返回给Server层,但是不会读取记录中的任何字段的值,因为count函数的参数是1,不是字…...

大模型 提示模板 设计
大模型 提示模板 设计 论文介绍:LangGPT - 从编程语言视角重构大语言模型结构化可复用提示设计框架 核心问题: 现有提示工程缺乏结构化设计模板,依赖经验优化,学习成本高且复用性低,难以支持提示的迭代更新。 创新思路: 受编程语言的结构化和可复用性启发,提出LangGP…...

excel表格记账 : 操作单元格进行加减乘除 | Excel中Evaluate函数
文章目录 引用I 基础求和∑II Excel中Evaluate函数基于字符串表达式进行计算用法案例 :基于Evaluate实现汇率计算利润知识扩展在单元格内的换行选择整列单元格引用 需求: 基于汇率计算利润,调整金额以及进汇率和出汇率自动算出利润,已经统计总利润。 基于Evaluate实现汇率计…...

20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s
20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s 2025/6/2 18:15 缘起:有些时候,需要在uboot阶段做一些事情。 于是,希望在荣品的PRO-RK3566开发板的Android13下的uboot启动停下。 1、【原始的LOGÿ…...