KR-20260060493-A - A question-and-answer system using private LLM based on RDF GraphRAG and method using the same
Abstract
본 발명은 사용자로부터 질의를 입력받고, 지식그래프 생성부를 통해 생성된 지식 DB를 검색하여 질의에 적합한 답변을 제공하는 사설 LLM을 포함하는 질의응답 시스템에 관한 것으로, 사설 LLM은 질의를 입력받는 질의 입력부, 질의를 분석하고 지식 DB를 검색하기 위해 SPARQL 쿼리로 변환하는 SPARQL 변환부, SPARQL 쿼리를 통해 지식 DB를 검색하는 지식그래프 검색부 및 지식 DB 검색 결과를 답변으로 제공하는 답변 출력부로 이루어지고, 지식 DB는 기업이나 사설 기관에서 보유하고 있는 내부 문서나 홈페이지 정보와 외부 지식을 결합하여 지식그래프로 구성되는 것을 특징으로 한다.
Inventors
- 송동호
- 장승우
- 강석우
- 손민균
- 인연진
- 이승
Assignees
- 소프트온넷(주)
Dates
- Publication Date
- 20260506
- Application Date
- 20241024
Claims (13)
- 사용자로부터 질의를 입력 받고, 지식그래프 생성부를 통해 생성된 지식 DB를 검색하여 질의에 적합한 답변을 제공하는 사설 LLM을 포함하는 질의응답 시스템에 있어서, 상기 사설 LLM은 질의를 입력받는 질의 입력부; 상기 질의를 분석하고 상기 지식 DB를 검색하기 위해 SPARQL 쿼리로 변환하는 SPARQL 변환부; 상기 SPARQL 쿼리를 통해 지식 DB를 검색하는 지식그래프 검색부 및 상기 지식 DB 검색 결과를 상기 사용자에게 답변으로 제공하는 답변 출력부로 이루어지고, 상기 지식 DB는 RDF 기반 지식그래프 및 벡터 DB의 집합이고, 기업이나 사설 기관에서 보유하고 있는 내부 문서나 홈페이지 정보와 외부 지식을 결합하여 지식그래프로 구성되는 것을 특징으로 하는 사설 LLM을 이용한 질의응답 시스템.
- 제1항에 있어서, 상기 외부 지식은 상기 기업이나 사설 기관에서 보유하고 있지 않은 공공의 전문 지식 정보를 포함하는 사이트 혹은 구조화된 데이터베이스에서 제공되는 지식 정보인 것을 특징으로 하는 사설 LLM을 이용한 질의응답 시스템.
- 제2항에 있어서, 상기 지식그래프 생성부는, 문서를 구성하는 문장을 토큰 단위로 분리하고 상기 토큰 청크를 트리플로 재구성하여 RDF 기반 지식그래프인 GraphRAG로 생성하는 내부 지식 생성부; 상기 외부 지식을 선택하는 외부 지식그래프 선택부; 및 상기 내부 지식 생성부에서 생성된 그래프와 상기 외부 지식그래프 선택부에서 선택된 그래프를 통합하는 통합 지식그래프 생성부로 이루어지는 것을 특징으로 하는 사설 LLM을 이용한 질의응답 시스템.
- 제3항에 있어서, 상기 내부 지식 생성부는 RDF 기반의 지식 생성부와 벡터 기반의 지식 생성부로 구분되어 생성되되, 상기 RDF 기반의 지식 생성부는 텍스트를 토큰 단위로 분리하는 구문 추출부; 상기 분리된 토큰을 주제, 서술 및 객체 형태로 분리하는 트리플 분리부; 및 RDF 기반 지식그래프인 GraphRAG를 생성하는 GraphRAG 생성부로 이루어지고, 상기 벡터 기반의 지식 생성부는 문장을 개별 단어들로 분리하는 토크나이즈부, 상기 분리된 단어들간 벡터 공간에 임베이딩하는 임베이딩부; 및 벡터 기반의 벡터 DB를 생성하는 VectorRAG 생성부로 이루어지는 것을 특징으로 하는 사설 LLM을 이용한 질의응답 시스템.
- 제3항에 있어서, 상기 통합 지식그래프 생성부는, 상기 외부 지식그래프 선택부에서 선택된 외부 지식을 상기 지식그래프 DB에 통합하는 외부 지식 연결부; 상기 지식 그래프 DB와 상기 벡터 DB 간 노드를 상호 연결하는 심볼릭 링크 연결부; 및 상기 연결된 링크를 이용하여 벡터 값을 통합하는 벡터값 통합부로 이루어지되, 상기 외부 지식 연결부는 루트간 통합 또는 동일 주체를 갖는 노드간 통합으로 이루어지는 것을 특징으로 하는 사설 LLM을 이용한 질의응답 시스템.
- 제2항에 있어서, 상기 사설 LLM에서 상기 답변이 사용자가 원하는 수준이 아니거나 잘못 답변한 경우를 판정 또는 평가하는 피드백 과정을 통해 추가 검색이 필요한지를 결정한 후 또 다른 외부 지식을 지식그래프 생성부를 통해 지식 DB에 더 부가하는 답변결과 판정부를 더 포함하는 것을 특징으로 하는 사설 LLM을 이용한 질의응답 시스템.
- 제1항에 있어서, 상기 지식 DB는 기업이나 기관이 운용하는 하나의 로컬 캐쉬에서 동작되는 것을 특징으로 하는 사설 LLM을 이용한 질의응답 시스템.
- 제1항 내지 제5항중 어느 한 항의 사설 LLM을 이용한 질의응답 시스템을 이용하는 방법에 있어서, 사용자로부터 질의를 입력받는 제1 단계; 상기 질의 내용을 분석하여 SPARQL 쿼리로 변환하는 제2 단계; 상기 SPARQL 쿼리를 이용하여 지식 DB를 탐색하는 제3 단계; 및 탐색된 결과로부터 질의에 대한 답변을 생성하여 상기 사용자에게 제공하는 제4 단계로 이루어지는 것을 특징으로 하는 사설 LLM을 이용하는 방법.
- 제8항에 있어서, 상기 제3 단계의 지식 DB 탐색은 지식그래프 DB와 벡터 DB간 심볼릭 링크로 연결된 경우 별도의 벡터값을 통해 컨텍스트 매칭을 수행하는 것을 특징으로 하는 사설 LLM을 이용하는 방법.
- 제8항에 있어서, 상기 제2 단계 이전에 해당 질의 내용이 사전에 저장되어 있는 질의인지를 판단하고, 기존의 질의인 경우 사전에 저장된 답변을 검색하여 제공하는 단계를 더 포함하고, 상기 제4 단계에서 제공된 답변이 상기 사용자가 원하는 수준이 아니거나 잘못 답변한 경우를 판정 또는 평가하는 피드백 과정을 수행할 수 있고, 추가 검색이 필요한 경우에 관련 질의 내용을 포함하는 또 다른 외부 지식을 상기 지식그래프 생성부를 통해 상기 지식 DB에 더 부가하는 단계를 포함하는 것을 특징으로 하는 사설 LLM을 이용하는 방법.
- 제1항 내지 제6항중 어느 한 항의 지식 DB를 구축하는 방법에 있어서, 문서를 토큰으로 분리하는 제1단계; 상기 분리된 토큰을 추출하여 저장하는 제2 단계; 상기 추출된 엔티티들간의 관계를 설정하여 트리플 구조로 구성하는 제3 단계; 상기 트리플을 내부 지식그래프로 재구성하는 제4 단계 및 외부 지식그래프를 선택하고 노드 대 노드 혹은 루트 대 루트로 내부 지식그래프와 결합할지를 결정한 후 통합하여 지식 DB를 구축하는 제5 단계로 이루어지는 것을 특징으로 하는 지식 DB를 구축하는 방법.
- 제11항에 있어서, 제5 단계이후 상기 벡터 기반의 지식 생성부를 통해 별도의 벡터 DB를 추가로 구성하는 것을 특징으로 하는 지식 DB를 구축하는 방법.
- 제8항 내지 제12항 중 어느 한 항의 방법을 수행하는 컴퓨터 판독 가능한 저장매체에 저장된 프로그램.
Description
RDF GraphRAG 기반의 사설 LLM을 이용한 질의응답 시스템 및 이를 이용한 방법 {A question-and-answer system using private LLM based on RDF GraphRAG and method using the same} 본 발명은 기업이나 기관에 설치되는 사설(private) LLM에서 질문에 대한 답변의 정확도를 향상시키기 위해 외부에 공개된 지식 기반의 그래프DB를 내부 지식그래프와 통합하여 제공하는 사설 LLM을 이용한 질의응답 시스템 및 이를 이용하는 방법에 관한 것이다. 사설 LLM(Large Language Model)은 특정 기업이나 기관 내부의 인트라넷에 구축되는 대규모 언어 모델이다. 이러한 사설 LLM은 내부 문서나 데이터에 대한 접근을 제한하고, 데이터 유출의 위험을 줄이기 위한 데이터 프라이버시가 요구된다. 이를 위해 특정 산업 또는 회사의 요구에 맞게 맞춤형 훈련 모델이 필요하다. 또한 사설 LLM은 내부 자료만을 활용할 경우 데이터의 질적 수준의 한계로 인해 풍부한 외부의 지식 데이터를 통합하여 다양한 정보와 신뢰성 및 안정성을 필요로 하지만 이를 통합하는 기술이 반드시 요구되고 있다. 하지만 외부에 공개된 공공의 거대 지식 정보 중 어떤 것을 수용(Import)하여 활용할 것인지와 만약 지식그래프를 활용한다고 결정했을 때 외부 지식 정보를 구조적으로 어떻게 내부 지식정보와 결합하여 활용할 것인지가 문제된다. 외부에서 활용가능한 대표적인 지식 정보로는, 공중에게 공개된 정보인 방대한 전문지식, 용어사전, 일반 상식 등에 관한 위키피디아(Wikipedia) 정보나 이를 구조화한 DBpedia 가 있다. 또한 외부의 고급 지식인 생명과학 및 의료분야에서는 BioPortal.org 등에 수록된 전문가들이 만든 생명과학, 의료, 약학 등 관련 온톨로지 지식 베이스가 있고, 국방 분야에도 이러한 일반 군사 용어를 포함하는 거대한 온톨로지가 공개되어 있으며, 제철 분야 등 산업 전반에 걸쳐 많은 전문가 지식베이스들이 존재한다. 한편 일종의 그래프 형태로 표현된 외부 지식 정보와 내부 지식 정보를 결합하고자 할 때, 동일 용어(이하 '엔티티'라 함)를 검색하여 그래프의 링크로 서로 연결할 수 있다. 예를 들면, 기관내 '4 행정엔진'이란 지식 그래프상의 한 노드는 위키피디아 내부의 '4 행정엔진'과 연결할 수 있는데, 주로 엔티티 매칭(entity matching), 관계인식 개체 정렬(relation-aware entity alignment) 등의 알고리즘을 활용할 수 있다. 즉, 기관내에서 어떤 특정 용어에 대한 추가 상세 정보가 필요할 때 이를 엔티티 매칭 알고리즘을 통하여 외부의 거대 용어 그래프상에서 이 특정 용어를 실시간 혹은 배치(batch)형식의 매칭으로 찾아내어 그래프를 연결해 주는 방식이다. 이외에도 외부 지식을 가지는 거대 그래프의 루트 노드간에 연결하는 방법이 있다. 그러므로 사설 LLM은 내부 지식 정보를 중심으로 폐쇄적으로 운영되는 특성으로 인하여 기관 외부의 풍부한 정보를 도입하여 활용할 필요성은 매우 크다. 어떤 전문성을 가진 외부 지식 정보를 기관 내부 저장소(즉, 로컬 캐쉬 스토리지나 프록시 스토리지)로 다운로드 받고, 이를 기관 내부 지식그래프 정보와 그래프 계층적 구조로 연결하여 활용할 필요성이 있다. 종래에는 시스템 관리자가 사내 문서, HTML로 구성되는 웹페이지 정보 등을 사전에 토큰화, 임베이딩, 벡터(Vector)화 후 벡터 DB(VectorDB)에 저장해 두고, 사용자의 질의가 들어오면 이를 토큰화, 임베이딩, 벡터화한 후 벡터 DB에서 유사도(Similarity)가 높은 문장을 찾고 이에 해당하는 답변을 출력하는 방식이다. 즉, Vector DB는 단어간 혹은 문장 간의 의미 유사도를 거리로 표현하고 거리가 가까운 것 끼리 클러스터링하여 두고 이를 활용하는 방식이다. 이런 벡터 DB 방식에서는 인터넷상에 거대한 지식의 저장소인 위키피디아, DBpedia, 기타 전문가가 작성 후 공개되어 있는 온톨로지를 활용하는데 어려움이 있다. 그 이유는 벡터 DB는 문장을 구성하는 단어들을 포함하여 긴 숫자로 다차원 암호화 코드로 구성되어 있으므로 사람이 보고 그 의미를 알기 어려우며, 문장 혹은 단어간 의미적 논리적 연결망을 구성하기에도 어려운 문제점이 있다. 이러한 문제를 해결하기 위해서는 단어 자체가 눈에 보이고 단어 간의 관계가 그래프로 시각화하여 이해하기 쉬운 RDF(Resource Description Framework), OWL(Web Ontology Language) 등을 활용할 수 있다. 또한, 외부의 전문 지식베이스까지 끌어와 활용하기 위해서는 검색의 속도를 개선해야 문제점이 있다. 또한, 기존의 벡터 DB와 RDF 기반의 지식 DB를 상호 연동하여 각자의 장점을 활용하는 방법은 아직 제시되고 있지 않은 실정이다. 특허문헌 1은 LLM 기반의 질의응답 시스템에서 다수의 문서에 파편화되어 있는 정보를 지식그래프를 이용하여 구조화하여 대형 언어 모델에 제공함으로써 일관성 있는 답변을 생성하도록 하는 지식그래프 기반 질의 응답 생성 방법 및 시스템에 관한 것이다. 하지만, 특허문헌 1은 단순히 문서를 지식그래프로만 구조화하고 검색하는 수단만을 기재하고 있을 뿐, 이질의 다양한 지식을 결합하기 위한 기술적 수단과 RDF 기반의 지식그래프의 생성 수단에 대해 언급하고 있지 않다. 비특허문헌 1은 LLM이 청크 단위로 잘라서 엔티티를 구분하고, 이를 다시 엔티티간의 관계를 추출한 후 인스턴스 엘리멘트를 추출 후 커뮤니티 별로 그래프를 생성해 내는 마이크로소프트(Microsoft)의 GraphRAG 모델이다. 이 모델은 데이터 생성 이후 쿼리에 대해 가장 적합한 엔티티를 선별하고. 선별한 엔티티와 관계가 맵핑된 다른 엔티티와 설명을 LLM에 전달하게 되고 LLM은 전달받은 관계와 설명에 입각해 답변을 추론하여 제공한다. 하지만 비특허문헌 1은 단순히 엔티티들간의 관계를 설명하는 그래프를 Description 단위로 생성하고 벡터DB와 연계된 엣지를 생성할 수 있어 단순히 LLM 문장을 통한 긴 설명의 답변은 가능하지만 RDF 온톨로지가 가지는 특성인 보다 논리적이고 추론 가능한 상세한 사실을 중심으로 사용자가 원하는 정확한 답변을 생성하는 데에는 한계가 있다. 도 1은 본 발명의 바람직한 일실시예에 따른 RDF GraphRAG 기반의 사설 LLM을 이용한 질의응답 시스템의 전체 구성을 나타낸 구성도이다. 도 2는 본 발명의 바람직한 일실시예에 따른 지식그래프 생성부의 구성을 나타낸 구성도이다. 도 3은 본 발명의 바람직한 일실시예에 따른 내부 지식 생성부의 구성을 나타낸 구성도이다. 도 4는 본 발명의 바람직한 일실시예에 따른 RDF 기반의 그래프 생성부에 의해 생성되는 지식그래프를 예시한 도면이다. 도 5 및 도 6은 본 발명의 바람직한 일실시예에 따른 트리플 분리부에서 트리플 형태로 분리한 지식그래프로 표현한 예를 나타내고 있다. 도 7은 본 발명의 바람직한 일실시예에 따른 하나의 문서 내용을 지식그래프로 표현한 예를 나타내고 있다. 도 8은 본 발명의 바람직한 일실시예에 따른 지식그래프 생성부의 전체 구성을 나타낸 구성도이다. 도 9는 본 발명의 바람직한 일실시예에 따른 외부 지식그래프를 내부 지식그래프에 통합하는 예를 나타낸 도면이다. 도 10은 본 발명의 바람직한 일실시예에 따른 지식그래프 DB와 벡터 DB간에 상호 심볼릭 링크를 통해 연동하는 예를 나타낸 도면이다. 도 11은 본 발명의 바람직한 일실시예에 따른 RDF GraphRAG 기반의 사설 LLM을 이용한 질의응답 시스템을 이용한 질의 및 응답 절차를 순서도로 나타낸 도면이다. 도 12는 본 발명의 바람직한 일실시예에 따른 지식 DB를 구축하는 절차를 순서도로 나타낸 도면이다. 이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 쉽게 실시할 수 있는 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다. 명세서 전체에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고, 간접적으로 연결되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 포함한다는 것은 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 도 1은 본 발명의 바람직한 일실시예에 따른 RDF GraphRAG 기반의 사설 LLM을 이용한 질의응답 시스템의 전체 구성을 나타낸 구성도이다. 도 1을 참조하면, 질의응답 시스템은 사용자로부터 질의(prompt)를 입력 받고, 지식그래프 생성부(300)를 통해 생성된 지식 DB(200)를 검색하여 질의에 적합한 답변을 제공하는 사설(private) LLM(100) 및 사용자로부터 질의를 입력 받고 및 답변을 제공하는 대화창 기반의 사용자 인터페이스(400)로 이루어진다. 먼저 사설 LLM(100)은 사용자로부터 질의를 입력받는 질의 입력부(110), 질의 내용을 분석하여 지식 DB(200)를 검색하기 위한 SPARQL 쿼리로 변환하는 SPARQL 변환부(120), SPARQL 쿼리를 통해 지식 DB(200)를 검색하는 지식그래프 검색부(130) 및 질의 결과를 사용자에게 제공하는 텍스트 형식으로 답변을 제공하는 답변 출력부(140)로 이루어진다. 여기서, SPARQL(SPARQL Protocol and RDF Query Language)은 RDF(Resource Description Framework) 데이터를 쿼리하기 위한 언어로, 지식 DB(200)에 저장된 트리플(주체, 서술, 객체)을 검색하는 데 적합하다. 지식 DB(200)는 기존의 벡터 형식의 벡터 DB 및 DBpedia와 같은 거대 온톨로지 지식과 내부 문서들이 RDF