Artificial intelligence enabled search for storage systems

文档序号:1520984 发布日期:2020-02-11 浏览:23次 中文

阅读说明:本技术 用于存储系统的实现人工智能的搜索 (Artificial intelligence enabled search for storage systems ) 是由 K·库德里亚夫瑟夫 M·奥伯格 N·瓦尼卡 于 2019-07-30 设计创作,主要内容包括:本公开描述了用于存储系统的实现人工智能的搜索的装置和方法。在一些方面中,存储系统的元数据管理器接收AI引擎在被存储在存储系统中的数据中检测的对象的标签。元数据管理器在元数据数据库的关系部分中创建用于所检测对象的条目,所检测对象的条目具有所检测对象的标签的标识符,以及与所检测对象对应的节点的地址。元数据管理器还在元数据数据库的导航部分中并且利用所检测对象的地址来创建节点,该节点包括对另一对象的相对节点的引用,以及节点与相对节点之间的关系的权重。通过这样做,元数据数据库可以基于各个节点之间的加权关系而被搜索,从而实现对所述存储系统中的数据进行上下文搜索或者隐式搜索。(This disclosure describes apparatus and methods for artificial intelligence enabled searching of storage systems. In some aspects, a metadata manager of a storage system receives tags of objects detected by an AI engine in data stored in the storage system. The metadata manager creates an entry for the detected object in a relational portion of the metadata database, the entry for the detected object having an identifier of a tag of the detected object and an address of a node corresponding to the detected object. The metadata manager also creates a node in the navigation portion of the metadata database and using the address of the detected object, the node including a reference to an opposing node of another object and a weight of a relationship between the node and the opposing node. By doing so, the metadata database may be searched based on the weighted relationships between the various nodes, thereby enabling contextual or implicit searches of the data in the storage system.)

1. A method for a storage system that implements Artificial Intelligence (AI) searching, comprising:

receiving a tag from an artificial intelligence engine, the tag for a detected object in data stored in a storage medium of the storage system;

creating an entry for the detected object in a relational portion of a metadata database of the storage system, the entry comprising: an identifier of the tag for the detected object, an address in the storage system for the detected object, and an address of a node in a navigation portion of the metadata database corresponding to the detected object; and

creating, in the navigation portion of the metadata database of the storage system and using the address for the detected object, the node corresponding to the detected object, the node including at least one reference to a relative node in the navigation portion corresponding to another object in the data, the detected object being related to the other object, and a weight of a relationship between the node and the relative node in the navigation portion of the metadata database.

2. The method of claim 1, further comprising: exposing the metadata database of the storage system to a search interface to enable a search of the metadata database for at least the detected object or the other object based on the weight of the relationship between the node and the opposing node.

3. The method of claim 2, wherein enabling a search of the metadata database for at least the detected object or the other object based on the weight of the relationship between the node and the opposing node is effective to enable a contextual search or an implicit search of the data stored by the storage system.

4. The method of claim 1, further comprising:

receiving, at the artificial intelligence engine, the data to be stored in the storage system;

processing the data to be stored with the artificial intelligence engine to detect a plurality of objects in the data, the plurality of objects including the detected object and other objects; and

providing the plurality of detected objects in the data with a respective set of tags comprising the tag for the detected object and a tag for the other object.

5. The method of claim 1, further comprising:

receiving an indication of a confidence level from the artificial intelligence engine, the confidence level being for a contextual relationship between the detected object and the other object in the data; and

defining the weight of the relationship between the node and the opposing node based on the confidence level of the contextual relationship between the object and the other object in the data.

6. The method of claim 5, wherein the navigation portion of the metadata database includes a weighted graph of linked nodes corresponding to respective objects detected in the data, an

The method further comprises: connecting the node to the opposite node using a weighted link, the weighted link having a weight indicative of the defined weight of the relationship between the node and the opposite node.

7. The method of claim 5, wherein the indication is a first indication of a first confidence level provided based on a first artificial intelligence model executed by the artificial intelligence engine, and the method further comprises:

receiving, from the artificial intelligence engine and based on a second artificial intelligence model executed by the artificial intelligence engine, a second indication of a second confidence level for the contextual relationship between the detected object and the other object in the data; and

redefining the weight of the relationship between the node and the opposing node based on the second confidence level of the contextual relationship between the detected object and the other object in the data; or

Unlinking the node from the opposite node based on the second confidence level of the contextual relationship between the detected object and the other object in the data.

8. The method of claim 1, further comprising:

receiving, from the artificial intelligence engine and with the tag for the detected object, an indication of a confidence level of the artificial intelligence engine in detecting the object in the data; and

adding the confidence level of the artificial intelligence engine to the entry for the detected object in the relational portion of the metadata database.

9. The method of claim 1, wherein:

the storage system comprises at least one of: a Solid State Drive (SSD), a Hard Disk Drive (HDD), or an aggregated array of storage media drives; and

the method is realized by the following steps: a storage controller of the SSD, a storage controller of the HDD, or a controller that provides a host interface for the aggregate array of storage media drives.

10. An apparatus, comprising:

an interface to receive data from a host;

a storage medium configured to store the data received from the host;

a controller configured to enable access to the data stored on the storage medium; and

a metadata manager configured to:

receiving a tag from an artificial intelligence engine associated with the apparatus, the tag for an object detected by the artificial intelligence engine in the data stored in the storage medium of the apparatus;

creating an entry for the detected object in a relational database of a metadata database for the data stored in the apparatus, the entry comprising: an identifier for the tag of the detected object, an address of the detected object in the storage medium, and an address of a node in a navigation database of the metadata database corresponding to the detected object; and is

Creating, in the navigation database of the metadata database and using the address, the node corresponding to the detected object, the node including at least one reference to a relative node in the navigation database corresponding to another object in the data, the detected object and the another object being contextually related, and a weight of a relationship between the node and the relative node in the navigation database.

11. The apparatus of claim 10, wherein the metadata manager is further configured to expose the metadata database to a search interface to enable a search of the metadata database for at least the detected object or the other object based on the weight of the relationship between the node and the opposing node.

12. The apparatus of claim 10, wherein the metadata manager is further configured to:

receiving an indication of a confidence level from the artificial intelligence engine, the confidence level for the contextual relationship between the detected object and the other object in the data; and is

Defining the weight of the relationship between the node and the opposing node based on the confidence level of the contextual relationship between the object and the other object in the data.

13. The apparatus of claim 12, wherein the navigation database of the metadata database comprises a weighted graph of linked nodes corresponding to respective objects detected in the data, an

The metadata manager is further configured to connect the node to the opposite node using a weighted link, the weighted link having a weight indicating the defined weight of the relationship between the node and the opposite node.

14. The apparatus of claim 10, further comprising:

the artificial intelligence engine from which the tag was received; or

A memory configured to maintain the metadata database of the apparatus.

15. The apparatus of claim 10, wherein the first and second electrodes are disposed on opposite sides of the substrate,

the storage system comprises a Solid State Drive (SSD), a Hard Disk Drive (HDD), or an aggregated array of storage media drives; and

the controller of the apparatus is implemented as a storage controller of the SSD, a storage controller of the HDD, or a storage controller of the aggregation array for storage media drives.

16. A system on a chip (SoC), comprising:

an interface to a storage medium of a storage system;

an interface to a host from which data is received for writing to the storage medium;

a hardware-based processor;

a memory storing processor-executable instructions that, in response to execution by the hardware-based processor, implement a metadata manager to:

receiving a tag from an artificial intelligence engine, the tag for a detected object detected by the artificial intelligence engine in the data written to the storage medium;

creating an entry in an association database of a metadata database for the detected object, the entry comprising: an identifier of the tag of the detected object, an address of the detected object in the storage medium, and an address of a node in a navigation database of the metadata database corresponding to the detected object; and

creating, in the navigation database of the metadata database and with the address for the detected object, the node corresponding to the detected object, the node comprising at least one reference to a relative node in the navigation database corresponding to another object in the data, and a weight of a relationship between the node and the relative node in the navigation database, the detected object and the other object being contextually related.

17. The SoC of claim 16, wherein the metadata manager is further configured to expose the metadata database to a search interface to enable a search of the metadata database for at least the detected object or the other object based on the weight of the relationship between the node and the opposing node.

18. The SoC of claim 16, wherein the metadata manager is further configured to:

receiving an indication of a confidence level from the artificial intelligence engine, the confidence level for the contextual relationship between the detected object and the other object in the data; and is

Defining the weight of the relationship between the node and the opposing node based on the confidence level of the contextual relationship between the object and the other object in the data.

19. The SoC of claim 16, wherein the navigation database of the metadata database includes a weighted graph of linked nodes corresponding to respective objects detected in the data; and

the metadata manager is further configured to connect the node to the opposite node using a weighted link, the weighted link having a weight indicating the defined weight of the relationship between the node and the opposite node.

20. The SoC of claim 16, wherein the artificial intelligence engine is at least partially embodied as hardware of the SoC, executable code stored on the memory of the SoC, or executable code stored to another memory accessible by the hardware-based processor of the SoC.

Background

Enterprises and institutions often implement enterprise-level data systems to collect and host large amounts of data generated from ongoing operations, research, data mining, or other data sources. To accommodate the increasing volume, variety, and speed of data collected from these sources, enterprise-level data systems are being built with increasing storage capacity to accommodate inexhaustible incoming data streams. However, the source of incoming data is typically a combination of controlled and uncontrolled sources. This results in most data systems storing a complex mix of large data (including structured data, unstructured data, and semi-structured data).

While data system administrators are generally able to scale storage capacity with larger volumes of big data, as the amount of unstructured data increases, it generally becomes more difficult or inefficient to analyze or search for particular data items within big data. In particular, big data typically includes a large amount of unstructured or raw data that does not conform to naming, formatting, or description conventions of the standards utilized by typical search algorithms. For example, a typical search algorithm may compare a searched keyword to a filename and text within the file for an explicit or exact match with the keyword. Thus, this type of search may not return results for large amounts of data in the big data that includes related unstructured data items that were missed by the strict matching algorithm. As such, using typical matching algorithms can be inefficient and inaccurate, as these types of search algorithms often miss relevant data, particularly in unstructured or semi-structured data.

Disclosure of Invention

This summary is provided to introduce a selection of subject matter that is further described in the detailed description and the accompanying drawings. Accordingly, this summary should not be considered to describe essential features or to limit the scope of the claimed subject matter.

In some aspects, a metadata manager of a storage system implements a method of receiving tags from an Artificial Intelligence (AI) engine for detected objects in data stored in a storage medium of a storage system. The metadata manager creates an entry for the detected object in a relational portion of a metadata database of the storage system. The entry in the relationship portion includes an identifier of the tag and an address of a node in the navigation portion of the metadata database that corresponds to the detected object. The metadata manager also utilizes the address to create a node in the navigation portion of the metadata database that corresponds to the detected object. The node includes at least one reference to a relative node in the navigation portion that corresponds to another object in the data, and a weight of a relationship between the node and the relative node, the detected object being related to the other object. By doing so, the metadata database may be searched based on the weighted relationships of these nodes as well as other nodes, which may enable contextual or implicit searches of data stored to the storage system.

In other aspects, an apparatus comprises: an interface to receive data from a host; a storage medium configured to store data received from a host; a controller configured to enable access to data stored on a storage medium; and a metadata manager associated with the AI engine. The metadata manager may be implemented as: tags from the AI engine are received for objects detected by the AI engine in data stored to a storage medium of the device. The metadata manager then creates an entry for the detected object in a relational database of the device's metadata database. Entries in the relational database include: an identifier of the tag, and an address of a node in a navigation database of the metadata database corresponding to the detected object. The metadata manager also creates a node corresponding to the detected object at an address in a navigation database of the metadata database. The node includes at least one reference to a relative node in the navigation database corresponding to another object in the data with which the detected object is contextually relevant, and a weight of a relationship between the node and the relative node in the navigation database.

In yet other aspects, a system on chip (SoC) is described, comprising: an interface to a storage medium of a storage system; an interface to a host from which data is received for writing to a storage medium; a hardware-based processor, and a memory storing processor-executable instructions that, in response to execution by the hardware-based processor, implement a metadata manager. The metadata manager receives tags from the AI engine for objects detected by the AI engine in data written to the storage medium. The metadata manager then creates an entry in a relational database of the metadata database for the detected object. The entry for the detected object includes an identifier of the tag and an address of a node in a navigation database of the metadata database corresponding to the detected object. The metadata manager also creates a node corresponding to the detected object with the address in a navigation database of the metadata database. The node in the navigation database includes at least one reference to a relative node in the navigation database corresponding to another object in the data with which the detected object is contextually relevant, and a weight of a relationship between the node and the relative node in the navigation database.

The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings, and from the claims.

Drawings

The details of one or more implementations of a storage system having a search that implements AI (AI-enabled) are set forth in the accompanying drawings and the detailed description below.

In the drawings, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears. The use of the same reference symbols in different instances in the present specification and the accompanying drawings indicates similar elements:

FIG. 1 illustrates an example operating environment with a device in which a storage system is implemented in accordance with one or more aspects.

Fig. 2 illustrates an example configuration of an Artificial Intelligence (AI) engine and a metadata manager of the storage system shown in fig. 1.

FIG. 3 illustrates an example respective configuration of tables in a relational database in accordance with one or more aspects.

FIG. 4 illustrates an example configuration of a weighted graph of a navigation database in accordance with one or more aspects.

Fig. 5 depicts an example method for implementing AI-enabled searches of data in a storage system in accordance with one or more aspects.

FIG. 6 depicts an example method for creating a relational database and a metadata database for a metadata database of a storage system using tags provided by an AI engine.

FIG. 7 depicts an example method for constructing or updating a weighted graph of a metadata database based on a set of tags provided by an AI engine processing data in a storage system.

FIG. 8 depicts an example method of searching a storage system using a relational database and a navigation database.

FIG. 9 illustrates an example system on a chip (SoC) environment for implementing aspects of implementing AI searches for storage systems.

FIG. 10 illustrates an example storage system controller configured to implement aspects of implementing AI searches in a storage system with which the controller is associated.

Detailed Description

Conventional techniques for searching through data typically rely on finding exact matches to search terms in the name and text of the stored data. Typically, data is stored in discrete files in various types of electronic storage devices, the format and size of which vary depending on the application in which the data is generated. Most operating systems support semantic searching of data files by keywords, so that the search algorithm looks at data files based on names or text in the data. In particular, the semantic search algorithm may traverse a list of files, open each file, read the text content for comparison with keywords, close the files, and report file names or any matches of text content to keywords. This type of search is often limited due to the binary nature of data in which keywords may have the same meaning but are semantically different.

Further, in the case of big data storage (such as in cloud-based applications or enterprise-level applications), big data may include a large amount of unstructured or raw data that does not conform to the naming, formatting, or description conventions of the standards utilized by these traditional search algorithms. Thus, for large data comprising related unstructured data items that are missed by the search algorithm due to the lack of semantically matched text, a rigorous semantic search may not return accurate results. As such, the use of conventional search algorithms (particularly for large data) is often inefficient or inaccurate, as these search algorithms may miss relevant data due to a lack of exact or explicit semantic matches.

This disclosure describes apparatus and techniques for a storage system to implement a search of an AI. In contrast to conventional search techniques, the described apparatus and techniques may support AI-enabled searches of data in a storage system based on the context or relationship of objects in the data. For example, the AI engine may process the data to generate descriptive metadata tags for objects or other elements detected in the data. Along with the tags, the AI engine may also provide a confidence level for object detection and a confidence level (e.g., weight) for contextual relationships or associations between objects in the data. For example, certain objects or people detected in the same frame or in adjacent frames on a video file may have some weighted relationship due to physical proximity or temporal proximity. Likewise, text generated from a soundtrack or dialog (e.g., lyrics or closed captions) in a video may have a relationship with an object detected simultaneously in a media file. Alternatively or additionally, emotions or emotions may be detected in the audio file by tones, and these scene classifications may have some weighted relationship with the content or objects associated with the audio file.

Based on the tags, a metadata manager of the storage system may create and manage a metadata database that includes a relational database (e.g., a table) and a navigation database (e.g., a weighted graph of nodes). Typically, the metadata manager creates an entry in the relational database for each detected object, including the location of the detected object in the storage system and the address of the corresponding node in the navigation database. The metadata manager also creates nodes in the navigation database, such as in a weighted graph that includes weighted links to other nodes corresponding to respective objects in the data with which the detected objects are related. By placing nodes or metadata objects into the weighted graph, not only can an object be found in such a structure, but aspects of the environment of the object and related objects with defined confidence levels (e.g., for contextual relationships) can be found. Returning to the above example, the theme of the audio file may be found in connection with its emotion, environment, mood, atmosphere, etc.

This type of contextual search may be based on logical or semantic requests, but may be done with fuzzy boundaries, which returns a response that includes some uncertain parts or components. In the context of a search that implements AI, the relational database of tables may provide a starting point for logical requests (e.g., tag lookup or matching), while the navigation database implements a contextual search or a relationship-based search with some level of uncertainty. For example, navigating the database may be accomplished through a tree or graph of mappings connected with context weightings that may be navigated through various instructions (such as "next," "previous," "getChild," "getParent," etc.) and thus find contextually relevant objects. Likewise, various implementations of AI-enabled searches for storage systems may include a combination of relational and navigation databases to enable implicit or contextual searches of stored data.

By way of example, when a user runs a search for keywords, the metadata manager or search agent may first traverse an index log table in a relational database to obtain tag identifiers for objects or elements detected in data stored in the AI-enabled storage system. In the index log table, references to nodes in the weighted graph in the navigation database can be found that point to the node and, therefore, to all connected nodes of the relevant object. Nodes and connecting nodes may be reported in order of link weight between the nodes, providing an indication of the context or relevance of the object in the data with which the node corresponds. In general, a search process implemented by a combination of a relational database and a navigation database may work similar to the way a human brain works when remembering each aspect of an entire scene with one detail.

In aspects of AI-enabled searches for a storage system, a metadata manager receives tags from an AI engine for objects detected in data stored in a storage medium of the storage system. The metadata manager creates an entry for the detected object in a relational portion of a metadata database of the storage system. The entry in the relationship portion includes an identifier of the tag, an address of the detected object in the storage system, and an address of a node corresponding to the detected object in the navigation portion of the metadata database.

The metadata manager also utilizes the address to create a node in the navigation portion of the metadata database corresponding to the detected object. The node includes at least one reference to a relative node in the navigation portion corresponding to another object in the data and a weight of a relationship between the node and the relative node in the navigation portion of the metadata database to which the detected object is related. By doing so, the metadata database may be searched based on the weighted relationships of these and other nodes, which may enable contextual or implicit searches of data stored in the storage system. In other words, by implementing AI-enabled searches for storage systems or storage drives (e.g., edge storage devices), storage can be made "intelligent" to provide users with implicit or contextual search results.

The following discussion describes an operating environment, techniques that may be employed in the operating environment, and a system on chip (SoC) that may embody components in the operating environment. In the context of the present disclosure, reference is made to an operating environment by way of example only.

Operating environment

FIG. 1 illustrates an example operating environment 100 with a computing device 102 capable of storing or accessing various forms of data or information. Examples of computing device 102 may include laptop 104, desktop 106, and server 108, any of which may be configured as part of a storage network or cloud storage. Other examples (not shown) of the computing device 102 may include a tablet computer, a set-top box, a data storage device, a wearable smart device, a television, a content streaming device, a high-definition multimedia interface (HDMI) media bar, a smart appliance, a home automation controller, a smart thermostat, an internet of things aggregate storage system, a gaming console, an automotive entertainment device, an automotive computing system, an automotive control module (e.g., an engine or powertrain control module), and so forth. In general, computing device 102 may communicate or store data for any suitable purpose, such as to enable functionality of a particular type of device, provide a user interface, enable network access, implement a gaming application, play media, provide navigation, edit content, provide data storage, and so forth.

Computing device 102 includes a processor 110 and a computer-readable storage medium 112. The processor 110 may be implemented as any suitable type or number of processors (single-core or multi-core) for executing instructions or commands of an operating system or other programs of the computing device 102. The computer-readable medium 112(CRM 112) includes memory (not shown) and a storage system 114. The memory of the computing device 102 may include any suitable type of volatile or non-volatile memory, or combination thereof. For example, the volatile memory of the computing device 102 may include various types of Random Access Memory (RAM), dynamic RAM (dram), static RAM (sram), and the like. The non-volatile memory may include Read Only Memory (ROM), electrically erasable programmable ROM (eeprom), or flash memory (e.g., NOR flash memory or NAND flash memory). Individually or in combination, these memories may store data associated with the application and/or the operating system of the computing device 102.

The storage system 114 of the computing device 102 may be configured as any suitable type of data storage system, such as a storage device, a storage drive, a storage array, a storage volume, and so forth. Although described with reference to computing device 102, storage system 114 may also be implemented separately as a standalone device or as part of a larger set of storage classes, such as a data center, server farm, or virtualized storage system (e.g., for cloud-based storage or services).

Examples of storage system 114 include hard disk drive 116(HDD 116), solid state drive 118(SSD 118), and storage array 120, which may be implemented using any combination of storage devices or storage drives. Storage system 114 includes a storage medium 122, on which storage medium 122 data 124 for computing device 102 or other sources is stored. The storage medium 122 may be implemented using any type of storage medium or combination thereof, such as magnetic media, optical media, rotating disk, non-volatile memory, solid state media, and the like. In some cases, the data 124 may be organized as files of data (e.g., content) or data objects stored in the storage media 122 of the storage system 114. The type, size, or format of these files may vary depending on the respective source, use, or application associated with the file. For example, files stored to the storage medium 122 may include audio files, video files, text files, image files, multimedia files, spreadsheets, and the like.

In general, a file of data may include various objects, activities, or features that may be classified or identified as one of: people, text, music, lyrics, content, emotion, context, theme, settings, etc. Each object, activity or level or feature in the data in the file is also contextually related within the file by a relationship of a different degree or weight to another object. For example, a frame or sequence of frames of a multimedia file may include people, objects, conversations, music, or environments that may be contextually related due to co-existence in the multimedia file, physical proximity in the multimedia file, or temporal proximity in the multimedia file. Alternatively or additionally, data 124 may include large data, such as structured data, unstructured data, or semi-structured data from various controlled or uncontrolled sources. In some cases, unstructured data or semi-structured data includes non-descriptive filenames or text that is not useful for identifying objects in the data (e.g., general data or machine-generated data) or that are unrelated to the content of the data (e.g., objects or elements). In this case, the AI-enabled searches described herein may create tags for various objects in the big data, enabling useful searching and analysis of the big data stored on the storage system 114.

In this example, the storage system 114 also includes instances of an artificial intelligence engine 126(AI engine 126), a metadata manager 128, and a metadata database 130. AI engine 126 may implement one or more AI models to process data 124 to detect objects or elements in data, data files, or data objects stored on storage system 114. Based on the detection of the object or element, AI engine 126 generates descriptive metadata tags for the detected object or element in the data. Along with the tags, AI engine 126 can also provide a confidence level for object detection, as well as a confidence level (e.g., weight) for the context or association between objects in the data. For example, certain objects or people detected in the same frame or in adjacent frames on a video file may have some weighted relationship due to physical proximity or temporal proximity.

Using the tags provided by AI engine 126, metadata manager 128 may create or manage a metadata database 130 of storage system 114, which metadata database 130 includes a relational database (e.g., tables, not shown) and a navigation database (e.g., a weighted graph of nodes, not shown). In some aspects, the metadata manager 128 creates an entry in the relational database for each detected object, where an entry may include the location of the detected object in the storage system, as well as the address to the corresponding node in the navigation database. The metadata manager 128 can also create nodes in the navigation database, such as in a weighted graph that includes weighted links to other nodes corresponding to respective objects in the data with which the detected objects are related. By placing nodes or metadata objects into the weighted graph, not only can an object be found in such a structure, but aspects of the environment of the object and related objects with defined confidence levels (e.g., for contextual relationships) can be found. The manner in which AI engine 126, metadata manager 128, and metadata database 130 are implemented and used is different and is described in this disclosure.

Computing device 102 may also include I/O ports 132, a graphics processing unit 134(GPU 134), and a data interface 136. In general, the I/O ports 132 allow the computing device 102 to interact with other devices, peripherals, or users. For example, I/O ports 132 may include or be coupled with a universal serial bus, human interface devices, audio inputs, audio outputs, and the like. The GPU134 processes and renders graphics-related data for the computing device 102, such as user interface elements of an operating system, applications, and so forth. In some cases, the GPU134 accesses a portion of local memory to render graphics, or includes dedicated memory for rendering graphics (e.g., video RAM) for the computing device 102.

The data interface 136 of the computing device 102 provides a connection to one or more networks and other devices connected to the networks. The data interface 136 may include a wired interface, such as an ethernet interface or a fiber optic interface for communicating over a local network, an intranet, or the internet. Alternatively or additionally, the data interface 136 may include a wireless interface that facilitates communication over a wireless network, such as a wireless LAN, a wide area wireless network (e.g., a cellular network), and/or a Wireless Personal Area Network (WPAN). According to one or more aspects of the AI-enabled search for storage systems, any of the data communicated through the I/O ports 132 or the data interface 136 may be written to the storage system 114 of the computing device 102 or read from the storage system 114 of the computing device 102.

FIG. 2 illustrates generally at 200 an example configuration of the artificial intelligence engine 126 and metadata manager 128 implemented in accordance with one or more aspects of a search for storage systems that implement AI. In this example, AI engine 126 is operatively coupled with storage media 122 and metadata manager 128 of storage system 114. Although AI engine 126 is illustrated as a component of storage system 114, AI engine 126 may be implemented separately from storage system 114 or AI engine 126 may be implemented external to storage system 114. AI engine 126 processes data 124 written to storage medium 122 or stored on storage medium 122 to detect, identify, or otherwise identify various objects in data 124.

Based on the processing or re-processing of the data 124, the AI engine 126 generates descriptive metadata tags 202 (or markers) for objects or other elements (such as activities or features described herein) detected in the data. In this example, the human engine 126 generates respective tags 202-1 through 202-n for up to n objects detected in the data 124. Along with the tags 202, the AI engine 126 may also provide a confidence level for object detection and a confidence level (e.g., weight) for the object's contextual relationship with another object or group of objects in the data 124. For example, certain objects or people detected in the same frame or in adjacent frames on a video file may have some weighted relationship due to physical proximity or temporal proximity in the data or video file. Along with or as part of tag 202, AI engine 126 can provide an indication of the weight or strength of the contextual relationship between any two or more detected objects (such as people, activities, features, music, lyrics, text, environment, emotion, mood, emotion, etc.).

With respect to the processing performed by AI engine 126, AI engine 126 may be implemented with machine learning based on one or more neural networks for object detection or determination of contextual relationships (such as relationship weights between detected objects or other metadata elements). Each AI model or neural network of AI engine 126 may include connected groups of nodes (such as neurons or perceptrons) organized into one or more layers. By way of example, an AI model (e.g., a machine learning model) of AI engine 126 may be implemented with a deep neural network that includes an input layer, an output layer, and one or more hidden intermediate layers positioned between the input layer and the output layer of the neural network. Each node of the deep neural network may in turn be fully connected or partially connected between layers of the neural network.

In various aspects, the AI model of AI engine 126 may be implemented as a recurrent neural network in which connections between nodes form a loop to maintain information from previous portions of an input data sequence for subsequent portions of the input data sequence. Alternatively, the AI model may be implemented as a feed-forward neural network with connections between nodes that do not form loops between input data sequences. In other cases, the AI model of AI engine 126 may include a Convolutional Neural Network (CNN) with multiple layers of perceptrons, where each neuron in a given layer is connected to all neurons of an adjacent layer. In some aspects, a convolutional neural network-based AI model may be applied to data files for complex pattern and image recognition. Alternatively or additionally, the AI engine 126 may include or utilize various regression models, such as multiple linear regression models, unary linear regression models, logistic regression models, stepwise regression models, multivariate adaptive regression models, local estimation scatter plot models, and the like.

Returning to fig. 2, the AI engine 126 provides the tags 202 of the data 124 to the metadata manager 128. Based on the tags 202, the metadata manager 128 creates, manages, or updates the metadata database 130, which in this example, the metadata database 130 includes a relational database 204 (e.g., a table) and a navigation database 206 (e.g., a weighted graph of nodes). The metadata manager 128 may be configured to create an entry in the relational database 204 for each detected object based on the tags 202 and associated confidence levels, the entry including the location of the detected object in the storage system and the address to the corresponding node in the navigation database 206. The metadata manager 128 may also create nodes in the navigation database 206 based on the tags 202 and associated confidence levels. In some cases, navigation database 206 is a weighted graph that includes, for a given node of detected objects, weighted links to other nodes corresponding to respective objects in the data with which the detected object is relevant. By placing nodes or metadata objects into the navigation database 206, not only can a certain object be found in such a structure, but aspects of the object's environment and related objects with defined confidence levels (e.g., for contextual relationships) can be found.

FIG. 3 illustrates generally at 300 an example configuration of the relational database 204 shown in FIG. 2. In aspects of AI-enabled searches for storage systems, relational database 204 may be implemented as one or more tables including references to various attributes or individual addresses of detected objects or identifiers thereof (such as tag identifiers, addresses to corresponding nodes, detection confidence levels, physical storage addresses, logical or virtual storage addresses, relative nodes, relational weights, and so forth). In this example, relational database 204 includes log table 302, address table 304, and node information table 306. In some aspects, the record or tag 202 generated by the AI engine 126 is recorded into the log table 302, such as for each instance of the detected object.

The log table 302 may include the columns for: object identification 308, tag identifier 310 (tag ID 310), tag type 312, address reference to the graph 314, and confidence level 316. In some cases, tag ID 310 provides a searchable entry in relational database 204 for a search agent or interface, and tag type 312 indicates the type of tag generated for the detected object. The address reference to graph field 314 may provide a reference to a node 318 in the navigation database 206 corresponding to the detected object, as well as a reference to an address in the address table 304. Confidence level 316 may indicate a probability level for AI detection for a detected object. As shown in FIG. 3, the address reference 314 to the graph points to a node 318, which node 318 is related to a node 320, a node 322, and a node 324 by changing the corresponding relationship weights. The address reference 314 to the map also points to an address ID field 326 in the address table 304, which address ID field 326 indicates a file path 328 and an offset 330 (e.g., a frame offset in a multimedia file) within the file of the detected object.

Relational database 204 may include a node information table 306 for each instance of a node. In some implementations, the table includes references or node addresses (address 157009) for the relevant objects 332 of the node 318, and corresponding relationship weights 334 for the relative nodes. The metadata manager 128 may determine the relationship weight based on the tag 202 or a confidence level of the contextual relationship of the object from the data provided by the AI engine 126. In general, the relationship weight 334 between opposing nodes may correspond to a weight or strength of the contextual relationship of the detected object in the data 124 with which the node corresponds. In other words, navigating through the relative nodes based on the relationship weights 334 may provide an indication of the manner in which the detected objects are correlated in the data 124 of the storage system 114.

FIG. 4 illustrates generally at 400 an example configuration of the navigation database 206 shown in FIG. 2. In this example, the navigation database 206 includes a weighted graph 402 of linked nodes, where links indicate weights for relationships between opposing nodes in the weighted graph 402. In general, the navigation database 206 may be implemented by a tree or graph of mappings connected with context weightings that may be navigated by various instructions (such as "next," "previous," "getChild," "getParent," etc.) and thus find contextually relevant objects. Here, the link nodes in weighted graph 402 may correspond to respective objects in data 124 that are contextually related, where the links represent relationships between the nodes and weights or possibilities of the relationships.

In general, the metadata manager 128 creates nodes in the weighted graph 402 based on the tags 202 and/or by using information from the relational database 204. Referring to FIG. 3, nodes 318 through 324 are shown with corresponding weighted links w 0404 to w 2408, the weighted chain w 0404 to w 2408 have line weights indicating relationship weights between the opposing nodes. The weighted graph 402 also includes another opposing node 410 of the node 318, the opposing node 410 having a weighted link w that is weaker than other weighted links indicated by a lower weight 3412. Other context-related objects may be found through additional weighted links as the metadata manager 128 or search agent navigates through the weighted graph 402. For example, node 322 also passes through weighted link w 5414 is associated with node 320 and passes through weighted link w 6416 is associated with node 324. As part of the search, the search implementing AI may also return results related to indirect connections, such as another node 418 not directly related to node 318, again via weighted link w 4420 or 422 are closely related to node 320, which node 422 is via weighted link w N424 is closely related to node 324. Thus, various implementations of AI-enabled searches for storage systems may utilize a navigation database of weighted links to implement implicit or contextual searches of stored data.

Techniques for implementing AI searches for storage systems

The following discussion describes techniques for a storage system that implement AI-enabled searches, which may enable implicit or contextual searches of data stored on the storage system. These techniques may be implemented using any of the environments and entities described herein, such as AI engine 126, metadata manager 128, or metadata database 130. The techniques include the methods illustrated in fig. 5-8, each of which is shown as a set of operations performed by one or more entities.

The methodologies are not necessarily limited to the order of operations shown in the associated figures. Rather, any of the operations may be repeated, skipped, replaced, or reordered to implement various aspects described herein. Further, the methods may be used in whole or in part in conjunction with each other, whether performed by the same entity, separate entities, or any combination thereof. For example, these methods can be combined to create a metadata database of AI processes with a relationship component and a navigation component that enable contextual or implicit searches of big data stored to a storage system. In various portions of the following discussion, reference will be made, by way of example, to the operating environment 100 illustrated in FIG. 1 and to the entities illustrated in FIG. 2, FIG. 3, and/or FIG. 4. Such references should not be taken as limiting the described aspects to the operating environment 100, entities, or configurations, but rather as an illustration of one of various examples. Alternatively or additionally, the operations of these methods may also be implemented by or with entities described with reference to the system-on-chip shown in FIG. 9 and/or the storage system controller shown in FIG. 10.

Fig. 5 depicts an example method 500 for conducting AI-enabled searches of data in a storage system, including operations performed by or with an AI engine 126 or metadata manager 128 of the storage system.

At 502, a metadata manager of a storage system receives a tag from an AI engine for an object detected by the AI engine in data stored in the storage system. In some cases, the AI engine detects objects as data is processed as the data is stored to a storage medium of the storage system. In other cases, the AI engine processes or reprocesses data stored on a storage medium of the storage system.

At 504, the metadata manager creates an entry for the detected object in a relational portion of a metadata database of the storage system. The relational portion of the metadata database may be a relational database or a plurality of tables with associated entries for metadata objects or tags. In some cases, the entry for the detected object includes a tag, an identifier of the tag, an address of a node corresponding to the detected object, or a confidence level of the AI engine for the detected object.

In 506, the metadata manager creates a node for the detected object in a navigation portion of a metadata database of the storage system. The navigation portion of the metadata database may be a weighted graph of linked nodes, a tree structure of nodes, a network of linked nodes, and the like. In some cases, the nodes in the navigation portion include references to relative nodes corresponding to other objects in the data with which the detected object is relevant, and respective weights for relationships between the nodes and the other nodes.

At 508, the metadata manager exposes a metadata database of the storage system to a search interface to enable searching of the metadata database for the detected object or other objects based on respective weights of the relationships between the nodes in the navigation portion.

FIG. 6 depicts an example method 600 for creating a relational database and a metadata database for a metadata database of a storage system using tags provided by an AI engine. The operations of method 600 may be performed by or with AI engine 126 or metadata manager 128 of a storage system.

In 602, a storage system receives data to write to a storage medium of the storage system. Data may be received from any suitable source, such as a computing device, a network interface, a storage fabric interface, and so forth. Data may be organized into files of various types or sizes, depending on the source of the data.

In 604, the AI engine generates a corresponding tag for an object detected in data written to a storage medium of the storage system. For example, the AI engine may process the data to generate descriptive metadata tags for objects or other elements detected in the data. Along with the tags, the AI engine may also provide a confidence level for object detection and a confidence level (e.g., weight) for contextual relationships or associations between objects in the data.

In 606, the metadata manager creates an entry for one of the detected objects in a relational portion of the metadata database. The entry for the detected object may include an identifier of the corresponding tag and an address of the node corresponding to the detected object. Alternatively or additionally, the entry may include the type of tag, a confidence level associated with the detection of the object, or a confidence level or relationship weight of the object and another object detected in the data.

At 608, the metadata manager creates a node in a navigation database of the metadata database corresponding to the detected object. In some cases, nodes are created in a weighted graph that includes weighted links to other nodes corresponding to respective objects in the data to which detected objects are related.

In 610, the metadata manager connects the node corresponding to the detected object in the navigation database with a respective link to an opposite node in the navigation database. The relative node in the navigation database may correspond to another object in the data to which the detected object is related.

In 612, the metadata manager assigns a relationship weight to the respective link connecting the node and the related node based on the context of the detected object in the data. Through operation 612, the method 600 may proceed to operation 614, return to operation 606 to create another node in the navigation database, or return to operation 610 to connect the node with another opposing node.

At 614, the metadata manager exposes the metadata database to the search interface to enable searching for objects detected in the data. A search may be made through entries in the relational database to find relevant nodes in the navigation database. Alternatively or additionally, the search may be based on weights of respective links connecting nodes in the navigation database. For example, the search agent may search entries in the relational database for tags or tag identifiers of objects of interest detected in the data by the AI engine.

Fig. 7 depicts an example method 700 for constructing or updating a weighted graph of a metadata database based on a set of tags provided by an AI engine processing data in a storage system. The operations of method 700 may be performed by or with AI engine 126 or metadata manager 128 of a storage system.

In 702, the AI engine processes data to be saved to the storage system utilizing a first AI model to provide a first set of corresponding tags for detected objects in the data. In 704, the metadata manager constructs a weighted graph of linked nodes corresponding to the detected objects in the data based on the first set of respective tags. The link nodes are connected by respective links each having a weight indicating a relationship context of the detected object.

At 706, the metadata manager enables searching of the detected objects in the data through an index table that includes respective identifiers for the first set of respective tags and corresponding index addresses of the linked nodes in the weighted graph. For example, the search agent may first traverse an index log table in a relational database to find the tag identifier of the detected object or element in the data stored to the AI-implemented storage system. In the index log table, references to nodes in the weighted graph in the navigation database may be behind a node, and thus, behind all connected nodes of the related object. The nodes and connecting nodes may be reported in order of link weight between the nodes, providing an indication of the context or relevance of the object in the data to which the node corresponds.

Optionally, at 708, the AI engine utilizes the second AI model to reprocess the data saved to the storage system to provide a second set of corresponding tags for the objects detected in the data. In general, if the AI engine utilizes the second AI model to reprocess the data, the weighted links or relationships of the nodes in the navigation database can be updated to emphasize or magnify other contextual relationships or provide different views of the manner in which objects in the data can be related. Alternatively or additionally, the AI engine may reprocess data on the storage system when the storage system is idle or has excess processing bandwidth to support reprocessing without affecting other storage system operations.

Optionally, in 710, the metadata manager updates respective link weights for links between the link nodes or links between the link nodes in the weighted graph based on the second set of respective labels, the respective link weights indicating a relationship context of the detected object.

FIG. 8 depicts an example method 800 for searching a storage system using a relational database and a navigation database, including operations performed by or with the metadata manager 128 of the storage system. Alternatively or additionally, the operations may be performed by or by a search agent associated with a metadata manager or storage system.

In 802, a metadata manager receives a query to search for data stored on a storage medium of a storage system. The query may include one or more keywords or search terms in a search. At 804, the metadata manager identifies an entry in a relational database that includes a tag related to the query. In some cases, an address table in a relational database is used in the storage system as a key or primary search list for the object.

At 806, the metadata manager determines an index address of a target node in the navigation database corresponding to the tag based on the entry in the relational database. At 808, as a result of the query for the search, the metadata manager returns an object of the target node at the index address and corresponding objects of the opposing nodes connected to the target node in order of the respective link weights.

System on chip

Fig. 9 illustrates an exemplary system on a chip (SoC)900 in which aspects of AI-enabled searches for a storage system may be implemented. SoC 900 may be implemented in any suitable device, such as a smartphone, netbook, tablet, access point, network attached storage, camera, smart device, printer, set-top box, server, data center, Solid State Drive (SSD), Hard Disk Drive (HDD), storage drive array, memory module, automotive computing system, or any other suitable type of device (e.g., other devices described herein). Although described with reference to a SoC, the entities shown in fig. 9 may also be implemented as other types of integrated circuits or embedded systems, such as an Application Specific Integrated Circuit (ASIC), a memory controller, a communication controller, an Application Specific Standard Product (ASSP), a Digital Signal Processor (DSP), a programmable SoC (psoc), a System In Package (SiP), or a Field Programmable Gate Array (FPGA).

SoC 900 may be integrated with: electronic circuitry, microprocessors, memory, input-output (I/O) control logic, communication interfaces, firmware, and/or software useful for providing the functionality of a computing device or a storage system, such as any of the devices or components described herein (e.g., a storage drive or storage array). SoC 900 may also include an integrated data bus or interconnect fabric (not shown) that couples the various components of the SoC for data communication or routing between the components. The integrated data bus, interconnect fabric, or other components of SoC 900 may be exposed or accessed through an external port, a parallel data interface, a serial data interface, a peripheral component interface, or any other suitable data interface. For example, components of SoC 900 may access or control an external storage medium, an AI engine, or an AI network through an external interface or off-chip data interface.

In this example, SoC 900 includes various components, such as input-output (I/O) control logic 902 and a hardware-based processor 904 (processor 904), such as a microprocessor, processor core, application processor, DSP, and so forth. SoC 900 also includes memory 906, which memory 906 may include any type of RAM, SRAM, DRAM, non-volatile memory, ROM, one-time programmable (OTP) memory, multiple-time programmable (MTP) memory, flash memory, and/or other suitable electronic data storage devices, and/or combinations thereof. In some aspects, the processor 904 and code stored on the memory 906 are implemented as a storage system controller or storage aggregator to provide various functions associated with AI-enabled searches for storage systems. In the context of the present disclosure, memory 906 stores data, code, instructions, or other information via non-transitory signals and does not include a carrier wave or transitory signal. Alternatively or additionally, SoC 900 may include a data interface (not shown) for accessing additional or scalable off-chip storage media, such as magnetic memory or solid state memory (e.g., flash memory or NAND memory).

SoC 900 may also include firmware 908, applications, programs, software, and/or operating systems that may be embodied on memory 906 that maintain processor-executable instructions for execution by processor 904 to implement the functions of SoC 900. SoC 900 may also include other communication interfaces, such as a transceiver interface for controlling or communicating with components of a local on-chip communication transceiver (not shown) or a local off-chip communication transceiver. Alternatively or additionally, the transceiver interface may also include or implement a signal interface for communicating Radio Frequency (RF) signals, Intermediate Frequency (IF) signals, or baseband frequency signals off-chip to facilitate wired or wireless communication by a transceiver, physical layer transceiver (PHY), or Media Access Controller (MAC) coupled to the SoC 900. For example, SoC 900 may include a transceiver interface configured to implement storage over a wired or wireless network, such as to provide a Network Attached Storage (NAS) volume with search features that implement AI.

SoC 900 also includes AI engine 126, metadata manager 128, and metadata database 130, which may be implemented separately or in combination with storage components or data interfaces as shown. According to various aspects of AI-enabled searches for storage systems, metadata database 130 can include one or more relational databases 204 and navigation databases 206, which one or more relational databases 204 and navigation databases 206 can be utilized to implement implicit or contextual searches of storage media managed by SoC 900. Alternatively or additionally, the metadata database 130 can be stored on the memory 906 of the SoC 900 or on a memory operably coupled with the SoC 900 and accessible by the metadata manager 128. Any of these entities may be embodied as different or combined components, as described with reference to various aspects set forth herein. Examples of such components and/or entities or corresponding functionality are described with reference to the respective components or entities in the environment 100 shown in fig. 1 or the respective configurations illustrated in fig. 2, 3, and/or 4. In whole or in part, the metadata manager 128 can be implemented as processor-executable instructions maintained by the memory 906 and executed by the processor 904 to implement various aspects and/or features of a search for storage systems that implement AI.

The metadata manager 128 may be implemented independently or in conjunction with any suitable components or circuitry for implementing various aspects described herein. For example, the AI engine 126 and/or metadata manager may be implemented as a controller, a storage controller, an Arithmetic Logic Unit (ALU), and/or the like. The metadata manager 128 may also be provided integrally with other entities of the SoC 900, such as integrated with the processor 904, memory 906, storage media interface, or firmware 908 of the SoC 900. Alternatively or additionally, AI engine 126, metadata manager 128, and/or other components of SoC 900 may be implemented as hardware, firmware, fixed logic circuitry, or any combination thereof.

As another example, consider FIG. 10, which illustrates an example storage system controller 1000 in accordance with one or more aspects of a search for implementing AI for a storage system. In various aspects, the storage system controller 1000, or any combination of its components, may be implemented as a storage drive controller, a storage media controller, a NAS controller, or a storage aggregation controller for solid state storage media, magnetic storage media, or the like. In some cases, the memory system controller 1000 is implemented similar to or with components of the SoC 900 as described with reference to fig. 9. In other words, an instance of SoC 900 may be configured as a storage system controller, such as storage system controller 1000 for managing solid state storage media or magnetic storage media. In this example, memory system controller 1000 includes input-output (I/O) control logic 1002 and a processor 1004, such as a microprocessor, processor core, application processor, DSP, or the like. The storage system controller also includes a storage media interface 1006 (e.g., a NAND interface) and a host interface 1008 (e.g., a SATA, PCIe, or Fabric interface) that enable access to the storage media and the host system, respectively.

In some aspects, storage system controller 1000 implements aspects of AI-enabled searches for storage systems in managing or implementing access to storage media coupled to storage media interface 1006. The storage system controller 1000 may provide a storage interface for a host system via a host interface 1008, through which host interface 1008 storage access commands are received from the host system. Alternatively or additionally, the metadata manager 128 may receive metadata tags or indications from an external AI engine or AI network via the host interface 1008 or another data interface of the storage system controller 1000. For example, in the case where data is to be stored to a storage medium operatively coupled to the storage medium interface 1006 of the storage system controller, the metadata manager 128 may receive the AI-generated tag and the corresponding confidence level indicator through the host interface 1008. In some aspects, the processor 1004 and firmware of the storage system controller are implemented to provide various data access functions associated with AI-enabled searches for the storage system.

The metadata manager 128 of the storage system controller 1000 may be implemented as shown, alone or in combination with the processor 1004, AI engine 126, or storage medium interface 1006. According to various aspects, the metadata manager 128 may create and manage a relational database 204 and a navigation database 206 (e.g., a weighted node map) of the metadata database 130. Examples of such components and/or entities or corresponding functionality are described with reference to the respective components or entities in the environment 100 shown in fig. 1 or the respective configurations illustrated in fig. 2, 3, and/or 4. In whole or in part, the metadata manager 128 can be implemented as processor-executable instructions maintained by the memory of the controller and executed by the processor 1004 to implement various aspects and/or features of a search for storage systems that implement AI.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific examples, features, or acts described herein, including the order in which they are performed.

28页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:商品搜索方法、装置、系统及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!