온톨로지의 의미 기반 검색
의미 기반 검색(Semantic search)은 질의와 자료의 의미 또는 문맥이 가까운지를 이용합니다. 같은 단어가 있는지만 확인하는 검색으로 찾기 어려운 표현을 다룰 수 있습니다.
임베딩 모델(Embedding model)은 텍스트를 숫자 배열인 벡터 임베딩(Vector embedding)으로 바꿉니다. N개 값을 가진 벡터를 N차원 공간에서 비교하며, 모델이 의미를 잘 표현한다면 가까운 벡터의 텍스트도 의미가 비슷합니다. face mask와 face covering이 respirator보다 더 가까이 놓이는 관계가 예입니다.
임베딩을 객체(Object)의 속성(Property)으로 저장하면 검색 결과에서 실제 업무 대상에 접근할 수 있습니다. 사용자의 질의나 다른 객체와 가까운 벡터를 찾은 뒤 연결된 원문과 업무 관계를 조사합니다. 가까운 결과의 유용성은 모델과 데이터에 따라 평가합니다.
검색 구성
- 문서 처리와 청크: PDF를 가져와 텍스트를 추출하고 원문과 연결된 작은 단위로 나눕니다.
- 모델 선택: 텍스트, 이미지와 질의에 맞는 모델 및 입력 길이를 정합니다.
- Palantir 제공 모델: 벡터를 생성하고 Workshop, Chatbot과 함수에서 검색합니다.
- 사용자 모델: 같은 모델을 배치 및 실시간 추론에 배포하여 문서와 질의를 임베딩합니다.
- 온톨로지 증강 생성: 검색 결과를 LLM에 제공하고 HyDE, 키워드 확장 및 순위 결합으로 검색을 개선합니다.
- 정규식 검색 구문: 의미가 아니라 문자열 패턴을 정확히 검색해야 할 때 사용합니다.