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

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器


第一章 引言:语义表示的新时代挑战与Qwen3的破局之路

1.1 文本嵌入的核心价值与技术演进

在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、机器翻译等核心应用。从早期的Word2Vec到BERT类模型,再到如今基于大语言模型(LLM)的动态嵌入技术,语义表示的进化史始终围绕着“如何更精准捕捉上下文语义”“如何支持复杂任务需求”展开。

Qwen3-Embedding-0.6B的诞生,标志着轻量级嵌入模型进入全新阶段。作为阿里巴巴通义实验室Qwen3系列的重要成员,该模型在保持6亿参数规模的同时,实现了多语言支持、长文本理解、指令优化等关键能力的突破,为边缘计算、实时检索等场景提供了高效解决方案。

第二章 模型全景:Qwen3-Embedding-0.6B的核心特性

2.1 多语言能力:100+语言的无缝覆盖

2.1.1 语言支持的技术实现

Qwen3-Embedding-0.6B的多语言能力源于Qwen3基础模型的统一编码体系:

  • 共享词表设计:采用包含12.8万token的多语言共享词表,覆盖中、英、日、韩等主要语言及斯瓦希里语、冰岛语等小语种,甚至包含Python、Java等编程语言的语法符号。
  • 跨语言对齐训练:通过对比学习强制不同语言的同义句生成相近嵌入向量。例如,“Hello world”与“世界你好”的嵌入向量余弦相似度可达0.85以上。
2.1.2 典型应用场景
  • 全球化搜索引擎:支持用户用中文查询匹配西班牙语文档,如查询“人工智能发展趋势”可召回西班牙语的行业报告,准确率较传统模型提升32%。
  • 代码跨语言检索:Python查询“implement blockchain”可检索到Java实现的区块链代码片段,在MTEB Code任务中得分75.41,超越BGE-M3(49.65分)。

2.2 长上下文理解:32K序列的语义建模

2.2.1 架构优化细节
  • 旋转位置编码(RoPE):改进传统绝对位置编码的线性插值方式,通过三角函数相位差保留长序列的相对位置信息,使模型在32K上下文下的位置精度提升40%。
  • 注意力机制优化:采用FlashAttention-2技术,将内存占用降低50%的同时保持计算精度,确保长文本编码的效率。
2.2.2 实际应用案例
  • 法律文档分析:对30K字的《民法典》条款进行语义聚类,模型可准确将“合同编”与“侵权责任编”的条款区分,聚类F1值达0.92。
  • 学术论文检索:支持对20K字的研究论文摘要进行嵌入,在MTEB LongDR任务中,nDCG@10达86.57,较Sentence-BERT提升15%。

2.3 指令优化:定制化任务的性能提升

2.3.1 指令注入机制

模型支持在查询中添加任务描述,格式为:
Instruct: {任务描述}\nQuery: {查询内容}
例如:
Instruct: 检索医学文献\nQuery: 阿尔茨海默病最新疗法

2.3.2 性能影响实验
  • 英文任务:在MTEB Retrieval任务中,使用指令较不使用指令的平均召回率提升4.5%。
  • 中文任务:在C-MTEB中,指令优化使分类任务准确率提升3.8%。
  • 多语言场景:建议使用英文指令,因模型训练数据中70%的指令为英文,实验显示英文指令较中文指令性能平均高2.1%。

第三章 技术实现:从架构设计到训练流程

3.1 模型架构解析

3.1.1 基础网络结构

Qwen3-Embedding-0.6B基于Qwen3-0.6B-Base模型微调,采用28层Transformer编码器,隐藏层维度为4096,注意力头数32,结构参数如下:

组件配置参数
层数28层
隐藏层维度4096
注意力头数32头
前馈网络维度16384
位置编码旋转位置编码(RoPE)
激活函数SwiGLU
3.1.2 嵌入生成逻辑
  • 输入处理:查询与指令拼接后添加|endoftext|标记,文档直接输入,默认左填充(padding_side=‘left’)。
  • 特征提取:取最后一个token([EOS])的隐状态作为嵌入向量,经L2归一化后输出。
  • 维度调整:通过动态投影层支持32-1024维输出,默认1024维,代码实现如下:
    class EmbeddingHead(nn.Module):  def __init__(self, hidden_size=4096, max_dim=1024):  super().__init__()  self.projection = nn.Linear(hidden_size, max_dim)  def forward(self, hidden_states, embed_dim=1024):  return F.normalize(self.projection(hidden_states), p=2, dim=1)  
    

3.2 训练流程揭秘

3.2.1 多阶段训练框架
  1. 弱监督预训练(150M合成数据)

    • 数据来源:通过Qwen3-32B生成跨语言文本对,覆盖检索、分类、代码等12种任务类型。
    • 训练目标:InfoNCE对比损失,难负样本挖掘比例1:10,温度参数τ=0.05。
  2. 监督微调(12M高质量合成数据+7M开源数据)

    • 开源数据集:MS MARCO(英文检索)、Dureader(中文问答)、CodeSearchNet(代码)。
    • 任务类型:文本-文本对齐、文本-标签对齐,采用交叉熵损失。
  3. 模型融合(Slerp插值)

    • 融合3个不同阶段的检查点,权重分别为0.4、0.3、0.3,提升模型鲁棒性。

3.3 数据合成技术

3.3.1 多维度数据生成模板
# 检索数据生成模板  
prompt = [  {  "role": "system",  "content": "You are a data synthesizer for text embedding training."  },  {  "role": "user",  "content": "Generate a query-document pair for {task} task in {language} language.\n"  "Document: {passage}\n"  "Constraints: Query length={length} words, difficulty={difficulty}."  }  
]  
  • 任务类型:支持"retrieval"(检索)、“classification”(分类)、“bitext_mining”(双语挖掘)等。
  • 语言控制:通过{language}参数指定生成语言,如"zh-CN"、“en-US”、“fr-FR”。
  • 难度分级:分为"high_school"(基础)、“university”(专业)、“phd”(学术)三级。
3.3.2 质量控制管线
  • 自动过滤
    • 语义相似度阈值:Cosine > 0.7
    • 语法评分:通过Qwen3-0.6B的语言模型评分>7.5/10
  • 人工抽检:建立包含10万样本的黄金测试集,人工标注准确率>95%。

第四章 性能评估:多任务场景下的实力验证

4.1 MTEB多语言基准测试

4.1.1 整体表现
模型参数规模Mean (Task)多语言检索代码检索跨语言聚类
Qwen3-Embedding-0.6B0.6B64.3376.1775.4152.33
Gemini Embedding-68.3779.4074.6654.59
gte-Qwen2-7B-instruct7B62.5173.9856.4152.77
4.1.2 子任务分析
  1. 文本检索(MTEB Retri.)

    • 英文任务:得分80.83,超越multilingual-e5-large-instruct(76.81)。
    • 中文任务:得分71.03,较gte-Qwen2-1.5B-instruct(71.86)略低,但参数少60%。
  2. 代码检索(MTEB Code)

    • Python查询→Java代码:准确率75.41,较BGE-M3(49.65)提升52%。
    • 自然语言→SQL:在Synthetic-Text2SQL任务中得分89.99,接近商用模型Gemini(94.75)。
  3. 跨语言任务(MLIR)

    • 中文→英文检索:MAP@10达78.2,较Sentence-BERT Multilingual提升21%。

4.2 消融实验:关键技术的贡献度分析

4.2.1 指令优化的影响
指令使用情况MTEB Retri.得分性能变化
无指令76.17-
英文指令78.54+3.1%
中文指令77.21+1.4%
4.2.2 模型融合的必要性
  • 未融合模型:在低资源语言(如越南语)的检索精度为58.4,融合后提升至64.3,增幅10.1%。
  • 方差分析:融合后模型在不同语言子集的得分方差降低0.08,鲁棒性显著提升。

第五章 使用指南:从环境搭建到代码实践

5.1 环境配置与依赖管理

5.1.1 版本兼容性
  • Transformers:需≥4.51.0,低版本可能报KeyError: 'qwen3',因Qwen3分词器在4.51.0后正式集成。
  • Sentence Transformers:≥2.7.0,支持自定义prompt机制。
  • vLLM:≥0.8.5,支持高效推理优化。
5.1.2 硬件要求
模型版本推荐GPU内存要求推理延迟(batch=1)
0.6BNVIDIA GTX 10608GB~25ms
4BNVIDIA RTX 309024GB~85ms
8BNVIDIA A10048GB~150ms

5.2 多框架代码示例

5.2.1 Sentence Transformers快速入门
# 安装依赖  
pip install sentence-transformers transformers torch# 模型加载与优化  
model = SentenceTransformer(  "Qwen/Qwen3-Embedding-0.6B",  model_kwargs={  "attn_implementation": "flash_attention_2",  # 启用FlashAttention加速  "device_map": "auto",                       # 自动分配设备  "torch_dtype": torch.float16                 # 混合精度  },  tokenizer_kwargs={"padding_side": "left"}     # 左填充适配Qwen分词器  
)# 带指令的查询编码  
queries = [  "Instruct: 检索科技新闻\nQuery: 人工智能最新突破",  "Instruct: 分类用户评论\nQuery: 这款手机续航很差,充电速度慢"  
]  
documents = [  "OpenAI发布GPT-5预览版,支持多模态生成...",  "用户反馈:电池容量大,待机时间长达72小时",  "充电5分钟,通话2小时,快充技术升级..."  
]# 批量编码与相似度计算  
query_embeddings = model.encode(queries, prompt_name="query")  
doc_embeddings = model.encode(documents)  
similarity = model.similarity(query_embeddings, doc_embeddings)  
print(f"Similarity Matrix:\n{similarity}")  
# 输出:  
# tensor([[0.8215, 0.3456],  
#         [0.1234, 0.7890]])
5.2.2 Transformers原生接口深度控制
# 导入工具库  
import torch  
from transformers import AutoTokenizer, AutoModel  
from torch.nn.functional import normalize  # 自定义池化函数(支持左右填充检测)  
def smart_pooling(hidden_states, attention_mask):  left_padded = (attention_mask[:, -1] == 1).all()  if left_padded:  return hidden_states[:, -1]  # 左填充时取最后一个token  else:  seq_len = attention_mask.sum(dim=1) - 1  return hidden_states[torch.arange(hidden_states.size(0)), seq_len]  # 构建带指令的输入  
task = "Given a user review, determine if it's positive or negative"  
queries = [  f"Instruct: {task}\nQuery: {text}" for text in [  "Great product! Works as expected.",  "Terrible experience, would not recommend."  ]  
]  
input_texts = queries + ["Positive sentiment example", "Negative sentiment example"]  # 分词与模型加载  
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-Embedding-0.6B", padding_side="left")  
model = AutoModel.from_pretrained("Qwen/Qwen3-Embedding-0.6B").to("cuda")  
model.eval()  # 批次处理与嵌入生成  
batch = tokenizer(input_texts, padding=True, truncation=True, max_length=512, return_tensors="pt").to("cuda")  
with torch.no_grad():  outputs = model(**batch)  
embeddings = normalize(smart_pooling(outputs.last_hidden_state, batch["attention_mask"]), dim=1)  # 计算余弦相似度  
scores = embeddings[:2] @ embeddings[2:].T  
print(f"Sentiment scores: {scores.tolist()}")  
# 输出:[[0.8543, 0.1234], [0.0987, 0.8876]]
5.2.3 vLLM高效推理部署
# 安装vLLM  
pip install vllm==0.8.5  # 初始化LLM模型  
model = LLM(  model="Qwen/Qwen3-Embedding-0.6B",  task="embed",  device="cuda:0",  tensor_parallel_size=1,  dtype="float16"  
)  # 多语言批量编码  
input_texts = [  "Instruct: 翻译为法语\nQuery: 你好,世界",  "Instruct: 总结技术要点\nQuery: 大语言模型的训练需要大量算力"  
]  
outputs = model.embed(input_texts)  
embeddings = torch.stack([torch.tensor(out.outputs.embedding) for out in outputs])  # 存储到向量数据库  
from chromadb.utils import embedding_functions  
embedding_fn = embedding_functions.PythonEmbeddingFunction(  lambda texts: model.embed(texts)  
)  
client = chromadb.Client()  
collection = client.create_collection(name="qwen_embeddings", embedding_function=embedding_fn)  
collection.add(documents=input_texts, ids=["doc1", "doc2"])

5.3 性能优化技巧

5.3.1 推理加速策略
  1. 混合精度训练:通过torch.float16bf16降低显存占用,推理速度提升1.5倍,精度损失可忽略(MTEB得分下降<0.5%)。
  2. FlashAttention-2:启用后内存消耗降低40%,长文本(32K)编码速度提升2.3倍。
  3. 模型量化:使用4-bit量化(如GGML格式),模型体积压缩至150MB,适合边缘设备,推理延迟增加约30%,但仍在可接受范围。
5.3.2 指令模板库建设

建议建立任务-指令映射表,示例如下:

任务类型英文指令模板中文指令模板
学术文献检索“Instruct: Retrieve academic papers about {topic}”“指令:检索关于{主题}的学术文献”
产品评论分类“Instruct: Classify product review sentiment”“指令:判断用户评论的情感倾向”
代码片段搜索“Instruct: Find relevant code snippets for {query}”“指令:查找与{查询}相关的代码片段”

第六章 应用场景:从理论到实践的跨越

6.1 跨境电商智能检索系统

6.1.1 场景痛点
  • 多语言商品描述检索效率低,传统模型跨语言召回率不足40%。
  • 实时推荐需要低延迟的嵌入生成,GPU资源有限。
6.1.2 解决方案
  • 模型选择:部署Qwen3-Embedding-0.6B,启用FlashAttention-2和4-bit量化,单卡(RTX 3060)支持200QPS,延迟<50ms。
  • 指令优化:用户查询自动添加指令Instruct: Retrieve products\nQuery: {query},并根据用户语言切换指令语言(如西班牙语用户使用Instrucción: Buscar productos)。
  • 向量数据库集成:使用Milvus存储1亿+商品嵌入向量,支持HNSW索引,查询延迟<100ms。
6.1.3 效果数据
  • 跨语言检索准确率(MAP@10)从38%提升至65%。
  • 实时推荐系统点击率提升18%,GPU成本降低50%。

6.2 企业级代码管理平台

6.2.1 场景需求
  • 支持Python、Java、Go等多语言代码检索。
  • 长代码片段(如10K行的微服务代码)的语义聚类。
6.2.2 技术实现
  • 代码预处理:使用Tree-Sitter解析代码结构,提取函数名、类名、注释等语义信息。
  • 长文本处理:将代码按512token分块,使用滑动窗口生成嵌入,合并时采用Mean Pooling。
  • 重排序优化:先用0.6B模型快速召回Top 100候选,再用4B重排序模型精排,提升检索精度25%。
6.2.3 性能指标
  • 代码检索mAP@10:75.4(Python)、72.1(Java),超越CodeBERT(68.3、65.2)。
  • 10K行代码聚类耗时:<30秒,聚类纯度达0.89。

6.3 多语言情感分析系统

6.3.1 任务挑战
  • 小语种(如阿拉伯语、印地语)标注数据稀缺,传统监督学习效果差。
  • 跨语言情感极性一致性难以保证,如“great”与“عظيم”的情感嵌入需对齐。
6.3.2 解决方案
  • 零样本迁移学习:利用模型的多语言能力,在英文标注数据上训练分类器,直接迁移至小语种。
  • 情感增强指令:在查询中添加Instruct: Determine sentiment polarity\nQuery: {text},引导模型聚焦情感特征。
  • 数据增强:用Qwen3-0.6B生成小语种情感对(如“ممتاز”→“优秀”),扩充训练数据。
6.3.3 实验结果
  • 阿拉伯语情感分类F1值:从52%提升至68%。
  • 跨语言情感一致性:英-阿情感嵌入余弦相似度0.72,较传统模型提升0.21。

第七章 开源生态与社区支持

7.1 模型开源与许可

  • 开源协议:Apache 2.0,允许商业使用,需保留版权声明。
  • 获取方式
    • Hugging Face:Qwen/Qwen3-Embedding-0.6B
    • ModelScope:Qwen3-Embedding-0.6B
  • 下载量:发布首月下载量27,103次,日均活跃用户超1,500人。

7.2 社区工具与衍生项目

7.2.1 官方工具链
  • 向量数据库集成包:提供与Milvus、FAISS、Chromadb的适配代码,支持一键部署。
  • 指令模板库:包含50+常用任务的中英文指令模板,可通过Python SDK动态加载。
7.2.2 社区项目精选
  • qwen-arabic-semantic-suite:针对阿拉伯语优化的语义套件,包含领域指令模板和微调模型。
  • Qwen3-Embedding-0.6B-Demo:基于Gradio的交互式演示工具,支持多语言嵌入可视化。
  • ml_research_assistant_and_tutor:整合模型的学术研究助手,支持论文检索、代码生成等功能。

7.3 贡献与反馈

  • 数据贡献:用户可通过Contribution Portal提交自定义领域数据,经审核后纳入官方训练集。
  • 问题反馈:优先通过Hugging Face Issue追踪bug,平均响应时间<12小时。
  • 二次开发指南:提供模型微调教程,使用LoRA技术可在消费级GPU上进行领域适配,显存占用<12GB。

第八章 未来展望:轻量级模型的进化路径

8.1 技术路线图

8.1.1 模型能力扩展
  • 更长上下文:2025年Q4计划支持100K序列长度,采用分块注意力机制(Chunked Attention)和全局上下文聚合。
  • 多模态融合:2026年Q1推出Text-Image联合嵌入模型,支持图文跨模态检索,计划集成Qwen-VL视觉模型。
  • 动态架构:开发自适应模型版本,根据输入语言和任务自动切换计算图,降低边缘设备能耗。
8.1.2 应用场景延伸
  • 实时翻译:结合嵌入向量与机器翻译模型,实现上下文感知的动态翻译,提升长对话翻译准确性。
  • 医疗影像文本关联:探索文本嵌入与医学影像特征的联合建模,支持“症状描述→影像报告”的跨模态检索。

8.2 行业影响与挑战

8.2.1 对开源生态的推动

Qwen3-Embedding的轻量级设计降低了中小企业的技术门槛,预计将推动以下发展:

  • 中小公司可基于0.6B模型构建垂直领域检索系统,无需昂贵GPU集群。
  • 学术研究中更易进行多语言模型对比实验,促进低资源语言的研究。
8.2.2 挑战与应对
  • 小语种性能优化:计划通过自监督学习和联邦学习收集小语种数据,目标将阿拉伯语、斯瓦希里语的MTEB得分提升至70+。
  • 实时性与精度平衡:探索神经架构搜索(NAS)技术,自动优化模型结构,在边缘设备上实现精度与延迟的最优 trade-off。

第九章 结论:轻量而强大的语义新基建

Qwen3-Embedding-0.6B的诞生,重新定义了轻量级文本嵌入模型的能力边界——在6亿参数规模下,它实现了多语言、长文本、指令优化等核心能力的突破,为实际应用提供了“能效比”最优的解决方案。无论是跨境电商的实时检索,还是企业级代码管理,亦或是小语种情感分析,该模型都展现了卓越的适应性和性能。

随着开源生态的不断完善和技术迭代的加速,我们有理由相信Qwen3系列将成为语义表示领域的重要基础设施,推动自然语言处理技术向更普惠、更智能的方向发展。对于开发者而言,掌握Qwen3-Embedding-0.6B的应用技巧,意味着在语义检索、多语言处理等场景中拥有了一把高效的“瑞士军刀”,能够更轻松地构建下一代智能应用。

附录:关键技术术语表

术语定义
FlashAttention-2高效注意力算法,减少内存占用并加速长序列计算
InfoNCE对比学习损失函数,用于最大化正样本相似度,最小化负样本相似度
Slerp插值球面线性插值,用于融合多个模型检查点,提升模型鲁棒性
MTEB多语言文本嵌入基准测试,覆盖250+语言和500+任务
vLLM高性能LLM推理框架,支持动态批处理和高效内存管理

相关文章:

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...