掌桥专利:专业的专利平台
掌桥专利
首页

用于管理向量数据集的方法、装置、设备和介质

文献发布时间:2024-04-18 19:58:21


用于管理向量数据集的方法、装置、设备和介质

技术领域

本公开的示例性实现方式总体涉及数据管理,特别地涉及用于管理向量数据集的方法、装置、设备和计算机可读存储介质。

背景技术

机器学习技术已经被广泛地用于执行多种处理任务。例如,可以构建多种处理模型来执行各种处理任务。随着机器学习技术的发展,向量数据库逐渐成为辅助机器学习的重要基础,并且已经出现了向量数据库与机器学习模型相结合的大量应用场景。然而,已有的结构化数据库管理模型并不能适应于机器学习模型的需求。此时,期望能够提供专门用于辅助机器学习技术的向量数据库的管理方案。

发明内容

在本公开的第一方面,提供了一种用于管理向量数据集的方法。向量数据集用于存储数据对象的数据,数据包括数据对象的至少一个属性数据以及数据对象的特征数据,特征数据利用向量格式来表示。在该方法中,在向量数据集管理工具中,接收针对向量数据集的访问请求。响应于确定访问请求指示用于创建向量数据集,解析访问请求以确定向量数据集的向量字段的属性。创建向量数据集,向量数据集包括基于向量字段的属性来生成的向量字段,向量字段用于存储特征数据。

在本公开的第二方面,提供了一种用于管理向量数据集的装置。向量数据集用于存储数据对象的数据,数据包括数据对象的至少一个属性数据以及数据对象的特征数据,特征数据利用向量格式来表示。该装置包括:接收模块,被配置用于在向量数据集管理工具中,接收针对向量数据集的访问请求;解析模块,被配置用于响应于确定访问请求指示用于创建向量数据集,解析访问请求以确定向量数据集的向量字段的属性;以及创建模块,被配置用于创建向量数据集,向量数据集包括基于向量字段的属性来生成的向量字段,向量字段用于存储特征数据。

在本公开的第三方面,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令在由至少一个处理单元执行时使电子设备执行根据本公开第一方面的方法。

在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时使处理器实现根据本公开第一方面的方法。

应当理解,本内容部分中所描述的内容并非旨在限定本公开的实现方式的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。

附图说明

在下文中,结合附图并参考以下详细说明,本公开各实现方式的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:

图1示出了根据本公开的一个示例性实现方式的应用环境的框图;

图2示出了根据本公开的一些实现方式的用于管理向量数据集的框图;

图3示出了根据本公开的一些实现方式的用于查看向量数据库的框图;

图4示出了根据本公开的一些实现方式的用于新建向量数据集的框图;

图5示出了根据本公开的一些实现方式的用于编辑向量数据集的框图;

图6示出了根据本公开的一些实现方式的用于查看向量数据集的框图;

图7示出了根据本公开的一些实现方式的用于管理索引的框图;

图8示出了根据本公开的一些实现方式的用于编辑索引的框图;

图9示出了根据本公开的一些实现方式的用于查看索引的框图;

图10示出了根据本公开的一些实现方式的用于基于索引进行检索的框图;

图11示出了根据本公开的一些实现方式的用于管理向量数据集的方法的流程图;

图12示出了根据本公开的一些实现方式的用于管理向量数据集的装置的框图;以及

图13示出了能够实施本公开的多个实现方式的设备的框图。

具体实施方式

下面将参照附图更详细地描述本公开的实现方式。虽然附图中示出了本公开的某些实现方式,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实现方式,相反,提供这些实现方式是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实现方式仅用于示例性作用,并非用于限制本公开的保护范围。

在本公开的实现方式的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实现方式”或“该实现方式”应当理解为“至少一个实现方式”。术语“一些实现方式”应当理解为“至少一些实现方式”。下文还可能包括其他明确的和隐含的定义。如本文中所使用的,术语“模型”可以表示各个数据之间的关联关系。例如,可以基于目前已知的和/或将在未来开发的多种技术方案来获取上述关联关系。

可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。

可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当根据相关法律法规通过适当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。

例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。

作为一种可选的但非限制性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式,例如可以是弹出窗口的方式,弹出窗口中可以以文字的方式呈现提示信息。此外,弹出窗口中还可以承载供用户选择“同意”或“不同意”向电子设备提供个人信息的选择控件。

可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其他满足相关法律法规的方式也可应用于本公开的实现方式中。

在此使用的术语“响应于”表示相应的事件发生或者条件得以满足的状态。将会理解,响应于该事件或者条件而被执行的后续动作的执行时机,与该事件发生或者条件成立的时间,二者之间未必是强关联的。例如,在某些情况下,后续动作可在事件发生或者条件成立时立即被执行;而在另一些情况下,后续动作可在事件发生或者条件成立后经过一段时间才被执行。

示例环境

随着机器学习技术的发展,向量数据库逐渐成为辅助机器学习的重要基础,并且出现了向量数据库与机器学习模型相结合的大量应用场景。参见图1描述向量数据库的应用环境,该图1示出了根据本公开的一个示例性实现方式的应用环境的框图100。如图1所示,应用130例如可以是基于自然语言处理的问答式应用,并且可以回答来自用户的各种问题。可以建立处理模型110,并且可以利用该处理模型110服务于应用130。

处理模型110例如可以是大模型(例如,大语言模型(Large Language Model,缩写LLM),等等)。大模型可以很好的理解用户意图,根据用户的自然语言输入,它能够理解并准确把握用户意图,同时做到有效的多轮沟通。同时,大语言模型的成熟给向量数据库带来了巨大的发展空间,向量数据库与大模型结合存在巨大应用前景。

应当理解,尽管图1示意性示出了用于处理自然语言的问答任务的处理模型110,备选地和/或附加地,处理模型110可以是用于执行其他任何任务的处理模型,并且该处理模型110可以是单模态处理模型或者多模态处理模型。

通常而言,处理模型110并不能准确回答任意类型的问题。为了弥补处理模型110的不足,可以利用向量数据库120来辅助处理模型110回答用户问题。向量数据库120可以包括一个或者多个向量数据集,并且每个向量数据集中可以包括用于存储向量数据的向量字段和其他一个或者多个用于存储普通结构化数据的字段。

大模型生成幻觉(Large Model-generated Hallucination)是指当运用大型的机器学习模型生成新的内容或回答问题时,可能出现的与现实情况不符或者没有实际根据的结果。此时,可以通过大模型与向量数据库的交叉检索和验证等方式,来消除大模型的幻觉。例如,向量数据库120可以包括向量数据集140(包括向量字段142和/或其他字段),并且可以利用该向量数据集140与处理模型110的输出结果进行交叉验证,从而缓解和/或消除处理模型110的幻觉。

又例如,大模型所涉及的通用领域可以被进一步划分为大量细分领域。为了弥补大模型在细分领域内知识不足的缺陷,可以利用向量数据库来支持细分领域的问题回复。例如,向量数据库120可以包括向量数据集150(包括向量字段152),并且可以利用该向量数据集150来弥补处理模型110在细分领域的知识储备,从而提高答案的准确性。

随着各种模态的大模型的构建,对于存储文本、图像、视频、特征数据等非结构化数据的需求持续上升,这进一步促进了向量数据库的发展。然而,已有的结构化数据库管理模型并不能适应于机器学习技术的需求。此时,期望能够提供专门用于支持机器学习技术的向量数据库的管理方案。

向量数据集管理的概要

传统的关系数据库主要面向结构化数据,并且不能很好地满足新兴的向量(例如,数据对象的特征,也即embedding)数据类型的存储、分析和检索需求。为了至少部分地解决现有技术中的不足,根据本公开的一个示例性实现方式,提出了一种用于管理向量数据集的方法。概括而言,可以提供专用于存储向量数据的向量数据集的管理方式。与传统数据库相比,本公开的向量数据集可以存储向量数据,即将图像、音视频、文章等非结构化数据转换为向量的方式来存储,以便于计算机或者处理模型调用。

参见图2描述根据本公开的一个示例性实现方式的概要,该图2示出了根据本公开的一些实现方式的用于管理向量数据集的框图200。如图2所示,可以提供向量数据集的管理工具230,并且利用该管理工具230来执行与向量数据相关联的各种操作。根据本公开的一个示例实现方式,向量数据集210可以用于存储数据对象的数据。在此的数据对象可以是期望被存储的任意类型的数据对象,例如,文本、图像、音频、视频等。数据对象的数据可以包括数据对象本身、数据对象的至少一个属性数据以及数据对象的特征数据,等等。

在此,特征数据是利用向量格式来表示的,例如,可以利用相应的编码器来提取不同数据对象的特征数据。具体地,可以使用文本编码器来提取文本的特征数据,可以使用图像编码器来提取图像的特征数据,可以使用音频编码器来提取音频的特征数据,可以使用视频编码器来提取视频的特征数据,等等。

在向量数据集的管理工具230中,可以接收针对向量数据集的访问请求220。进一步,可以基于访问请求220的类型来执行相应的操作。例如,如果确定访问请求220指示用于创建向量数据集,可以解析访问请求220以确定向量数据集的向量字段的属性。进一步,可以创建向量数据集210,并且该向量数据集210包括基于向量字段的属性来生成的向量字段216,该向量字段216可以用于存储特征数据。备选地和/或附加地,向量数据集210可以进一步包括其他的一个或者多个常规的字段212、214,等等。可以利用字段212、214等来存储目标对象的各个常规的属性数据。

利用本公开的示例性实现方式,管理工具230可以封装有关向量数据集管理的各种功能。在配合处理模型110的运行时,可以直接利用管理工具230来操作向量数据。以此方式,用户不必关心向量数据集的底层细节,并且可以以对用户更为友好的方式操作向量数据。

向量数据集管理的详细过程

已经描述了根据本公开的一个示例实现方式的概要,在下文中,参见附图描述管理工具230中的各个管理页面的具体功能。图3示出了根据本公开的一些实现方式的用于查看向量数据库的框图300。如图3中的页面310所示,在左侧菜单中可以提供对向量数据库的管理。在此,向量数据库可以包括零个、一个或者多个向量数据集。具体地,可以提供数据集管理和索引管理的功能。可以点击图3左侧的菜单,以便选择数据集管理或者索引管理。当选择数据集管理时,可以提供如图3右侧所示的页面,并且可以在该页面中呈现数据集列表。

根据本公开的一个示例实现方式,可以通过按钮320来添加新的向量数据集。进一步,可以基于框330出所示的操作来进一步执行创建索引、编辑数据库和/或删除数据集的步骤。如页面310所示,当前向量数据库包括一个向量数据集,并且表格340示出了该向量数据集的各种信息。例如,该向量数据集的名称、描述、数据量(例如,所包括的数据记录的数量)、索引量(针对该向量数据集所创建的索引的数量)、更新时间、更新者,以及可以针对该向量数据集执行的操作。

在此,框330中的“创建索引”操作可以引导用户来针对该向量数据集创建索引,“编辑”操作可以引导用户来编辑该向量数据集,并且“删除”操作可以引导用户来从向量数据库中删除该向量数据集。以此方式,可以以可视化的方式来引导用户执行管理向量数据集的各种操作,从而便于用户基于自身需求来创建并管理向量数据集。

在管理工具230中,可以接收针对所述向量数据集的访问请求。例如,可以点击图3中的按钮320来创建新的向量数据集。在确定访问请求指示用于创建新的向量数据集的情况下,可以解析访问请求以确定向量数据集的向量字段的属性。具体地,在用户点击按钮320的情况下,可以呈现如图4所示的页面,该图4示出了根据本公开的一些实现方式的用于新建向量数据集的框图400。

如页面410所示,用户可以在框420中输入向量数据集的名称(例如,DB2),在框430中输入描述(例如,测试),等等。进一步,用户可以在表格440中定义向量数据集中的各个字段的属性。可以经由表格440中的用户输入来确定各个字段的属性,继而创建相应的向量数据集。此时,创建的向量数据集可以包括:基于向量字段的属性来生成的向量字段、以及基于其他字段的属性来创建的普通字段。具体地,用户可以在表格440中输入:(fvector,vector,false,256,null),以便表示向量字段的名称为fvector,类型为vector(也即向量),非主键,向量维度为256,并且默认值为null(空)。

进一步,用户可以点击添加按钮450来添加新的字段。例如,用户可以在新弹出的表格中输入:(id,int,true,-,null),以便表示该普通字段的名称为id、类型为int(也即整型),主键,不涉及向量维度,并且默认值为null(空)。进一步,用户可以点击按钮460来确认添加步骤。备选地和/或附加地,用户可以点击按钮470,以便返回上级页面。利用本公开的示例实现方式,用户可以以更为简单并且有效的方式来操作向量数据集,由此避免了需要了解有关向量数据库的各种底层知识的要求。

根据本公开的一个示例实现方式,用户可以从向量数据集中删除已经添加的一个或者多个字段。例如,可以选中并且删除向量字段和/或普通字段。在接收到用于从向量数据集中删除向量字段和/或普通字段的访问请求的情况下,可以从向量数据集中删除该向量字段和/或普通字段。以此方式,可以经由可视化操作来修改向量数据集的字段定义,进而以简单并且有效的方式来管理向量数据集。

根据本公开的一个示例实现方式,用户可以修改向量数据集中的各个字段的信息。例如,用户可以点击图3所示的框330中的“编辑”操作,进而编辑向量数据集中的各个字段(包括向量字段和/或普通字段)。在接收到用于修改向量数据集中向量字段的访问请求的情况下,管理工具230可以呈现用于编辑向量字段的页面。

图5示出了根据本公开的一些实现方式的用于编辑向量数据集的框图500。页面510示出了用于编辑名称为“DB1”的向量数据集的编辑页面。此时,用户可以经由框520来修改数据集的名称,经由框530来修改描述,并且通过修改表格540中的各个列的内容,来编辑向量数据集中的一个或者多个字段。进一步,用户可以点击按钮550来添加新的字段,可以点击按钮560来确认修改,并且可以点击按钮570来返回上一页面。

根据本公开的一个示例实现方式,管理工具230可以呈现向量数据集的状态。例如,在接收到用于查询向量数据集的状态的访问请求的情况下,可以呈现向量数据集的状态信息。在此,状态数据包括多种类型,例如包括但不限于以下至少任一项:向量数据集的名称、以及描述;向量数据集中的各个字段的名称、类型、描述、默认值、更新时间、更新者;向量数据集中的向量字段的维度;向量数据集中的数据记录;向量数据集中的数据记录的更新时间、更新者,等等。

参见图6描述有关呈现状态信息的更多细节,该图6示出了根据本公开的一些实现方式的用于查看向量数据集的框图600。如图6所示,页面610可以呈现名称为“DB1”的向量数据集的多种细节。用户可以按下按钮620来返回上一页面。利用本公开的示例实现方式,可以以集中方式来呈现向量数据集的多方面的信息。以此方式,可以便于用户全面了解向量数据集的状态,从而便于执行后续的管理操作。

根据本公开的一个示例实现方式,可以允许用户向已经创建的向量数据集中添加数据记录。具体地,在接收到用于向向量数据集中添加目标数据对象的数据的访问请求的情况下,可以在向量数据集中创建对应于目标数据对象的数据记录。在此,可以向数据记录中的对应于向量字段的部分中,写入目标数据对象的特征数据。进一步,可以向数据记录中的对应于向量数据集中的向量字段以外的至少一个其他字段的部分中,写入目标数据对象的至少一个属性数据。

根据本公开的一个示例实现方式,假设用户创建的向量数据库包括如下字段:id,用于存储数据对象的标识符;fvector,用于存储数据对象的特征数据;image,用于存储数据对象的图像本身;height,用于存储图像的高度;以及width,用于存储图像的宽度。此时,可以创建新的数据记录,并且向该新的数据记录中的字段fvector中存储图像的特征数据(例如,经由图像编码器所输出的),并且可以分别向id、image、height、width字段中输入该图像的标识符、图像文件本身、图像高度和宽度。利用本公开的示例实现方式,可以允许用户按照自己需求来向向量数据库中添加期望的数据记录。

根据本公开的一个示例实现方式,允许用户修改向量数据集中的数据记录。具体地,在接收到用于编辑向量数据集中目标数据对象的数据的访问请求的情况下,可以在向量数据集中确定对应于目标数据对象的数据记录。继而,基于编辑请求来编辑数据记录中的对应于向量字段或者至少一个字段的部分的数据。

在上文图像的示例中,当数据对象出现变化时,可以相应地更新向量数据集中的各个字段。假设图像本身被修改,则可以向image字段写入修改后的图像文件。又例如,用户可以在编辑页面中修改数据记录中的其他字段的内容,例如,图像标识符,等等。以此方式,可以便于用户以更为灵活且有效的方式管理向量数据集。

根据本公开的一个示例实现方式,在此特征数据是利用与数据对象相关联的编码器获得的。因而,当数据对象本身出现变化时,需要利用编码器确定更新的特征数据,并且相应地更新向量数据集中的向量字段的内容。具体地,在确定数据对象被更新的情况下,可以利用编码器确定更新的数据对象的更新的特征数据。进一步,可以向数据记录中的对应于向量字段的部分中,写入更新的特征数据。

在上文图像的示例中,当图像内容出现变化时,可以利用图像编码器来确定新的特征数据,并且将该新的特征数据写入向量数据集的向量字段fvector。利用本公开的示例实现方式,可以确保特征数据与数据对象相匹配,从而以更为及时并且准确的方式来为处理模型的后续操作提供支持。

根据本公开的一个示例实现方式,允许用户从向量数据集中删除已经存在的一个或者多个数据记录。具体地,在接收到用于从向量数据集中删除目标数据对象的数据的访问请求的情况下,可以在向量数据集中确定对应于目标数据对象的数据记录。进一步,可以从向量数据集中删除数据记录。继续上述示例,用户可以在向量数据集中选中上文的所添加的数据记录。管理系统230可以提示用户是否删除该数据记录,在接收到来自用户的确认的情况下,可以删除该数据记录。此时,向量数据集中将不再包括被删除数据记录中的各个字段的数据。以此方式,用户可以按照自身需求来不断调整向量数据集的内容。

已经描述了有关数据集管理的各种操作,备选地和/或附加地,可以为向量数据集创建索引,并且基于该索引来执行后续的检索操作。根据本公开的一个示例实现方式,在接收到用于为向量数据集创建索引的访问请求的情况下,可以从访问请求中提取索引属性,并且基于索引属性来为向量数据集创建索引。

图7示出了根据本公开的一些实现方式的用于管理索引的框图700。如图7所示,用户可以点击页面710左侧的“索引管理”菜单,以便创建、删除、编辑索引。在本公开的上下文中,向量数据库中可以不包括索引,备选地和/或附加地,向量数据库可以包括一个或者多个索引。页面710示出了已经创建的一个索引,具体地,列表730示出了该索引的主要索引属性。

如表格730所示,名称表示该索引的名称。状态表示该索引的当前状态,并且该状态可以包括:加载(loading)状态,用于指示该索引当前正在加载中;改变(changing)状态,用于指示该索引当前正在被改变;就绪(ready)状态,用于指示该索引当前正已经就绪;以及失败(failed)状态,用于指示该索引当前已经失效并且不能执行检索操作。应当理解,当索引处于就绪状态时,可以执行检索操作。当索引处于其他状态时,则需要继续等待和/或执行其他的修复操作。

进一步,如表格730所示,流量可以表示当前索引是否存在流量,也即是否被调用;数据集可以表示当前索引是在哪个向量数据集的基础上建立的索引;更新时间可以表示索引最后一次被更新的时间;更新者表示索引最后一次被哪个用户更新;操作可以表示可以针对该索引执行的操作,例如操作740处所示的检索测试、编辑和删除操作。

应当理解,表格730仅示意性示出了部分索引属性的示例。备选地和/或附加地,索引属性可以包括但不限于以下至少任一项:索引的名称、索引算法、距离类型、优化方式、归一化类型、返回字段、过滤字段、以及描述。以此方式,可以允许用户查看和设置索引的多方面的属性,从而便于后续利用该索引来执行期望的检索过程。

根据本公开的一个示例实现方式,用户可以点击新建索引按钮720来向向量数据集添加新的索引。此时,管理工具230可以呈现如图8所示的页面,该图8示出了根据本公开的一些实现方式的用于编辑索引的框图800。如图8所示,用户可以在页面810中指定索引的各个属性。在此,索引算法可以表示创建索引时所基于的具体算法。距离类型可以表示用于确定各个向量数据之间的距离所采用的类型。优化方式可以表示在优化索引时采用的方式。在本公开的上下文中,可以基于目前已知的和/或将在未来开发的多种索引算法、距离类型和优化方式来创建索引。

进一步,可以在框820处设置在执行搜索操作时所返回的字段。在此,返回字段应当是已经在向量数据集中定义的字段。在上文图像的示例中,例如可以从id、fvector、image、height、width中选择一个或者多个返回字段。在检索到满足预定检索目标的数据记录时,可以返回在框820处所指定的返回字段。假设用户指定了字段id,则将返回id字段的标识符。又例如,假设用户指定了字段id、fvector和height,则将返回id、fvector和height三个字段的具体数据,也即,标识符、图像的高度和宽度。

根据本公开的一个示例实现方式,可以允许用户在框830处设置过滤字段,也即,在检索过程中可以按照某些字段来过滤掉不期望的数据记录。具体地,可以为指定的过滤字段设置过滤条件。当过滤字段具有连续范围时,设置范围类型的过滤条件。例如,可以指定按照height和width字段进行过滤,具体地,可以指定仅在满足预定的高度和宽度(height和width均大于或者等于256,或者其他范围)的图像中执行检索。又例如,假设向量数据集包括有关图像格式的字段format,此时可以指定按照预定格式执行过滤。此时可以设置枚举类型的过滤条件,例如指定仅在jpg格式的图像中执行搜索。

根据本公开的一个示例实现方式,用户可以点击确认案件840来按照页面810中的索引属性新建索引。备选地和/或附加地,用户可以点击返回按钮850来返回上层页面。利用本公开的示例实现方式,允许用户定义索引的多方面属性,从而可以利用向量数据集中的索引来更好地服务于处理模型130。

根据本公开的一个示例实现方式,允许用户针对已经创建的索引进行查询、编辑和删除等操作。例如,用户可以选择如图7所示的框740处的编辑操作,并且在弹出的编辑页面中编辑索引。又例如,用户可以选择如图7所示的框740处的删除操作,并且删除当前索引。利用本公开的示例实现方式,允许用户按照自身的需求来修改和/或删除索引。由此,使得更新的索引可以更好地服务于处理模型130的后续任务处理。

根据本公开的一个示例实现方式,在接收到用于查询索引的访问请求的情况下,可以呈现索引属性。图9示出了根据本公开的一些实现方式的用于查看索引的框图900。如图9所示,可以在页面910中呈现有关索引的各种属性。用户可以点击返回按钮920来返回上一页面。利用本公开的示例实现方式,可以使得用户以简单并且有效的方式来查看已经建立的各个索引的详细信息。

根据本公开的一个示例实现方式,用户可以使用已经建立的索引来在向量数据集中执行检索过程。具体地,用户可以选中如图7中的操作740处的检索测试操作,以便提交用于检索的访问请求。进一步,在接收到针对向量数据集执行检索的访问请求的情况下,可以获取检索请求中的检索目标。

图10示出了根据本公开的一些实现方式的用于基于索引进行检索的框图1000。如图10所示,可以在框1020处设置检索目标,例如,输入向量可以表示将被检索的数据对象的特征数据;属性过滤可以表示在执行检索时的过滤条件,例如,仅检索某个字段满足预定条件的数据记录;“TOP-K”可以指定仅返回排名最高的K个数据记录,等等。

用户可以点击查询1030按钮,可以利用索引在向量数据集中检索与检索目标相匹配的数据记录。可以在框1040处呈现检索结果,例如,可以呈现找到的数据记录的各种信息。具体地,排名可以表示各个数据记录的排序;距离可以表示各个数据记录的向量数据与输入向量之间的距离;标签可以表示各个数据记录的分类和/或其他标签;并且属性可以表示各个数据记录的期望呈现的属性。

例如,此时检索目标中的输入向量可以是作为比对基础的图像的特征数据;属性过滤可以指定:仅检索宽度和高度均大于256的图像;TOP-K可以指定:返回排名前10的图像相关数据。应当理解,上文仅以图像数据作为目标对象的示例描述了用于管理向量数据集的过程。备选地和/或附加地,基于向量数据集中存储的具体数据,可以检索有关文本、音频、视频等其他格式的数据对象的相关数据。

利用本公开的示例实现方式,使用相似性查找,不同于传统数据库的查询结果是一个精确的结果,向量数据库可以在输入向量与向量数据集中的数据执行相似度匹配,从而找出近似匹配的结果。进一步,向量数据库的基本数据类型是向量,使用向量化计算能够比传统型数据库更快地处理大规模的复杂数据。

根据本公开的一个示例实现方式,可以利用向量数据集来执行与机器学习任务相关联的任务。例如,处理模型130可以执行检索相似图像的任务。此时可以利用向量数据集来交叉验证处理模型130的结果是否正确。以此方式,用户不必深入了解向量数据集的底层工作原理,而是可以直接使用根据本公开的一个示例实现方式的管理工具230来在向量数据集与处理模型110之间建立联系,进而辅助完成机器学习任务。

应当理解,尽管上文以在管理界面中的可视化方式示出了访问请求的示例。根据本公开的一个示例实现方式,访问请求可以基于命令行方式来提供。例如,可以按照预定义格式编写的操作命令。具体地,可以按照结构化查询语言和/或其他预定义格式编写改访问请求。以此方式,可以支持以多种格式实现的访问请求,进而便于为具有不同使用习惯的用户提供可定制的向量数据集管理方式。

利用本公开的示例实现方式,可以直接利用管理工具230来操作向量数据。以此方式,用户不必关心向量数据集的底层细节,并且可以以对用户更为友好的方式操作向量数据。

示例过程

图11示出了根据本公开的一些实现方式的用于管理向量数据集的方法1100的流程图。向量数据集用于存储数据对象的数据,数据包括数据对象的至少一个属性数据以及数据对象的特征数据,特征数据利用向量格式来表示。在框1110处,在向量数据集管理工具中,接收针对向量数据集的访问请求。在框1120处,确定访问请求是否指示用于创建向量数据集。如果确定结果为“是”,则方法1100前进至框1130。在框1130处,解析访问请求以确定向量数据集的向量字段的属性。在框1140处,创建向量数据集,向量数据集包括基于向量字段的属性来生成的向量字段,向量字段用于存储特征数据。

根据本公开的一个示例实现方式,该方法1100进一步包括以下至少任一项:响应于接收到用于从向量数据集中删除向量字段的访问请求,从向量数据集中删除向量字段;响应于接收到用于编辑向量数据集中向量字段的访问请求,编辑向量字段。

根据本公开的一个示例实现方式,该方法1100进一步包括:响应于接收到用于向向量数据集中添加目标数据对象的数据的访问请求,在向量数据集中创建对应于目标数据对象的数据记录;向数据记录中的对应于向量字段的部分中,写入目标数据对象的特征数据;以及向数据记录中的对应于向量数据集中的向量字段以外的至少一个其他字段的部分中,写入目标数据对象的至少一个属性数据。

根据本公开的一个示例实现方式,该方法1100进一步包括:响应于接收到用于从向量数据集中删除目标数据对象的数据的访问请求,在向量数据集中确定对应于目标数据对象的数据记录;以及从向量数据集中删除数据记录。

根据本公开的一个示例实现方式,该方法1100进一步包括:响应于接收到用于编辑向量数据集中目标数据对象的数据的访问请求,在向量数据集中确定对应于目标数据对象的数据记录;以及基于编辑请求来编辑数据记录中的对应于向量字段或者至少一个字段的部分的数据。

根据本公开的一个示例实现方式,该方法1100进一步包括:响应于接收到用于查询向量数据集的状态的访问请求,呈现向量数据集的状态信息,状态数据包括以下至少任一项:向量数据集的名称、以及描述;向量数据集中的各个字段的名称、类型、描述、默认值、更新时间、更新者;向量数据集中的向量字段的维度;向量数据集中的数据记录;向量数据集中的数据记录的更新时间、更新者。

根据本公开的一个示例实现方式,该方法1100进一步包括:响应于接收到用于为向量数据集创建索引的访问请求,从访问请求中提取索引属性,索引属性包括以下至少任一项:索引的名称、索引算法、距离类型、优化方式、归一化类型、返回字段、过滤字段、以及描述;以及基于索引属性,为向量数据集创建索引。

根据本公开的一个示例实现方式,该方法1100进一步包括以下至少任一项:响应于接收到用于查询索引的访问请求,呈现索引属性;响应于接收到用于编辑索引的访问请求,基于访问请求中指定的索引属性,更新索引;以及响应于接收到用于删除索引的访问请求,删除索引。

根据本公开的一个示例实现方式,该方法1100进一步包括:响应于接收到针对向量数据集执行检索的访问请求,获取检索请求中的检索目标;以及利用索引在向量数据集中检索与检索目标相匹配的数据记录。

根据本公开的一个示例实现方式,该方法1100进一步包括:利用向量数据集来执行与机器学习任务相关联的操作。

根据本公开的一个示例实现方式,特征数据是利用与数据对象相关联的编码器获得的,并且该装置进一步包括:响应于确定数据对象被更新,利用编码器确定更新的数据对象的更新的特征数据;以及向数据记录中的对应于向量字段的部分中,写入更新的特征数据。

根据本公开的一个示例实现方式,访问请求包括以下至少任一项:按照预定义格式编写的操作命令;以及在用于管理向量数据集的管理界面中的用户交互。

示例装置和设备

图12示出了根据本公开的一些实现方式的用于管理向量数据集的装置1200的框图。向量数据集用于存储数据对象的数据,数据包括数据对象的至少一个属性数据以及数据对象的特征数据,特征数据利用向量格式来表示。该装置1200包括:接收模块1210,被配置用于在向量数据集管理工具中,接收针对向量数据集的访问请求;解析模块1220,被配置用于响应于确定访问请求指示用于创建向量数据集,解析访问请求以确定向量数据集的向量字段的属性;以及创建模块1230,被配置用于创建向量数据集,向量数据集包括基于向量字段的属性来生成的向量字段,向量字段用于存储特征数据。

根据本公开的一个示例实现方式,该装置1200进一步包括以下至少任一项:字段删除模块,被配置用于响应于接收到用于从向量数据集中删除向量字段的访问请求,从向量数据集中删除向量字段;字段编辑模块,被配置用于响应于接收到用于编辑向量数据集中向量字段的访问请求,编辑向量字段。

根据本公开的一个示例实现方式,该装置1200进一步包括:记录创建模块,被配置用于响应于接收到用于向向量数据集中添加目标数据对象的数据的访问请求,在向量数据集中创建对应于目标数据对象的数据记录;特征写入模块,被配置用于向数据记录中的对应于向量字段的部分中,写入目标数据对象的特征数据;以及属性写入模块,被配置用于向数据记录中的对应于向量数据集中的向量字段以外的至少一个其他字段的部分中,写入目标数据对象的至少一个属性数据。

根据本公开的一个示例实现方式,该装置1200进一步包括:记录确定模块,被配置用于响应于接收到用于从向量数据集中删除目标数据对象的数据的访问请求,在向量数据集中确定对应于目标数据对象的数据记录;以及记录删除模块,被配置用于从向量数据集中删除数据记录。

根据本公开的一个示例实现方式,该装置1200进一步包括:记录确定模块,被配置用于响应于接收到用于编辑向量数据集中目标数据对象的数据的访问请求,在向量数据集中确定对应于目标数据对象的数据记录;以及记录编辑模块,被配置用于基于编辑请求来编辑数据记录中的对应于向量字段或者至少一个字段的部分的数据。

根据本公开的一个示例实现方式,该装置1200进一步包括:呈现模块,被配置用于响应于接收到用于查询向量数据集的状态的访问请求,呈现向量数据集的状态信息,状态数据包括以下至少任一项:向量数据集的名称、以及描述;向量数据集中的各个字段的名称、类型、描述、默认值、更新时间、更新者;向量数据集中的向量字段的维度;向量数据集中的数据记录;向量数据集中的数据记录的更新时间、更新者。

根据本公开的一个示例实现方式,该装置1200进一步包括:索引属性提取模块,被配置用于响应于接收到用于为向量数据集创建索引的访问请求,从访问请求中提取索引属性,索引属性包括以下至少任一项:索引的名称、索引算法、距离类型、优化方式、归一化类型、返回字段、过滤字段、以及描述;以及索引创建模块,被配置用于基于索引属性,为向量数据集创建索引。

根据本公开的一个示例实现方式,该装置1200进一步包括以下至少任一项:索引呈现模块,被配置用于响应于接收到用于查询索引的访问请求,呈现索引属性;索引更新模块,被配置用于响应于接收到用于编辑索引的访问请求,基于访问请求中指定的索引属性,更新索引;以及索引删除模块,被配置用于响应于接收到用于删除索引的访问请求,删除索引。

根据本公开的一个示例实现方式,该装置1200进一步包括:检索目标获取模块,被配置用于响应于接收到针对向量数据集执行检索的访问请求,获取检索请求中的检索目标;以及检索模块,被配置用于利用索引在向量数据集中检索与检索目标相匹配的数据记录。

根据本公开的一个示例实现方式,该装置1200进一步包括:执行模块,被配置用于利用向量数据集来执行与机器学习任务相关联的任务。

根据本公开的一个示例实现方式,特征数据是利用与数据对象相关联的编码器获得的,并且该装置1200进一步包括:调用模块,被配置用于响应于确定数据对象被更新,利用编码器确定更新的数据对象的更新的特征数据;以及特征更新模块,被配置用于向数据记录中的对应于向量字段的部分中,写入更新的特征数据。

根据本公开的一个示例实现方式,访问请求包括以下至少任一项:按照预定义格式编写的操作命令;以及在用于管理向量数据集的管理界面中的用户交互。

图13示出了能够实施本公开的多个实现方式的设备1300的框图。应当理解,图13所示出的计算设备1300仅仅是示例性的,而不应当构成对本文所描述的实现方式的功能和范围的任何限制。图13所示出的计算设备1300可以用于实现上文描述的方法。

如图13所示,计算设备1300是通用计算设备的形式。计算设备1300的组件可以包括但不限于一个或多个处理器或处理单元1310、存储器1320、存储设备1330、一个或多个通信单元1340、一个或多个输入设备1350以及一个或多个输出设备1360。处理单元1310可以是实际或虚拟处理器并且能够根据存储器1320中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备1300的并行处理能力。

计算设备1300通常包括多个计算机存储介质。这样的介质可以是计算设备1300可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器1320可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备1330可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在计算设备1300内被访问。

计算设备1300可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图13中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器1320可以包括计算机程序产品1325,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实现方式的各种方法或动作。

通信单元1340实现通过通信介质与其他计算设备进行通信。附加地,计算设备1300的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备1300可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。

输入设备1350可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备1360可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备1300还可以根据需要通过通信单元1340与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备1300交互的设备进行通信,或者与使得计算设备1300与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。

根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,提供了一种计算机程序产品,其上存储有计算机程序,程序被处理器执行时实现上文描述的方法。

这里参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。

相关技术
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 数据集处理方法、装置、计算机设备及存储介质
  • 用于测试的多设备管理方法、装置、服务器及存储介质
  • 运动向量场的确定方法、装置、设备、存储介质和车辆
  • 用于获得地图的方法、装置、设备和计算机可读存储介质
  • 一种航迹数据集的管理方法、装置、设备及存储介质
  • 一种文本数据集管理方法、装置、设备及存储介质
技术分类

06120116482019