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

广告场景下的检索平台技术

检索方向概述

在这里插入图片描述

数据检索领域技术选型大体分为SQL事务数据库、NoSQL数据库、分析型数据库三个类型。
SQL数据库的设计思路是采用关系模型组织数据,注重读写操作的一致性,注重数据的绝对安全。为了实现这一思路,SQL数据库往往会牺牲部分性能(尤其是写性能),来换取更好的事务性与稳定性。
分析型数据库的典型应用就是文本搜索,后来随着机器学习的发展,逐步扩展到向量检索领域。绝大部分分析型数据库的技术选型,保留SQL数据库对数据安全性的追求,采用适配块存储的数据结构存储数据。虽然ES通过一系列技术手段优化写性能,但在我看来并没有做出实质性突破。
NoSQL数据库基本就是我们常说的KV数据库。NoSQL之所以出现,是因为随着大数据时代到来,数据量的爆炸,SQL数据库分布式能力弱、存在性能瓶颈等问题逐渐暴露。NoSQL放弃了关系模型、事务性等能力,以此来换取高可扩展性和极致的性能。
扩展阅读:存储检索技术发展历史(1966 - 2021)
在介绍广告检索技术建设前,我们要先思考几个问题:

  1. 为什么我们不能直接用上述技术领域中的开源技术选型直接搭建我们的广告检索体系?
  2. 如果我们自建检索技术体系,放眼整个技术版图,我们的站位在哪里?

广告检索技术特点

大家可能会发现一个看似寻常的现象,就是国内那个比较大的互联网计算广告团队,几乎都会建设自己的检索内核,但是反观推荐、搜索团队,往往会基于一些开源的技术选型做个性化迭代(如ElasticSearch)。究其原因,要从广告业务的特点说起。

  1. 更新频繁,时效性要求高。
    广告业务存在广告主实时行为,这一点是显著区别于推荐、搜索等业务的。推演到检索技术领域,其表象就是检索内核需要支持高频更新,且时效性一般要求在亚秒级。
  2. 无需保证外部一致性。
    虽然上面对更新提出了很高的要求,但是广告场景也有要求比较宽松的地方,那就是并不要求满足外部一致性,而是仅需满足最终一致性。此外,一条记录内部(如一个计划内部)需要保证更新的原子性,不能出现同一条记录中的不同字段版本不一致的情况。
  3. 对系统工程指标要求极高。
    广告业务对收入极其敏感,任何一点时延抖动、不稳定都可能带来很大的资损。因此广告系统往往极致的追求高吞吐、高性能、高可用。对应到检索的技术选型上,往往斥巨资选用纯内存存储。此外,在读写并发的基础上,需要完全消除性能毛刺,避免更新操作对读请求带来影响。
  4. 采用关系模型。
    由于广告业务的复杂性,商家端往往将数据库划分为账户、计划、单元、创意、推广内容几个实体,以此来映射广告主的诉求模型。这些实体之间存在关联关系,因此本质上广告数据内部采用的是关系模型。这一点是显著区别于推荐、文档搜索等业务场景的。
  5. 需要应用倒排索引、向量索引。
    广告的检索过程其实是一次倒排检索的过程。在这里,我将“向量检索”这个行为也抽象为一种模糊的倒排检索。这个严格来说并不是广告场景的特点。之所以在这里提及,是想说明广告场景不能简单的选用NoSQL数据库(如Redis)来满足上面的要求。

有了上面的分析,再回到这张图。我们来看看我们的发挥空间究竟是什么?
暂时无法在飞书文档外展示此内容

广告检索本质是一个在线数据缓存服务。说他是服务是相对于数据库而言的,他对持久化、事务性、一致性的要求都不高,反倒是对读写两端的性能要求极高。这个服务需要具备的一些核心feature主要有倒排检索、向量检索,同时还要求具备关系模型表达能力(类SQL)。


一点个人理念

  1. 系统是长出来的,不是设计出来的;长出来的系统,有概率掉进万丈深渊。
  2. 提效不是最终目标,目标的尽头是敏捷度;敏捷度指的是快速适应与高效纠偏。
  3. 不要小看上述两点,这都是要命的事!
    暂时无法在飞书文档外展示此内容

平台的本质是标准化,标准化的目的是:至少不要让路线偏离的太远。


检索平台

基于在线数据缓存服务这个定位,我们规划了函谷检索平台,目标是为广告库提供标准化、通用的检索能力支撑,快速定制业务检索服务,通过能力复用放大技术建设的杠杆作用。

召回平台 与 检索平台 的区别
在规划 检索平台 的时候,其实我们同时也做出了建设 召回平台 的设想。
检索平台专注于提升基础检索能力(如kv、倒排检索、向量检索等),同时对外屏蔽服务部署等细节,提供云原生的“数据表”缓存服务。召回平台更专注于对业务的召回环节进行抽象,提供多种通用的业务实体、召回插件、过滤插件供策略与产品同学选择,方便快速实现产品需求。
简单来说,检索平台更关注基础能力,召回平台更关注业务抽象。

理念

在建设检索平台的时候,我们明确了几个设计理念。

  1. 数据与查询的标准化
    这个其实是老生常谈,建设任何平台都需要先标准化。这个地方不展开了。

  2. 数据即业务
    在这个地方,我们将整个检索流程抽象为“从一个数据转化为另一份数据的过程”。检索过程从一个表开始,查询到一些结果,然后对这些结果进行一定计算处理,利用计算结果再去查另一张表,如此往复,直到得到需要返回的数据表。如下图所示。
    暂时无法在飞书文档外展示此内容

  3. 云原生
    屏蔽服务部署等细节,提供云原生的“数据表”的声明式部署部署能力。例如,当一个业务方想部署一个计划表时,他只需要如下图操作。
    暂时无法在飞书文档外展示此内容

  4. 支持扩展业务插件/业务图
    原则上我们希望用类SQL的语言表达所有业务逻辑。但是考虑到业务的复杂性以及SQL可读性较差,我们还是提供了扩展插件的能力。如上图Step 3所示,插件会和数据表打包在一起部署到运行环境。
    用户可以通过两种方式调用插件,一是在函谷SDK的标准化接口中通过插件名调用插件。二是直接将插件的执行顺序编写为一个“插件流”文件,并把文件部署到运行环境中,然后在函谷SDK的标准化接口中通过插件流的名字调用插件。

  5. 智能分级存储
    在实际的应用场景中,一张表内的不同字段或不同行之间的的读取频率、性能要求、存储开销是不一样的。利用这个特性,我们很容易联想到操作系统中的三级缓存机制。那么这种缓存机制能否应用于我们的数据服务呢?我认为是可以的。我们可以采样真实请求与返回结果,根据一定策略智能的调整不同数据的存储介质(如磁盘、SSD、AEP、内存等),以此来满足业务对“资源-性能”兑换比的要求。

架构

[图片]

Controller
Controller是整个函谷系统的对外网关,用户通过HTTP协议向Controller发送信令,来实现具体的业务诉求。常见的信令有新建数据表、删除数据表、查看数据列表、构建数据表、调整shard数量等。Controller接收到信令后,会在后端系统中触发一连串操作,并维护任务状态,确保信令正确执行。
HBuilder
在Controller接收到“构建数据表”信令后,会调用k8s接口拉起多个HBuilder实例(取决于信令中数据表的数量、shard数量等)。HBuilder负责从指定位置读取源数据,并构建全量数据。构建完成后,HBuilder会将数据上传到对象存储中,并销毁自己。
HKeeper
HKeeper是运行在在线服务机器上的Sidecar,负责与Controller配合,完成数据分发、数据版本控制、增量消息读入等功能。HKeeper还通过心跳定期上传在线服务状态,如内存负载、CPU负载等,为Controller进行扩所容、迁移等决策提供数据支持。
HWorker
HWorker是在线提供检索服务的进程,解析请求中的检索语法,拆解为对应的基础检索操作。HKernel是HWorker的底层检索内核。
HShark
HShark是插件开发脚手架自动生成工具,是为了提高业务开发插件的效率。
举例:
假设这个是业务方定义的schema文件。

// 使用hangu 2.4.0及以后的镜像,不需要包含addr、segment、snapshot、extension 这几个字段,之前的都需要。
syntax = "proto3"; // 必须
import "hangu/kernel_option.proto";  // 必须
package engine.doc; // package name, // package name + message name 就是 clazz。
message Poi {option (table_name) = "poi";  // tablename,和在函谷平台配置的一致。int64 poiId = 2;string poiInfo = 3;int64 addr     = 10001;int64 segment  = 10002;int64 snapshot = 10003;map<string, string> extension = 10004;
}message SecondNested {int64 addr     = 10001;int64 segment  = 10002;int64 snapshot = 10003;map<string, string> extension = 10004;repeated string varLenStringValues = 2;
}message FirstNested {int64 addr     = 10001;int64 segment  = 10002;int64 snapshot = 10003;map<string, string> extension = 10004;repeated SecondNested secondNested = 1;int32 singleInt8Value = 2[(extend_type) = "int8"];
}

下面是HShark自动生成的Wrapper类的示例。
[图片]


索引内核

HKernel是检索技术的核心,它是面向广告业务场景定制设计的基础检索组件。

理念

  1. 内核职能分层
    检索内核承担了很多功能,比如管理存储IO、优化空间碎片、提供数据结构支持、管理数据对象等。这些功能之间是有明确的层级关系的。因此,在实现时,我们对内核进行了非常严格的分层,并且满足几个原则:(1)上层组件通过调用下层组件通用接口实现自身功能;(2)下层组件不允许调用上层组件;(3)同一层组件之间不允许相互调用。
    [图片]

  2. 技术参数配置化
    可以通过配置的方式,指定某一张表的某一个索引的底层技术选型。如poi表的正排索引选型,可以指定为hash table,也可以指定为sort table。配置方式如下:

poi.forward.index=hashtable
poi.forward.pool.type=fixpool
  1. 向量检索与倒排检索统一
    为了最大化地降低业务同学的认知成本,我们将向量索引与倒排索引进行了统一。具体来说,我们把对一张表的embedding建立向量索引的过程,看作是对这张表的embedding建立倒排索引。只不过这种索引是面向模糊检索,而非精准命中检索。
// 使用hangu 2.4.0及以后的镜像,不需要包含addr、segment、snapshot、extension 这几个字段,之前的都需要。
syntax = "proto3"; // 必须
import "hangu/kernel_option.proto";  // 必须
package engine.doc; // package name, // package name + message name 就是 clazz。
message Poi {option (table_name) = "poi";  // tablename,和在函谷平台配置的一致。int64 poiId = 2;string poiInfo = 3[(inverted) = "b+tree"];repeated float embedding = 4[(inverted) = "ivf-flat", (dim)="32", kernel="faiss"];int64 addr     = 10001;int64 segment  = 10002;int64 snapshot = 10003;map<string, string> extension = 10004;
}

设计

详见广告检索内核设计。

相关文章:

广告场景下的检索平台技术

检索方向概述 数据检索领域技术选型大体分为SQL事务数据库、NoSQL数据库、分析型数据库三个类型。 SQL数据库的设计思路是采用关系模型组织数据&#xff0c;注重读写操作的一致性&#xff0c;注重数据的绝对安全。为了实现这一思路&#xff0c;SQL数据库往往会牺牲部分性能&…...

LintCode407-加一,LintCode第479题-数组第二大数

第407题: 描述 给定一个非负数&#xff0c;表示一个数字数组&#xff0c;在该数的基础上1&#xff0c;返回一个新的数组。 该数字按照数位高低进行排列&#xff0c;最高位的数在列表的最前面. 样例 1&#xff1a; 输入&#xff1a;[1,2,3] 输出&#xff1a;[1,2,4] 样例 …...

网络安全的范式革命:从被动防御到 AI 驱动的主动对抗

当黑客利用生成式 AI 在 30 秒内生成 10 万组钓鱼邮件&#xff0c;当恶意代码学会根据网络环境自主进化&#xff0c;传统网络安全防线正面临前所未有的挑战。2025 年&#xff0c;全球网络安全领域正在经历一场从 “被动挨打” 到 “主动出击” 的革命性转变&#xff0c;AI 与量…...

内网im软件,支持企业云盘的协同办公软件推荐

BeeWorks不仅是一个即时通讯工具&#xff0c;更是一个综合性的企业管理平台。其云盘功能支持大容量文件存储&#xff0c;便企业集中管理文件。并且具备在线协同编辑的能力&#xff0c;这使得企业在文件管理和团队协作方面更加高效和便捷。以下是BeeWorks在企业云盘和在线协同编…...

JAVA SE(9)——多态

1.多态的概念&作用 多态(Polymorphism)是面向对象编程的三大基本特性之一&#xff08;封装和继承已经讲过了&#xff09;&#xff0c;它允许不同类的对象对同一消息做出不同的响应。具体来说&#xff0c;多态允许基类/父类的引用指向派生类/子类的对象&#xff08;向上转型…...

单调栈算法精解(Java实现):从原理到高频面试题

在算法与数据结构的领域中&#xff0c;单调栈&#xff08;Monotonic Stack&#xff09;凭借其独特的设计和高效的求解能力&#xff0c;成为解决特定类型问题的神兵利器。它通过维护栈内元素的单调性&#xff0c;能将许多问题的时间复杂度从暴力解法的\(O(n)\)优化至\(O(n)\)&am…...

密码工具类-生成随机密码校验密码强度是否满足要求

生成随机密码 符合密码强度的密码要求&#xff1a; 至少有一个大写字母至少有一个小写字母至少有一个数字至少有一个特殊字符长度满足要求&#xff08;通常为8-16位&#xff09; // 大写字母private static final String UPPERCASE "ABCDEFGHIJKLMNOPQRSTUVWXYZ";…...

什么是进程,如何管理进程

基本概念&#xff08;什么是进程&#xff1f;&#xff09; 课本概念&#xff1a;程序的一个执行实例&#xff0c;正在执行的程序等内核观点&#xff1a;担当分配系统资源&#xff08;CPU时间&#xff0c;内存&#xff09;的实体。 描述进程-PCB 进程信息被放在一个叫做进程控…...

小刚说C语言刷题—1044 -找出最经济型的包装箱型号

1.题目描述 已知有 A&#xff0c;B&#xff0c;C&#xff0c;D&#xff0c;E五种包装箱&#xff0c;为了不浪费材料&#xff0c;小于 10公斤的用 A型&#xff0c;大于等于 10公斤小于 20 公斤的用 B型&#xff0c;大于等于 20公斤小于 40 公斤的用 C型&#xff0c;大于等于 40…...

用 GRPO 魔法点亮Text2SQL 的推理之路:让模型“思考”得更像人类

推理能力&#xff08;Chain of Thought, CoT&#xff09;可以帮助模型逐步解释其思考过程&#xff0c;从而提高Text-to-SQL 生成的准确性和可解释性。本文探讨了如何将一个标准的 7B 参数的大型语言模型&#xff08;Qwen2.5-Coder-7B-Instruct&#xff09;转变为一个能够为Text…...

k8s service的类型

service和Pods service通过使用labels指向pods,而不是指向deployments或者replicasets。这种设计的灵活性极高&#xff0c;因为创建pods的方式有很多&#xff0c;而Service不需要关心pods通过那种方式创建 不使用service&#xff08;首先看不使用service的情况&#xff09; 如下…...

机器学习 day6 -线性回归练习

题目‌&#xff1a; 从Kaggle的“House Prices - Advanced Regression Techniques”数据集使用Pandas读取数据&#xff0c;并查看数据的基本信息。选择一些你认为对房屋价格有重要影响的特征&#xff0c;并进行数据预处理&#xff08;如缺失值处理、异常值处理等&#xff09;。…...

机器学习-简要与数据集加载

一.机器学习简要 1.1 概念 机器学习即计算机在数据中总结规律并预测未来结果&#xff0c;这一过程仿照人类的学习过程进行。 深度学习是机器学习中的重要算法的其中之一&#xff0c;是一种偏近现代的算法。 1.2 机器学习发展历史 从上世纪50年代的图灵测试提出、塞缪尔开发…...

HTTP请求与前端资源未优化的系统性风险与高性能优化方案

目录 前言一、未合并静态资源&#xff1a;HTTP请求的隐形杀手1.1 多文件拆分的代价1.2 合并策略与工具链实践 二、未启用GZIP压缩&#xff1a;传输流量的浪费2.1 文本资源的压缩潜力2.2 服务端配置与压缩算法选择 三、未配置浏览器缓存&#xff1a;重复请求的根源3.1 缓存失效的…...

黑马点评day04(分布式锁-setnx)

4、分布式锁 4.1 、基本原理和实现方式对比 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;那么我们就能锁住线程&#xff0c;不让线程并行&#x…...

哈尔滨服务器租用

选择一家正规的本地服务商&#xff0c;能够直接促进您网站今后的发展、确保您企业的信息化进程安全、高效。擦亮您的慧眼&#xff0c;用我的经验告诉您该怎么选择服务商。。。。。。。。综合我们为数据客户服务的经验&#xff0c;选择服务器租用、服务提供商客户所需要关注的主…...

企业级RAG架构设计:从FAISS索引到HyDE优化的全链路拆解,金融/医疗领域RAG落地案例与避坑指南(附架构图)

本文较长&#xff0c;纯干货&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习内容&#xff0c;尽在聚客AI学院。 一. RAG技术概述 1.1 什么是RAG&#xff1f; RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09; 是…...

js获取uniapp获取webview内容高度

js获取uniapp获取webview内容高度 在uni-app中&#xff0c;如果你想要获取webview的内容高度&#xff0c;可以使用uni-app提供的bindload事件来监听webview的加载&#xff0c;然后通过调用webview的invokeMethod方法来获取内容的高度。 以下是一个示例代码&#xff1a; <te…...

AI量化解析:从暴跌5%到飙涨3%—非线性动力学模型重构黄金极端波动预测框架

AI分析&#xff1a;假期效应褪去&#xff0c;金价回调背后的市场逻辑 五一假期期间&#xff0c;全球贵金属市场经历显著波动。5月1日&#xff0c;现货黄金单日跌幅达5.06%&#xff0c;价格从历史高位回落至3200美元/盎司附近&#xff0c;国内金饰价格同步回调&#xff0c;主流…...

Python之pip图形化(GUI界面)辅助管理工具

Python之pip图形化&#xff08;GUI界面&#xff09;辅助管理工具 pip 是 Python 的包管理工具&#xff0c;用于安装、管理、更新和卸载 Python 包&#xff08;模块&#xff09;。用于第三方库的安装和管理过程&#xff0c;是 Python 开发中不可或缺的工具。 包的安装、更新、…...

数字传播生态中开源链动模式与智能技术协同驱动的品牌认知重构研究——基于“开源链动2+1模式+AI智能名片+S2B2C商城小程序”的场景化传播实践

摘要&#xff1a;在数字传播碎片化与用户注意力稀缺的双重挑战下&#xff0c;传统品牌认知构建模式面临效率衰减与情感黏性缺失的困境。本文以“开源链动21模式AI智能名片S2B2C商城小程序”的协同创新为切入点&#xff0c;构建“技术赋能-场景重构-认知强化”的分析框架。通过对…...

小芯片大战略:Chiplet技术如何重构全球半导体竞争格局?

在科技飞速发展的今天&#xff0c;半导体行业作为信息技术的核心领域之一&#xff0c;其发展速度和创新水平对全球经济的发展具有举足轻重的影响。然而&#xff0c;随着芯片制造工艺的不断进步&#xff0c;传统的单片集成方式逐渐遇到了技术瓶颈&#xff0c;如摩尔定律逐渐逼近…...

链表的面试题3找出中间节点

来来来&#xff0c;接着继续我们的第三道题 。 解法 暴力求解 快慢指针 https://leetcode.cn/problems/middle-of-the-linked-list/submissions/ 这道题的话&#xff0c;思路是非常明确的&#xff0c;就是让你找出我们这个所谓的中间节点并且输出。 那这道题我们就需要注意…...

Java泛型深度解析与电商场景应用

学海无涯&#xff0c;志当存远。燃心砺志&#xff0c;奋进不辍。 愿诸君得此鸡汤&#xff0c;如沐春风&#xff0c;事业有成。 若觉此言甚善&#xff0c;烦请赐赞一枚&#xff0c;共励学途&#xff0c;同铸辉煌&#xff01; 泛型的工作原理可能包括类型擦除、参数化类型、类型边…...

C语言 指针(7)

目录 1.函数指针变量 2.函数指针数组 3.转移表 1.函数指针变量 1.1函数指针变量的创建 什么是函数指针变量呢&#xff1f; 根据前面学习整型指针&#xff0c;数组指针的时候&#xff0c;我们的类比关系&#xff0c;我们不难得出结论&#xff1a; 函数指针变量应该是用来…...

go 编译报错:build constraints exclude all Go files

报错信息&#xff1a; package command-line-arguments imports github.com/amikos-tech/chroma-go imports github.com/amikos-tech/chroma-go/pkg/embeddings/default_ef imports github.com/amikos-tech/chroma-go/pkg/tokenizers/libtokenizers: …...

Android Service 从 1.0 到 16 的演进史

一、Android 1.0&#xff08;API 1&#xff09; - 服务的诞生 核心特性&#xff1a; 基础服务组件&#xff1a;作为四大组件之一&#xff0c;Service 用于在后台执行长时间运行的任务&#xff0c;不提供 UI 界面。 启动方式&#xff1a;通过 startService() 启动独立运行的服…...

如何保障服务器租用中的数据安全?

网络科技和互联网的飞速发展&#xff0c;让用户越来越依赖与网络业务&#xff0c;各个行业开展了不同的线上服务&#xff0c;租用服务器已经成为必不可少的组成部分&#xff0c;能够为企业带来便捷&#xff0c;但是数据安全也是不可忽视的&#xff0c;为了能够保护服务器中数据…...

python校园二手交易管理系统-闲置物品交易系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…...

消除AttributeError: module ‘ttsfrd‘ has no attribute ‘TtsFrontendEngine‘报错输出的记录

#工作记录 尝试消除 消除“模块ttsfrd没有属性ttsfrontendengine”的错误的记录 报错摘录&#xff1a; Traceback (most recent call last): File "F:\PythonProjects\CosyVoice\webui.py", line 188, in <module> cosyvoice CosyVoice(args.model_di…...

MD2card + Deepseek 王炸组合 一键制作小红书知识卡片

本文目录 MD2Card介绍使用示例deepseek 提示词输出结果MD2Card 制作小红书卡片 MD2Card介绍 MD2Card 是一个免费的 Markdown 转知识卡片工具&#xff0c;支持一键生成小红书风格海报、社交媒体文案排版&#xff0c;让创作者轻松制作精美的图文内容。支持多种主题风格、长文自动…...

Relay算子注册(在pytorch.py端调用)

1. Relay算子注册 (C层) (a) 算子属性注册 路径: src/relay/op/nn/nn.cc RELAY_REGISTER_OP("hardswish").set_num_inputs(1).add_argument("data", "Tensor", "Input tensor.").set_support_level(3).add_type_rel("Identity…...

基于RT-Thread的STM32F4开发第二讲第一篇——ADC

文章目录 前言一、RT-Thread工程创建二、ADC工程创建三、ADC功能实现1.ADC.c2.ADC.h3.mian.c 四、效果展示和工程分享总结 前言 ADC是什么不多讲了&#xff0c;前面裸机操作部分有很多讲述。我要说的是RT-Thread对STM32的ADC外设的适配极其不好&#xff0c;特别是STM32G4系类&…...

py实现win自动化自动登陆qq

系列文章目录 py实现win自动化自动登陆qq 文章目录 系列文章目录前言一、上代码&#xff1f;总结 前言 之前都是网页自动化感觉太容易了&#xff0c;就来尝尝win自动化&#xff0c;就先写了一个qq登陆的&#xff0c;这个是拿到className 然后进行点击等。 一、上代码&#xf…...

Axure : 列表分页、 列表翻页

文章目录 引言I 列表分页操作说明II 列表翻页操作说明引言 列表分页实现思路:局部变量、 中继器设置每页项目数 I 列表分页 操作说明 在列表元件底部添加一个分页下拉控件,分别为10,20,30,40,50; 将列表转换为动态面板,将设置面板大小勾选取消 给分页大小下拉控件添加…...

大学之大:隆德大学2025.5.6

隆德大学&#xff1a;北欧学术明珠的八百年传承与创新 一.前身历史&#xff1a;从中世纪神学院到现代综合大学的蜕变 隆德大学的历史可追溯至1425年&#xff0c;由丹麦国王埃里克七世在瑞典南部城市隆德创立的“神学与教会法研究院”。这所中世纪学府最初以培养天主教神职人员…...

每日算法-250506

每日算法学习记录 - 250506 今天记录了三道算法题的解题过程和思路&#xff0c;分享给大家。 3192. 使二进制数组全部等于 1 的最少操作次数 II 题目 思路 贪心 解题过程 我们从左到右遍历数组。使用一个变量 ret 来记录已经执行的操作次数。 对于当前元素 nums[i]&#x…...

【免费试用】LattePanda Mu x86 计算模块套件,专为嵌入式开发、边缘计算与 AI 模型部署设计

本次活动为载板设计挑战&#xff0c;旨在激发创意与技术实践能力&#xff0c;鼓励电子工程师、创客、学生及开发者围绕指定LattePanda Mu进行功能丰富、应用多样的载板开发设计。参赛用户将有机会展示硬件设计能力&#xff0c;并通过作品解决实际问题或构建创新项目。本次挑战活…...

用于备份的git版本管理指令

一、先下载一个git服务器软件并安装&#xff0c;创建一个git服务器进行备份的版本管理。 下列指令用于git常用备份&#xff1a; 1、强制覆盖远程仓库&#xff1a; git push --force origin master 2、重新指向新仓库&#xff1a; git remote set-url origin http://192.168.1.2…...

STM32H743单片机实现ADC+DMA多通道检测

在stm32cubeMX上配置ADCDMA实现多通道检测功能 DMA配置 生成代码&#xff0c;HAL_ADC_Start_DMA开始DMA读取ADC值&#xff0c;HAL_ADC_Stop_DMA关闭DMA读取 void Start_ADC2_DMA(void) {/* 初始化后校准ADC */HAL_ADCEx_Calibration_Start(&hadc2, ADC_CALIB_OFFSET, ADC_…...

(提升)媒体投稿技能

1\前期策划与准备 精准定位目标受众&#xff0c;分析内容偏好与活跃媒体基于目标受众&#xff0c;确定发稿核心主题与内容方向 2\内容创作与素材 撰写稿件注重标题吸引力&#xff0c;确保内容逻辑清晰价值突出。素材整合准备高质量的配图、视频 3\内部审核与优化 对稿件内…...

2025年提交App到Appstore从审核被拒到通过的经历

今年3月份提交一个App到Appstore&#xff0c;感觉比以前要严格了很多&#xff0c;被拒了多次才通过。 如果周末提交审核会非常非常&#xff0c;所以最好选择周一之周四的中午提交。 第一次提交被拒&#xff0c;原因为 Guideline 2.1 - Performance - App Completeness Guidel…...

63.微服务保姆教程 (六) SkyWalking--分布式链路追踪系统/分布式的应用性能管理工具

SkyWalking—分布式链路追踪系统/分布式的应用性能管理工具(APM) 一、为什么要用SkyWalking 对于一个有很多个微服务组成的微服务架构系统,通常会遇到一些问题,比如: 如何串联整个调用链路,快速定位问题如何缕清各个微服务之间的依赖关系如何进行各个微服务接口的性能分…...

vue3 computed方法传参数

我们对computed的基础用法不陌生&#xff0c;比如前端项目中经常会遇到数据处理的情况&#xff0c;我们就会选择computed方法来实现。但大家在碰到某些特殊场景&#xff0c;比如在template模板中for循环遍历时想给自己的计算属性传参&#xff0c;这个该怎么实现呢&#xff0c;很…...

Linux中为某个进程临时指定tmp目录

起因&#xff1a; 在linux下编译k8s&#xff0c;由于编译的中间文件太多而系统的/tmp分区设置太小&#xff0c;导致编译失败&#xff0c;但自己不想或不能更改/tmp分区大小&#xff0c;所以只能通过其他方式解决。 现象&#xff1a; tmp分区大小&#xff1a; 解决方法&#x…...

Informer源码解析4——完整注意力机制解读

完整注意力机制 源码 class FullAttention(nn.Module):def __init__(self, mask_flagTrue, factor5, scaleNone, attention_dropout0.1, output_attentionFalse):"""实现完整的注意力机制&#xff0c;支持因果掩码和注意力权重输出。Args:mask_flag (bool): 是…...

第一节:Web3开发概述

一、什么是Web3&#xff1f; 如果把互联网比作一个「大超市」&#xff1a; Web1&#xff08;1990年代&#xff09;&#xff1a;你只能看货架上的商品&#xff08;比如新浪、搜狐这种只读网站&#xff09;。Web2&#xff08;现在&#xff09;&#xff1a;你不仅能看&#xff0…...

【愚公系列】《Manus极简入门》022-艺术创作顾问:“艺术灵感使者”

&#x1f31f;【技术大咖愚公搬代码&#xff1a;全栈专家的成长之路&#xff0c;你关注的宝藏博主在这里&#xff01;】&#x1f31f; &#x1f4e3;开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主&#xff01; &#x1f…...

k8s node 内存碎片化如何优化?

在 Kubernetes 集群中&#xff0c;内存碎片化&#xff08;Memory Fragmentation&#xff09;会导致系统无法分配连续的内存块&#xff0c;即使总内存充足&#xff0c;也可能触发 OOM&#xff08;Out of Memory&#xff09;或影响性能。以下是针对 k8s Node 内存碎片化的优化策略…...

当K8S容器没有bash时7种高阶排查手段

遇到容器没有bash甚至没有sh的情况&#xff0c;就像被困在没有门窗的房间。但真正的K8S运维高手&#xff0c;即使面对这种情况也能游刃有余。以下是我们在生产环境锤炼出的7大实战技巧&#xff1a; 一、基础三板斧&#xff08;新手必学&#xff09; 1. 日志捕获术——穿透重启…...