CN111796931B - 信息处理方法、装置、计算设备和介质 - Google Patents

信息处理方法、装置、计算设备和介质 Download PDF

Info

Publication number
CN111796931B
CN111796931B CN202010518086.2A CN202010518086A CN111796931B CN 111796931 B CN111796931 B CN 111796931B CN 202010518086 A CN202010518086 A CN 202010518086A CN 111796931 B CN111796931 B CN 111796931B
Authority
CN
China
Prior art keywords
codebook
feature vector
storage
shared memory
distance table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010518086.2A
Other languages
English (en)
Other versions
CN111796931A (zh
Inventor
蔡元哲
李飞飞
占超群
陆元飞
罗毅
魏闯先
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010518086.2A priority Critical patent/CN111796931B/zh
Publication of CN111796931A publication Critical patent/CN111796931A/zh
Application granted granted Critical
Publication of CN111796931B publication Critical patent/CN111796931B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Abstract

本发明公开了一种信息处理方法、装置、计算设备和介质。该方法包括:获取针对目标信息的存储请求,所述目标信息包括目标向量,存储请求包括目标向量的第一存储位置参数;从共享内存中读取与第一存储位置参数关联的第一特征向量库所对应的第一距离表和第一码本;第一码本包括对第一特征向量库中的多个样本特征向量聚类后得到的多个中心向量;第一距离表包括多个中心向量中任意两个中心向量之间的距离。根据本发明实施例,可解决内存消耗过大的问题。

Description

信息处理方法、装置、计算设备和介质
技术领域
本发明涉及数据处理领域,尤其涉及一种信息处理方法、装置、计算设备和介质。
背景技术
在存储新的样本特征向量的过程中,不仅需要将该样本特征向量存入对应的特征向量库中,还需要将该特征向量库中与该新的样本特征向量距离邻近的样本特征向量与该新的样本特征向量关联存储,以体现样本特征向量之间的关联关系。目前可以通过查询特征向量库对应的距离表,计算该新的样本特征向量与特征向量库中的其他样本特征向量之间的距离,以筛选出特征向量库中与需要存储的新的样本特征向量距离邻近的样本特征向量。
若特征向量库存储于具有多进程的数据库系统,由于距离表占用的内存空间非常大,若每个样本特征向量存入请求分配一个进程处理,在高并发存入样本特征向量的情况下,每个进程单独分配内存来存储距离表,则很快系统就会内存不足。
发明内容
本发明实施例提供了一种信息处理方法、装置、计算设备和介质,可提高解决内存消耗过大的问题。
第一方面,本发明实施例提供了一种信息存储方法,方法包括:
获取针对目标信息的存储请求,目标信息包括目标向量,存储请求包括目标向量的第一存储位置参数;
从共享内存中读取与第一存储位置参数关联的第一特征向量库所对应的第一距离表和第一码本;第一码本包括对第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量;第一距离表包括多个中心向量中任意两个中心向量之间的距离。
第二方面,本发明实施例提供了一种信息存储装置,装置包括:
存储请求获取模块,用于获取针对目标信息的存储请求,目标信息包括目标向量,存储请求包括目标向量的第一存储位置参数;
读取模块,用于从共享内存中读取与第一存储位置参数关联的第一特征向量库所对应的第一距离表和第一码本;第一码本包括对第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量;第一距离表包括多个中心向量中任意两个中心向量之间的距离。
第三方面,本发明实施例提供了一种信息处理设备,设备包括目标数据库,目标数据库包括共享内存;
其中,共享内存中存储有第一特征向量库对应的第一距离表和第一码本;第一码本包括对第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量;第一距离表包括多个中心向量中任意两个中心向量之间的距离;
目标数据库用于在获取到针对目标信息的存储请求的情况下,从共享内存中读取第一距离表和第一码本,其中,目标信息包括目标向量,存储请求包括目标向量的第一存储位置参数;第一存储位置参数与第一特征向量库关联。
第四方面,本发明实施例提供了一种计算设备,包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现如第一方面提供的信息存储方法。
第五方面,本发明实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面提供的信息存储方法。
根据本发明实施例,通过将特征向量库对应的距离表和码本存入共享内存中,可以使多个存储样本特征向量的进程从共享内存中读取同一个距离表和码本,即共享一个距离表和一个码本,避免了高并发存储样本特征向量的情况下,内存消耗过大的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种对样本特征向量的子特征向量进行聚类以及码本生成过程的示意图;
图2为本发明实施例提供的一种信息存储系统的架构示意图;
图3为本发明一实施例提供的信息存储方法的流程示意图;
图4为本发明实施例提供的一种存储码本和距离表的示意图;
图5为本发明实施例提供的一种从共享内存中读取距离表和码本的流程示意图;
图6为本发明另一实施例提供的信息存储方法的流程示意图;
图7为本发明实施例提供的一种信息存储装置的结构示意图;
图8为本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了更好的理解本发明,下面通过具体实施例,详细描述本发明的实现方式,这些实施例并不是用来限制本发明保护的范围。
信息检索是指根据用户的要求,对信息(例如图像、文本、声音、动画等多媒体信息)进行识别和获取所需信息的过程。
例如,“以图搜图”是公安、安防系统中被广泛用于查找目标的检索方法。以图搜图是在多个预设图像中确定与待检索图像匹配的图像的技术。为了支持非结构化查询,会将每个预设图像转化为对应的样本特征向量,并存储在特征向量库中。预设图像对应的样本特征向量可以采用深度学习算法进行提取。当需要对待检索图像进行检索时,分别计算待检索图像的特征向量与特征向量库中每个样本特征向量之间的距离;然后将与待检索图像的特征向量的距离最小的样本特征向量对应的预设图像作为待检索图像匹配的图像。
为了提高信息检索的准确性,需要将新的样本特征向量存入特征向量库,以完善该特征向量库。为了提高信息检索的效率,在存储新的样本特征向量时,不仅需要将该样本特征向量存入对应的特征向量库中,还需要将该特征向量库中与该新的样本特征向量距离邻近的样本特征向量与该新的样本特征向量关联存储,以体现样本特征向量之间的关联关系。根据每个样本特征向量以及与其距离邻近的样本特征向量之间的关联关系,可以缩小检索的范围,提高检索的效率。
目前,为了提高对新的样本特征向量的存储效率,可以通过查询特征向量库对应的距离表,计算该新的样本特征向量与特征向量库中的其他样本特征向量之间的距离,以筛选出特征向量库中与需要存储的新的样本特征向量距离邻近的样本特征向量。
需要说明的是,在计算新的样本特征向量与特征向量库中的其他样本特征向量之间的距离时,一般计算新的样本特征向量与其他样本特征向量之间的同步距离(SymmetricDistance Computation,SDC)。
作为一个示例,若要计算样本特征向量A和样本特征向量B之间的同步距离,则可以先把样本特征向量A和样本特征向量B分别分解成M个子特征向量。子特征向量是样本特征向量中的部分元素构成的向量。其中,将样本特征向量划分成多个子特征向量的实现方式为现有技术,此处不再赘述。样本特征向量A和样本特征向量B之间的同步距离D可以用下面的表达式进行计算:
其中,d(qj(A),qj(B))是指样本特征向量A的第j个子特征向量qj(A)和样本特征向量B的第j个子特征向量qj(B)之间的欧式距离。
以下,对本发明实施例涉及的术语和技术进行简单介绍。
(1)样本特征向量
样本特征向量,是基于提取的预设对象的特征信息构建得到的向量。例如,将所提取的预设对象的每个特征信息作为样本特征向量的一个元素。其中,提取预设对象的特征信息所采用的方法可以是深度学习算法。例如,预设对象可以为预设图像、预设声音、预设文本等信息。
(2)聚类
聚类,是将数据库中源数据按照相似性划分为若干个集合的过程。每个集合又可以称为一个簇,每个簇包括多个具有相似特征的数据。同一个簇中的数据彼此相似,不同簇中的数据对象彼此相异。每个簇具有一个中心点(或称为中心数据对象)。该中心点用于表征该簇中的各数据对象的共有特征。一个簇的中心点可以是该簇中的一个元素,也可以不是该簇中的元素。
在本发明实施例中,由于需要计算样本特征向量之间的同步距离,因此用于聚类的数据包括子特征向量。
本发明实施例中,以特征向量库中存储有R个样本特征向量(可标记为样本特征向量0~R-1)为例。对于R个样本特征向量中的每个样本特征向量,将该样本特征向量划分成N个子特征向量,N≥2,N是整数。然后将每个样本特征向量的第n个子特征向量进行聚类,得到预设数量个簇,这预设数量个簇的中心点(即中心向量)构成的集合,即为第n个子特征向量对应的码本。其中,1≤n≤N,为正整数。n取遍1~N中的每个正整数,则可以得到特征向量库对应的N个码本。
(3)码本
码本与子特征向量一一对应,特征向量库中存储的R个样本特征向量的子特征向量经聚类得到N个码本。
图1为本发明实施例提供的一种对样本特征向量的子特征向量进行聚类以及码本生成过程的示意图。图1以特征向量库中包括10000个样本特征向量(标记为样本特征向量0~9999),其中,每个样本特征向量为256维的向量。将每个样本特征向量划分成8个32维的子特征向量。
然后,将10000个样本特征向量的第i个子特征向量进行聚类,得到1000个簇,以及每个簇的中心向量,则这1000个中心向量构成的集合即是第i个子特征向量对应的码本,即特征向量库的第i个码本。其中,1≤i≤8,i为整数。也就是说,特征向量库具有8个码本,即码本1、码本2、码本3、码本4、码本5、码本6、码本7和码本8。
(4)距离表
距离表是码本中任意两个中心向量之间的距离值的集合。其中,每个码本对应一个距离表。以图1中的8个码本为例,每个码本均具有对应的距离表,则图1中的特征向量库具有8个距离表。需要说明的是,距离表中的距离指的是两个中心向量之间的欧式距离。
下面介绍如何根据距离表获取新存储的样本特征向量和该样本特征向量需要存入的特征向量库中的其他样本特征向量之间的距离。
作为一个示例,若在包括10000个样本特征向量的特征向量库Q1中插入一个新的256维的样本特征向量C,下面以计算样本特征向量C与特征向量库Q1中的样本特征向量D之间的同步距离为例,介绍如何根据距离表获取新存储的样本特征向量和该样本特征向量需要存入的特征向量库中的其他样本特征向量之间的距离。
首先,将样本特征向量C划分成8个32维的子特征向量。
然后,对于样本特征向量C的第i个子特征向量,计算样本特征向量C的第i个子特征向量与样本特征向量C要存入的特征向量库的第i个码本的1000个中心向量中每个中心向量之间的欧式距离。然后将第i个码本的1000个中心向量中与样本特征向量C的第i个子特征向量的距离最短的中心向量,作为样本特征向量C的第i个子特征向量对应的中心向量。则可以得出样本特征向量C的每个子特征向量所对应的中心向量。
接着,根据第i个码本对应的特征向量库的第i个距离表,可以查询样本特征向量C的第i个子特征向量对应的中心向量和样本特征向量D的第i个子特征向量对应的中心向量之间的距离。
再然后,将样本特征向量C的第1个子特征向量对应的中心向量和样本特征向量D的第1个子特征向量对应的中心向量之间的距离的平方、样本特征向量C的第2个子特征向量对应的中心向量和样本特征向量D的第2个子特征向量对应的中心向量之间的距离的平方、……、样本特征向量C的第8个子特征向量对应的中心向量和样本特征向量D第8个子特征向量对应的中心向量之间的距离的平方相加得到的和的平方根,作为样本特征向量C和样本特征向量D之间的同步距离。
在一些实施例中,特征向量库可以存储于具有多进程的数据库系统,例如PostgreSQL。PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统,简称为pg数据库系统,可以将特征向量库存入该系统中。
若需要将新的样本特征向量存入多进程数据库系统中的特征向量库,由于距离表占用的内存空间非常大,若每个样本特征向量存入请求分配一个进程处理,在高并发存入样本特征向量的情况下,每个进程单独分配内存来存储距离表,则很快系统就会内存不足。
基于此,本发明实施例提供了一种信息存储方法、装置、设备及介质,可以解决在高并发存储样本特征向量的情况下,内存消耗过大的问题。下面结合具体的实施例和附图进行详细介绍。
图2为本发明实施例提供的一种信息存储架构的结构示意图。如图2所示,该系统包括多个客户端110和多进程数据库系统。
作为一个示例,图2中的多进程数据库系统为pg数据库系统120。下面以pg数据库系统120为例进行说明。
当客户端110向pg数据库系统120发起连接请求,pg数据库系统120会分配单独的服务进程为客户端110提供服务,客户端110直接与服务进程通信,直至客户端110断开连接。其中,每个客户端110可以发送针对不同目标信息的存储请求至pg数据库系统120。也就是说,可以多进程并发向pg数据库系统120存储目标信息。需要说明的是,目标信息包括目标向量。目标向量即为要存入pg数据库系统120中的一个新的样本特征向量。
对于任意一个客户端110,用户可以通过客户端110发送针对目标信息的存储请求至pg数据库系统120,目标信息包括目标向量,该存储请求包括目标向量的第一存储位置参数。pg数据库系统120为该客户端110分配的服务进程接收到针对目标向量的存储请求后,从共享内存中读取与第一存储位置参数关联的第一特征向量库所对应的第一距离表和第一码本。其中,第一码本包括对第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量。第一距离表包括多个中心向量中任意两个中心向量之间的距离。
需要说明的是,pg数据库系统120在启动时则会分配共享内存。对于每个客户端110,pg数据库系统120为该客户端110分配的服务进程均可以从共享内存中读取数据或者向共享内存中写入数据。
在本发明的实施例中,通过将特征向量库对应的距离表和码本存入共享内存中,可以使多个存储样本特征向量的进程共享一个距离表和一个码本,避免了高并发存储样本特征向量的情况下,内存消耗过大的问题。
图3为本发明实施例提供的一种信息存储方法的流程示意图。如图3所示,该方法可以应用于图2中的pg数据库系统120,包括:
S310,获取针对目标信息的存储请求,目标信息包括目标向量,存储请求包括目标向量的第一存储位置参数。
S320,从共享内存中读取与第一存储位置参数关联的第一特征向量库所对应的第一距离表和第一码本。第一码本包括对第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量。第一距离表包括多个中心向量中任意两个中心向量之间的距离。
下面分别对S310~S320中的每个步骤的具体实现方式进行详细介绍。
首先介绍S310的具体实现方式。在本发明的实施例中,目标向量即为需要新存入多进程数据库的一个新的样本特征向量。
在一些实施例中,第一存储位置参数包括目标向量所要存入的特征向量库的标识,以及样本特征向量在该特征向量库中的存储位置的索引。
作为一个示例,目标向量为张三的人脸图像对应的样本特征向量,该向量需要存入人脸特征向量库。在pg数据库系统中,人脸特征向量库是以数据列表的形式进行存储。则人脸特征向量库具有自己的表名,例如“face”。在本发明的一些实施例中,在人脸特征向量库对应的数据列表中,第一列用于存储人脸图像对应的用户的姓名,第二列用于存储该人脸图像对应的样本特征向量。即第一位置参数还包括样本特征向量在特征向量库中所在列对应的索引。
下面介绍S320的具体实现方式。需要说明的是,参考上述叙述,第一特征向量库可能对应多个第一距离表和多个第一码本。第一码本包括对第一特征向量库中的多个样本特征向量的第i个子特征向量进行聚类后得到的多个中心向量。每个第一码本具有对应的第一距离表。
在多进程数据库启动时,可以申请一段共享内存,然后将已经训练好的特征向量库对应的距离表和码本读入到共享内存中。对于申请的共享内存的空间大小,可以根据相关的配置文件进行调整。
需要说明的是,与第一存储位置参数关联的第一特征向量库即为目标向量需要存入的第一特征向量库。服务进程基于获取的第一存储位置参数,可以从共享内存中读取目标向量需要存入的第一特征向量库对应的码本和距离表。
在本申请的一些实施例中,在S320之后,本申请实施例提供的信息处理方法还包括S330和S340。
S330,基于从第一距离表获取的第一中心向量和第二中心向量之间的距离,确定第一特征向量库中与目标向量的距离满足预设条件的样本特征向量。第一中心向量为多个中心向量中目标向量对应的中心向量,第二中心向量为多个中心向量中样本特征向量对应的中心向量;
S340,将目标向量存入第一特征向量库,并将目标向量与满足预设条件的样本特征向量关联存储。
在本发明的实施例中,多个存储样本特征向量的进程从共享内存中读取同一个距离表和码本,即共享一个距离表和一个码本,即共享一个距离表和一个码本,从而提高了在多个存储样本特征向量的并发进程场景下样本特征向量存储的效率。
下面介绍S330的具体实现方式。参考上述叙述,若将目标向量划分成N个子特征向量,则会存在N个第一中心向量。其中,第k个第一中心向量为第一特征向量库对应的第k个码本的多个中心向量中目标向量的第k个子特征向量对应的中心向量,即第一特征向量库对应的第k个码本中的多个中心向量中与目标向量的第k个子特征向量的欧式距离最小的中心向量。1≤k≤N,k为整数。
需要说明的是,第一中心向量与第二中心向量之间的距离即为第k个第一中心向量与第k个第二中心向量之间的距离。第k个第二中心向量为第一特征向量库对应的第k个码本的多个中心向量中第一特征向量库中的任意一个样本特征向量的第k个子特征向量对应的中心向量。
从第一特征向量库的第k个码本对应的距离表中,可以查询到第k个第一中心向量与第k个第二中心向量之间的距离,进而可以得到目标向量与第一特征向量库中任意一个样本特征向量之间的同步距离。
作为一个示例,预设条件为第一特征向量库中与目标向量的同步距离K近邻的样本特征向量。与目标向量的同步距离K近邻的样本特征向量,即是第一特征向量库中与目标向量的同步距离最近的K个样本特征向量,K为预设的正整数。
在本发明的实施例中,对于第一特征向量库中的每个样本特征向量,pg数据库系统还将该样本特征向量与第一特征向量库中与该样本特征向量的距离K近邻的K个样本特征向量关联存储。
因此,在确定第一特征向量库中与目标向量的距离满足预设条件的样本特征向量时,不需要计算目标向量与第一特征向量库中每个样本特征向量之间的距离。
作为一个示例,可将第一特征向量库中的一个预设的样本特征向量作为目标对象。通过计算目标向量与目标对象的K近邻的K个样本特征向量中每个样本特征向量之间的同步距离,然后筛选出该K个样本特征向量中与目标向量的同步距离最小的样本特征向量,并将该样本特征向量更新为目标对象。然后,继续计算目标向量与新的目标对象的K近邻的K个样本特征向量中每个样本特征向量之间的同步距离,直至得到第一特征向量库中目标向量的K近邻的K个样本特征向量,即与目标向量的距离满足预设条件的样本特征向量。这样可以减少同步距离的计算量,提高样本特征向量的存储效率。
在S340中,为了完善第一特征向量库,将目标向量存入第一特征向量库。例如,将目标向量存入第一特征向量库对应的数据列表中。值得一提的是,第一特征向量库存储于pg数据库系统的外部存储区中。
为了提高信息检索的效率,将目标向量与满足预设条件的样本特征向量关联存储。作为一个示例,可以将目标向量的标识和与目标向量的距离满足预设条件的样本特征向量的标识存入一个数组中,以关联存储目标向量与满足预设条件的样本特征向量,该数组可以存储于pg数据库系统的外部存储区中。
在本发明的一些实施例中,当特征向量库中的样本特征向量的数量达到预设数量阈值时,则pg数据库系统则会训练该特征向量库对应的距离表和码本,并将该距离表和码本存储于pg数据库系统的外部存储区中。需要说明的是,训练特征向量数据库对应的距离表和码本的过程,包括对特征向量库中的样本特征向量的子特征向量进行聚类得到码本的过程,以及对码本中的中心向量之间的距离进行计算得到距离表的过程。
如图4所示,pg数据库系统将训练的特征向量库对应的距离表和码本,可以存入到外部存储区。
当pg数据库系统启动的时候,可以申请一段共享内存,将外部存储区中存储的部分或全部的特征向量库对应的距离表和码本导入共享内存。
在本发明的一些实施例中,在pg数据库系统的共享内存中存储有与第一存储位置参数关联的第一特征向量库所对应的第一距离表和第一码本的情况下,才可以从共享内存中读取第一距离表和第一码本。因此,在S320之前,本发明实施例提供的信息存储方法还包括S311。S311,基于第一存储位置参数,确定共享内存中是否包括第一距离表和第一码本。
在一些实施例中,S311包括:基于存储位置参数与存储地址的对应关系,确定第一存储位置参数是否具有对应的存储地址,以确定共享内存中是否包括第一距离表和第一码本。
其中,第一存储位置参数对应的存储地址为第一距离表和第一码本在共享内存中的存储空间的起始存储地址。
需要说明的是,对于共享内存中存储的特征向量库对应的距离表和码本,在共享内存中均有各自的存储空间。其中,同一个特征向量库的距离表和码本可以存在同一个存储空间内。为了便于服务进程从共享内存中读取需要的距离表和码本,pg数据库系统会预先存储共享内存中存储的距离表和码本所在的存储空间的起始存储地址与样本特征向量在该距离表对应的特征向量库的存储位置参数之间的对应关系,即存储位置参数与存储地址的对应关系。在该对应关系中,存储位置参数包括特征向量库的标识和样本特征向量在该特征向量库中的存储位置的索引。存储位置参数对应的存储地址为该存储位置参数关联的特征向量库对应的码本和距离表在共享内存中的存储空间的起始存储地址。
通过利用存储位置参数与存储地址的对应关系,可以查询目标向量的第一存储位置参数是否具有对应的存储地址。
若第一存储位置参数具有对应的存储地址,则代表第一特征向量库对应的第一距离表和第一码本存储于共享内存,若第一存储位置参数不具有对应的存储地址,则代表存储位置参数与存储地址的对应关系中不包括第一存储位置参数与其对应的存储地址之间的对应关系,则代表共享内存中不存在第一特征向量库对应的第一距离表和第一码本。
在一些具体示例中,S311包括:基于存储位置参数与身份标识的对应关系,确定第一存储位置参数对应的第一身份标识;基于身份标识和存储地址的对应关系,确定第一身份标识是否具有对应的存储地址,以确定共享内存中是否包括第一距离表和第一码本。
在本发明的实施例中,第一身份标识对应的存储地址即是第一存储位置参数对应的存储地址。
在本发明的实施例中,S320包括在确定第一存储位置参数具有对应的存储地址的情况下,基于第一存储位置参数对应的存储地址,从共享内存中读取第一距离表和第一码本。
在确定共享内存中存储有第一特征向量库对应的第一码本和第一距离表的情况下,通过利用第一码本和第一距离表在共享内存中的存储空间的起始存储地址,则可以读取第一码本和第一距离表。
需要说明的是,共享内存为每个特征向量库的第一码本和第一距离表分配一个具有固定大小的存储空间,因此根据第一码本和第一距离表在共享内存中的存储空间的起始存储地址,即第一存储位置参数对应的存储地址,则可以从共享内存中读取第一码本和第一距离表。
在本发明的一些实施例中,信息存储方法还包括S350。S350,在确定共享内存中不包括第一距离表和第一码本,且基于第一存储位置参数确定外存储区中存储有第一距离表和第一码本的情况下,将外部存储区中的第一距离表和第一码本存储于共享内存。
在本发明的一些实施例中,由于共享内存的空间有限,因此可能只存储了部分特征向量库对应的距离表和码本,而其他特征向量库对应的距离表和码本存储于外部存储区。另外,还有些特征向量库由于样本特征向量的个数没有达到训练码本和距离表的要求,因此可能不具有距离表和码本。
参见图5,服务进程Postgres确定共享内存中是否存储有第一特征向量库对应的第一距离表和第一码本。若确定共享内存中存储有第一距离表和第一码本,则可以直接从共享内存中读取第一码本和第一距离表,并根据第一码本和第一距离表,筛选第一特征向量库中与目标向量的距离满足预设条件的样本特征向量。
若确定共享内存中不具有第一距离表和第一码本,则服务进程可以根据第一存储位置参数确定外部存储区中是否包括第一距离表和第一码本。
在外部存储区中记录了每个特征向量数据库中包括的每个样本特征向量以及每个特征向量数据库是否具有对应的距离表和码本的状态信息。
若确定外部存储区中不包括第一特征向量库对应的第一码本和第一距离表,则直接计算目标向量与第一特征向量库之间的同步距离,以筛选第一特征向量库中与目标向量的距离满足预设条件的样本特征向量。
若确定外部存储区中包括第一特征向量库对应的第一码本和第一距离表,则可以服务进程可以将外部存储区中存储的第一码本和第一距离表存入共享内存中,以供自身和其他服务进程共同使用。
在本发明的一些实施例中,在将外部存储区中的第一距离表和第一码本存储于共享内存之前,本发明实施例提供的信息存储方法还包括:发送第一存储空间分配请求至共享内存,以使共享内存返回第一存储地址,第一存储地址为共享内存为第一距离表和第一码本分配的第一存储空间的起始存储地址;接收第一存储地址。在此基础上,基于第一存储地址,将外部存储区中的第一距离表和第一码本存储于第一存储空间。
若想要将外部存储区中存储的第一距离表和第一码本存入共享内存,则需要共享内存为第一距离表和第一码本分配一个存储空间,因此需要向共享内存发送第一存储空间分配请求。
共享内存接收到第一存储空间分配请求之后,若共享内存确定自身还有多余的存储空间,则可以直接为第一距离表和第一码本分配一个具有固定大小的存储空间,即第一存储空间,并将该存储空间的起始存储地址(即第一存储地址)返回给服务进程。
共享内存接收到第一存储空间分配请求之后,若共享内存确定自身存储空间不足,则共享内存将会删除最早存入的距离表和码本,得到一个空余的存储空间(即第一存储空间)分配给第一距离表和第一码本,并将该存储空间的起始存储地址(即第一存储地址)返回给服务进程。
服务进程接收到第一存储地址之后,则可以基于该第一存储地址,从该存储地址开始,将外部存储区中的第一距离表和第一码本存储于第一存储空间。
需要说明的是,由于第一距离表和第一码本被存入了共享内存,为了便于服务进程可以从共享内存中读取到第一距离表和第一码本,则将第一存储地址作为第一存储位置参数对应的存储地址,并利用第一存储位置参数和第一存储地址更新存储位置参数和存储地址的对应关系。
在多进程并发的场景下,若某个服务进程想将外部存储区的第一距离表和第一码本存入共享内存,在将外部存储区中的第一距离表和第一码本存储于共享内存之前,本发明实施例提供的信息存储方法还包括:获取共享内存的写锁。
作为一个示例,服务进程A将外部存储区的第一距离表和第一码本存入共享内存,则服务进程A需要申请共享内存的写锁以及阻塞其他服务进程的读锁。当服务进程A获取到共享内存的写锁之后,则可以对共享内存中的内容进行修改,即将外部存储区的第一距离表和第一码本存入共享内存。
服务进程A通过获取共享内存的写锁,可以避免多个服务进程同时对共享内存的数据进行更改造成数据不一致产生脏数据的情况。
在一些实施例中,服务进程A还需要获取存储位置参数与存储地址的对应关系的写锁,以利用第一存储位置参数和第一存储地址更新该对应关系。
当将外部存储区的第一距离表和第一码本存入共享内存,以及更新存储位置参数与存储地址的对应关系之后,释放共享内存的写锁和存储位置参数与存储地址的对应关系的写锁,并释放其他服务进程的读锁,以使其他服务进程可以读取新存入共享内存中的第一距离表和第一码本。
在从共享内存中读取与第一存储位置参数关联的第一特征向量库所对应的第一距离表和第一码本之前,本发明实施例提供的信息存储方法还包括:释放共享内存的写锁;获取共享内存的读锁。
在本发明的实施例中,只有获取了共享内存的读锁,才能从共享内存中读取第一距离表和第一码本。另外,还需要获取存储位置参数与存储地址的对应关系的读锁,这样才能获取第一距离表和第一码本在共享内存中的存储空间的起始存储地址,并基于该起始存储地址从共享内存中读取第一距离表和第一码本。
在本发明的实施例中,为了适应多进程并发的场景,通过将读锁和写锁设置成互斥的模式,来提高进程的安全性。
在本发明的一些实施例中,对于一个特征向量库而言,随着特征向量库中样本特征向量的数量的增加,则可以更新该特征向量库对应的码本的版本和距离表的版本。为了提高信息检索的准确性,需要将特征向量库对应的最新版本的码本和最新版本的距离表存入共享内存,以供服务进程使用。
因此,本发明实施例提供的信息存储方法还包括:获取更新信息,更新信息用于指示第二特征向量库对应的距离表和码本发生了更新;基于更新信息,将外部存储区中存储的第二特征向量库对应的最新版本的第二距离表和最新版本的第二码本存储于共享内存。
在本发明的一些实施例中,pg数据库系统会有专门的监测模块来监测特征向量库的距离表和码本的版本是否发生了更新。若pg数据库系统监测到某个特征向量数据库的距离表和码本的版本发生了更新,则发送更新信息至每个服务进程。
需要说明的是,当特征向量库的样本特征向量的总数目达到某个阈值时,则会更新该特征向量库的距离表和码本,因此可以根据每个特征向量库的样本特征向量的总数目来监测其对应的码本和距离表的版本是否发生了更新。
参见图6,若第二特征向量库的总数目大于预设阈值,则训练模块会基于第二特征向量库中的样本特征向量训练新版本的第二码本和新版本的第二距离表,并将训练好的新版本的第二码本和新版本的第二距离表存储于外部存储区。当监测模块监测到第二特征向量库的总数目大于预设阈值,则发送更新信息至每个服务进程。其中,每个接收到更新信息的服务进程都可以将外部存储区中存储的第二特征向量库对应的最新版本的第二距离表和最新版本的第二码本存储于共享内存。
当服务进程获取到更新信息之后,则会从将外部存储区中存储的第二特征向量库对应的最新版本的第二距离表和最新版本的第二码本存储于共享内存。然后每个服务进程都可以从共享内存中读取最新版本的第二距离表和最新版本的第二码本。
在本发明的一些实施例中,在基于更新信息,将外部存储区中存储的第二特征向量库对应的最新版本的第二距离表和最新版本的第二码本存储于共享内存之前,本发明实施例提供的信息存储方法还包括:
发送第二存储空间分配请求至共享内存,以使共享内存返回第二存储地址,第二存储地址为共享内存为第二距离表和第二码本分配的第二存储空间的起始存储地址;接收第二存储地址。在此基础上,基于更新信息,根据第二存储地址将外部存储区中的第二距离表和第二码本存储于第二存储空间。
若想要将外部存储区中存储的最新版本的第二距离表和最新版本的第二码本存入共享内存,则需要共享内存为最新版本的第二距离表和最新版本的第二码本分配一个存储空间,因此需要向共享内存发送第二存储空间分配请求。
共享内存接收到第二存储空间分配请求之后,若共享内存确定自身中存储有旧版本的第二距离表和旧版本的第二码本,则可以将旧版本的第二距离表和旧版本的第二码本删除,并将旧版本的第二距离表和旧版本的第二码本的存储空间作为第二存储空间分配给最新版本的第二距离表和最新版本的第二码本。
共享内存接收到第二存储空间分配请求之后,若共享内存确定自身中没有存储旧版本的第二距离表和旧版本的第二码本,且自身还有多余的存储空间,则可以直接为最新版本的第二距离表和最新版本的第二码本分配一个具有固定大小的存储空间,即第二存储空间,并将该存储空间的起始存储地址(即第二存储地址)返回给服务进程。
共享内存接收到第二存储空间分配请求之后,若共享内存确定自身中没有存储旧版本的第二距离表和旧版本的第二码本,且共享内存确定自身存储空间不足,则共享内存将会删除最早存入的距离表和码本,得到一个空余的存储空间(即第二存储空间)分配给最新版本的第二距离表和第二码本,并将该存储空间的起始存储地址(即第二存储地址)返回给服务进程。
服务进程接收到第二存储地址之后,则可以基于该第二存储地址,从该存储地址开始,将外部存储区中的最新版本的第二距离表和最新版本的第二码本存储于第二存储空间。
需要说明的是,为了便于服务进程可以从共享内存中读取到最新版本的第二距离表和最新版本的第二码本,则将第二存储地址作为第二存储位置参数对应的存储地址,并利用第二存储位置参数和第二存储地址更新存储位置参数和存储地址的对应关系。其中,第二存储位置参数可以从更新信息中获取。第二存储位置参数可以包括第二特征向量库的标识以及样本特征向量在该特征向量库中的存储位置的索引。
在多进程并发的场景下,若某个服务进程想将外部存储区的最新版本的第二距离表和最新版本的第二码本存入共享内存,在将外部存储区中的最新版本的第二距离表和最新版本的第二码本存储于共享内存之前,本发明实施例提供的信息存储方法还包括:获取共享内存的写锁。
作为一个示例,服务进程B将外部存储区的最新版本的第二距离表和最新版本的第二码本存入共享内存,则服务进程B需要申请共享内存的写锁以及阻塞其他服务进程的读锁。当服务进程B获取到共享内存的写锁之后,则可以对共享内存中的内容进行修改,即将外部存储区的最新版本的第二距离表和最新版本的第二码本存入共享内存。
在一些实施例中,服务进程B还需要获取存储位置参数与存储地址的对应关系的写锁,以利用第二存储位置参数和第二存储地址更新该对应关系。
当将外部存储区的最新版本的第二距离表和最新版本的第二码本存入共享内存,以及更新存储位置参数与存储地址的对应关系之后,释放共享内存的写锁和存储位置参数与存储地址的对应关系的写锁,并释放其他服务进程的读锁,以使其他服务进程可以读取新存入共享内存中的最新版本的第二距离表和最新版本的第二码本。
在从共享内存中读取最新版本的第二距离表和最新版本的第二码本之前,本发明实施例提供的信息存储方法还包括:释放共享内存的写锁;获取共享内存的读锁。
在本发明的实施例中,只有获取了共享内存的读锁,才能从共享内存中读取最新版本的第二距离表和最新版本的第二码本。另外,还需要获取存储位置参数与存储地址的对应关系的读锁,这样才能获取最新版本的第二距离表和最新版本的第二码本在共享内存中的存储空间的起始存储地址,并基于该起始存储地址从共享内存中读取最新版本的第二距离表和最新版本的第二码本。
在本发明的实施例中,在多进程的数据库系统中实现了距离表和码本的有效存储,即将距离表和码本存储于共享内存,可以使多个服务进程共享一个距离表和码本,提高样本特征向量存储的效率。
本发明实施例还提供一种信息处理设备,该设备包括目标数据库,该目标数据库包括共享内存。
其中,共享内存中存储有第一特征向量库对应的第一距离表和第一码本。第一码本包括对第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量;第一距离表包括多个中心向量中任意两个中心向量之间的距离。
目标数据库用于在获取到针对目标信息的存储请求的情况下,从共享内存中读取第一距离表和第一码本,其中,目标信息包括目标向量,存储请求包括目标向量的第一存储位置参数;第一存储位置参数与第一特征向量库关联。
作为一个示例,目标数据库为上述的多进程的pg数据库。信息处理设备可以是配置有目标数据库的设备。
在本申请的实施例中,通过在目标数据库中的共享内存存储距离表和码本,可以使多个存储样本特征向量的进程从共享内存中读取同一个距离表和码本,即共享一个距离表和一个码本,避免了高并发存储样本特征向量的情况下,内存消耗过大的问题。
图7为本发明一实施例提供的一种信息存储装置700的结构示意图。如图7所示,信息存储装置700包括:
存储请求获取模块710,用于获取针对目标信息的存储请求,目标信息包括目标向量,存储请求包括目标向量的第一存储位置参数。
读取模块720,用于从共享内存中读取与第一存储位置参数关联的第一特征向量库所对应的第一距离表和第一码本;第一码本包括对第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量;第一距离表包括多个中心向量中任意两个中心向量之间的距离。
在本发明的实施例中,通过将特征向量库对应的距离表和码本存入共享内存中,可以使多个存储样本特征向量的进程共享一个距离表和一个码本,避免了高并发存储样本特征向量的情况下,内存消耗过大的问题。
在本发明的一些实施例中,为了提高在多个存储样本特征向量的并发进程场景下样本特征向量存储的效率,继续参见图7,信息存储装置700还可以包括:
第一确定模块730,用于基于从第一距离表获取的第一中心向量和第二中心向量之间的距离,确定第一特征向量库中与目标向量的距离满足预设条件的样本特征向量;第一中心向量为多个中心向量中目标向量对应的中心向量,第二中心向量为多个中心向量中样本特征向量对应的中心向量。
第一存储模块740,用于将目标向量存入第一特征向量库,并将目标向量与满足预设条件的样本特征向量关联存储。
在本发明的一些实施例中,信息存储装置700还可以包括:
第二确定模块,用于基于第一存储位置参数,确定共享内存中是否包括第一距离表和第一码本。
在本发明的一些实施例中,第二确定模块,包括:
确定单元,用于基于存储位置参数与存储地址的对应关系,确定第一存储位置参数是否具有对应的存储地址,以确定共享内存中是否包括第一距离表和第一码本;
第一存储位置参数对应的存储地址为第一距离表和第一码本在共享内存中的存储空间的起始存储地址。
在本发明的一些实施例中,确定单元包括:
身份标识确定子单元,用于基于存储位置参数与身份标识的对应关系,确定第一存储位置参数对应的第一身份标识。
存储地址确定子单元,用于基于身份标识和存储地址的对应关系,确定第一身份标识是否具有对应的存储地址,以确定共享内存中是否包括第一距离表和第一码本。
在本发明的一些实施例中,读取模块720用于:
在确定第一存储位置参数具有对应的存储地址的情况下,基于第一存储位置参数对应的存储地址,从共享内存中读取第一距离表和第一码本。
在本发明的一些实施例中,信息存储装置700还可以包括:
第二存储模块,用于在确定共享内存中不包括第一距离表和第一码本,且基于第一存储位置参数确定外存储区中存储有第一距离表和第一码本的情况下,将外部存储区中的第一距离表和第一码本存储于共享内存。
在本发明的一些实施例中,信息存储装置700还包括:
第一发送模块,用于发送第一存储空间分配请求至共享内存,以使共享内存返回第一存储地址,第一存储地址为共享内存为第一距离表和第一码本分配的第一存储空间的起始存储地址。
第一接收模块,用于接收第一存储地址。
其中,第二存储模块用于:
基于第一存储地址,将外部存储区中的第一距离表和第一码本存储于第一存储空间。
在本发明的一些实施例中,信息存储装置700还包括:
更新信息获取模块,用于获取更新信息,更新信息用于指示第二特征向量库对应的距离表和码本发生了更新。
第三存储模块,用于基于更新信息,将外部存储区中存储的第二特征向量库对应的最新版本的第二距离表和最新版本的第二码本存储于共享内存。
在本发明的一些实施例中,信息存储装置700还可以包括:
第二发送模块,用于发送第二存储空间分配请求至共享内存,以使共享内存返回第二存储地址,第二存储地址为共享内存为第二距离表和第二码本分配的第二存储空间的起始存储地址。
第二接收模块,用于接收第二存储地址。
其中,第三存储模块用于:
基于更新信息,根据第二存储地址将外部存储区中的第二距离表和第二码本存储于第二存储空间。
在本发明的一些实施例中,信息存储装置700还可以包括:
写锁获取模块,用于获取共享内存的写锁。
在本发明的一些实施例中,信息存储装置700还可以包括:
写锁释放模块,用于释放共享内存的写锁。
读锁获取模块,用于获取共享内存的读锁。
本发明实施例提供的信息存储装置700能够实现本发明实施例提供的信息存储方法实施例中的各个过程,为避免重复,这里不再赘述。
结合图3至图6描述的根据本发明实施例的信息存储方法可以由计算设备来实现。图8为本发明实施例提供的一种计算设备800的硬件结构示意图。
如图8所示,计算设备800包括输入设备801、输入接口802、处理器803、存储器804、输出接口805、以及输出设备806。其中,输入接口802、处理器803、存储器804、以及输出接口805通过总线810相互连接,输入设备801和输出设备806分别通过输入接口802和输出接口805与总线810连接,进而与计算设备800的其他组件连接。
其中,处理器803可以包括:中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processing Unit,NPU)、张量处理器(Tensor Processing Unit,TPU)、现场可编程门阵列(Field Programmable Gate Array,FpGA)芯片或者人工智能(ArtificialIntelligence,AI)芯片等类型的处理器,该附图仅为示例性说明,并不局限于文中列举的类型的处理器。
具体地,输入设备801接收来自外部的输入信息,并通过输入接口802将输入信息传送到处理器803;处理器803基于存储器804中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器804中,然后通过输出接口805将输出信息传送到输出设备806;输出设备806将输出信息输出到计算设备800的外部供用户使用。
也就是说,图8所示的计算设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图3至图6实施例描述的信息存储方法。
本发明实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的信息存储方法。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

Claims (15)

1.一种信息处理方法,所述方法包括:
获取针对目标信息的存储请求,所述目标信息包括目标向量,所述存储请求包括所述目标向量的第一存储位置参数;
从共享内存中读取与所述第一存储位置参数关联的第一特征向量库所对应的第一距离表和第一码本;所述第一码本包括对所述第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量;所述第一距离表包括所述多个中心向量中任意两个所述中心向量之间的距离;
基于从所述第一距离表获取的第一中心向量和第二中心向量之间的距离,确定所述第一特征向量库中与所述目标向量的距离满足预设条件的样本特征向量;所述第一中心向量为所述多个中心向量中所述目标向量对应的中心向量,所述第二中心向量为所述多个中心向量中所述样本特征向量对应的中心向量;
将所述目标向量存入所述第一特征向量库,并将所述目标向量与所述满足预设条件的样本特征向量关联存储。
2.根据权利要求1所述的方法,其中,所述从所述共享内存中读取与所述第一存储位置参数关联的第一特征向量库所对应的所述第一距离表和所述第一码本之前,所述方法还包括:
基于所述第一存储位置参数,确定所述共享内存中是否包括所述第一距离表和所述第一码本。
3.根据权利要求2所述的方法,其中,所述基于所述第一存储位置参数,确定所述共享内存中是否包括所述第一距离表和所述第一码本,包括:
基于存储位置参数与存储地址的对应关系,确定所述第一存储位置参数是否具有对应的存储地址,以确定所述共享内存中是否包括所述第一距离表和所述第一码本;
所述第一存储位置参数对应的存储地址为所述第一距离表和所述第一码本在所述共享内存中的存储空间的起始存储地址。
4.根据权利要求3所述的方法,其中,所述基于存储位置参数与存储地址的对应关系,确定所述第一存储位置参数是否具有对应的存储地址,以确定所述共享内存中是否包括所述第一距离表和所述第一码本,包括:
基于存储位置参数与身份标识的对应关系,确定所述第一存储位置参数对应的第一身份标识;
基于身份标识和存储地址的对应关系,确定所述第一身份标识是否具有对应的存储地址,以确定所述共享内存中是否包括所述第一距离表和所述第一码本。
5.根据权利要求3所述的方法,其中,所述从所述共享内存中读取与所述第一存储位置参数关联的第一特征向量库所对应的所述第一距离表和所述第一码本,包括:
在确定所述第一存储位置参数具有对应的存储地址的情况下,基于所述第一存储位置参数对应的存储地址,从所述共享内存中读取所述第一距离表和所述第一码本。
6.根据权利要求2所述的方法,其中,所述方法还包括:
在确定所述共享内存中不包括所述第一距离表和所述第一码本,且基于所述第一存储位置参数确定外部存储区中存储有所述第一距离表和所述第一码本的情况下,将所述外部存储区中的所述第一距离表和所述第一码本存储于所述共享内存。
7.根据权利要求6所述的方法,其中,所述将所述外部存储区中的所述第一距离表和所述第一码本存储于所述共享内存之前,所述方法还包括:
发送第一存储空间分配请求至所述共享内存,以使所述共享内存返回第一存储地址,所述第一存储地址为所述共享内存为所述第一距离表和所述第一码本分配的第一存储空间的起始存储地址;
接收所述第一存储地址;
其中,所述将所述外部存储区中的所述第一距离表和所述第一码本存储于所述共享内存,包括:
基于所述第一存储地址,将所述外部存储区中的所述第一距离表和所述第一码本存储于所述第一存储空间。
8.根据权利要求1所述的方法,其中,所述方法还包括:
获取更新信息,所述更新信息用于指示第二特征向量库对应的距离表和码本发生了更新;
基于所述更新信息,将外部存储区中存储的所述第二特征向量库对应的最新版本的第二距离表和最新版本的第二码本存储于所述共享内存。
9.根据权利要求8所述的方法,其中,所述基于所述更新信息,将外部存储区中存储的所述第二特征向量库对应的最新版本的第二距离表和最新版本的第二码本存储于所述共享内存之前,所述方法还包括:
发送第二存储空间分配请求至所述共享内存,以使所述共享内存返回第二存储地址,所述第二存储地址为所述共享内存为所述第二距离表和所述第二码本分配的第二存储空间的起始存储地址;
接收所述第二存储地址;
其中,所述基于所述更新信息,将外部存储区中存储的所述第二特征向量库对应的最新版本的第二距离表和最新版本的第二码本存储于所述共享内存,包括:
基于所述更新信息,根据所述第二存储地址将所述外部存储区中的所述第二距离表和所述第二码本存储于所述第二存储空间。
10.根据权利要求6所述的方法,其中,所述将所述外部存储区中的所述第一距离表和所述第一码本存储于所述共享内存之前,所述方法还包括:
获取所述共享内存的写锁。
11.根据权利要求10所述的方法,其中,所述从所述共享内存中读取与所述第一存储位置参数关联的第一特征向量库所对应的所述第一距离表和所述第一码本之前,所述方法还包括:
释放所述共享内存的写锁;
获取所述共享内存的读锁。
12.一种信息处理设备,所述设备包括目标数据库,所述目标数据库包括共享内存;
其中,所述共享内存中存储有第一特征向量库对应的第一距离表和第一码本;所述第一码本包括对所述第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量;所述第一距离表包括所述多个中心向量中任意两个所述中心向量之间的距离;
所述目标数据库用于在获取到针对目标信息的存储请求的情况下,从所述共享内存中读取所述第一距离表和所述第一码本,其中,所述目标信息包括目标向量,所述存储请求包括所述目标向量的第一存储位置参数;所述第一存储位置参数与所述第一特征向量库关联,所述第一码本包括对所述第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量;所述第一距离表包括所述多个中心向量中任意两个所述中心向量之间的距离,以及基于从所述第一距离表获取的第一中心向量和第二中心向量之间的距离,确定所述第一特征向量库中与所述目标向量的距离满足预设条件的样本特征向量,将所述目标向量存入所述第一特征向量库,并将所述目标向量与所述满足预设条件的样本特征向量关联存储,所述第一中心向量为所述多个中心向量中所述目标向量对应的中心向量,所述第二中心向量为所述多个中心向量中所述样本特征向量对应的中心向量。
13.一种信息处理装置,其中,所述装置包括:
存储请求获取模块,用于获取针对目标信息的存储请求,所述目标信息包括目标向量,所述存储请求包括所述目标向量的第一存储位置参数;
读取模块,用于从共享内存中读取与所述第一存储位置参数关联的第一特征向量库所对应的第一距离表和第一码本;所述第一码本包括对所述第一特征向量库中的多个样本特征向量进行聚类后得到的多个中心向量;所述第一距离表包括所述多个中心向量中任意两个所述中心向量之间的距离;
第一确定模块,用于基于从所述第一距离表获取的第一中心向量和第二中心向量之间的距离,确定所述第一特征向量库中与所述目标向量的距离满足预设条件的样本特征向量;所述第一中心向量为所述多个中心向量中所述目标向量对应的中心向量,所述第二中心向量为所述多个中心向量中所述样本特征向量对应的中心向量;
第一存储模块,用于将所述目标向量存入所述第一特征向量库,并将所述目标向量与所述满足预设条件的样本特征向量关联存储。
14.一种计算设备,其中,所述计算设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-11任意一项所述的信息处理方法。
15.一种计算机存储介质,其中,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-11任意一项所述的信息处理方法。
CN202010518086.2A 2020-06-09 2020-06-09 信息处理方法、装置、计算设备和介质 Active CN111796931B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010518086.2A CN111796931B (zh) 2020-06-09 2020-06-09 信息处理方法、装置、计算设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010518086.2A CN111796931B (zh) 2020-06-09 2020-06-09 信息处理方法、装置、计算设备和介质

Publications (2)

Publication Number Publication Date
CN111796931A CN111796931A (zh) 2020-10-20
CN111796931B true CN111796931B (zh) 2024-03-29

Family

ID=72804184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010518086.2A Active CN111796931B (zh) 2020-06-09 2020-06-09 信息处理方法、装置、计算设备和介质

Country Status (1)

Country Link
CN (1) CN111796931B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114399058B (zh) * 2022-03-25 2022-06-10 腾讯科技(深圳)有限公司 一种模型更新的方法、相关装置、设备以及存储介质
CN116150057B (zh) * 2023-04-24 2023-11-03 北京探境科技有限公司 数据传输方法、装置、计算机设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063355A (zh) * 2013-03-21 2014-09-24 腾讯科技(北京)有限公司 对服务器集群进行配置的方法及配置中心服务器
WO2017198070A1 (zh) * 2016-05-16 2017-11-23 深圳市中兴微电子技术有限公司 一种多通道数据存储器及其存取方法及装置、存储介质
CN108062252A (zh) * 2016-11-08 2018-05-22 阿里巴巴集团控股有限公司 一种信息交互方法、对象管理方法及装置和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095772B2 (en) * 2009-05-08 2012-01-10 Oracle America, Inc. Large memory pages for shared libraries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063355A (zh) * 2013-03-21 2014-09-24 腾讯科技(北京)有限公司 对服务器集群进行配置的方法及配置中心服务器
WO2017198070A1 (zh) * 2016-05-16 2017-11-23 深圳市中兴微电子技术有限公司 一种多通道数据存储器及其存取方法及装置、存储介质
CN108062252A (zh) * 2016-11-08 2018-05-22 阿里巴巴集团控股有限公司 一种信息交互方法、对象管理方法及装置和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于分布式共享内存的RTI通信机制研究;梁洪波;朱卫国;姚益平;刘步权;慕晓冬;李猛;;系统仿真学报;20130708(第07期);全文 *

Also Published As

Publication number Publication date
CN111796931A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
US11138546B2 (en) Tracking objects using a trusted ledger
US8798357B2 (en) Image-based localization
CN111796931B (zh) 信息处理方法、装置、计算设备和介质
CN114911830B (zh) 基于时序数据库的索引缓存方法、装置、设备及存储介质
US10650274B2 (en) Image clustering method, image clustering system, and image clustering server
US10838985B2 (en) Item recommendation method, device, and system
US20210182335A1 (en) Matching audio fingerprints
CN104112005B (zh) 分布式海量指纹识别方法
CN112328842B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN110046155B (zh) 特征数据库的更新、数据特征的确定方法、装置及设备
US8554889B2 (en) Method, system and apparatus for managing computer identity
CN111858785B (zh) 地图离散型要素的匹配方法、装置、系统及存储介质
CN107315693B (zh) 一种数据存储方法和装置
WO2012091539A1 (en) A semantic similarity matching system and a method thereof
CN112333182B (zh) 档案处理方法、装置、服务器及存储介质
CN110941568B (zh) 缓存更新方法、装置、系统、电子设备及介质
CN110457332B (zh) 一种信息处理方法及相关设备
CN109582795B (zh) 基于全生命周期的数据处理方法、设备、系统和介质
CN114547184A (zh) 人员信息同步方法、终端设备及存储介质
CN114547182A (zh) 人员信息同步方法、终端设备及存储介质
CN113946365A (zh) 页面识别方法、装置、计算机设备和存储介质
CN113296687A (zh) 数据处理方法、装置、计算设备和介质
US11468997B2 (en) Methods for estimating injury recovery time data and devices thereof
CN111522941A (zh) 文本聚类方法、装置、电子设备及计算机存储介质
US11625420B2 (en) System and method for identifying approximate k-nearest neighbors in web scale clustering

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant