KR20200014237A - 저장 시스템에 대한 인공 지능 기반의 검색 - Google Patents

저장 시스템에 대한 인공 지능 기반의 검색 Download PDF

Info

Publication number
KR20200014237A
KR20200014237A KR1020190092592A KR20190092592A KR20200014237A KR 20200014237 A KR20200014237 A KR 20200014237A KR 1020190092592 A KR1020190092592 A KR 1020190092592A KR 20190092592 A KR20190092592 A KR 20190092592A KR 20200014237 A KR20200014237 A KR 20200014237A
Authority
KR
South Korea
Prior art keywords
node
data
detected object
database
metadata
Prior art date
Application number
KR1020190092592A
Other languages
English (en)
Inventor
콘스탄틴 쿠드라브체프
매트 오베르그
네델지코 바르니카
Original Assignee
마벨 월드 트레이드 리미티드
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 마벨 월드 트레이드 리미티드 filed Critical 마벨 월드 트레이드 리미티드
Publication of KR20200014237A publication Critical patent/KR20200014237A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • 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
    • 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
    • G06F16/2219Large Object storage; Management thereof
    • 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
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • 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/25Integrating or interfacing systems involving database management systems
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 저장 시스템에 대한 인공 지능 기반 검색을 위한 장치 및 방법을 서술한다. 일부 양상들에서, 저장 시스템의 메타데이터 관리자는 AI 엔진이 저장 시스템에 저장된 데이터에서 검출한 객체의 라벨을 수신한다. 메타데이터 관리자는 검출된 객체의 라벨의 식별자 및 검출된 객체에 대응하는 노드의 어드레스와 함께, 검출된 객체에 대한 엔트리를, 메타데이터 데이터베이스의 관계형 섹션에 생성한다. 또한, 메타데이터 관리자는 메타데이터 데이터베이스의 네비게이션 섹션에 그리고 검출된 객체의 어드레스와 함께, 다른 객체의 상대 노드에 대한 참조 및 노드와 상대 노드 간의 관련성의 가중치를 포함하는 노드를 생성한다. 그렇게 함으로써, 다양한 노드들 사이의 가중된 관련성들에 기초하여 메타데이터 데이터베이스가 검색될 수 있고, 이에 따라 저장 시스템에서 데이터의 문맥적 또는 암시적 검색이 가능해진다.

Description

저장 시스템에 대한 인공 지능 기반의 검색{ARTIFICIAL INTELLIGENCE-ENABLED SEARCH FOR A STORAGE SYSTEM}
관련 출원들에 대한 상호 참조
본 출원은 2018년 7월 31일자로 미국에 출원된 가특허출원 제62/712,828호의 우선권을 주장하며, 상기 미국 가출원은 본 발명에 대한 참조로서 그 전체 내용이 본 명세서에 통합된다.
사업체들과 기관들은 지속적인 운영, 연구, 데이터 마이닝, 또는 다른 데이터 소스로부터 생성된 방대한 분량의 데이터의 수집 및 보관하기 위하여 기업-레벨의 데이터 시스템을 종종 구현한다. 이러한 소스들로부터 수집된 데이터의 양, 다양성 및 속도가 지속적으로 증가함에 따라, 기업-레벨의 데이터 시스템은 끊임없이 유입되는 데이터 흐름을 수용하기 위하여, 끊임없이 증가하는 저장 용량을 구비하도록 설비된다. 하지만, 유입되는 데이터의 소스들은 일반적으로 통제된 소스들과 통제되지 않은 소스들의 조합이다. 그 결과, 빅 데이터의 복잡한 혼성물을 저장하는 대부분의 데이터 시스템은 구조화된 데이터, 구조화되지 않은 데이터 및 반-구조화된 데이터(semi-structured data)를 포함하게 된다.
비록, 데이터 시스템 관리자는 빅 데이터의 매우 큰 볼륨으로 저장 용량을 확장시킬 수 있지만, 구조화되지 않은(unstructured) 데이터의 양이 증가함에 따라, 빅 데이터 내의 특정 데이터 항목에 대한 분석 혹은 검색은 점점 더 어려워지거나 혹은 비효율적이 될 수 있다. 특히, 빅 데이터는 통상적인 검색 알고리즘에 의해 활용되는 표준 명명법(naming), 형식 지정(formatting) 또는 설명 규칙(description conventions)을 준수하지 않는 방대한 분량의 구조화되지 않은 데이터 혹은 미가공(raw) 데이터를 포함하는 것이 일반적이다. 예를 들어, 일반적인 검색 알고리즘은 키워드에 대한 명시적인 또는 정확한 매칭을 위하여, 검색 키워드를 파일 내의 파일 이름 및 텍스트와 비교할 수 있다. 따라서, 이러한 유형의 검색은, 엄격한 매칭 알고리즘에 의해 누락된 관련된 구조화되지 않은 데이터 항목들을 포함하는 많은 양의 빅 데이터에 대해서, 결과를 반환하는데 실패할 수 있다. 이와 같이, 전형적인 매칭 알고리즘의 사용은 비효율적이고 부정확할 수 있는바, 왜냐하면 이러한 유형의 검색 알고리즘은 특히, 구조화되지 않은 데이터 또는 반-구조화된 데이터(semi-structured data)에서 관련 데이터를 놓치는 경우가 많기 때문이다.
요약(Summary)
본 요약 부분은 상세한 설명 및 도면에서 설명된 주제를 소개하기 위해 제공된 것이다. 따라서, 본 요약은 본 발명의 본질적인 특징들을 기술하는 것으로 간주되어서는 안되며 청구된 주제의 범위를 제한하는 것으로 사용되어서도 안된다.
일부 양상들에서, 방법을 구현하는 저장 시스템의 메타데이터 관리자는 인공 지능 엔진으로부터, 상기 저장 시스템의 저장 매체에 저장된 데이터에서 검출된 객체에 대한 라벨을 수신한다. 메타데이터 관리자는 검출된 객체에 대한 엔트리를 저장 시스템의 메타데이터 데이터베이스의 관계형 섹션(relational section)에 생성한다. 관계형 섹션의 엔트리는 상기 라벨의 식별자 및 메타데이터 데이터베이스의 네비게이션 섹션 내의 상기 검출된 객체에 대응하는 노드의 어드레스를 포함한다. 또한, 메타데이터 관리자는 상기 어드레스와 함께, 검출된 객체에 대응하는 노드를 메타데이터 데이터베이스의 네비게이션 섹션 내에 생성한다. 이러한 노드는 상기 검출된 객체와 관련된 상기 데이터 내의 다른 객체에 대응하는 상기 네비게이션 섹션 내의 상대 노드에 대한 적어도 하나의 참조 및 상기 노드와 상기 상대 노드 사이의 관련성의 가중치를 포함한다. 이렇게 함으로써, 이들 노드들 및 다른 노드들의 가중화된 관련성들에 기초하여 메타데이터 데이터베이스가 검색될 수 있으며, 이는 저장 시스템에 저장된 데이터에 대한 문맥적인 혹은 암시적인 검색을 가능케할 수 있다.
다른 양상들에서는, 장치가 개시되며, 상기 장치는 호스트로부터 데이터를 수신하기 위한 인터페이스, 상기 호스트로부터 수신된 데이터를 저장하도록 구성된 저장 매체, 상기 저장 매체에 저장된 데이터에 대한 액세스를 가능케하도록 구성된 제어기, 및 AI 엔진과 연관된 메타데이터 관리자를 포함한다. 메타데이터 관리자는, 상기 장치의 저장 매체에 저장된 데이터에서 AI 엔진에 의해 검출된 객체에 대한 라벨을 AI 엔진으로부터 수신하도록 구현된다. 메타데이터 관리자는 검출된 객체에 대한 엔트리를 상기 장치의 메타데이터 데이터베이스의 관계형 섹션(relational section)에 생성한다. 관계형 섹션의 엔트리는 상기 라벨의 식별자 및 메타데이터 데이터베이스의 네비게이션 데이터베이스 내의 상기 검출된 객체에 대응하는 노드의 어드레스를 포함한다. 또한, 메타데이터 관리자는 검출된 객체에 대응하는 노드를 메타데이터 데이터베이스의 네비게이션 데이터베이스 내의 어드레스에 생성한다. 이러한 노드는 상기 검출된 객체와 문맥적으로 관련된 상기 데이터 내의 다른 객체에 대응하는 상기 네비게이션 데이터베이스 내의 상대 노드에 대한 적어도 하나의 참조 및 네비게이션 데이터베이스 내의 상기 노드와 상기 상대 노드 사이의 관련성의 가중치를 포함한다.
또 다른 양상에서, 시스템-온-칩(SoC)이 서술되며, 시스템-온-칩(SoC)은 저장 시스템의 저장 매체에 대한 인터페이스, 저장 매체로의 기록을 위해 데이터가 수신되는 호스트에 대한 인터페이스, 하드웨어 기반 프로세서, 및 프로세서 실행가능한 명령들을 저장하는 메모리를 포함하며, 상기 명령들은 상기 하드웨어 기반 프로세서에 의한 실행에 응답하여 메타데이터 관리자를 구현한다. 메타데이터 관리자는 저장 매체에 기록된 데이터에서 AI 엔진에 의해 검출된 객체에 대한 라벨을 AI 엔진으로부터 수신한다. 다음으로, 메타데이터 관리자는 검출된 객체에 대한 엔트리를 메타데이터 데이터베이스의 관계형 데이터베이스에 생성한다. 검출된 객체에 대한 엔트리는 상기 라벨의 식별자 및 메타데이터 데이터베이스의 네비게이션 데이터베이스에서 검출된 객체에 대응하는 노드의 어드레스를 포함한다. 또한, 메타데이터 관리자는 검출된 객체에 해당하는 노드를 메타데이터 데이터베이스의 네비게이션 데이터베이스 내에 어드레스와 함께 생성한다. 네비게이션 데이터베이스 내의 상기 노드는 상기 검출된 객체와 문맥적으로 관련된 상기 데이터 내의 다른 객체에 대응하는 상기 네비게이션 데이터베이스 내의 상대 노드에 대한 적어도 하나의 참조 및 네비게이션 데이터베이스 내의 상기 노드와 상기 상대 노드 사이의 관련성의 가중치를 포함한다.
하나 이상의 구현예들의 세부 내용은 첨부된 도면들 및 이하의 설명에서 서술된다. 다른 피처들 및 장점들은 상세한 설명, 도면들 및 청구 범위로부터 명백해질 것이다.
AI-기반의(AI-enabled) 검색을 구비한 저장 시스템의 하나 이상의 구현예들에 대한 세부 내용은 첨부된 도면들 및 아래의 상세한 설명에 서술된다. 도면들에서, 참조 번호의 가장 왼쪽 숫자는 참조 번호가 처음 출현한 도면을 식별한다. 상세한 설명 및 도면들에서 동일한 참조 번호의 사용은 유사한 요소들을 나타낸다.
도 1은 본 발명의 하나 이상의 양상들에 따라 저장 시스템이 구현되는 디바이스들을 갖는 예시적인 동작 환경을 도시한다.
도 2는 도 1에 도시된 저장 시스템의 AI(인공 지능) 엔진 및 메타데이터 관리자의 예시적인 구성을 도시한다.
도 3은 본 발명의 하나 이상의 양상들에 따른 관계형 데이터베이스의 테이블들의 각각의 구성을 예시한다.
도 4는 본 발명의 하나 이상의 양상들에 따른 네비게이션 데이터베이스의 가중 그래프의 예시적인 구성을 도시한다.
도 5는 본 발명의 하나 이상의 양상들에 따른 저장 시스템에서 데이터의 AI 기반 검색을 구현하기 위한 예시적인 방법을 도시한다.
도 6은 AI 엔진에 의해 제공된 라벨을 사용하여 저장 시스템에 대한 메타데이터 데이터베이스 및 관계형 데이터베이스를 생성하기위한 예시적인 방법을 도시한다.
도 7은 저장 시스템의 데이터를 프로세싱하는 AI 엔진에 의해 제공된 라벨 세트들에 기초하여 메타데이터 데이터베이스의 가중 그래프를 구성 또는 업데이트하기위한 예시적인 방법을 도시한다.
도 8은 관계형 데이터베이스 및 네비게이션 데이터베이스를 사용하여 저장 시스템을 검색하는 예시적인 방법을 도시한다.
도 9는 저장 시스템에 대한 AI 기반 검색의 양상을 구현하기 위한 예시적인 시스템-온-칩(SoC) 환경을 도시한다.
도 10은 제어기가 연관된 저장 시스템에서 AI 기반 검색의 양상을 구현하도록 구성된 저장 시스템 제어기의 예를 도시한다.
데이터를 검색하기 위한 종래의 기술은, 이름들 및 저장된 데이터의 텍스트에서 검색 용어에 대한 정확한 매치를 찾아내는 것에 종종 의존한다. 일반적으로, 데이터는 다양한 유형의 전자 저장 디바이스에 개별 파일로 저장되며, 그 형식 및 사이즈들은 데이터를 생성하는 어플리케이션에 따라 달라진다. 대부분의 운영 체제는 키워드에 의한 데이터 파일의 의미론적(semantic) 검색을 지원하며, 따라서 검색 알고리즘은 데이터의 이름이나 텍스트를 기반으로 데이터 파일을 조사한다. 특히, 의미론적 검색 알고리즘은 파일들의 리스트를 살펴보거나, 각각의 파일을 열어보거나, 키워드와의 비교를 위해 텍스트 콘텐츠를 판독하거나, 파일을 닫을 수 있으며, 그리고 파일명 혹은 텍스트 콘텐츠의 키워드와의 임의의 매칭들을 보고할 수 있다. 이러한 유형의 검색은, 키워드들이 동일한 의미를 가질 수 있지만 의미상으로는 서로 다르다라는 데이터의 이진 특성으로 인해 제한되는 것이 일반적이다.
더구나, 클라우드 기반 혹은 기업-레벨 어플리케이션들과 같은, 빅 데이터 저장의 경우, 빅 데이터는 통상적인 검색 알고리즘에 의해 활용되는 표준 명명법(naming), 형식 지정(formatting) 또는 설명 규칙(description conventions)을 준수하지 않는 방대한 분량의 구조화되지 않은 데이터 혹은 미가공(raw) 데이터를 포함하는 것이 일반적이다. 따라서, 엄격한 의미론적 검색은, 의미론적으로 매칭되는 텍스트가 없기 때문에 검색 알고리즘에 의해 누락된 관련 구조화되지 않은 데이터 항목들을 포함하는 빅 데이터에 대하여, 정확한 결과를 반환하지 못할 수 있다. 이와 같이, 종래의 검색 알고리즘들의 사용(특히, 빅 데이터와 함께 사용하는 것)은, 종종 비효율적이거나 부정확한데, 그 이유는 이들 검색 알고리즘이 정확한 또는 명시적인 의미론적 매칭의 부재로 인하여 관련 데이터를 놓칠 수 있기 때문이다.
본 발명은 저장 시스템에 대한 AI 기반 검색을 위한 장치 및 방법을 서술한다. 종래의 검색 기술들과는 대조적으로, 서술된 장치들 및 기술들은 데이터 내의 객체들의 컨텍스트 또는 관련성들(relationships)에 기초하여 저장 시스템에서 AI 기반의 데이터 검색을 구현할 수 있다. 예를 들어, AI 엔진은 데이터를 프로세싱하여, 데이터에서 검출된 객체들 또는 다른 요소들에 대한 서술형 메타데이터 라벨들(descriptive matadata labels)을 생성할 수 있다. 라벨들과 함께, AI 엔진은 또한, 데이터 내의 객체들 사이의 문맥적 관련성 또는 연관성 신뢰도 레벨(예를 들어, 가중치) 뿐만 아니라 객체 검출의 신뢰도 레벨을 제공할 수 있다. 예를 들어, 비디오 파일의 동일하거나 인접한 프레임에서 검출된 소정 객체들 또는 사람들은, 물리적 또는 시간적 근접성으로 인하여, 가중화된 관련성을 가질 수 있다. 마찬가지로, 비디오의 사운드 트랙이나 대화(예컨대, 가사 또는 자막)으로부터 생성된 텍스트 및 미디어 파일에서 같은 시간에 감지된 객체들도 또한 관련성을 가질 수 있다. 대안적으로 또는 부가적으로, 정서(sentiment) 또는 감정(emotion)도 음성 톤으로부터 오디오 파일에서 검출될 수 있고, 이러한 장면 분류들은 오디오 파일들과 연관된 콘텐츠 또는 객체들과의 가중화된 관련성을 가질 수 있다.
라벨들에 기초하여, 저장 시스템의 메타데이터 관리자는 관계형 데이터베이스(예를 들어, 테이블) 및 네비게이션 데이터베이스(예를 들어, 노드들의 가중된 그래프)를 생성 및 관리할 수 있다. 일반적으로, 메타데이터 관리자는 저장 시스템에서 검출된 객체의 위치 및 네비게이션 데이터베이스 내의 대응 노드의 어드레스를 포함하는 각각의 검출된 객체에 대한 엔트리들을 관계형 데이터베이스에 생성한다. 메타데이터 관리자는 또한 검출된 객체가 관련된 데이터의 각 객체에 해당하는 다른 노드들에 대한 가중 링크들을 포함하는 가중치 그래프에서와 같이, 네비게이션 데이터베이스 내에 노드를 생성한다. 노드들 또는 메타데이터 객체들을 가중치 그래프에 배치함으로써, 소정 객체가 이러한 구조에서 발견될 수 있을 뿐만 아니라, 객체의 환경에 대한 양상들 및 정의된 신뢰도 레벨(예컨대, 문맥적 관련성에 대한)을 갖는 관련된 객체들도 발견될 수 있다. 앞서 일례로 돌아가서, 오디오 파일의 주제는 오디오 파일의 감정(sentiment), 분위기(ambiance), 무드(mood), 정취(atmosphere) 등과 함께 발견될 수 있다.
이러한 유형의 문맥 검색은 논리적 혹은 의미론적 요청에 기초할 수도 있지만, 일부 불확실한 부분들 혹은 성분들을 포함하는 응답을 반환하는, 모호한 경계들(blurred boundaries)로 진행할 수도 있다. AI-기반 검색의 문맥에서, 관계형 데이터베이스의 테이블들은 논리적 요청(예컨대, 라벨 룩업 혹은 매칭)을 위한 시작점을 제공할 수도 있는 반면에, 네비게이션 데이터베이스는 일정 수준의 불확실성을 갖는 문맥형 혹은 관련성-기반의 검색을 가능케한다. 예를 들어, 네비게이션 데이터베이스는 문맥적으로 관련된 객체들을 발견하기 위하여 "다음(next)", "이전(previous)", "getChild", "getParent" 등과 같은 다양한 명령들을 통해 네비게이팅될 수 있는 콘텍스트-가중화된 연결들을 구비한 맵핑된 관계들의 트리 혹은 그래프를 통해 구현될 수 있다. 이와 같이, 저장 시스템에 대한 AI-기반 검색의 다양한 구현예들은 저장된 데이터에 대한 암시적 또는 문맥적 검색을 가능케하도록, 관계형 데이터베이스와 네비게이션 데이터베이스의 조합을 포함할 수 있다.
일례로서, 사용자가 키워드에 대한 검색을 실행하면, 메타데이터 관리자 또는 검색 에이전트는, 먼저 관계형 데이터베이스의 인덱싱된 로그 테이블을 통해 실행하여, AI 기반 저장 시스템에 저장된 데이터에서 검출된 객체들 또는 요소들에 대한 라벨 식별자들을 획득한다. 인덱싱된 로그 테이블에서, 네비게이션 데이터베이스의 가중 그래프에서 노드에 대한 참조가 발견될 수 있으며, 이는 상기 노드 및 관련된 객체들의 모든 연결된 노드들을 가리킨다. 상기 노드 및 연결된 노드들은 노드들 사이의 링크 가중치들의 순서대로 보고될 수 있으며, 노드들이 대응하는 데이터 내의 객체들의 컨텍스트 또는 관련성에 대한 표시를 제공할 수 있다. 일반적으로, 관계형 데이터베이스와 네비게이션 데이터베이스의 조합에 의해서 가능해지는 검색 프로세스는, 전체 장면의 각각의 양상이 하나의 세부 사항에 의해 기억될 때, 인간의 뇌가 작동하는 방식과 유사할 수 있다.
저장 시스템에 대한 AI 기반 검색의 다양한 양상들에서, 메타데이터 관리자는, 상기 저장 시스템의 저장 매체에 저장된 데이터에서 검출된 객체에 대한 라벨을 AI 엔진으로부터 수신한다. 메타데이터 관리자는, 검출된 객체에 대한 엔트리를, 저장 시스템의 메타데이터 데이터베이스의 관계형 섹션(relational section)에 생성한다. 관계형 섹션 내의 상기 엔트리는 상기 라벨의 식별자, 저장 시스템 내에서 검출된 객체의 어드레스, 및 메타데이터 데이터베이스의 네비게이션 섹션에서 검출된 객체에 대응하는 노드의 어드레스를 포함한다.
또한, 메타데이터 관리자는 어드레스와 함께, 검출된 객체에 대응하는 노드를 메타데이터 데이터베이스의 네비게이션 섹션에 생성한다. 이러한 노드는 검출된 객체와 관련된 데이터 내의 다른 객체에 대응하는 네비게이션 섹션 내의 상대 노드에 대한 적어도 하나의 참조 및 메타데이터 데이터베이스의 네비게이션 섹션의 상기 노드 및 상대 노드 사이의 관련성의 가중치를 포함한다. 이렇게 함으로써, 이들 및 다른 노드들의 가중화된 관련성에 기초하여 메타데이터 데이터베이스가 검색될 수 있으며, 이는 저장 시스템에 저장된 데이터의 문맥적 또는 암시적 검색을 가능하게할 수 있다. 즉, 저장 시스템 또는 저장 드라이브(예컨대, 엣지 스토리지)에 대한 AI 기반 검색을 구현함으로써, 이러한 저장소가 "스마트"하게 되므로, 사용자에게 암시적 또는 문맥적 검색 결과를 제공할 수 있다.
이하의 설명은 동작 환경, 동작 환경에서 사용될 수 있는 기술들 및 동작 환경의 구성 요소들이 구현될 수 있는 시스템-온-칩(SoC)을 설명한다. 본 개시의 내용에서, 단지 일례로서 동작 환경이 참조된다.
동작 환경(Operating Environment)
도 1은 다양한 형태의 데이터 또는 정보를 저장 또는 액세스할 수 있는 컴퓨팅 디바이스(102)를 갖는 예시적인 동작 환경(100)을 도시한다. 컴퓨팅 디바이스(102)의 일례는 랩탑 컴퓨터(104), 데스크톱 컴퓨터(106) 및 서버(108)를 포함할 수 있으며, 이들 중 임의의 것은 저장 네트워크 또는 클라우드 저장소의 일부로서 구성될 수 있다. 컴퓨팅 디바이스(102)의 다른 예들(미도시)은 태블릿 컴퓨터, 셋톱 박스, 데이터 저장 어플라이언스, 착용가능한 스마트 디바이스, 텔레비전, 콘텐츠 스트리밍 디바이스, 고해상도 멀티미디어 인터페이스(HDMI) 미디어 스틱, 스마트 어플라이언스, 홈 오토메이션 제어기, 스마트 온도제어기, 사물 인터넷(IoT) 디바이스, 모바일-인터넷 디바이스(Mobile-Internet device: MID), NAS(Network-Attached Storage) 드라이브, 집계 저장 시스템, 게임 콘솔, 차량용 엔터테인먼트 디바이스, 차량용 컴퓨팅 시스템, 자동차 제어 모듈(예컨대, 엔진 또는 파워 트레인 제어 모듈) 등이 있다. 일반적으로, 컴퓨팅 디바이스(102)는 특정 유형의 디바이스 기능들을 가능하게하고, 사용자 인터페이스를 제공하고, 네트워크 액세스를 가능하게하고, 게임 어플리케이션을 구현하고, 미디어를 재생하고, 네비게이션을 제공하고, 콘텐츠를 편집하고, 데이터 저장소를 제공하는 등의 임의의 적절한 목적을 위하여 데이터를 통신 혹은 저장할 수 있다.
컴퓨팅 디바이스(102)는 프로세서(110) 및 컴퓨터 판독가능 저장 매체(112)를 포함한다. 프로세서(110)는 컴퓨팅 디바이스(102)의 운영 체제 또는 다른 프로그램의 명령들 혹은 커맨드들을 실행하기 위해서, 싱글 코어 또는 멀티 코어인 임의의 적절한 유형 혹은 개수의 프로세서들로 구현될 수 있다. 컴퓨터 판독가능 매체(computer-readable media: CRM)(112)는 메모리(미도시)와 저장 시스템(114)을 포함한다. 컴퓨팅 디바이스(102)의 메모리는 임의의 적절한 유형의 휘발성 메모리 또는 비휘발성 메모리 또는 이들의 조합을 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(102)의 휘발성 메모리는 다양한 유형의 랜덤 액세스 메모리(random-access memory), 디램(dynamic RAM: DRAM), 에스램(static RAM: SRAM) 기타 등등을 포함할 수 있다. 비휘발성 메모리는 판독 전용 메모리(read-only memory: ROM), 전기적으로 소거 및 프로그램가능한 판독 전용 메모리(electrically erasable programmable ROM: EEPROM) 또는 NOR 플래시 또는 NAND 플래시와 같은 플래시 메모리를 포함할 수 있다. 이들 메모리는 개별적으로 또는 조합하여 컴퓨팅 디바이스(102)의 어플리케이션 및/또는 운영 시스템과 관련된 데이터를 저장할 수 있다.
컴퓨팅 디바이스(102)의 저장 시스템(114)은 가령, 저장 디바이스, 저장 드라이브, 스토리지 어레이, 스토리지 볼륨 등과 같은 임의의 적절한 유형의 데이터 저장 시스템으로 구성될 수 있다. 컴퓨팅 디바이스(102)를 참조하여 설명되었지만, 저장 시스템(114)은 독립형 디바이스로서 별도로 구현될 수도 있으며, 또는 데이터 센터, 서버 팜 또는 가상화된 저장 시스템(예를 들어, 클라우드 기반의 저장소 혹은 저장 서비스들)과 같은 더 큰 스토리지 집단의 일부로서 구현될 수도 있다. 저장 시스템(114)의 일례들은, 하드 디스크 드라이브(HDD)(116), 고체 상태 드라이브(SSD)(118) 및 스토리지 어레이(120)를 포함하며, 이는 저장 디바이스 또는 저장 디바이스의 임의의 조합으로 구현될 수 있다.
저장 시스템(114)은 컴퓨팅 디바이스(102) 또는 다른 소스들의 데이터(124)가 저장되어 있는 저장 매체(122)를 포함한다. 저장 매체(122)는 자기 매체, 광 매체, 회전 디스크, 비 휘발성 메모리, 고체 상태 매체 등과 같은 저장 매체의 임의의 유형 또는 조합으로 구현될 수 있다. 일부 경우에서, 데이터(124)는 저장 시스템(114)의 저장 매체(122)에 저장된 데이터 파일들(예를 들어, 콘텐츠) 또는 데이터 객체들로 조직화될 수 있다. 파일의 유형, 크기 또는 포맷은 파일과 연관된 각각의 소스, 사용 또는 어플리케이션에 따라 달라질 수 있다. 예를 들어, 저장 매체(122)에 저장된 파일들은 오디오 파일, 비디오 파일, 텍스트 파일, 이미지 파일, 멀티미디어 파일, 스프레드 시트 등을 포함할 수 있다.
일반적으로, 데이터 파일은 다양한 객체들, 액티비티들, 또는 피처들을 포함할 수 있으며 이는 사람, 텍스트, 음악, 가사, 콘텐츠, 감정, 분위기, 테마, 세팅, 기타 등등의 하나로서 분류되거나 간주될 수 있다. 또한, 데이터 파일의 각각의 객체, 액티비티, 또는 피처는, 다른 객체와의 관련성의 정도 혹은 가중치를 변화시킴으로써, 파일 내에서 문맥적으로 관련될 수 있다. 예를 들어, 멀티미디어 파일의 프레임 또는 프레임 시퀀스는 사람들, 객체들, 대화, 음악 또는 분위기를 포함할 수 있는바, 이들은 멀티미디어 파일 내의 공통 존재, 물리적 근접성 또는 시간적 근접성으로 인하여 문맥적으로 관련될 수 있다. 대안적으로 또는 부가적으로, 데이터(124)는 제어되거나 제어되지 않은 다양한 소스들로부터의 구조화된 데이터, 구조화되지 않은 데이터 또는 반 구조화된 데이터와 같은 빅 데이터를 포함할 수 있다. 일부 경우에서, 구조화되지 않은 데이터 또는 반 구조화된 데이터는, 데이터 내의 객체들을 구분하는데 유용하지 않거나(예컨대, 일반적인 또는 머신-생성된) 또는 데이터의 콘텐츠(예컨대, 객체 또는 요소)와는 관련이 없는 비-서술형 파일명들 또는 텍스트를 포함한다. 이러한 경우, 본 명세서에 설명된 AI 기반 검색은 빅 데이터 내의 다양한 객체들에 대한 라벨들을 생성할 수 있고, 따라서 저장 시스템(114)에 저장된 빅 데이터에 대한 유용한 검색 및 분석을 가능하게 한다.
본 일례에서, 저장 시스템(114)은 또한 인공 지능 엔진(126)(AI 엔진 126), 메타데이터 관리자(128) 및 메타데이터 데이터베이스(130)를 포함한다. AI 엔진(126)은 저장 시스템(114)에 저장된 데이터, 데이터 파일들, 또는 데이터 객체들에서 객체들 또는 요소들을 검출하기 위해 데이터(124)를 프로세싱하는 하나 이상의 AI 모델을 구현할 수 있다. 객체들 또는 요소들의 검출에 기초하여, AI 엔진(126)은 데이터에서 검출된 객체들 또는 요소들에 대한 서술형 메타데이터 라벨들을 생성한다. 라벨들과 함께, AI 엔진(126)은 또한 객체 검출의 신뢰도 레벨을 제공할 수 있을 뿐만 아니라, 데이터 내의 객체들 간의 문맥적 관련성 혹은 연관성의 신뢰도 레벨(예를 들어, 가중치)을 제공할 수 있다. 예를 들어, 비디오 파일의 동일하거나 인접한 프레임들에서 검출된 특정 객체들 또는 사람들은, 물리적 또는 시간적 근접성으로 인하여, 소정의 가중화된 관련성을 가질 수 있다.
AI 엔진(126)에 의해 제공되는 라벨들을 이용하여, 메타데이터 관리자(128)는 저장 시스템(114)의 메타데이터 데이터베이스(130)를 생성 또는 관리할 수 있는바, 메타데이터 데이터베이스(130)는 관계형 데이터베이스(예컨대, 테이블들, 미도시)와 네비게이션 데이터베이스(노드들의 가중화된 그래프, 미도시)를 포함한다. 일부 양상들에서, 메타데이터 관리자(128)는 검출된 각각의 객체에 대한 엔트리들을 관계형 데이터베이스에 생성하는바, 여기서 엔트리들은 저장 시스템의 검출된 객체의 위치 및 네비게이션 데이터베이스 내의 대응 노드에 대한 어드레스를 포함할 수 있다. 메타데이터 관리자(128)는 또한, 검출된 객체가 관련된 데이터 내의 각각의 객체들에 대응하는 다른 노드들에 대한 가중 링크들을 포함하는 가중화된 그래프에서와 같이, 네비게이션 데이터베이스에 노드를 생성할 수 있다. 노드들 또는 메타데이터 객체들을 가중화된 그래프에 배치함으로써, 소정의 객체가 이러한 구조에서 발견될 수 있을 뿐만 아니라. 객체의 환경의 양상들 및 정의된 신뢰도 레벨(예컨대, 문맥적 관련성에 대한)을 갖는 관련 객체들도 발견될 수 있다. AI 엔진(126), 메타데이터 관리자(128) 및 메타데이터 데이터베이스(130)가 구현되고 사용되는 방법은 다양하며, 본 명세서 전체에 걸쳐 설명된다.
또한, 컴퓨팅 디바이스(102)는 I/O 포트들(132), 그래픽 프로세싱 유닛(GPU)(134), 및 데이터 인터페이스(136)를 포함할 수 있다 , 일반적으로, I/O 포트(132)는 컴퓨팅 디바이스(102)가 다른 디바이스들, 주변 장치들 및 사용자들과 상호작용할 수 있게 한다. 예를 들어, I/O 포트(132)는 범용 직렬 버스(USB), 휴먼 인터페이스 디바이스, 오디오 입력, 오디오 출력 등을 포함하거나 이들과 결합될 수 있다. GPU(134)는 운영 시스템, 어플리케이션 등의 사용자 인터페이스 요소와 같은 컴퓨팅 디바이스(102)에 대한 그래픽 관련 데이터를 프로세싱 및 렌더링한다. 몇몇 경우에, GPU(134)는 로컬 메모리의 일부에 액세스하여 그래픽을 렌더링하거나 또는 컴퓨팅 디바이스(102)의 그래픽을 렌더링하기 위한 전용 메모리(예를 들어, 비디오 RAM)를 포함한다.
컴퓨팅 디바이스(102)의 데이터 네트워크(136)는 하나 이상의 네트워크들 및 이들 네트워크에 연결된 다른 디바이스들과의 연결을 제공한다. 데이터 인터페이스(136)는 로컬 네트워크, 인트라넷 또는 인터넷을 통해 통신하기 위한 이더넷 또는 광섬유 인터페이스와 같은 유선 인터페이스를 포함할 수 있다. 선택적으로 또는 부가적으로, 데이터 인터페이스(136)는 무선 LAN, 광역 무선 네트워크(예컨대, 셀룰러 네트워크) 및/또는 무선 개인 영역 네트워크(WPAN)와 같은 무선 네트워크를 통해 통신하기 위한 무선 인터페이스를 포함할 수 있다. I/O 포트(132) 또는 데이터 인터페이스(136)를 통해 통신되는 임의의 데이터는, 저장 시스템에 대한 AI 기반 검색의 하나 이상의 양상들에 따라 컴퓨팅 디바이스(102)의 저장 시스템(114)에 기록되거나 이로부터 판독될 수 있다.
도 2는 인공 지능 엔진(126) 및 메타데이터 관리자(128)의 예시적인 구성들을 200에서 일반적으로 도시하며, 이는 저장 시스템에 대한 AI 기반 검색의 하나 이상의 양상들에 따라 구현될 수 있다. 이러한 일례에서, AI 엔진(126)은 저장 시스템(114)의 저장 매체(122) 및 메타데이터 관리자(128)와 동작가능하게 결합된다. 비록, 저장 시스템(114)의 구성 요소로서 도시되었지만, AI 엔진(126)은 저장 시스템(114)과는 별개로 또는 외부에 구현될 수도 있다. AI 엔진(126)은 데이터(124)를 프로세싱하며, 데이터(124)는 데이터(124) 내의 다양한 객체들을 검출, 식별, 혹은 인식하기 위하여 저장 매체(122)에 기록되거나 저장된다.
데이터(124)의 프로세싱 또는 재프로세싱에 기초하여, AI 엔진(126)은 전술한 액티비티들 혹은 피처들과 같은, 데이터에서 검출된 객체들 혹은 다른 요소들에 대한 서술형 메타데이터 라벨들(202)을 생성한다. 본 일례에서, AI 엔진(126)은 데이터(124)에서 검출된 최대 n 개의 객체에 대한 각각의 라벨(202-1 내지 202-n)을 생성한다. 라벨들(202)과 함께, AI 엔진(126)은 또한 객체 검출의 신뢰도 레벨을 제공할 뿐만 아니라, 데이터(124) 내의 다른 객체 또는 객체 그룹과 상기 객체와의 문맥적 관련성에 대한 신뢰도 레벨(예컨대, 가중치)를 제공한다. 예를 들어, 비디오 파일의 동일 프레임 혹은 인접 프레임들에서 검출된 소정 객체들 또는 사람들은, 데이터 또는 비디오 파일 내에서의 물리적 또는 시간적 근접성으로 인해 소정의 가중화된 관련성을 가질 수 있다. AI 엔진(126)은 사람들, 액티비티들, 피처들, 음악, 가사, 텍스트, 분위기, 정서, 무드, 감정 등과 같은 임의의 2 이상의 검출된 객체들 사이의 문맥적 관련성의 가중치 또는 강도에 대한 표시를 라벨(202)과 함께 또는 그 일부로서 제공할 수 있다.
AI 엔진(126)에 의해 수행되는 프로세싱과 관련하여, AI 엔진(126)은 검출된 객체들 혹은 다른 메타데이터 요소들 간의 관련성 가중치와 같은, 객체 검출 또는 문맥적 관련성을 결정하기 위한 하나 이상의 뉴럴 네트워크에 기반한 머신 러닝을 통해 구현될 수 있다. AI 엔진(126)의 각각의 AI 모델 혹은 뉴럴 네트워크는, 하나 이상의 계층들로 조직화되는 가령, 뉴론들 혹은 퍼셉트론들과 같은 연결된 노드들의 그룹을 포함할 수 있다. 일례로서, AI 엔진(126)의 각각의 AI 모델(예컨대, 머신-러닝 모델)은 딥(deep) 뉴럴 네트워크로 구현될 수 있으며, 이는 입력 계층, 출력 계층, 및 뉴럴 네트워크의 입력 계층과 출력 계층 사이에 배치된 하나 이상의 숨겨진 중간 계층들을 포함한다. 딥(deep) 뉴럴 네트워크의 각각의 노드는 뉴럴 네트워크의 계층들 사이에서 완전 연결(fully connected)되거나 부분적으로 연결될 수 있다.
다양한 양상들에서, AI 엔진(126)의 AI 모델은 리커런트(recurrent) 뉴럴 네트워크로서 구현될 수 있는바, 리커런트 뉴럴 네트워크는 입력 데이터 시퀀스의 후속 부분을 위해 입력 데이터 시퀀스의 이전 부분으로부터의 정보를 유지하도록 사이클을 형성하는 노드들 사이의 연결들을 구비한다. 대안적으로, AI 모델은 입력 데이터 시퀀스들 사이에서 사이클을 형성하지 않는 노드들 간의 연결들을 갖는 피드-포워드 뉴럴 네트워크(feed-forward neural network)로서 구현될 수 있다. 또 다른 경우에, AI 엔진(126)의 AI 모델은 다층 퍼셉트론들을 갖는 콘볼루션 뉴럴 네트워크(convolutional neural network: CNN)를 포함할 수 있으며, 여기서 소정 계층의 각 뉴런은 인접 계층의 모든 뉴런과 연결된다. 몇몇 양상들에서, 콘볼루션 뉴럴 네트워크에 기초한 AI 모델은 복잡한 패턴 및 이미지 인식을 위한 데이터 파일들에 적용될 수 있다. 선택적으로 또는 부가적으로, AI 엔진(126)은 다양한 회귀(regression) 모델들 가령, 다중 선형 회귀 모델, 단일 선형 회귀 모델, 물류(logistical) 회귀 모델, 단계별(step-wise) 회귀 모델, 다중 변수 적응형 회귀 모델, 국부적으로 추정된 산점도 모델(locally estimated scatterplot models), 기타 등등을 포함하거나 활용할 수 있다.
도 2를 다시 참조하면, AI 엔진(126)은 데이터(124)에 대한 라벨들(202)을 메타데이터 관리자(128)에게 제공한다. 라벨들(202)에 기초하여, 메타데이터 관리자(128)는 메타데이터 데이터베이스(130)를 생성, 관리, 업데이트하는바, 본 일례에서 메타데이터 데이터베이스(130)는 관계형 데이터베이스(204)(예컨대, 테이블들)와 네비게이션 데이터베이스(206)(예컨대, 노드들의 가중 그래프)를 포함한다. 메타데이터 관리자(128)는 라벨들(202) 및 관련 신뢰도 레벨들에 기초하여, 검출된 객체 각각에 대하여 엔트리들을 관계형 데이터베이스(204)에 생성하도록 구성될 수 있으며, 이는 검출된 객체의 저장 시스템 내의 위치 및 네비게이션 데이터베이스(206) 내의 대응 노드에 대한 어드레스를 포함한다. 또한, 메타데이터 관리자(128)는 라벨들(202) 및 관련 신뢰도 레벨들에 기초하여, 네비게이션 데이터베이스(206)에 노드를 생성할 수 있다. 일부 경우에서, 네비게이션 데이터베이스(206)는 가중화된 그래프이며, 상기 가중화된 그래프는 검출된 객체의 주어진 노드에 대해, 검출된 객체가 관련된 데이터 내의 각 객체들에 대응하는 다른 노드들로의 가중 링크들을 포함한다. 노드들 또는 메타데이터 객체들을 네비게이션 데이터베이스(206)에 배치함으로써, 소정 객체가 그러한 구조에서 발견될 수 있을 뿐만 아니라, 객체의 환경 및 정의된 신뢰도를 갖는 관련 객체들(예를 들어 , 문맥적 관련성)도 발견될 수 있다.
도 3 은 도 2의 관계형 데이터베이스(204)의 예시적인 구성을 300으로 도시한다. 저장 시스템에 대한 AI 기반 검색의 양상들에서, 관계형 데이터베이스(204)는 라벨 식별자, 대응 노드의 주소, 검출 신뢰도 레벨, 물리적, 논리적 또는 가상의 저장 어드레스, 상대 노드들, 관련성 가중치 등과 같은, 검출된 객체의 다양한 속성들 또는 어드레스에 대한 참조들 혹은 식별자들을 포함하는 하나 이상의 테이블로서 구현될 수 있다. 본 일례에서, 관계형 데이터베이스(204)는 로그 테이블(302), 어드레스 테이블(304) 및 노드 정보 테이블(306)을 포함한다. 일부 양상들에서, AI 엔진(126)에 의해 생성된 레코드들 또는 라벨들(202)은 검출된 객체의 각각의 인스턴스와 같은 로그 테이블(302)에 로그된다.
로그 테이블(302)은, 객체 식별(308), 라벨 식별자 310(라벨 ID 310), 라벨 타입(312), 그래프(314)에 대한 어드레스 참조, 및 신뢰도 레벨(316)을 위한 컬럼들을 포함할 수 있다. 일부 경우에서, 라벨 ID(310)는 관계형 데이터베이스(204) 내의 검색 가능한 엔트리를 검색 에이전트 또는 인터페이스에 제공하며 그리고 라벨 타입(312)은 검출된 객체에 대해 생성된 라벨의 타입을 나타낸다. 그래프 필드(314)에 대한 어드레스 참조는 검출된 객체에 대응하는 네비게이션 데이터베이스(206) 내의 노드(318)에 대한 참조 및 어드레스 테이블(304) 내의 어드레스에 대한 참조를 제공할 수 있다. 신뢰도 레벨(316)은 검출된 객체에 대한 AI 검출의 확률 레벨을 나타낼 수 있다. 도 3에 도시된 바와 같이, 그래프(314)에 대한 어드레스 참조는 노드(318)를 가리키며, 이는 각각의 관련성 가중치를 변화시킴으로써 노드(320), 노드(322) 및 노드(324)에 관련된다. 또한, 그래프(314)에 대한 어드레스 참조는 어드레스 테이블(304)의 어드레스 ID 필드(326)를 가리키며, 이는 검출된 객체 내의 파일 내부의 파일 경로(328) 및 오프셋(330)을 나타낸다(예를 들어, 멀티미디어 파일 내의 프레임 오프셋).
각각의 노드에 대하여, 관계형 데이터베이스(204)는 노드 정보 테이블(306)을 포함할 수 있다. 일부 구현예에서, 이러한 테이블은 노드(318)(어드레스 157009)의 관련 객체들(332)에 대한 참조들 또는 노드 어드레스들을 포함할 뿐만 아니라, 상대 노드들에 대한 각각의 관련성 가중치들을 포함한다. 메타데이터 관리자(128)는 라벨(202)에 기초하거나 또는 AI 엔진(126)에 의해 제공되는 데이터 내의 객체들의 문맥적 관련성의 신뢰도 레벨로부터 관련성 가중치들을 결정할 수 있다. 일반적으로, 상대 노드들 간의 관련성 가중치(334)들은, 노드들에 대응하는 데이터(124) 내의 검출된 객체들의 문맥적 관련성의 가중치 또는 세기에 대응한다. 다시 말해서, 관련성 가중치(334)에 기초하여 상대 노드들을 네비게이팅하는 것은, 검출된 객체들이 저장 시스템(114)의 데이터(124)와 어떻게 관련되는지에 대한 표시를 제공할 수 있다.
도 4는 도 2의 네비게이션 데이터베이스(206)의 예시적인 구성을 일반적으로(400)에서 도시한다. 본 일례에서, 네비게이션 데이터베이스(206)는 링크된 노드들의 가중화된 그래프(402)를 포함하며, 여기서 링크들은 상대 노드들간의 관련성의 가중치를 나타낸다. 일반적으로, 네비게이션 데이터베이스(206)는 문맥적으로 관련된 객체들을 찾아내도록, "다음(next)", "이전(previous)", "getChild", "getParent"와 같은 다양한 명령을 통해 네비게이팅될 수 있는 컨텍스트-가중 연결들을 구비한 맵핑된 관계들의 트리 혹은 그래프로서 구현될 수 있다. 여기서, 가중화된 그래프(402)의 링크된 노드들은, 콘텍스트를 통해 관련되는, 데이터(124) 내의 각각의 객체들에 대응할 수 있으며, 링크들은 노드들 간의 관련성 그리고 가중치 또는 관련성의 확률을 나타낸다.
일반적으로, 메타데이터 관리자(128)는 라벨(202)들에 기초하여 및/또는 관련형 데이터베이스(204)로부터의 정보를 이용하여, 가중화된 그래프(402) 내에 노드들을 생성한다. 도 3을 참조하면, 각각의 가중 링크들 W0(404) 내지 W2(408)을 구비한 노드들(318~324)이 도시되며, 이는 상대 노드들 간의 관련성 가중치를 나타내는 라인 가중치(line weight)를 갖는다. 또한, 가중화된 그래프(402)는 노드(318)의 또 하나의 상대 노드(410)를 포함하며, 상기 상대 노드(410)는 가중 링크 W3(412)를 갖는데, 이는 낮은 가중치로 표시된 바와 같이 다른 가중 링크들 보다 약하다. 메타데이터 관리자(128) 또는 검색 에이전트가 가중화된 그래프(402)를 통해 네비게이팅함에 따라, 다른 문맥적으로 관련된 객체들이 추가적인 가중 링크들을 통해 발견될 수 있다. 예를 들어, 노드(322)는 가중 링크 W5(414)를 통해 노드(320)에 또한 관련되며 그리고 가중 링크 W6(416)를 통해 노드(324)와도 관련된다. 검색의 일부로서, AI-기반 검색은 간접 연결들에 대한 결과들을 리턴할 수도 있는바, 가령, 노드(318)와 직접적으로 관련되지는 않지만 가중 링크 W4(420)를 통해 노드(320)와 밀접하게 관련된 다른 하나의 노드(418) 혹은 가중 링크 WN(424)를 통해 노드(324)와 밀접하게 관련된 노드(422)와 같은 결과들이 반환될 수 있다. 따라서, 저장 시스템에 대한 AI 기반 검색의 다양한 구현예들은 저장된 데이터의 암시적 또는 문맥적 검색을 가능하게 하기 위해 가중 링크들의 네비게이션 데이터베이스를 활용할 수 있다.
저장 시스템에 대한 AI 기반 검색을 위한 기법들
다음의 내용들은 저장 시스템에 대한 AI 기반 검색의 기법들을 서술하며, 이는 저장 시스템에 저장된 데이터에 대한 암시적 혹은 문맥적 검색을 가능하게 한다. 이러한 기법들은 AI 엔진(126), 메타데이터 관리자(128), 또는 메타데이터 데이터베이스(130)와 같이 여기에 기술된 환경들 및 엔티티들 중 임의의 것을 사용하여 구현될 수 있다. 상기 기법들은 도 5 내지 도 8에 예시된 방법들을 포함하며, 이들 각각은 하나 이상의 엔티티들에 의해서 수행되는 동작들의 세트로서 도시된다.
이러한 방법들은 관련 도면들에 도시된 동작들의 순서들만으로 반드시 한정되는 것은 아니다. 오히려, 여기에 기술된 다양한 양상들을 구현하기 위해 임의의 동작들이 반복되거나, 생략되거나, 대체되거나, 재순서화될 수 있다. 또한, 이들 방법들은 동일한 엔티티, 별도의 엔티티들, 또는 이들의 임의의 조합에 의해 수행되는지 여부에 관계없이, 전체적으로 또는 부분적으로, 다른 하나의 방법과 함께 사용될 수 있다. 예를 들어, 저장 시스템에 저장된 빅 데이터를 암시적으로 또는 문맥적으로 검색할 수 있는 관계형 및 네비게이션 구성 요소들을 구비한 AI 프로세싱된 메타데이터 데이터베이스를 생성하도록 상기 방법들이 조합될 수도 있다. 다음에 논의되는 내용들의 일부에서, 도 1의 동작 환경(100)과 도 2-4의 엔티티들이 일례로서 참조될 것이다. 이러한 참조는 설명된 양상들을 상기 동작 환경(100), 엔티티들 또는 구성들만으로 제한하는 것으로 간주되어서는 안되며, 오히려 다양한 일례들 중 하나를 설명하기 위한 것으로 간주되어야 한다. 대안적으로 또는 부가적으로, 본 발명의 방법들의 동작들은 도 9의 시스템-온-칩 및/또는 도 10의 저장 시스템 제어기를 참조하여 기술된 엔티티들에 의해 또는 엔티티들과 함께 구현될 수도 있다.
도 5는 저장 시스템의 AI 엔진(126) 또는 메타데이터 관리자(128)에 수행되는 동작을 포함하여, 저장 시스템의 데이터에 대한 AI 기반 검색을 구현하기 위한 예시적인 방법을 도시한다.
502에서, 저장 시스템의 메타데이터 관리자는 저장 시스템에 저장된 데이터에서 AI 엔진에 의해서 검출된 객체에 대한 라벨을 AI 엔진으로부터 수신한다. 일부 경우에서, AI 엔진은 데이터가 저장 시스템의 저장 매체에 저장될 때 데이터를 프로세싱하는 동안 객체를 검출한다. 다른 경우들에서, AI 엔진은 저장 시스템의 저장 매체에 저장된 데이터를 프로세싱하거나 재프로세싱한다.
504에서, 메타데이터 관리자는 검출된 객체에 대한 엔트리를 저장 시스템의 메타데이터 데이터베이스의 관계형 섹션에 생성한다. 메타데이터 데이터베이스의 관계형 섹션은 관계형 데이터베이스이거나 또는 메타데이터 객체들 또는 라벨들에 대한 관련 엔트리들을 갖는 다수의 테이블일 수 있다. 일부 경우에, 검출된 객체에 대한 엔트리는 라벨, 라벨의 식별자, 검출된 객체에 대응하는 노드의 어드레스, 또는 검출된 객체에 대한 AI 엔진의 신뢰도 레벨을 포함한다.
506에서, 메타데이터 관리자는 검출된 객체에 대한 노드를 저장 시스템의 메타데이터 데이터베이스의 네비게이션 섹션에 생성한다. 메타데이터 데이터베이스의 네비게이션 섹션은 링크된 노드들의 가중화된 그래프, 노드들의 트리 구조, 링크된 노드들의 네트워크, 기타 등등일 수 있다. 일부 경우, 네비게이션 섹션 내의 노드는 검출된 객체와 관련된 상기 데이터 내의 다른 객체들에 대응하는 상대 노드들에 대한 참조들 및 노드와 다른 노드들 사이의 관련성에 대한 각각의 가중치를 포함한다.
508에서, 메타데이터 관리자는 네비게이션 섹션의 노드들 사이의 관련성들의 각각의 가중치들에 기초하여 상기 검출된 객체 또는 다른 객체들에 대한 메타데이터 데이터베이스의 검색을 가능케하도록, 저장 시스템의 메타데이터 데이터베이스를 검색 인터페이스에 공개한다.
도 6은 AI 엔진에 의해 제공되는 라벨들을 사용하여 저장 시스템에 대한 메타데이터 데이터베이스의 관계형 데이터베이스 및 메타데이터 데이터베이스를 생성하는 예시적인 방법(600)을 도시한다. 방법(600)의 동작들은 저장 시스템의 AI 엔진(126) 또는 메타데이터 관리자(128)에 의해 또는 그에 의해 수행될 수 있다.
602에서, 저장 시스템은 저장 시스템의 저장 매체에 기록하기 위해 데이터를 수신한다. 상기 데이터는 컴퓨팅 디바이스, 네트워크 인터페이스, 저장 패브릭 인터페이스 등과 같은 임의의 적절한 소스로부터 수신될 수 있다. 데이터는 데이터 소스에 따라 다양한 타입 또는 크기의 파일들로 구성될 수 있다.
604에서, AI 엔진은 저장 시스템의 저장 매체에 기록된 데이터에서 검출된 객체들에 대한 각각의 라벨들을 생성한다. 예를 들어, AI 엔진은 데이터를 프로세싱하여, 데이터에서 검출된 객체들 또는 다른 요소들에 대한 서술형 메타데이터 라벨들을 생성할 수 있다. 이러한 라벨들과 함께, AI 엔진은 객체 검출의 신뢰도 레벨을 제공할 뿐만 아니라, 데이터 내의 객체들 사이의 문맥적 관련성 또는 연관의 신뢰도 레벨(예를 들어, 가중치)를 제공할 수 있다.
606에서, 메타데이터 관리자는 상기 검출된 객체 중 하나에 대한 엔트리를 메타데이터 데이터베이스의 관계형 데이터베이스에 생성한다. 검출된 객체에 대한 엔트리는 각각의 라벨의 식별자 및 검출된 객체에 대응하는 노드에 대한 어드레스를 포함할 수 있다. 대안적으로 또는 부가적으로, 엔트리는 라벨의 타입, 객체의 검출과 관련된 신뢰도 레벨, 또는 데이터에서 검출된 객체 및 다른 객체에 대한 신뢰도 레벨 또는 관련성 가중치를 포함할 수 있다.
608에서, 메타데이터 관리자는 검출된 객체에 대응하는 노드를 메타데이터 데이터베이스의 네비게이션 데이터베이스에 생성한다. 일부 경우들에서, 노드는 가중화된 그래프에 생성되는데, 가중화된 그래프는 검출된 객체와 관련되는 상기 데이터 내의 각각의 객체들에 대응하는 다른 노드들로의 가중 링크들을 포함한다.
610에서, 메타데이터 관리자는, 네비게이션 데이터베이스에서, 검출된 객체에 대응하는 노드를 네비게이션 데이터베이스의 상대 노드로의 각각의 링크와 연결한다. 네비게이션 데이터베이스의 상대 노드는 검출된 객체가 관련된 상기 데이터의 다른 객체에 대응할 수 있다.
612에서, 메타데이터 관리자는 데이터의 검출된 객체의 콘텍스트에 기초하여 관련성 가중치를 각각의 링크에 할당하며, 상기 링크는 노드와 상대 노드를 연결한다. 동작(612)로부터, 상기 방법(600)은 동작(614)으로 진행할 수도 있고, 동작(606)으로 복귀하여 네비게이션 데이터베이스에 또 다른 노드를 생성할 수도 있고, 또는 동작(610)으로 복귀하여 노드를 다른 상대 노드와 연결할 수도 있다.
614에서, 메타데이터 관리자는 데이터에서 검출된 객체들에 대한 검색을 가능하게 하도록 메타데이터 데이터베이스를 검색 인터페이스에 공개한다. 검색은 관계형 데이터베이스의 엔트리들을 통해 수행되어, 네비게이션 데이터베이스에서 관련 노드들을 발견할 수 있다. 대안적으로 또는 추가적으로, 검색은, 네비게이션 데이터베이스의 노드들을 연결하는 각각의 링크들의 가중치들에 기초할 수 있다. 예를 들어, 검색 에이전트는 관계형 데이터베이스의 엔트리들을 검색하여, AI 엔진에 의해 데이터에서 검출된 관심 객체들의 라벨 또는 라벨 식별자를 발견할 수 있다.
도 7은 저장 시스템의 데이터를 프로세싱하는 AI 엔진에 의해 제공된 라벨 세트들에 기초하여 메타데이터 데이터베이스의 가중된 그래프를 구성 또는 업데이트하기 위한 예시적인 방법(700)을 도시한다. 방법(700)의 동작들은 저장 시스템의 AI 엔진(126) 또는 메타데이터 관리자(128)에 의해 또는 그에 의해 수행될 수 있다.
702에서, AI 엔진은 저장 시스템에 저장될 데이터를 제 1 AI 모델로 프로세싱하여, 데이터에서 검출된 객체들에 대한 각 라벨들의 제 1 세트를 제공한다. 704에서, 메타데이터 관리자는 각 라벨들의 제 1 세트에 기초하여, 데이터에서 검출된 객체들에 대응하는 링크된 노드들의 가중화된 그래프를 구성한다. 링크된 노드들은 각각의 링크에 의해 연결되며, 각 링크는 검출된 객체의 관계 컨텍스트를 나타내는 가중치를 갖는다.
706에서, 메타데이터 관리자는 각각의 라벨의 제 1 세트에 대한 각각의 식별자 및 가중화된 그래프의 링크된 노드들에 대한 해당 참조 주소들을 포함하는 인덱스 테이블을 통해 데이터에서 검출된 객체의 검색을 가능하게한다. 예를 들어, 검색 에이전트는 먼저 관계형 데이터베이스의 인덱싱된 로그 테이블을 실행하여, AI 기반 저장 시스템에 저장된 데이터에서 검출된 객체들 또는 요소들에 대한 라벨 식별자들을 찾을 수 있다. 인덱싱된 로그 테이블에서, 네비게이션 데이터베이스의 가중화된 그래프의 노드에 대한 참조는, 상기 노드에 후속될 수 있으며 따라서 관련 객체들의 모든 연결된 노드들에 후속될 수 있다. 노드 및 연결된 노드들은 노드들 사이의 링크 가중치둘의 순서로 보고될 수 있는바, 노드들이 대응하는 데이터 내의 객체들의 컨텍스트 또는 관련성에 대한 표시를 제공할 수 있다.
선택적으로, 708에서, AI 엔진은 저장 시스템에 저장된 데이터를 제 2 AI 모델로 재프로세싱하여, 데이터에서 검출된 객체들에 대한 각 라벨들의 제 2 세트를 제공한다. 일반적으로, AI 엔진이 제 2 AI 모델을 사용하여 데이터를 재프로세싱하는 경우, 네비게이션 데이터베이스의 노드들의 가중 링크들 또는 관련성들이 업데이트되어, 다른 문맥적 관련성들을 강조 혹은 증폭하거나, 또는 데이터 내의 객체들이 어떻게 관련될 수 있는지에 대한 다른 관점을 제공할 수 있다. 대안적으로 또는 추가적으로, 저장 시스템이 유휴 상태이거나 또는 저장 시스템의 다른 동작에 영향을 미치지 않고 재프로세싱을 지원할 수 있는 여분의 프로세싱 대역폭을 저장 시스템이 갖는 경우, AI 엔진은 저장 시스템 상의 데이터를 재프로세싱할 수 있다.
선택적으로 710에서, 상기 메타데이터 관리자는 각각의 라벨의 제 2 세트에 기초하여, 가중화된 그래프의 링크된 노드들 사이의 링크들을 업데이트하거나 또는 검출된 객체들의 관련 콘텍스트를 나타내는 노드들 사이의 링크들의 각각의 링크 가중치들을 업데이트한다.
도 8은 저장 시스템의 메타데이터 관리자(128)에 수행되는 동작을 포함하여, 저장 시스템을 검색하기 위하여 관계형 데이터베이스 및 네비게이션 데이터베이스를 사용하기 위한 예시적인 방법(800)을 도시한다. 대안적으로 또는 부가적으로, 상기 동작들은 메타데이터 관리자 또는 저장 시스템과 연관된 검색 에이전트로 또는 그에 의해 수행될 수 있다.
802)에서, 메타데이터 관리자는 저장 시스템의 저장 매체에 저장된 데이터를 검색하기 위한 질의를 수신한다. 상기 질의는 하나 이상의 키워드 또는 상기 검색의 검색 용어들을 포함할 수 있다. 804에서, 메타데이터 관리자는 상기 질의와 관련된 라벨을 포함하는, 관계형 데이터베이스의 엔트리를 식별한다. 일부 경우에서는, 관계형 데이터베이스의 주소 테이블이, 저장 시스템 내의 객체들에 대한 키(key) 또는 주요 검색 목록으로서 이용된다.
806에서, 메타데이터 관리자는 관계형 데이터베이스의 엔트리에 기초하여, 상기 라벨에 대응하는 네비게이션 데이터베이스 내의 타겟 노드의 참조 어드레스를 결정한다. 808에서, 메타데이터 관리자는 검색 질의에 대한 결과로서, 참조 어드레스에 있는 타겟 노드의 객체 및 타겟 노드에 연결된 상대 노드들의 객체들을 각각의 링크 가중치 순서대로 반환한다.
시스템-온-칩
도 9는 저장 시스템에 대한 AI 기반 검색의 다양한 양상들을 구현할 수 있는 예시적인 시스템 온 칩(SoC)(900)을 도시한다. SoC(900)는 스마트 폰, 넷북, 태블릿 컴퓨터, 액세스 포인트, 네트워크 부착 스토리지, 카메라, 스마트 어플라이언스, 프린터, 셋톱 박스, 서버, 데이터 센터, 고체 상태 드라이브(SSD), 하드 디스크 드라이브(HDD), 저장 드라이브 어레이, 메모리 모듈, 자동차 컴퓨팅 시스템 등과 같은 임의의 적절한 유형의 디바이스 또는 임의의 다른 적절한 유형의 디바이스(예를 들어, 본 명세서에서 설명된 다른 것)에서 구현될 수 있다. SoC를 참조하여 서술되었지만, 도 9의 엔티티는 주문형 반도체(ASIC), 메모리 제어기, 스토리지 콘트롤러, 통신 제어기, 특정 용도 표준 제품(application-specific standard product: ASSP), 디지털 신호 처리기(DSP), 프로그램가능 SoC(PSoC), 시스템-인-패키지(SiP), FPGA 등과 같은 다른 유형의 집적 회로 또는 내장 시스템으로서 구현될 수도 있다.
SoC(900)는 전자 회로, 마이크로 프로세서, 메모리, 입출력(I/O) 제어 로직, 통신 인터페이스, 펌웨어 및/또는 본원에 설명된 디바이스들 또는 컴포넌트들(예컨대, 저장 드라이브 또는 저장 디바이스 배열)과 같은 컴퓨팅 디바이스 또는 저장 시스템의 기능을 제공하는데 유용한 소프트웨어와 함께 통합될 수 있다. 또한, SoC(900)는 데이터 통신 또는 구성 요소들 간의 라우팅을 위해 SoC의 다양한 구성 요소들을 연결하는 통합 데이터 버스 또는 상호접속 패브릭(미도시)을 포함할 수 있다. SoC(900)의 통합 데이터 버스, 상호접속 패브릭 또는 기타 구성 요소는 외부 포트, 병렬 데이터 인터페이스, 직렬 데이터 인터페이스, 주변 디바이스 컴포넌트 인터페이스 또는 기타 적합한 데이터 인터페이스를 통해 노출되거나 액세스될 수 있다. 예를 들어, SoC(900)의 구성 요소는 외부 인터페이스 또는 오프 칩 데이터 인터페이스를 통해 외부 저장 매체, AI 엔진 또는 AI 네트워크에 액세스하거나 제어할 수 있다.
본 일례에서, SoC(900)는 입출력(I/O) 제어 로직(902) 및 마이크로프로세서, 프로세서 코어, 어플리케이션 프로세서, DSP 등의 하드웨어 기반의 프로세서(904)(프로세서 904)와 같은 다양한 구성요소들을 포함한다. 또한, SoC(900)는 메모리(906)를 포함하는바, 메모리(906)는 RAM, SRAM, DRAM, 비 휘발성 메모리, ROM, OTP(one-time programmable) 메모리, MTP(multiple-time programmable) 메모리, 플래시 메모리, 및/또는 다른 적절한 전자 데이터 저장 디바이스의 임의 유형 및 조합을 포함할 수 있다. 일부 양상들에서, 프로세서(904) 및 메모리(906) 상에 저장된 코드는 저장 시스템 제어기 또는 스토리지 어그리게이터(aggregator)로서 구현되어, 저장 시스템에 대한 AI 기반 검색과 관련된 다양한 기능을 제공한다. 본 명세서의 내용에서, 메모리(906)는 데이터, 코드, 명령들 또는 비일시적인 신호를 통한 다른 정보를 저장하고 그리고 캐리어 웨이브 또는 일시적인 신호는 포함하지 않는다. 대안적으로 또는 추가적으로, SoC(900)는 자기 메모리 또는 고체 메모리(예를 들어, 플래시 또는 NAND 메모리)와 같은 추가적인 또는 확장가능한 오프-칩 저장 매체에 액세스하기 위한 데이터 인터페이스(미도시)를 포함할 수 있다.
또한, SoC(900)는 펌웨어(908), 어플리케이션들, 프로그램들, 소프트웨어, 및/또는 운영 시스템을 포함할 수 있는바, 이들은 SoC(900)의 기능을 구현하도록 프로세서(904)에 의한 실행을 위해 메모리(906) 상에 유지되는 프로세서 실행가능한 명령들로 구현될 수 있다. 또한, SoC(900)는 다른 통신 인터페이스들 가령, 로컬 온-칩(미도시) 또는 오프-칩 통신 송수신기의 구성 요소들을 제억하거나 이들과 통신하기 위한 송수신기 인터페이스 등을 포함할 수 있다. 대안적으로 또는 부가적으로, 송수신기 인터페이스는 송수신기, 물리 계층 송수신기(physical layer transceiver: PHY), 또는 SoC(900)에 연결된 매체 액세스 컨트롤러(MAC)을 통해 유선 또는 무선 통신을 용이하게하기 위해 무선 주파수(RF), 중간 주파수(IF) 또는 기저 대역 주파수 신호를 통신하는 신호 인터페이스를 포함하거나 구현할 수 있다. 예를 들어, SoC(900)는 가령, AI 기반 검색 피처를 구비한 네트워크 부착 스토리지(NAS) 볼륨을 제공하기 위하여, 유선 또는 무선 네트워크를 통한 저장을 가능케하는 송수신기 인터페이스를 포함할 수 있다.
또한, 시스템 온칩(900)는 AI 엔진(126), 메타데이터 관리자(128) 및 메타데이터 데이터베이스(130)를 포함할 수 있으며, 이들은 도시된 바와 같이 개별적으로 구현될 수도 있으며 또는 저장 컴포넌트 또는 데이터 인터페이스와 조합될 수도 있다. 저장 시스템에 대한 AI 기반 검색의 다양한 양상들에 따르면, 메타데이터 데이터베이스(130)는 SoC(900)에 의해 관리되는 저장 매체에 대한 암시적 또는 문맥적 검색을 가능케 하는데 이용될 수 있는 하나 이상의 관계형 데이터베이스(204) 및 네비게이션 데이터베이스(206)를 포함할 수 있다. 대안적으로 또는 부가적으로, 메타데이터 데이터베이스(130)는 SoC(900)의 메모리(906)에 저장되거나 SoC(900)에 작동가능하게 결합된 메모리에 저장될 수 있으며, 그리고 메타데이터 관리자(128)에 의해 액세스될 수 있다. 이들 엔티티들 중 임의의 것은 본 명세서에 제시된 다양한 양상들을 참조하여 설명된 바와 같이, 개별적으로 또는 조합된 컴포넌트들로서 구현될 수 있다. 이들 컴포넌트들 및/또는 엔티티들, 또는 해당 기능의 일례들은, 도 1의 환경(100)의 각각의 구성요소들 또는 엔티티들을 참조하여 또는 도 2, 도 3 및/또는 도 4에 도시된 각각의 구성들을 참조하여 서술된다. 메타데이터 관리자(128)의 전부 또는 일부는, 저장 시스템에 대한 AI 기반 검색의 다양한 양상들 및/또는 피처들을 구현하기 위해 메모리(906)에 의해 유지되고 프로세서(904)에 의해 실행되는 프로세서 실행가능한 명령들로 구현될 수 있다.
메타데이터 관리자(128)는 독립적으로 구현되거나 또는 본 명세서에 서술된 양상들을 구현하는 임의의 적당한 구성 요소 또는 회로와 조합되어 구현될 수 있다. 예를 들어, AI 엔진(126) 및/또는 메타데이터 관리자는 DSP, 프로세서/스토리지 브리지, I/O 브리지, 그래픽 프로세싱 유닛, 메모리 제어기, 스토리지 제어기, 산술 논리 디바이스(ALU) 등의 일부로서 구현될 수 있다. 메타데이터 관리자(128)는 또한 프로세서(904), 메모리(906), 저장 매체 인터페이스, 또는 SoC(900)의 펌웨어(908)와 통합되는 것과 같이 SoC(900)의 다른 엔티티들과 통합되어 제공될 수 있다. 대안적으로 또는 추가적으로, AI 엔진(126), 메타데이터 관리자(128) 및/또는 SoC(900)의 다른 컴포넌트들은 하드웨어, 펌웨어, 고정 논리 회로, 또는 이들의 임의의 조합으로서 구현될 수 있다.
또 다른 일례로서 도 10을 참조하면, 도 10은 저장 시스템에 대한 AI 기반 검색의 하나 이상의 양상에 따른 예시적인 저장 시스템 제어기(1000)를 도시한다. 다양한 양상들에서, 저장 시스템 제어기(1000) 또는 그 구성 요소들의 임의의 조합은 저장 드라이브 제어기, 저장 매체 제어기, NAS 제어기 또는 고체 저장 매체를 위한 저장 어그리게이션 제어기, 자기 저장 매체, 기타 등등으로 구현될 수 있다. 일부 경우들에서, 저장 시스템 제어기(1000)는 도 9를 참조하여 기술된 바와 같은 SoC(900)의 구성 요소들과 함께 또는 이와 유사하게 구현된다. 즉, SoC(900)의 인스턴스는 고체-상태 저장 매체 또는 자기 저장 매체를 관리하기 위한 저장 시스템 제어기(1000)와 같은 저장 시스템 제어기로서 구성될 수 있다. 이 예에서, 저장 시스템 제어기(1000)는 입출력(I/O) 제어 로직(1002) 및 프로세서(1004)(가령, 마이크로프로세서, 프로세서 코어, 어플리케이션 프로세서, DSP 등)를 포함한다. 또한, 저장 시스템 제어기는 저장 매체 인터페이스(1006)(예를 들어, NAND 인터페이스) 및 호스트 인터페이스(1008)(예를 들어, SATA, PCIe 또는 패브릭 인터페이스)를 포함하며, 이는 저장 매체 및 호스트 시스템에 대한 액세스를 각각 가능케한다.
일부 양상들에서, 저장 시스템 제어기(1000)는 저장 매체 인터페이스(1006)에 결합되는 저장 매체에 대한 액세스를 가능케하거나 이를 관리하는 경우, 저장 시스템에 대한 AI 기반 검색의 양상들을 구현한다. 저장 시스템 제어기(1000)는 호스트 인터페이스(1008)를 통해 호스트 시스템에 대한 저장 인터페이스를 제공할 수 있으며, 이를 통해, 스토리지 액세스 커맨드가 호스트 시스템으로부터 수신된다. 대안적으로 또는 부가적으로, 메타데이터 관리자(128)는 호스트 인터페이스(1008) 또는 저장 시스템 제어기(1000)의 다른 데이터 인터페이스를 통해 외부 AI 엔진 또는 AI 네트워크로부터 메타데이터 라벨들 또는 표시들을 수신할 수 있다. 예를 들어, 메타데이터 관리자(128)는 호스트 인터페이스(1008)를 통해, AI 생성 라벨들 및 각각의 신뢰도 표시자들을 저장 시스템 제어기의 저장 매체 인터페이스(1006)에 동작가능하게 결합된 저장 매체에 저장될 데이터와 함께 수신할 수 있다. 일부 양상들에서, 저장 시스템 제어기의 프로세서(1004) 및 펌웨어는 저장 시스템에 대한 AI 기반 검색과 관련된 다양한 데이터 액세스 기능들을 제공하도록 구현된다.
저장 시스템 제어기(1000)의 메타데이터 관리자(128)는 도시된 바와 같이 별도로 구현될 수도 있으며 또는 프로세서(1004), AI 엔진(126) 또는 저장 매체 인터페이스(1006)와 조합되어 구현될 수도 있다. 다양한 양상들에 따르면, 메타데이터 관리자(128)는 메타데이터 데이터베이스(130)의 관계형 데이터베이스(204) 및 네비게이션 데이터베이스(206)(예를 들어, 가중화된 노드 그래프)를 생성 및 관리할 수 있다. 이들 컴포넌트들 및/또는 엔티티들, 또는 해당 기능의 예시적인 일례들은, 도 1의 환경(100)의 각각의 구성요소들 또는 엔티티들을 참조하여 또는 도 2, 도 3 및/또는 도 4에 도시된 각각의 구성들을 참조하여 서술된다. 메타데이터 관리자(128)의 전부 또는 일부는, 저장 시스템에 대한 AI 기반 검색의 다양한 양상들 및/또는 피처들을 구현하기 위해 제어기의 메모리에 의해 유지되고 프로세서(904)에 의해 실행되는 프로세서 실행가능한 명령들로 구현될 수 있다.
비록, 본 발명의 주제가 구조적 피처들 및/또는 방법적 동작들에 특정한 언어로 설명되었지만, 첨부된 청구 범위에 정의된 주제는 이들이 수행되는 순서를 포함하여 본원에 기재된 특정 실시예, 피처들 또는 동작들만으로 한정되는 것은 아님을 유의해야 한다.

Claims (20)

  1. 저장 시스템에 대한 인공 지능(AI) 기반의 검색을 위한 방법으로서,
    인공 지능 엔진으로부터, 상기 저장 시스템의 저장 매체에 저장된 데이터에서 검출된 객체에 대한 라벨을 수신하는 단계;
    상기 검출된 객체에 대한 라벨의 식별자, 상기 저장 시스템 내의 상기 검출된 객체에 대한 어드레스, 및 상기 메타데이터 데이터베이스의 네비게이션 섹션 내의 상기 검출된 객체에 대응하는 노드의 어드레스를 포함하는, 상기 검출된 객체에 대한 엔트리를, 상기 저장 시스템의 메타데이터 데이터베이스의 관계형 섹션(relational section) 내에 생성하는 단계; 및
    상기 저장 시스템의 메타데이터 데이터베이스의 네비게이션 섹션 내에 그리고 상기 검출된 객체에 대한 어드레스와 함께, 상기 검출된 객체에 대응하는 노드를 생성하는 단계 -상기 노드는 상기 검출된 객체와 관련된 상기 데이터 내의 다른 객체에 대응하는 상기 네비게이션 섹션 내의 상대 노드에 대한 적어도 하나의 참조 및 상기 메타데이터 데이터베이스의 네비게이션 섹션 내의 상기 노드와 상기 상대 노드 사이의 관련성의 가중치를 포함하며-;
    를 포함하는 것을 특징으로 하는 인공 지능(AI) 기반의 검색을 위한 방법.
  2. 제1항에 있어서,
    상기 노드와 상기 상대 노드 사이의 관련성의 가중치에 기초하여 적어도 상기 검출된 객체 또는 상기 다른 객체에 대한 메타데이터 데이터베이스의 검색이 가능해지도록, 상기 저장 시스템의 메타데이터 데이터베이스를 검색 인터페이스에 노출시키는 단계
    를 더 포함하는 것을 특징으로 하는 인공 지능 기반의 검색을 위한 방법.
  3. 제2항에 있어서,
    상기 노드와 상기 상대 노드 사이의 관련성의 가중치에 기초하여 적어도 상기 검출된 객체 또는 상기 다른 객체에 대한 메타데이터 데이터베이스의 검색이 가능해짐에 따라, 상기 저장 시스템에 의해서 저장된 데이터에 대한 문맥적(contextual) 또는 암시적(implicit) 검색이 유효해지는 것을 특징으로 하는 인공 지능 기반의 검색을 위한 방법.
  4. 제1항에 있어서,
    상기 저장 시스템에 저장될 데이터를 상기 인공 지능 엔진에서 수신하는 단계;
    상기 데이터에서 다수의 객체들을 검출하도록, 상기 인공 지능 엔진을 사용하여, 저장될 상기 데이터를 프로세싱하는 단계, 상기 다수의 객체들은 상기 검출된 객체 및 상기 다른 객체를 포함하며; 그리고
    상기 데이터에서 검출된 다수의 객체들에 대한 각각의 라벨들의 세트를 제공하는 단계를 더 포함하고,
    상기 각각의 라벨들의 세트는 상기 검출된 객체에 대한 라벨 및 상기 다른 객체에 대한 라벨을 포함하는 것을 특징으로 하는 인공 지능 기반의 검색을 위한 방법.
  5. 제1항에 있어서,
    상기 인공 지능 엔진으로부터, 상기 데이터의 상기 검출된 객체와 상기 다른 객체 사이의 문맥적 관련성의 신뢰도 레벨을 나타내는 표시를 수신하는 단계;
    상기 데이터의 상기 검출된 객체와 상기 다른 객체 사이의 문맥적 관련성의 신뢰도 레벨에 기초하여 상기 노드와 상기 상대 노드 사이의 관련성의 가중치를 정의하는 단계
    를 더 포함하는 것을 특징으로 하는 인공 지능 기반의 검색을 위한 방법.
  6. 제5항에 있어서,
    상기 메타데이터 데이터베이스의 네비게이션 섹션은 상기 데이터에서 검출된 각각의 객체들에 대응하는 링크된 노드들의 가중화된 그래프를 포함하며,
    상기 방법은, 상기 노드와 상기 상대 노드 사이의 관련성에 대한 상기 정의된 가중치를 나타내는 가중치를 갖는 가중 링크를 이용하여 상기 노드와 상기 상대 노드를 연결하는 단계를 더 포함하는 것을 특징으로 하는 인공 지능 기반의 검색을 위한 방법.
  7. 제5항에 있어서,
    상기 표시는,
    상기 인공 지능 엔진에 의해 실행되는 제 1 인공 지능 모델에 기초하여 제공되는 제 1 신뢰도 레벨의 제 1 표시이며, 상기 방법은 또한,
    상기 인공 지능 엔진으로부터 그리고 상기 인공 지능 엔진에 의해 실행되는 제 2 인공 지능 모델에 기초하여, 상기 데이터의 상기 검출된 객체와 상기 다른 객체 사이의 문맥적 관련성에 대한 제 2 신뢰도 레벨의 제 2 표시를 수신하는 단계; 및
    상기 데이터의 상기 검출된 객체와 상기 다른 객체 사이의 문맥적 관련성에 대한 제 2 신뢰도 레벨에 기초하여, 상기 노드와 상기 상대 노드 사이의 관련성의 가중치를 재정의하는 단계; 또는
    상기 데이터의 상기 검출된 객체와 상기 다른 객체 사이의 문맥적 관련성에 대한 제 2 신뢰도 레벨에 기초하여, 상기 상대 노드로부터 상기 노드를 링크해제(unlinking)하는 단계
    를 더 포함하는 것을 특징으로 하는 인공 지능 기반의 검색을 위한 방법.
  8. 제1항에 있어서,
    상기 인공 지능 엔진으로부터 그리고 상기 검출된 객체에 대한 라벨과 함께, 상기 데이터 내의 상기 객체를 검출함에 있어서의 상기 인공 지능 엔진의 신뢰도 레벨을 나타내는 표시를 수신하는 단계; 및
    상기 인공 지능 엔진의 신뢰도 레벨을, 상기 메타데이터 데이터베이스의 관계형 섹션 내의 상기 검출된 객체에 대한 엔트리에 추가하는 단계
    를 더 포함하는 것을 특징으로 하는 인공 지능 기반의 검색을 위한 방법.
  9. 제1항에 있어서,
    상기 저장 시스템은, 고체 상태 드라이브(SSD), 하드 디스크 드라이브(HDD), 또는 저장 매체 드라이브들의 집합 어레이(aggregate array of storage media drives) 중 적어도 하나를 포함하며; 그리고
    상기 방법은 상기 SSD의 저장 제어기, 상기 HDD의 저장 제어기, 또는 상기 저장 매체 드라이브들의 집합 어레이에 대한 호스트 인터페이스를 제공하는 제어기에 의해 구현되는 것을 특징으로 하는 인공 지능 기반의 검색을 위한 방법.
  10. 장치로서,
    호스트로부터 데이터를 수신하기 위한 인터페이스;
    상기 호스트로부터 수신된 데이터를 저장하도록 구성된 저장 매체;
    상기 저장 매체에 저장된 데이터에 대한 액세스를 가능케하도록 구성된 제어기; 및
    메타데이터 관리자를 포함하며, 상기 메타데이터 관리자는,
    상기 장치와 연관된 인공 지능 엔진으로부터, 상기 장치의 저장 매체에 저장된 데이터에서 상기 인공 지능 엔진에 의해 검출된 객체에 대한 라벨을 수신하고;
    상기 검출된 객체에 대한 라벨의 식별자, 상기 저장 매체 내의 상기 검출된 객체의 어드레스, 및 상기 메타데이터 데이터베이스의 네비게이션 섹션 내의 상기 검출된 객체에 대응하는 노드의 어드레스를 포함하는, 상기 검출된 객체에 대한 엔트리를, 상기 장치에 저장된 데이터에 대한 메타데이터 데이터베이스의 관계형 데이터베이스 내에 생성하고; 그리고
    상기 메타데이터 데이터베이스의 네비게이션 데이터베이스 내에 그리고 상기 어드레스와 함께, 상기 검출된 객체에 대응하는 노드를 생성하며,
    상기 노드는 상기 검출된 객체와 문맥적으로 관련된 상기 데이터 내의 다른 객체에 대응하는 상기 네비게이션 데이터베이스 내의 상대 노드에 대한 적어도 하나의 참조 및 상기 네비게이션 데이터베이스 내의 상기 노드와 상기 상대 노드 사이의 관련성의 가중치를 포함하는 것을 특징으로 하는 장치.
  11. 제10항에 있어서,
    상기 메타데이터 관리자는 또한,
    상기 노드와 상기 상대 노드 사이의 관련성의 가중치에 기초하여 적어도 상기 검출된 객체 또는 상기 다른 객체에 대한 메타데이터 데이터베이스의 검색이 가능해지도록, 상기 메타데이터 데이터베이스를 검색 인터페이스에 노출시키는 것을 특징으로 하는 장치.
  12. 제10항에 있어서,
    상기 메타데이터 관리자는 또한,
    상기 인공 지능 엔진으로부터, 상기 데이터의 상기 검출된 객체와 상기 다른 객체 사이의 문맥적 관련성의 신뢰도 레벨을 나타내는 표시를 수신하고;
    상기 데이터의 상기 검출된 객체와 상기 다른 객체 사이의 문맥적 관련성의 신뢰도 레벨에 기초하여 상기 노드와 상기 상대 노드 사이의 관련성의 가중치를 정의하는 것을 특징으로 하는 장치.
  13. 제12항에 있어서,
    상기 메타데이터 데이터베이스의 네비게이션 데이터베이스는 상기 데이터에서 검출된 각각의 객체들에 대응하는 링크된 노드들의 가중화된 그래프를 포함하며,
    상기 메타데이터 관리자는 또한, 상기 노드와 상기 상대 노드 사이의 관련성에 대한 상기 정의된 가중치를 나타내는 가중치를 갖는 가중 링크를 이용하여 상기 노드와 상기 상대 노드를 연결하는 것을 특징으로 하는 장치.
  14. 제10항에 있어서,
    상기 라벨이 수신되는 인공 지능 엔진; 또는
    상기 장치의 메타데이터 데이터베이스를 유지하도록 구성된 메모리
    를 더 포함하는 것을 특징으로 하는 장치.
  15. 제10항에 있어서,
    상기 저장 매체는 고체 상태 드라이브(SSD), 하드 디스크 드라이브(HDD), 또는 저장 매체 드라이브들의 집합 어레이 중 적어도 하나를 포함하며; 그리고
    상기 장치의 제어기는 상기 SSD의 저장 제어기, 상기 HDD의 저장 제어기, 또는 상기 저장 매체 드라이브들의 집합 어레이에 대한 저장 제어기로 구현되는 것을 특징으로 하는 장치.
  16. 시스템 온 칩(SoC)으로서,
    저장 시스템의 저장 매체에 대한 인터페이스;
    저장 매체로의 기록을 위해 데이터가 수신되는 호스트에 대한 인터페이스;
    하드웨어 기반 프로세서; 및
    프로세서 실행가능한 명령들을 저장하는 메모리를 포함하며,
    상기 명령들은 상기 하드웨어 기반 프로세서에 의한 실행에 응답하여 메타데이터 관리자를 구현하며, 상기 메타데이터 관리자는,
    인공 지능 엔진으로부터, 상기 저장 매체에 기록된 데이터에서 상기 인공 지능 엔진에 의해 검출된 객체에 대한 라벨을 수신하고;
    상기 검출된 객체의 라벨의 식별자, 상기 저장 매체 내의 상기 검출된 객체의 어드레스, 및 상기 메타데이터 데이터베이스의 네비게이션 섹션 내의 상기 검출된 객체에 대응하는 노드의 어드레스를 포함하는, 상기 검출된 객체에 대한 엔트리를, 메타데이터 데이터베이스의 관계형 데이터베이스 내에 생성하고; 그리고
    상기 메타데이터 데이터베이스의 네비게이션 데이터베이스 내에 그리고 상기 검출된 객체에 대한 어드레스와 함께, 상기 검출된 객체에 대응하는 노드를 생성하며,
    상기 노드는 상기 검출된 객체와 문맥적으로 관련된 상기 데이터 내의 다른 객체에 대응하는 상기 네비게이션 데이터베이스 내의 상대 노드에 대한 적어도 하나의 참조 및 상기 네비게이션 데이터베이스 내의 상기 노드와 상기 상대 노드 사이의 관련성의 가중치를 포함하는 것을 특징으로 하는 시스템 온 칩.
  17. 제16항에 있어서,
    상기 메타데이터 관리자는 또한,
    상기 노드와 상기 상대 노드 사이의 관련성의 가중치에 기초하여 적어도 상기 검출된 객체 또는 상기 다른 객체에 대한 메타데이터 데이터베이스의 검색이 가능해지도록, 상기 메타데이터 데이터베이스를 검색 인터페이스에 노출시키는 것을 특징으로 하는 시스템 온 칩.
  18. 제16항에 있어서,
    상기 메타데이터 관리자는 또한,
    상기 인공 지능 엔진으로부터, 상기 데이터의 상기 검출된 객체와 상기 다른 객체 사이의 문맥적 관련성의 신뢰도 레벨을 나타내는 표시를 수신하고;
    상기 데이터의 상기 검출된 객체와 상기 다른 객체 사이의 문맥적 관련성의 신뢰도 레벨에 기초하여 상기 노드와 상기 상대 노드 사이의 관련성의 가중치를 정의하는 것을 특징으로 하는 시스템 온 칩.
  19. 제16항에 있어서,
    상기 메타데이터 데이터베이스의 네비게이션 데이터베이스는 상기 데이터에서 검출된 각각의 객체들에 대응하는 링크된 노드들의 가중화된 그래프를 포함하며,
    상기 메타데이터 관리자는 또한, 상기 노드와 상기 상대 노드 사이의 관련성에 대한 상기 정의된 가중치를 나타내는 가중치를 갖는 가중 링크를 이용하여 상기 노드와 상기 상대 노드를 연결하는 것을 특징으로 하는 시스템 온 칩.
  20. 제16항에 있어서,
    상기 인공 지능 엔진은
    상기 SoC의 하드웨어, 상기 SoC의 메모리 상에 저장된 실행가능한 코드, 또는 상기 SoC의 하드웨어 기반 프로세서에 의해 액세스가능한 또 다른 메모리에 저장된 실행가능한 코드로서 적어도 부분적으로 구현되는 것을 특징으로 하는 시스템 온 칩.
KR1020190092592A 2018-07-31 2019-07-30 저장 시스템에 대한 인공 지능 기반의 검색 KR20200014237A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862712828P 2018-07-31 2018-07-31
US62/712,828 2018-07-31
US16/518,564 US11334571B2 (en) 2018-07-31 2019-07-22 Artificial intelligence-enabled search for a storage system
US16/518,564 2019-07-22

Publications (1)

Publication Number Publication Date
KR20200014237A true KR20200014237A (ko) 2020-02-10

Family

ID=67658325

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190092592A KR20200014237A (ko) 2018-07-31 2019-07-30 저장 시스템에 대한 인공 지능 기반의 검색

Country Status (4)

Country Link
US (3) US11334571B2 (ko)
EP (1) EP3605354A1 (ko)
KR (1) KR20200014237A (ko)
CN (1) CN110781364A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930346B (zh) * 2020-07-15 2023-04-25 北京百度网讯科技有限公司 人工智能信息的处理方法、装置、电子设备和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095480B2 (en) * 2007-07-31 2012-01-10 Cornell Research Foundation, Inc. System and method to enable training a machine learning network in the presence of weak or absent training exemplars
US8554464B2 (en) * 2008-04-30 2013-10-08 K-Nfb Reading Technology, Inc. Navigation using portable reading machine
US8700673B2 (en) * 2012-02-16 2014-04-15 Oracle International Corporation Mechanisms for metadata search in enterprise applications
US9146986B2 (en) 2013-03-14 2015-09-29 Facebook, Inc. Systems, methods, and apparatuses for implementing an interface to view and explore socially relevant concepts of an entity graph
EP3113042A1 (en) 2015-07-01 2017-01-04 Alcatel Lucent A method for providing contextual information, an information processing system and a computer program product
WO2019129520A1 (en) * 2017-12-28 2019-07-04 Datawalk Spolka Akcyjna Systems and methods for combining data analyses
US11645493B2 (en) * 2018-05-04 2023-05-09 Microsoft Technology Licensing, Llc Flow for quantized neural networks

Also Published As

Publication number Publication date
US20200042528A1 (en) 2020-02-06
CN110781364A (zh) 2020-02-11
US11334571B2 (en) 2022-05-17
EP3605354A1 (en) 2020-02-05
US20220277014A1 (en) 2022-09-01
US20240111775A1 (en) 2024-04-04

Similar Documents

Publication Publication Date Title
US11030247B2 (en) Layered graph data structure
US10289700B2 (en) Method for dynamically matching images with content items based on keywords in response to search queries
US10296538B2 (en) Method for matching images with content based on representations of keywords associated with the content in response to a search query
CN107346326B (zh) 用于信息检索的方法和系统
US9997157B2 (en) Knowledge source personalization to improve language models
US10489448B2 (en) Method and system for dynamically ranking images to be matched with content in response to a search query
US9600530B2 (en) Updating a search index used to facilitate application searches
US9087111B2 (en) Personalized tag ranking
US10019538B2 (en) Knowledge representation on action graph database
US8468146B2 (en) System and method for creating search index on cloud database
US20190121812A1 (en) Semantic object tagging through name annotation
US20150293958A1 (en) Scalable data structures
JP2017037648A (ja) ハイブリッドデータを保存するためのハイブリッドデータストレージシステム、方法及びプログラム
US10599777B2 (en) Natural language processing with dynamic pipelines
US10275472B2 (en) Method for categorizing images to be associated with content items based on keywords of search queries
US11288287B2 (en) Methods and apparatus to partition a database
US20170255647A1 (en) Method for selecting images for matching with content based on metadata of images and content in real-time in response to search queries
US20140229496A1 (en) Information processing device, information processing method, and computer program product
US20240111775A1 (en) Apparatus and Techniques for Contextual Search of a Storage System
JP6670097B2 (ja) 関係型データベース表の列横断的検索
EP3552122B1 (en) Distributed index searching in computing systems
KR20230051363A (ko) 저장 시스템에 대한 인공 지능 기반의 검색
JP7262688B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US20190012360A1 (en) Searching and tagging media storage with a knowledge database