KR-20260062008-A - METHOD AND ELECTRONIC DEVICE FOR DETERMINING DATABASE FOR USE IN RETRIEVAL AUGMENTED GENERATION
Abstract
입력 데이터로부터 키워드를 추출하는 단계, 키워드에 대응되는 키워드 임베딩 벡터를 획득하는 단계, 키워드 임베딩 벡터를 이용하여 복수의 벡터 데이터 베이스 중에서 하나 이상의 벡터 데이터 베이스를 선택하는 단계, 선택된 하나 이상의 벡터 데이터 베이스를 이용하여 입력 데이터에 대응되는 컨텍스트 데이터를 생성하는 단계, 입력 데이터 및 컨텍스트 데이터를 이용하여 입력 데이터에 대한 응답을 생성하는 단계, 및 생성된 응답을 제공하는 단계를 포함하는 방법 및 전자 장치가 제공된다. 한편, 인공지능 모델을 이용하여 상기 방법을 수행할 수도 있다.
Inventors
- 이기원
- 윤창식
- 홍성현
- 양준모
Assignees
- 삼성전자주식회사
Dates
- Publication Date
- 20260506
- Application Date
- 20250213
- Priority Date
- 20241028
Claims (20)
- 검색 증강 생성(Retrieval Augmented Generation)에서 이용하기 위한 데이터 베이스를 결정하는 방법에 있어서, 입력 데이터로부터 키워드를 추출하는 단계(S210); 상기 키워드에 대응되는 키워드 임베딩 벡터를 획득하는 단계(S220); 상기 키워드 임베딩 벡터를 이용하여 복수의 벡터 데이터 베이스 중에서 하나 이상의 벡터 데이터 베이스를 선택하는 단계(S230); 상기 선택된 하나 이상의 벡터 데이터 베이스를 이용하여 상기 입력 데이터에 대응되는 컨텍스트 데이터를 생성하는 단계(S240); 상기 입력 데이터 및 상기 컨텍스트 데이터를 이용하여 상기 입력 데이터에 대한 응답을 생성하는 단계(S250); 및 상기 생성된 응답을 제공하는 단계(S260)를 포함하는, 방법.
- 제1항에 있어서, 상기 키워드 임베딩 벡터를 이용하여 복수의 벡터 데이터 베이스 중에서 하나 이상의 벡터 데이터 베이스를 선택하는 단계(S230)는, 상기 복수의 벡터 데이터 베이스에 대응되는 해시 태그 임베딩 벡터를 획득하는 단계; 및 상기 키워드 임베딩 벡터 및 상기 해시 태그 임베딩 벡터 사이의 유사도에 기초하여, 상기 복수의 벡터 데이터 베이스 중에서 상기 하나 이상의 벡터 데이터 베이스를 선택하는 단계를 포함하는, 방법.
- 제2항에 있어서, 상기 유사도는 상기 키워드 임베딩 벡터 및 상기 해시 태그 임베딩 벡터 사이의 코사인 유사도를 포함하고, 상기 선택된 하나 이상의 벡터 데이터 베이스는 상기 유사도가 정해진 값보다 크거나 같은 것을 특징으로 하는, 방법.
- 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 키워드 임베딩 벡터를 이용하여 복수의 벡터 데이터 베이스 중에서 하나 이상의 벡터 데이터 베이스를 선택하는 단계(S230)는, 상기 복수의 벡터 데이터 베이스에 대응되는 태그 정보를 출력하는 단계; 상기 태그 정보 중에서 적어도 하나에 대한 사용자 입력을 획득하는 단계; 및 상기 사용자 입력에 기초하여 상기 하나 이상의 벡터 데이터 베이스를 선택하는 단계를 포함하는, 방법.
- 제4항에 있어서, 상기 사용자 입력에 기초하여 상기 하나 이상의 벡터 데이터 베이스를 선택하는 단계는, 상기 사용자 입력이 나타내는 태그 정보를 식별하는 단계; 및 상기 복수의 벡터 데이터 베이스 중에서 상기 태그 정보를 포함하는 상기 하나 이상의 데이터 베이스를 선택하는 단계를 포함하는, 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 키워드 임베딩 벡터를 이용하여 복수의 벡터 데이터 베이스 중에서 하나 이상의 벡터 데이터 베이스를 선택하는 단계(S230)는, 상기 선택된 하나 이상의 벡터 데이터 베이스에 관한 정보를 출력하는 단계를 포함하는, 방법.
- 제6항에 있어서, 상기 하나 이상의 벡터 데이터 베이스의 적합 여부에 관한 사용자 피드백 정보를 획득하는 단계; 상기 하나 이상의 벡터 데이터 베이스에 관한 추천 태그 정보를 획득하는 단계를 포함하는, 방법.
- 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 입력 데이터로부터 키워드를 추출하는 단계(S210)는, 상기 입력 데이터에 포함된 단어 또는 구(phrase)를 포함하는 복수의 후보 키워드를 추출하는 단계; 상기 입력 데이터에 기초하여 입력 임베딩 벡터를 획득하는 단계; 상기 복수의 후보 키워드에 기초하여 복수의 후보 키워드 임베딩 벡터를 획득하는 단계; 및 상기 복수의 후보 키워드 임베딩 벡터 및 상기 입력 임베딩 벡터의 유사도에 기초하여 상기 키워드를 추출하는 단계를 포함하는, 방법.
- 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 선택된 하나 이상의 벡터 데이터 베이스를 이용하여 상기 입력 데이터에 대응되는 컨텍스트 데이터를 생성하는 단계(S240)는, 상기 선택된 하나 이상의 벡터 데이터 베이스로부터 상기 입력 데이터와 연관된 데이터를 획득하는 단계; 및 상기 입력 데이터와 연관된 데이터에 기초하여 대형 언어 모델의 프롬프트에 포함되는 상기 컨텍스트 데이터를 생성하는 단계를 포함하는, 방법.
- 제1항 내지 제 9항 중 어느 한 항에 있어서, 상기 입력 데이터 및 상기 컨텍스트 데이터를 이용하여 상기 입력 데이터에 대한 응답을 생성하는 단계(S250)는, 상기 입력 데이터 및 상기 컨텍스트 데이터를 포함하는 텍스트 입력을 생성하는 단계; 및 상기 텍스트 입력을 대형 언어 모델에 입력하여 상기 입력 데이터에 대한 응답을 획득하는 단계를 포함하는, 방법.
- 검색 증강 생성(Retrieval Augmented Generation)에서 이용하기 위한 데이터 베이스를 결정하는 전자 장치에 있어서, 처리 회로를 포함하는 적어도 하나의 프로세서; 및 인스트럭션들을 저장하는 하나 이상의 저장 매체를 포함하는 메모리를 포함하고, 상기 인스트럭션들이 개별적으로 또는 집합적으로 상기 적어도 하나의 프로세서에 의해 실행됨으로써, 상기 전자 장치가, 입력 데이터로부터 키워드를 추출하고, 상기 키워드에 대응되는 키워드 임베딩 벡터를 획득하고, 상기 키워드 임베딩 벡터를 이용하여 복수의 벡터 데이터 베이스 중에서 하나 이상의 벡터 데이터 베이스를 선택하고, 상기 선택된 하나 이상의 벡터 데이터 베이스를 이용하여 상기 입력 데이터에 대응되는 컨텍스트 데이터를 생성하고, 상기 입력 데이터 및 상기 컨텍스트 데이터를 이용하여 상기 입력 데이터에 대한 응답을 생성하고, 상기 생성된 응답을 제공하는, 전자 장치.
- 제11항에 있어서, 상기 인스트럭션들이 개별적으로 또는 집합적으로 상기 적어도 하나의 프로세서에 의해 실행됨으로써, 상기 전자 장치가, 상기 복수의 벡터 데이터 베이스에 대응되는 해시 태그 임베딩 벡터를 획득하고, 상기 키워드 임베딩 벡터 및 상기 해시 태그 임베딩 벡터 사이의 유사도에 기초하여, 상기 복수의 벡터 데이터 베이스 중에서 상기 하나 이상의 벡터 데이터 베이스를 선택하는, 전자 장치.
- 제12항에 있어서, 상기 유사도는 상기 키워드 임베딩 벡터 및 상기 해시 태그 임베딩 벡터 사이의 코사인 유사도를 포함하고, 상기 선택된 하나 이상의 벡터 데이터 베이스는 상기 유사도가 정해진 값보다 크거나 같은 것을 특징으로 하는, 전자 장치.
- 제11항 내지 제13항 중 어느 한 항에 있어서, 상기 인스트럭션들이 개별적으로 또는 집합적으로 상기 적어도 하나의 프로세서에 의해 실행됨으로써, 상기 전자 장치가, 상기 복수의 벡터 데이터 베이스에 대응되는 태그 정보를 출력하고, 상기 태그 정보 중에서 적어도 하나에 대한 사용자 입력을 획득하고, 상기 사용자 입력에 기초하여 상기 하나 이상의 벡터 데이터 베이스를 선택하는, 전자 장치.
- 제14항에 있어서, 상기 인스트럭션들이 개별적으로 또는 집합적으로 상기 적어도 하나의 프로세서에 의해 실행됨으로써, 상기 전자 장치가, 상기 사용자 입력이 나타내는 태그 정보를 식별하고, 상기 복수의 벡터 데이터 베이스 중에서 상기 태그 정보를 포함하는 상기 하나 이상의 데이터 베이스를 선택하는, 전자 장치.
- 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 인스트럭션들이 개별적으로 또는 집합적으로 상기 적어도 하나의 프로세서에 의해 실행됨으로써, 상기 전자 장치가, 상기 선택된 하나 이상의 벡터 데이터 베이스에 관한 정보를 출력하는, 전자 장치.
- 제16항에 있어서, 상기 인스트럭션들이 개별적으로 또는 집합적으로 상기 적어도 하나의 프로세서에 의해 실행됨으로써, 상기 전자 장치가, 상기 하나 이상의 벡터 데이터 베이스의 적합 여부에 관한 사용자 피드백 정보를 획득하고, 상기 하나 이상의 벡터 데이터 베이스에 관한 추천 태그 정보를 획득하는, 전자 장치.
- 제11항 내지 제17항 중 어느 한 항에 있어서, 상기 인스트럭션들이 개별적으로 또는 집합적으로 상기 적어도 하나의 프로세서에 의해 실행됨으로써, 상기 전자 장치가, 상기 입력 데이터에 포함된 단어 또는 구(phrase)를 포함하는 복수의 후보 키워드를 추출하고, 상기 입력 데이터에 기초하여 입력 임베딩 벡터를 획득하고, 상기 복수의 후보 키워드에 기초하여 복수의 후보 키워드 임베딩 벡터를 획득하고, 상기 복수의 후보 키워드 임베딩 벡터 및 상기 입력 임베딩 벡터의 유사도에 기초하여 상기 키워드를 추출하는, 전자 장치.
- 제11항 내지 제18항 중 어느 한 항에 있어서, 상기 인스트럭션들이 개별적으로 또는 집합적으로 상기 적어도 하나의 프로세서에 의해 실행됨으로써, 상기 전자 장치가, 상기 선택된 하나 이상의 벡터 데이터 베이스로부터 상기 입력 데이터와 연관된 데이터를 획득하고, 상기 입력 데이터와 연관된 데이터에 기초하여 대형 언어 모델의 프롬프트에 포함되는 상기 컨텍스트 데이터를 생성하는, 전자 장치.
- 제1항 내지 제10항 중 어느 한 항의 방법을 컴퓨터에서 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
Description
검색 증강 생성에서 이용하기 위한 데이터 베이스를 결정하는 방법 및 전자 장치{METHOD AND ELECTRONIC DEVICE FOR DETERMINING DATABASE FOR USE IN RETRIEVAL AUGMENTED GENERATION} 본 개시는 데이터 베이스를 결정하는 방법에 관한 것이다. 구체적으로, 검색 증강 생성(Retrieval Augmented Generation; RAG) 기술에서 이용되는 데이터 베이스를 결정하는 방법에 관한 것이다. 검색 증강 생성 기술은 검색과 생성을 결합한 인공 지능 모델에 관한 기술을 의미할 수 있다. 예를 들면, 검색 증강 생성 기술은 미리 학습된 데이터만으로 답변을 생성하는 것이 아니라 외부 소스(예: 데이터 베이스, 문서, 웹)로부터 정보를 검색하고, 검색된 결과에 기초하여 답변을 생성하는 기술을 포함할 수 있다. 검색 증강 생성 기술은 훈련 데이터에 없는 정보를 실시간으로 검색하여 답변을 생성하는데 이용할 수 있다. 또한, 검색 증강 생성 기술은 대형 언어 모델의 환각(hallucination) 문제를 감소시킬 수 있다. 다만, 검색 증강 생성 기술은 다양한 외부 소스를 검색하여 답변을 생성하기 위한 적절한 정보를 탐색하는 과정에서 많은 시간과 비용이 소모될 수 있다. 도 1은 본 개시의 일 실시예에서, 대형 언어 모델을 이용하여 입력 데이터에 대한 응답을 생성하는 과정을 설명하기 위한 도면이다. 도 2는 본 개시의 일 실시예에서, 검색 증강 생성에서 이용하기 위한 데이터 베이스를 결정하는 방법의 순서도이다. 도 3은 본 개시의 일 실시예에서, 검색 증강 생성에서 이용하기 위한 데이터 베이스를 결정하는 과정을 설명하기 위한 도면이다. 도 4는 본 개시의 일 실시예에서, 데이터 베이스에 대응되는 태그 정보를 설명하기 위한 도면이다. 도 5는 본 개시의 일 실시예에서, 유사도 기반 데이터 베이스를 결정하는 방법의 순서도이다. 도 6은 본 개시의 일 실시예에서, 사용자 입력 기반 데이터 베이스를 결정하는 방법의 순서도이다. 도 7은 본 개시의 일 실시예에서, 검색 증강 생성에서 이용하기 위한 데이터 베이스를 제공하는 유저 인터페이스를 나타내는 도면이다. 도 8은 본 개시의 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다. 본 개시의 일 실시예에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다. 본 개시의 일 실시예에서, "a, b 및/또는 c" 표현은 "a, b 또는 c 중 적어도 하나" 표현과 동일하게 해석될 수 있다. 예를 들면, "a, b 및/또는 c" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다. 본 개시의 일 실시예에서 사용되는 용어는 본 개시의 일 실시예에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분을 통해 그 의미가 이해될 수 있다. 따라서 본 개시의 일 실시예에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. 본 개시의 일 실시예에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 예를 들면, "구성 표면"이라는 기재는 그러한 표면들 중 하나 이상을 가리키는 경우도 포함할 수 있다. 본 개시의 일 실시예에서 사용되는 '제1' 또는 '제2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 본 개시의 일 실시예에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 본 개시의 일 실시예에서 "부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 본 개시의 일 실시예에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대안적으로, 어떤 상황에서는, "~하도록 구성된 시스템"이라는 표현은, 그 시스템이 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 포함할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 포함할 수 있다. 본 개시의 일 실시예에서 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다. 본 개시를 설명함에 있어서 본 개시가 속하는 기술 분야에 익히 알려져 있고 본 개시와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략할 수 있다. 이는 불필요한 설명을 생략함으로써 본 개시의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다. 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성 요소에는 동일한 참조 번호를 부여하였다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되어 있는 실시예를 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 개시된 실시예는 본 개시의 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 개시의 범주를 완전하게 알려주기 위해 제공되는 것이다. 본 개시의 일 실시예는 청구범위에 따라 정의될 수 있다. 본 개시의 일 실시예에서 순서도에서의 각 블록과 순서도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있다. 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있고, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 순서도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성할 수 있다. 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하고, 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 순서도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하다. 각각의 순서도에서의 블록들 및 순서도들의 조합들은 컴퓨터 실행 가능 명령어들을 포함하는 하나 이상의 컴퓨터 프로그램들에 의해 수행될 수 있다고 이해되어야 한다. 하나 이상의 컴퓨터 프로그램들은 단일 메모리에 모두 저장되거나, 또는 서로 다른 다수의 메모리들에 분할되어 저장될 수 있다. 일 실시예에서, 메모리는 명령어들을 저장하는 하나 이상의 저장 매체를 포함할 수 있다. 본 개시에 설명된 모든 기능이나 동작은 하나의 프로세서 또는 프로세서들의 조합에 의해 처리될 수 있다. 하나의 프로세서 또는 프로세서들의 조합은 처리를 수행하는 회로 장치(circuitry)로서, AP (Application Processor), CP (Communication Processor), GPU (Graphical Processing Unit), NPU (Neural Processing unit), MPU (Microprocessor Unit), SoC (System on Chip), IC (Integrated Chip) 등과 같은 회로 장치를 포함할 수 있다. 본 개시의 실시예에 따른 적어도 하나의 프로세서는 다양한 처리 회로 및/또는 다중 프로세서를 포함할 수 있다. 예를 들어, 청구범위를 포함하여 본 개시에 사용된 용어 "프로세서"는 적어도 하나의 프로세서를 포함하는 다양한 처리 회로를 포함할 수 있으며, 적어도 하나의 프로세서 중 하나 이상은 분산 방식으로 개별적으로 및/또는 집합적으로 여기에 설명된 다양한 기능을 수행하도록 구성된다. 본 명세서에 사용된 바와 같이, "프로세서", "적어도 하나의 프로세서" 및 "하나 이상의 프로세서"가 다양한 기능을 수행하도록 구성되는 것으로