벡터 검색부터 강력한 REST API까지, Elasticsearch는 개발자에게 가장 폭넓은 검색 도구 키트를 제공합니다. GitHub의 샘플 노트북을 살펴보고 새로운 기능을 시험해 보세요. 무료 체험판을 시작하거나 지금 바로 Elasticsearch를 로컬에서 실행할 수도 있습니다.
소개
이 시리즈의 마지막 파트에서는 Elastic의 사전 학습된 E5 모델(그리고 Hugging Face의 다른 다국어 텍스트 임베딩 모델)을 배포하는 과정을 살펴보고, Elasticsearch와 Kibana를 사용해 텍스트 데이터에서 고밀도 벡터 임베딩을 생성하는 방법에 대해 알아보았습니다. 이 블로그에서는 이러한 임베딩의 결과를 살펴보고 다국어 모델을 활용할 때 얻을 수 있는 중요한 이점을 강조합니다.
이제 색인 coco_multilingual 을 만들었으므로 검색을 수행하면 참조할 수 있도록 'en' 필드가 있는 여러 언어로 된 문서가 표시됩니다:
영어로 검색 수행하기
영어로 검색을 수행해보고 얼마나 잘 검색되는지 확인해 보겠습니다:
이 쿼리는 놀라울 정도로 단순해 보이지만, 내부적으로는 모든 언어의 모든 문서에서 'kitty'라는 단어가 포함된 숫자를 검색하고 있습니다. 그리고 벡터 검색을 수행하기 때문에 'kitty'와 관련이 있을 수 있는 모든 단어를 의미론적으로 검색할 수 있습니다: "고양이", "새끼 고양이", "고양이", "가토"(이탈리아어), "메오"(베트남어), 고양이(한국어), 猫(중국어) 등이 있습니다. 그 결과, 검색어가 영어로 되어 있어도 다른 모든 언어로 된 콘텐츠도 검색할 수 있습니다. 예를 들어, 고양이(ying on something )를 검색하면 이탈리아어, 네덜란드어 또는 베트남어로 된 문서도 표시됩니다. 효율성에 대해 이야기해 보세요!
다른 언어로 된 콘텐츠 검색 수행하기
마찬가지로 한국어로 '고양이'로 키워드 검색을 수행하면 의미 있는 결과를 얻을 수 있습니다. 여기서 놀라운 점은 이 색인에는 한국어로 된 문서가 하나도 없다는 것입니다!
임베딩 모델은 공유 의미 공간에서 의미를 나타내므로 색인된 캡션과 다른 언어로 쿼리해도 관련 이미지를 검색할 수 있습니다.
하이브리드 검색 및 재랭킹으로 관련성 높은 검색 결과 얻기
예상대로 관련 결과가 나타나서 기쁘게 생각합니다. 하지만 이커머스나 가장 적합한 상위 5~10개의 결과로 범위를 좁혀야 하는 RAG 애플리케이션과 같은 실제 환경에서는 재랭크 모델을 사용하여 가장 관련성이 높은 결과의 우선 순위를 지정할 수 있습니다.
여기서 베트남어로 "고양이는 무슨 색인가요?"라고 묻는 쿼리를 수행하면 많은 결과가 나오지만 상위 1, 2위가 가장 관련성이 높지 않을 수 있습니다.
결과에는 모두 고양이 또는 어떤 형태의 색상이 언급되어 있습니다:

이제 개선해 봅시다! Cohere의다국어 재랭크 모델을 통합하여 질문에 해당하는 추론을 개선해 보겠습니다.
이제 최고의 결과를 통해 저희 애플리케이션은 새끼 고양이의 색이 검은색 또는 줄무늬가 있는 갈색이라고 자신 있게 대답할 수 있습니다. 여기서 더욱 흥미로운 점은 벡터 검색이 실제로 원본 데이터 세트의 영어 캡션에서 누락된 부분을 찾아냈다는 점입니다. 참조 영어 번역에서 갈색 줄무늬 고양이를 놓쳤음에도 불구하고 이를 찾아낼 수 있습니다. 이것이 바로 벡터 검색의 힘입니다.
결론
이 블로그에서는 다국어 임베딩 모델의 유용성과 Elasticsearch를 활용하여 모델을 통합하여 임베딩을 생성하고 하이브리드 검색 및 재랭커로 관련성과 정확도를 효과적으로 개선하는 방법을 살펴봤습니다. 원하는 언어와 데이터 세트에 대해 즉시 사용 가능한 E5 모델을 사용하여 자체 클라우드 클러스터를 생성하여 다국어 의미론적 검색을 사용해 볼 수 있습니다.




