Qwen 论文阅读记录
本文仅作自己初步熟悉大模型,梳理之用,慢慢会更改/增加/删除,部分细节尚未解释,希望不断学习之后,能够完善补充。若有同道之人,欢迎指正探讨。
关于后面的code-qwen and math-qwen,我个人认为依托于前三部分,这两部分大致阅读,尚未细究,暂不记录于此。
1. Abstract(Introduction补充)
QWEN is a comprehensive language model series that encompasses distinct models with varying parameter counts.
QWEN 是一个全面的语言模型系列,包含参数数量不同的多个独立模型。
It includes QWEN, the base pretrained language models, and QWEN-CHAT, the chat models finetuned with human alignment techniques.
The base language models consistently demonstrate superior performance across a multitude of downstream tasks,
and the chat models, particularly those trained using Reinforcement Learning from Human Feedback (RLHF), are highly competitive.
以上两句话可以根据下图综合理解:
The model series include the base pretrained language models,
chat models finetuned with human alignment techniques, i.e., supervised finetuning (SFT), reinforcement learning with human feedback (RLHF), etc.,
as well as specialized models in coding and math.
Figure 1: Model Lineage of the Qwen Series.
We have pretrained the language models, namely QWEN, on massive datasets containing trillions of tokens.
We then use SFT and RLHF to align QWEN to human preference and thus we have QWEN-CHAT and specifically its improved version QWEN-CHAT-RLHF.
Additionally, we also develop specialized models for coding and mathematics, such as CODE-QWEN, CODE-QWEN-CHAT, and MATH-QWEN-CHAT based on QWEN with similar techniques.
Note that we previously released the multimodal LLM, QWEN-VL and QWEN-VLCHAT (Bai et al., 2023), which are also based on our QWEN base models.
The chat models possess advanced tool-use and planning capabilities for creating agent applications, showcasing impressive performance even when compared to bigger models on complex tasks like utilizing a code interpreter.
这些聊天模型在创建代理应用方面,具备先进的工具使用和规划能力,即使在执行如使用代码解释器等复杂任务时,与更大的模型相比也展现出了令人印象深刻的性能。
这句话,跟Introduction这句话综合理解:
LLMs are not just limited to language tasks.
They can also function as a generalist agent, collaborating with external systems, tools, and models to achieve the objectives set by humans.
它们还可以充当通用代理,与外部系统、工具和模型协作,以实现人类设定的目标。
For example, LLMs can understand multimodal instructions, execute code, use tools, and more.
2. Pretraining
2.1 Data
To ensure the quality of our pretraining data, we have developed a comprehensive data preprocessing procedure.
为了确保预训练数据的质量,我们开发了一个全面的数据预处理程序。
2.2 Tokenization
we utilize byte pair encoding (BPE) as our tokenization method.
2.3 Model
2.3.1 Architecture
QWEN is designed using a modified version of the Transformer architecture.
Specifically, we have adopted the recent open-source approach of training large language models, LLaMA (Touvron et al., 2023a).
Our modifications to the architecture include:
- Embedding and output projection. ----嵌入和输出投影。
Based on preliminary experimental findings, we have opted for the untied embedding approach instead of tying the weights of input embedding and output projection.
基于初步的实验结果,我们选择了未绑定嵌入方法,而不是将输入嵌入和输出投影的权重绑定在一起。
This decision was made in order to achieve better performance with the price of memory costs.
这个决定是为了以牺牲内存成本为代价来获得更好的性能。
“Output projection”指的是在模型的输出层,将隐藏层的表示映射回原始的词汇或符号空间,以产生最终的输出。
“untied embedding approach”指的是输入嵌入和输出投影的权重是独立的,不共享的。这与“tied embedding”或“weight tying”相对,后者将输入嵌入和输出投影的权重设置为相同,以减少参数数量和防止过拟合。
-
Positional embedding.
We have chosen RoPE (Rotary Positional Embedding) as our preferred option for incorporating positional information into our model.
我们选择了RoPE,将位置信息融入模型。
In particular, we have opted to use FP32 precision for the inverse frequency matrix, rather than BF16 or FP16, in order to prioritize model performance and achieve higher accuracy.
特别是,我们选择了使用FP32精度来处理逆频率矩阵,而不是BF16或FP16,这是为了优先考虑模型性能并实现更高的准确性。 -
Bias.
For most layers, we remove biases following Chowdhery et al. (2022), but we add biases in the QKV layer of attention to enhance the extrapolation ability of the model (Su, 2023b).
在大多数层中移除了Bias,但在QKV层保留以提升模型的外推能力。
根据Chowdhery等人的研究,移除大多数层的偏差项,有助于提高模型的稳定性和性能。这种做法可以减少参数数量,从而降低模型的复杂度和过拟合的风险。此外,移除偏差项有助于模型在训练过程中更好地泛化,从而在不同的数据集上表现得更为一致。
在注意力机制的QKV层中添加偏差项:Su的研究指出,在注意力机制的QKV(Query,Key,Value)层中添加偏差项可以增强模型的外推能力(extrapolation ability)。
QKV层是注意力机制的核心部分,通过添加偏差项,可以更好地捕捉输入数据的特征,从而提升模型在处理未知或未见数据时的表现。这种增强外推能力的做法对于处理复杂任务和应对多样化的数据输入非常重要。
总结来说,移除大多数层的偏差项是为了提高模型的泛化能力和稳定性,而在QKV层中添加偏差项则是为了增强模型的外推能力。
-
Pre-Norm & RMSNorm.
In modern Transformer models, pre-normalization is the most widely used approach, which has been shown to improve training stability compared to post-normalization.
Additionally, we have replaced the traditional layer normalization technique described in (Ba et al., 2016) with RMSNorm(Jiang et al., 2023). This change has resulted in equivalent performance while also improving efficiency. -
Activation function.
We have selected SwiGLU (Shazeer, 2020) as our activation function, a combination of Swish (Ramachandran et al., 2017) and Gated Linear Unit (Dauphin et al., 2017).
Our initial experiments have shown that activation functions based on GLU generally outperform other baseline options, such as GeLU (Hendrycks & Gimpel, 2016).
As is common practice in previous research, we have reduced the dimension of the feed-forward network (FFN) from 4 times the hidden size to 8/3 of the hidden size.
2.3.2 Context length extension
Transformer models have a significant limitation in terms of the context length for their attention mechanism.
As the context length increases, the quadratic-complexity computation leads to a drastic increase in both computation and memory costs.
计算复杂度与输入数据量的平方成正比
为此,作者提到了四个关键词:
- NTK-aware interpolation (bloc97, 2023)
- dynamic NTK-aware interpolation(Peng et al., 2023a)
QWEN additionally incorporates two attention mechanisms:
- LogN-Scaling
- Window Attention
LogN-Scaling rescales the dot product of the query and value by a factor that depends on the ratio of the context length to the training length, ensuring that the entropy of the attention value remains stable as the context length grows.
LogN-Scaling 通过一个依赖于上下文长度与训练长度之比的因子来重新缩放查询和值的点积,从而确保随着上下文长度的增加,注意力值的熵保持稳定。
Window attention restricts the attention to a limited context window, preventing the model from attending to tokens that are too far away.
Window Attention则将注意力限制在一个有限的上下文窗口内,防止模型关注到距离过远的标记(tokens)。
Swin transformer,待启动新的记录,详细解析其细节。
We also observed that the long-context modeling ability of our model varies across layers, with lower layers being more sensitive in context length extension compared to the higher layers.
我们还观察到,我们模型的 long-context 建模能力,在不同层之间存在差异,与较高层相比,较低层在上下文长度扩展方面更为敏感。
To leverage this observation, we assign different window sizes to each layer, using shorter windows for lower layers and longer windows for higher layers.
2.4 Training
To train QWEN, we follow the standard approach of autoregressive language modeling(自回归语言建模) Radford et al. (2018).
This involves training the model to predict the next token based on the context provided by the previous tokens.
We train models with context lengths of 2048.
To improve computational efficiency and reduce memory usage, we employ Flash Attention in the attention modules (Dao et al., 2022).
FlashAttention的核心原理是,通过将输入分块并在每个块上执行注意力操作,从而减少对高带宽内存(HBM)的读写操作。它利用底层硬件的内存层次知识,例如GPU的内存层次结构,来提高计算速度和减少内存访问开销。
具体来说,FlashAttention使用平铺(tiling)和重计算(recomputation)等经典技术。它首先将输入块从HBM加载到SRAM(快速缓存),在SRAM上执行注意力操作,并将结果更新回HBM。通过这种方式,FlashAttention减少了内存读写量,从而实现了加速。
3. Alignment
Pretrained large language models have been found to be out of sync with human behavior, making them unsuitable for serving as AI assistants in most cases.
已发现,预训练的大型语言模型与人类行为不一致,因此在大多数情况下不适合担任AI助手。
Recent research has shown that the use of alignment techniques, such as supervised finetuning (SFT) and reinforcement learning from human feedback (RLHF), can significantly improve the ability of language models to engage in natural conversation.
3.1 Supervised Fine-tuning
To gain an understanding of human behavior, the initial step is to carry out supervised fine-tuning.
This process fine-tunes a pre-trained model on chat-style data, which includes both human queries and AI responses.
该过程对聊天风格数据的预训练模型进行微调,其中包括人工查询和AI响应。
Supervised finetuning is similar to text-to-text transfer, but it is capable of creating a helpful AI assistant due to the intricate and varied nature of the datasets used for finetuning.
监督式微调类似于文本到文本的迁移,但由于用于微调的数据集,具有复杂性和多样性,它能够创建出一个有用的AI助手。
In the following sections, we will delve into the details of data construction and training methods.
3.1.1 DATA
To enhance the capabilities of our supervised finetuning datasets, we have annotated conversations in multiple styles.
…
3.1.2 TRAINING
…
3.2 Rein Forcement Learning from Human Feedback
While SFT has proven to be effective, we acknowledge that its generalization and creativity capabilities may be limited, and it is prone to overfitting.
To address this issue, we have implemented Reinforcement Learning from Human Feedback (RLHF) to further align SFT models with human preferences.
This process involves training a reward model and using Proximal Policy Optimization (PPO) to conduct policy training.
这个过程包括训练一个奖励模型,并使用近端策略优化(Proximal Policy Optimization,简称PPO)来进行策略训练。
3.2.1 Reward Model
…
3.2.2 ReinForcement Learning
Our Proximal Policy Optimization (PPO) process involves four models:
- policy model,
- value model,
- reference model,
- reward model.
3.3 Automatic and Human evaluation of Aligned Models
Besides the widely used few-shot setting, we test our aligned models in the zero-shot setting to demonstrate how well the models follow instructions.
The prompt in a zero-shot setting consists of an instruction and a question without any previous examples in the context.
在零样本设置(zero-shot setting)中,提示(prompt)仅包含一个指令和一个问题,而不包含任何先前的示例作为上下文。
这种设置要求模型,仅根据给定的指令和问题本身,来生成回答或执行相应的任务。
零样本设置对于评估模型的泛化能力和理解能力尤为重要,因为它模拟了模型在面对全新、未见过的任务或问题时的表现。
在这种设置下,指令通常清晰地说明了模型需要执行的任务类型,比如生成文本、回答问题、翻译等。
问题则是模型需要处理的具体内容,它依赖于指令中指定的任务类型。
由于没有提供任何示例,模型必须依靠其预训练期间学到的知识和技能来理解和回答问题。
零样本设置的挑战在于模型需要在没有直接指导或示例的情况下,准确地理解并完成任务。这要求模型具备强大的语言理解和生成能力,以及良好的泛化能力。
因此,零样本设置是评估自然语言处理(NLP)模型性能的一个重要方面。
3.4 Tool use, Code Interpreter, and Agent
The QWEN models, which are designed to be versatile, have the remarkable ability to assist with (semi-) automating daily tasks by leveraging their skills in tool-use and planning.
QWEN模型设计得十分通用,它们具有,通过利用,其工具使用,和,规划方面的,技能,来协助(半)自动化日常任务的,显著能力。
We explore QWEN’s proficiency in the following areas:
- Utilizing unseen tools through ReAct prompting (Yao et al., 2022) (see Table 6).
通过ReAct提示利用未见过的工具; - Using a Python code interpreter to enhance math reasoning, data analysis, and more.
使用Python代码解释器来增强数学推理、数据分析等能力; - Functioning as an agent that accesses Hugging Face’s extensive collection of multimodal models while engaging with humans (see Table 9).
作为一个能够与人类交互,并访问Hugging Face庞大多模态模型库的代理;
To enhance QWEN’s capabilities as an agent or copilot, we employ the self-instruct (Wang et al., 2023c) strategy for supervised fine-tuning (SFT).
为了增强QWEN作为代理或协同工具的能力,我们采用自我指示策略进行有监督微调(SFT)。
Specifically, we utilize the in-context learning capability of QWEN for self-instruction.
具体来说,我们利用QWEN的上下文学习能力来进行自我指示。
By providing a few examples, we can prompt QWEN to generate more relevant queries and generate outputs that follow a specific format, such as ReAct.
通过提供几个示例,我们可以引导QWEN生成更多相关的查询,并产生符合特定格式(如ReAct)的输出。
We then apply rules and involve human annotators to filter out any noisy samples.
随后,我们应用规则并引入人工标注者来过滤掉任何噪声样本。
Afterwards, the samples are incorporated into QWEN’s training data, resulting in an updated version of QWEN that is more dependable for self-instruction.
之后,这些样本被纳入QWEN的训练数据中,从而得到一个在自我指示方面更加可靠的更新版QWEN。
We iterate through this process multiple times until we gather an ample number of samples that possess both exceptional quality and a widerange of diversity.
我们多次重复这个过程,直到收集到足够数量且既优质又多样化的样本。
Figure 2: A high-level overview of Self-Instruct.
The process starts with a small seed set of tasks as the task pool.
Random tasks are sampled from the task pool, and used to prompt an off-the-shelf LM to generate both new instructions and corresponding instances, followed by filtering low-quality or similar generations, and then added back to the initial repository of tasks.
从任务池中随机抽取任务,并用这些任务,提示一个现成的语言模型(LM),来生成新的指令和相应的实例。
随后,过滤掉质量低或相似的生成内容,再将它们添加回最初的任务库中。
The resulting data can be used for the instruction tuning of the language model itself later to follow instructions better.
所得数据可用于后续对语言模型本身的指令调优,以便其能更好地遵循指令。
Tasks shown in the figure are generated by GPT3.
其中,上图中的 Input-First 和 Output-First,具体可以参考下面两张图:
- Input-First
Table 7: Prompt used for the input-first approach of instance generation. The model is prompted to generate the instance first, and then generate the corresponding output.
For instructions that don’t require additional input, the output is allowed to be generated directly.
- Output-First
Table 8: Prompt used for the output-first approach of instance generation.
The model is prompted to generate the class label first, and then generate the corresponding input.
This prompt is used for generating the instances for classification tasks.
We apply the output-first approach to the classification tasks identified in the former step, and the input-first approach to the remaining non-classification tasks.
Related Work
-
QWEN TECHNICAL REPORT.
-
SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions.
相关文章:
Qwen 论文阅读记录
本文仅作自己初步熟悉大模型,梳理之用,慢慢会更改/增加/删除,部分细节尚未解释,希望不断学习之后,能够完善补充。若有同道之人,欢迎指正探讨。 关于后面的code-qwen and math-qwen,我个人认为依…...
ViewModel
ViewMode是MVVM架构模式中VM层对应的类,它的作用是存储界面数据,并和界面发生数据交互。ViewModel能感知生命周期,并且在界面由于配置问题发生重建时候,可以保持当前的数据不变。生命周期如下: ViewMode由ViewModePr…...
AI和SEO的完美结合关键词策略解析
内容概要 在当今数字营销环境中,AI与SEO的结合已成为提升网站流量和转化率的重要策略。为了更好地理解这一主题,本文将首先介绍AI技术在数字营销中的多种应用,其次分析SEO的基础知识和重要性,以便为后续讨论建立坚实的基础。 提示…...
网络基础 - TCP/IP 五层模型
文章目录 一、OSI 参考模型中各个分层的作用1、应用层2、表示层3、会话层4、传输层5、网络层6、数据链路层7、物理层 二、OSI 参考模型通信处理示例 一、OSI 参考模型中各个分层的作用 1、应用层 2、表示层 负责设备固有数据格式和网络标准数据格式间的转换 实际生活中&#…...
pyenv 管理多个 Python 版本(1)
引言 你是否曾希望参与一个支持多个 Python 版本的项目,但又不知道如何轻松地测试所有这些版本?你是否对 Python 的最新版本感到好奇?或许你想尝试这些新功能,但又不想冒险破坏你的开发环境。幸运的是,如果你使用 pyen…...
LLMs之ICL:《Bayesian scaling laws for in-context learning》翻译与解读
LLMs之ICL:《Bayesian scaling laws for in-context learning》翻译与解读 导读:这篇论文的核心议题是理解和建模大型语言模型(LLM)的上下文学习(ICL)能力。文章从贝叶斯学习的角度出发,提出了一…...
泷羽Sec学习笔记-Bp中ip伪造、爬虫审计
ip伪造与爬虫审计 ip伪造 下载插件:burpFakeIP 地址:GitHub - TheKingOfDuck/burpFakeIP: 服务端配置错误情况下用于伪造ip地址进行测试的Burp Suite插件 python版需要配置jython:下载地址:Maven Central: org.python:jython-…...
常用vim命令行-linux008
Vim 是一款功能强大的文本编辑器,广泛应用于编程、配置文件编辑以及日常文本处理。Vim 在其命令行模式下提供了丰富的操作命令,这些命令能够大幅提升编辑效率。以下是 Vim 中常用的命令及操作的总结,覆盖了 Vim 中的基本操作、查找、替换、文…...
Linux相关概念和易错知识点(24)(认识信号、信号捕捉)
目录 1.认识信号 (1)后台进程和前台进程 ①为什么Ctrl C能终止前台进程? ②如何终止这个后台程序? (2)信号、异步和同步 ①同步 ②异步 (3)信号的处理 2.信号捕捉 &#x…...
Scala的导入
//导入 //(1) 创建包:在src上右键,新建软件包 //(2)填写包名:小写 //(3)在包上右键,创建类。自动加入包名 //(4)导入。import 包名.类名 //导入多个类 //import jh.yuanlixueyuan.bigdata.scala03.{A,B,C} //导入包下的所有的类 /…...
strace,tcmalloc,asan使用
1、strace使用 1.1、编译strace strace开源库 解压strace-4.21.tar.xz 编译./configure --hostarm-ca9-linux-gnueabihf --prefix~/out make&&make install 1.2、参数 -c 统计每一系统调用的所执行的时间,次数和出错的次数等. -d 输出strace关于标准错误的调试信息…...
C++中多态性在实际项目中的应用场景;C++中面向对象编程实现数据隐藏的方法
1. C中多态性在实际项目中的应用场景 C中多态性是面向对象编程中的一个重要概念,它允许我们在使用基类指针或引用的情况下,调用派生类对象的特定方法。这种灵活性使得多态性在实际项目中有着广泛的应用场景,具体包括但不限于以下几个方面&am…...
【QT常用技术讲解】使用QMovie+QLabel播放gif动态图片,实现“正在加载”功能(源代码在资源中下载)
前言 界面在实现事件等待时,通过会显示一个转圈圈的动态图片,表示“正在加载”,事件完成之后关闭图片,QT中可以使用QMovieQLabel完成gif动态图片的播放及关闭的效果。 效果图 功能讲解 1、加载动画 void MainWindow::addloadgi…...
iPhone苹果相册视频怎么提取音频?
在数字时代,视频已成为我们记录生活、分享故事的重要方式。然而,有时候我们只想保留视频中的音频部分,比如一段动人的背景音乐或是一段珍贵的对话。那么,苹果相册视频怎么提取音频呢?本文将介绍三种简单且实用的方法&a…...
【PyTorch】动态调整学习率 torch.optim.lr_scheduler.StepLR 调度器
文章目录 1. torch.optim.lr_scheduler.StepLR 官方文档详解2. 使用示例2.1 官方提供使用示例2.2 自己写代码测试方法2.2.1 get_last_lr() 方法2.2.2 state_dict() 方法2.2.3 load_state_dict() 保存和加载调度器 3. 思考3.1 为什么需要state_dict()3.2 get_lr() 与 get_last_l…...
完全二叉树的节点个数
给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最…...
在销售管理中,客户跟进时会出现什么问题?如何解决?
客户跟进表是销售工作中重要的一部分,用于记录与客户的每次沟通、执行计划和合作动态。然而,在实际使用中,客户跟进表经常会出现一些问题,导致效率低下甚至客户流失。本文就从常见问题出发,一一提供措施,让…...
【代码随想录|动态规划】
一、动态规划理论基础 |、动态规划包含题目类型 (1)背包问题 (2)打家劫舍 (3)股票问题 (4)子序列问题 ||、做一道题需要掌握(动态规划5步曲)࿱…...
时间敏感网络与工业通信的融合:光路科技电力专用交换机和TSN工业交换机亮相EP电力展
12月7日,第三十一届中国国际电力设备及技术展览会(EP Shanghai 2024)暨上海国际储能技术应用展览会在上海新国际博览中心圆满落幕。本届展会以“数字能源赋能新质生产力”为主题,系统地呈现了电力设备行业在技术融合、转型升级及上…...
初识Linux · 系统编程done
目录 前言: 死锁 可重入函数 读写锁 自旋锁 前言: 本文作为Linux系统编程的收尾工作,介绍的是些零碎的概念,比如死锁,可重入函数,自旋锁,读写锁等,其中死锁概念要重要些&#…...
JavaScript函数式编程: 实现不可变数据结构
# JavaScript函数式编程: 实现不可变数据结构 什么是不可变数据结构 在计算机编程中,不可变数据结构指的是数据一旦创建就不可更改或者修改。这意味着我们不能在原始数据上进行增删改操作,而是需要创建一个新的数据结构来代替原始数据进行操作。 为什么要…...
union find算法 c++
1.原理参考 labuladong-fucking-algorithm/算法思维系列/UnionFind算法详解.md at master jiajunhua/labuladong-fucking-algorithm GitHub 2.初级模式 #include <iostream>class UF {public:// 记录连通分量/* 构造函数,n 为图的节点总数 */UF(int n) {…...
路径规划 | 改进的人工势场法APF算法进行路径规划(Matlab)
目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 改进的人工势场法(APF)路径规划算法 在路径规划中,人工势场法(APF)是一种常见的方法,但传统的APF算法容易陷入局部极小值,导致路径规…...
ES语句——DSL(kibana语句)
一、查询操作 查看当前索引的数据结构 _mapping Get ai-open-log*/_mapping 查询当前索引下的文档数以及分片信息 _count Get ai-open-log*/_count { "count": 12345, //当前索引下的文档总数 "_shards": { //分片信息 "total&…...
y3编辑器教学5:触发器2 案例演示
文章目录 一、探索1.1 ECA1.1.1 ECA的定义1.1.2 使用触发器实现瞬间移动效果 1.2 变量1.2.1 什么是变量1.2.2 使用变量存储碎片收集数量并展现 1.3 if语句(魔法效果挂接)1.3.1 地形设置1.3.2 编写能量灌注逻辑1.3.3 编写能量灌注后,实现传送逻…...
MVC配置文件及位置
配置文件位置 默认位置 WEB-INF目录下,文件名:<servlet-name>-servlet.xml <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.…...
【razor】echo搭配relay功能分析
echo 要搭配relay 实现作者说relay在linux上跑,可以模拟丢包、延迟目前没看到如何模拟。relay监听9200,有俩作用 echopeer1 发relay,replay 把peer1的包给peer2 ,实现p2p能力。 接收端:采集后发送发给relay的 接收端的地址就是自己,的地址就是本地的9200,因此是让relay接…...
C++类的运算符重载
目标 让自定义的类直接使用运算符运算 代码 头文件及类定义 #include <iostream>using namespace std; class Complex {int rel;int vir; public:void show(){cout <<"("<<this->rel<<","<<this->vir<<&quo…...
Motionface RTASR 离线实时语音识别直播字幕使用教程
软件使用场景: 直播、视频会议、课堂教学等需要实时字幕的场景。 1:系统要求 软件运行支持32位/64位windows 10/11系统,其他硬件要求无,无显卡也能实时识别字幕。 2:下载安装 链接:百度网盘 请输入提取码 提取码&#…...
【论文阅读】相似误差订正方法在风电短期风速预报中的应用研究
文章目录 概述:摘要1. 引言2. 相似误差订正算法(核心)3. 订正实验3.1 相似因子选取3.2 相似样本数试验3.3 时间窗时长实验 4. 订正结果分析4.1 评估指标对比4.2 风速曲线对比4.3 分风速段订正效果评估4.4 风速频率统计 5. 结论与讨论 概述&am…...
learn-(Uni-app)输入框u-search父子组件与input输入框(防抖与搜索触发)
1.父子组件u-search (1)父组件 <!-- 父组件 --> <template> <div><searchBar change"change" search"search"></searchBar> </div> </template> <script> // 子组件搜索 import…...
UNIX数据恢复—UNIX系统常见故障问题和数据恢复方案
UNIX系统常见故障表现: 1、存储结构出错; 2、数据删除; 3、文件系统格式化; 4、其他原因数据丢失。 UNIX系统常见故障解决方案: 1、检测UNIX系统故障涉及的设备是否存在硬件故障,如果存在硬件故障…...
c#动态更新替换json节点
需求项目json作为主模板,会应用到多个子模版,当后续项目变更只需要修改主模板中节点,并且能够动态更新到原来的子模版中去。 主模板示例: {"A": {"A1": "","A2": false,"A3"…...
kubernetes的可靠性测试或者故障测试有哪些?
kubernetes的可靠性测试或者故障测试有哪些? 在 Kubernetes (K8s) 集群中,可靠性测试和故障性测试旨在确保系统能够稳定运行并具备应对各种故障的能力。这些测试主要针对集群的组件、应用程序和基础设施。以下是详细的测试内容和方法: 一、可靠性测试 1. 高可用性测试 目…...
datax和datax-web打包成docker运行
概述 datax和datax-web从一台机器迁移到另一台时,要重新搭建一套运行环境,比较麻烦;打包成docker镜像后迁移就方便多了; 因为我的mysql版本是8,需要在datax的read和write中手动添加8的jdbc驱动 所以我先各自下载好了datax和data…...
ThreadLocal原理解析
ThreadLocal原理解析 本篇将带大家了解ThreadLocal的使用方法,并且深度剖析其原理和作用,通过阅读源码的方式,进一步了解其内部原理 ThreadLocal 是 Java 提供的一个工具类,用于为每个线程维护一个独立的变量副本。每个线程可以访…...
Android 分析 Activity 与 Fragment 的区别,部分使用的差异
一、基本概念 Activity:Activity 是应用中单独一个界面的一个组件,通常一个 Activity 对应一个界面(或屏幕)。Activity 控制了一个应用界面的生命周期,并且能够处理用户的输入和交互。 Fragment:Fragment …...
前端(Ajax)
1.客户端请求 向https://jsonplaceholder.typicode.com/users发送get请求 const xhr new XMLHttpRequest();console.log(xhr.readyState);xhr.open(get, https://jsonplaceholder.typicode.com/users)console.log(xhr.readyState);xhr.send();console.log(xhr.readyState);xh…...
【C++】约瑟夫环问题:深度解析与高级优化
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言约瑟夫环问题:深度解析与高级优化💯题目描述💯解决方案详解直接模拟法(基于 C 实现)代码解析示例执行过程 💯高级优…...
总结拓展十七:SAP 采购订单行项目“交货“页签解析
《 SAP采购订单行项目“交货”页签字段解析》 在 SAP 系统的采购流程中,采购订单行项目的“交货”页签承载着关键的信息,其中的字段更是对整个交货环节的精准描述和把控的重要元素。理解和正确解析这些字段,对于确保采购流程的顺利进行、优化…...
作业Day2: 多文件编译; 思维导图
目录 ①文件代码 及其所需头文件分析 main.c文件 1.h文件 1.c文件 ②运行结果: ③代码分析 结构体成员 数据类型的设定: 信息录入函数 信息删除 成绩排序 信息显示 自定义初始化函数 ④思维导图:编辑 ①文件代码 及其所需头文…...
Kioptrix Level 1通关攻略
目录 修改靶机Kioptrix:Level 1 的网络模式 探测靶机IP地址 得到端口信息 扫描TCP端口 扫描UDP端口 脚本扫描 指纹探测 漏洞探测 目录枚举扫描 发现利用脚本 执行exp链接shell 修改靶机Kioptrix:Level 1 的网络模式 Kioptrix: Level 1靶机的默认网络模式是桥接&#x…...
01 下载opencv并配置vs开发环境
01 下载opencv并配置vs开发环境 01 下载windows版本的opencv 下载地址:点击 WIndows版本的是编译好的代码。 当然国外网站下载很慢,可以通过我分享的网盘链接下载 opencv-4.10.0-windows.exe https://www.alipan.com/s/wV7z4YsmXgN 点击链接保…...
Ubuntu22.04 docker如何发布镜像(和用git差不多)
在dockerhub上创建远程仓库:https://hub.docker.com/ 将本地镜像打tag,并修改成可以上传到 dockerhub 的形式 # 查看本地镜像# 修改镜像 ## docker tag 镜像名称:标签 新的镜像名称(要和远程仓库dockerhub上的一致):新的标签pus…...
【Golang】——Gin 框架中的模板渲染详解
Gin 框架支持动态网页开发,能够通过模板渲染结合数据生成动态页面。在这篇文章中,我们将一步步学习如何在 Gin 框架中配置模板、渲染动态数据,并结合静态资源文件创建一个功能完整的动态网站。 文章目录 1. 什么是模板渲染? 1.1 概…...
React的局限性是什么?
性能: 虚拟 DOM 虽然提高了渲染性能,但在某些情况下可能会造成性能瓶颈,尤其是在处理大量数据或复杂更新时。对于非UI任务(如计算密集型操作),React 本身并不擅长。 学习曲线: 对于初学者来说&a…...
【Vulkan入门】09-CreateFrameBuffer
目录 先叨叨git信息关键代码VulkanEnv::FindHostVisitbaleMemoryTypeIndex()TestPipeLine::CreateFramebuffers() 与网上大多数文章不同,其他文章基本上都使用窗口框架(X11、GLFW、WSL等)提供的surface来显示Vulkan渲染出的图像。我认为那样会…...
罗技键鼠更换新台式机无蓝牙通过接收器安装
优联驱动下载: http://support.logitech.com.cn/zh_cn/software/unifying (下载安装后按照步骤一步步操作,匹配后即可使用) 向京东客服反馈后提供的驱动下载安装连接 有问题欢迎评论沟通~...
深入了解Modbus TCP协议:介绍、原理解析与应用示例
深入了解Modbus TCP协议:介绍、原理解析与应用示例 在工业自动化领域,设备之间的通信与数据交换至关重要。Modbus协议作为一种经典的通信协议,因其简单、开放和易于实现的特点,被广泛应用于各种工业设备之间的数据传输。而Modbus…...
vue2 项目中实现动态代理,服务器上通过nginx部署 实现动态代理
一、前言&&原理 前言:vue2 项目中,请求接口是从表格的当前获取的,也就是接口ip:端口号:路经不确定,要实现点击表格当前行请求对应的接口 实现原理:将实际要请求的ip等信息存在请求头中,用的时候再…...