소식
모델
API
keyboard_arrow_down
리더
URL을 읽거나 검색하면 대규모 모델에 대한 지원이 더 향상됩니다.
벡터 모델
세계적 수준의 다중 모드 다중 언어 임베딩.
재배열자
검색 관련성을 극대화하는 세계적 수준의 신경 검색기입니다.
MCP terminal명령줄articlellms.txtsmart_toy대리인data_object모델menu_book문서



로그인
login
쿼리 확장이란 무엇인가?
LLM 쿼리 확장
실험해보기
결과
작업별 프롬프팅 사용하기
검색어 확장의 주요 고려사항
향후 방향
기술 블로그
2월 18, 2025

LLM으로 검색 확장하기: 더 많이 표현하여 더 잘 검색하기

임베딩 모델이 도입된 이후 검색은 크게 변화했습니다. AI에서 쿼리 확장과 같은 어휘적 기술이 여전히 역할을 할까요? 우리는 그렇다고 생각합니다.
Michael Günther
Scott Martens
Michael Günther, Scott Martens • 9 독서의 분

쿼리 확장은 시맨틱 임베딩이 등장하기 전까지 검색 시스템을 강화하는 주요 기술이었습니다. 현재 RAG와 에이전트 검색의 시대에서는 구식으로 여겨질 수 있지만, 아직 그 가치를 무시할 수 없습니다. 이 심층 분석에서는 자동 쿼리 확장을 jina-embeddings-v3와 LLM과 결합하여 검색 성능을 향상시키고 더 정확한 결과를 얻는 방법을 살펴보겠습니다.

tag쿼리 확장이란 무엇인가?

쿼리 확장은 tf-idf나 다른 "sparse vector" 방식처럼 쿼리의 단어와 문서에 포함된 단어를 매칭하여 관련성을 판단하는 검색 시스템을 위해 개발되었습니다. 이는 명백한 한계가 있습니다. "ran"과 "running", 또는 "optimise"와 "optimize"와 같이 단어의 변형이 매칭을 방해합니다. 언어 인식 전처리로 이러한 문제 중 일부를 완화할 수 있지만, 모든 문제를 해결할 수는 없습니다. 전문 용어, 동의어, 관련 단어는 훨씬 더 다루기 어렵습니다. 예를 들어, "coronavirus"에 대한 의학 연구 쿼리는 매우 적절한 매칭임에도 불구하고 "COVID" 또는 "SARS-CoV-2"에 대해 언급하는 문서를 자동으로 식별하지 못합니다.

쿼리 확장은 이러한 문제의 해결책으로 고안되었습니다.

이 아이디어는 쿼리에 추가 단어와 구문을 더하여 좋은 매칭을 식별할 가능성을 높이는 것입니다. 이렇게 하면 "coronavirus" 쿼리에 "COVID"와 "SARS-CoV-2" 같은 용어가 추가될 수 있습니다. 이는 검색 성능을 크게 향상시킬 수 있습니다.

그림 1: 시소러스를 이용한 쿼리 확장 플로우차트

쿼리에 어떤 용어를 추가해야 할지 결정하는 것은 쉽지 않으며, tf-idf 스타일 검색을 위한 좋은 용어를 식별하고 가중치를 부여하는 방법에 대해 많은 연구가 있었습니다. 일반적인 접근 방식은 다음과 같습니다:

  • 사람이 직접 관리하는 시소러스 사용
  • 대규모 텍스트 코퍼스에서 관련 단어 데이터 마이닝
  • 쿼리 로그에서 유사한 쿼리에 사용된 다른 용어 식별
  • 사용자 피드백을 통해 좋은 쿼리 확장이 되는 단어와 구문 학습

하지만 시맨틱 임베딩 모델은 쿼리 확장의 필요성을 없애야 합니다. "coronavirus", "COVID", "SARS-CoV-2"에 대한 좋은 텍스트 임베딩은 임베딩 벡터 공간에서 서로 매우 가까워야 합니다. 이들은 자연스럽게 증강 없이도 매칭되어야 합니다.

하지만 이론적으로는 그래야 하지만, 실제 모델이 만든 실제 임베딩은 종종 부족한 경우가 있습니다. 임베딩의 단어가 모호할 수 있으며, 적절한 단어를 사용하면 쿼리에 단어를 추가하여 더 나은 매칭으로 유도할 수 있습니다. 예를 들어, "skin rash"의 임베딩은 "behaving rashly"와 "skin creme"에 대한 문서는 식별하면서 "dermatitis"에 대해 이야기하는 의학 저널 기사는 놓칠 수 있습니다. 관련 용어를 추가하면 임베딩을 관련 없는 매칭에서 더 나은 매칭으로 유도할 가능성이 높습니다.

tagLLM 쿼리 확장

시소러스를 사용하거나 어휘 데이터 마이닝을 하는 대신, 우리는 LLM을 사용하여 쿼리 확장을 하는 방법을 살펴보았습니다. LLM은 몇 가지 중요한 잠재적 장점이 있습니다:

  • 광범위한 어휘 지식: 대규모의 다양한 데이터셋으로 학습되었기 때문에, 적절한 시소러스를 선택하거나 올바른 데이터를 얻는 것에 대한 걱정이 덜합니다.
  • 판단 능력: 제안된 모든 확장 용어가 특정 쿼리에 반드시 적절한 것은 아닙니다. LLM이 완벽한 판단을 하지는 못할 수 있지만, 다른 방식들은 전혀 판단을 할 수 없습니다.
  • 유연성: 검색 작업의 필요에 따라 프롬프트를 조정할 수 있는 반면, 다른 접근 방식들은 경직되어 있고 새로운 도메인이나 데이터 소스에 적응하기 위해 많은 작업이 필요할 수 있습니다.

LLM이 용어 목록을 제안하면, 임베딩을 위한 쿼리 확장은 전통적인 쿼리 확장 방식과 동일하게 작동합니다: 쿼리 텍스트에 용어를 추가한 다음 임베딩 모델을 사용하여 쿼리 임베딩 벡터를 생성합니다.

그림 2: LLM을 이용한 임베딩의 쿼리 확장

이를 구현하기 위해서는 다음이 필요합니다:

  • LLM 접근 권한
  • LLM에서 확장 용어를 요청하기 위한 프롬프트 템플릿
  • 텍스트 임베딩 모델

tag실험해보기

이 접근 방식이 텍스트 정보 검색에 가치를 더하는지 확인하기 위해 몇 가지 실험을 수행했습니다. 우리의 테스트에는 다음이 사용되었습니다:

  • LLM 하나: Google의 Gemini 2.0 Flash
  • LLM 쿼리 확장이 모델 간에 일반화되는지 확인하기 위해 두 가지 임베딩 모델: jina-embeddings-v3와 all-MiniLM-L6-v2
  • 정보 검색을 위한 BEIR 벤치마크의 하위 집합

우리는 두 가지 프롬프팅 조건에서 실험을 수행했습니다:

  • 확장 용어를 요청하기 위한 일반 프롬프트 템플릿 사용
  • 작업별 프롬프트 템플릿 사용

마지막으로, 100, 150, 250개의 다양한 수의 용어를 추가하도록 프롬프트를 작성했습니다.

우리의 코드와 결과는 재현을 위해 GitHub에서 이용 가능합니다.

GitHub - jina-ai/llm-query-expansion: Query Expension for Better Query Embedding using LLMs
Query Expension for Better Query Embedding using LLMs - jina-ai/llm-query-expansion
GitHubjina-ai

tag결과

tag일반 프롬프트 사용

여러 번의 시행착오 끝에, 다음 프롬프트가 Gemini 2.0 Flash에서 충분히 잘 작동한다는 것을 발견했습니다:

Please provide additional search keywords and phrases for 
each of the key aspects of the following queries that make 
it easier to find the relevant documents (about {size} words 
per query):
{query}

Please respond in the following JSON schema:
Expansion = {"qid": str, "additional_info": str}
Return: list [Expansion]

이 프롬프트를 사용하면 20-50개의 쿼리를 배치로 묶어 각각에 ID를 부여하고, 각 쿼리에 확장 용어 목록을 연결하는 JSON 문자열을 반환받을 수 있습니다. 다른 LLM을 사용하는 경우, 해당 모델에 맞는 프롬프트를 찾기 위해 실험이 필요할 수 있습니다.

우리는 비대칭 검색 어댑터를 사용하여 jina-embeddings-v3로 이 설정을 적용했습니다. 이 접근 방식에서는 쿼리와 문서가 다르게 인코딩됩니다 - 동일한 모델이지만 다른 LoRA 확장을 사용하여 정보 검색을 위한 임베딩을 최적화합니다.

다양한 BEIR 벤치마크에 대한 결과는 아래 표와 같습니다. 점수는 nDCG@10(검색된 상위 10개 항목에 대한 정규화된 할인 누적 이득)입니다.

벤치마크 확장 없음 100개 용어 150개 용어 250개 용어
SciFact
(사실 확인 작업)
72.74 73.39 74.16 74.33
TRECCOVID
(의료 검색 작업)
77.55 76.74 77.12 79.28
FiQA
(금융 옵션 검색)
47.34 47.76 46.03 47.34
NFCorpus
(의료 정보 검색)
36.46 40.62 39.63 39.20
Touche2020
(논증 검색 작업)
26.24 26.91 27.15 27.54

여기서 검색어 확장이 거의 모든 경우에서 검색 성능을 향상시켰음을 볼 수 있습니다.

이 접근 방식의 견고성을 테스트하기 위해, 더 작은 임베딩 벡터를 생성하는 훨씬 작은 모델인 all-MiniLM-L6-v2로 동일한 테스트를 반복했습니다.

sentence-transformers/all-MiniLM-L6-v2 · Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

결과는 아래 표와 같습니다:

Benchmark No Expansion 100 terms 150 terms 250 terms
SciFact
(Fact Checking Task)
64.51 68.72 66.27 68.50
TRECCOVID
(Medical Retrieval Task)
47.25 67.90 70.18 69.60
FiQA
(Financial Option Retrieval)
36.87 33.96 32.60 31.84
NFCorpus
(Medical Information Retrieval)
31.59 33.76 33.76 33.35
Touche2020
(Argument Retrieval Task)
16.90 25.31 23.52 23.23

여기서 검색 점수가 더 크게 향상된 것을 볼 수 있습니다. 전반적으로, 더 작은 모델이 검색어 확장에서 더 많은 이점을 얻었습니다. 모든 작업에 대한 평균 개선도는 아래 표에 요약되어 있습니다:

Model 100 terms 150 terms 250 terms
jina-embeddings-v3 +1.02 +0.75 +1.48
all-MiniLM-L6-v2 +6.51 +5.84 +5.88

두 모델 간의 순 개선도 차이가 큰 것은 아마도 all-MiniLM-L6-v2가 더 낮은 성능 수준에서 시작했기 때문일 것입니다. 비대칭 검색 모드에서 jina-embeddings-v3가 생성한 검색어 임베딩이 주요 의미론적 관계를 더 잘 포착할 수 있어서, 검색어 확장이 정보를 추가할 여지가 더 적습니다. 하지만 이 결과는 검색어 확장이 대형 모델보다 일부 사용 사례에서 선호될 수 있는 더 컴팩트한 모델의 성능을 얼마나 향상시킬 수 있는지를 보여줍니다.

그럼에도 불구하고, 검색어 확장은 jina-embeddings-v3와 같은 고성능 모델의 검색에도 의미 있는 개선을 가져왔지만, 이 결과는 모든 작업과 조건에서 완벽하게 일관되지는 않습니다.

jina-embeddings-v3의 경우, FiQA와 NFCorpus 벤치마크에서는 검색어에 100개 이상의 용어를 추가하는 것이 역효과를 냈습니다. 더 많은 용어가 항상 더 좋다고 말할 수는 없지만, 다른 벤치마크의 결과는 더 많은 용어가 적어도 때때로는 더 좋다는 것을 보여줍니다.

all-MiniLM-L6-v2의 경우, 150개 이상의 용어를 추가하는 것은 항상 역효과를 냈으며, 세 가지 테스트에서는 100개 이상을 추가해도 점수가 향상되지 않았습니다. 한 테스트(FiQA)에서는 100개의 용어를 추가하는 것조차 상당히 낮은 결과를 보였습니다. 이는 jina-embeddings-v3가 긴 검색어 텍스트의 의미론적 정보를 더 잘 포착하기 때문이라고 생각합니다.

두 모델 모두 FiQA와 NFCorpus 벤치마크에서는 검색어 확장에 대한 반응이 덜했습니다.

tag작업별 프롬프팅 사용하기

위에서 보고된 결과 패턴은 검색어 확장이 도움이 되지만, LLM을 사용하면 성능을 저하시키는 도움이 되지 않는 검색어 용어가 추가될 수 있음을 시사합니다. 이는 프롬프트의 일반적인 특성 때문일 수 있습니다.

우리는 SciFact와 FiQA라는 두 벤치마크를 선택하여 아래와 같은 더 도메인별 프롬프트를 만들었습니다:

Please provide additional search keywords and phrases for 
each of the key aspects of the following queries that make
it easier to find the relevant documents scientific document 
that supports or rejects the scientific fact in the query 
field (about {size} words per query):
{query}
Please respond in the following JSON schema:
Expansion = {"qid": str, "additional_info": str}
Return: list [Expansion]

이 접근 방식은 거의 모든 경우에서 검색 성능을 향상시켰습니다:

Benchmark Model No Expansion 100
terms
150
terms
250
terms
SciFact jina-embeddings-v3 72.74 75.85 (+2.46) 75.07 (+0.91) 75.13 (+0.80)
SciFact all-MiniLM-L6-v2 64.51 69.12 (+0.40) 68.10 (+1.83) 67.83 (-0.67)
FiQA jina-embeddings-v3 47.34 47.77 (+0.01) 48.20 (+1.99) 47.75 (+0.41)
FiQA all-MiniLM-L6-v2 36.87 34.71 (+0.75) 34.68 (+2.08) 34.50 (+2.66)

all-MiniLM-L6-v2로 SciFact 검색어에 250개 용어를 추가하는 경우를 제외하고 모든 조건에서 점수가 향상되었습니다. 또한, 이러한 개선으로도 all-MiniLM-L6-v2는 FiQA에서 자체 기준선을 넘지 못했습니다.

jina-embeddings-v3의 경우, 100개 또는 150개의 추가 용어에서 최상의 결과가 나왔습니다. 250개 용어를 추가하는 것은 역효과를 냈습니다. 이는 용어의 의미가 목표에서 벗어나기 시작하면 검색어에 너무 많은 용어를 추가할 수 있다는 우리의 직관을 뒷받침합니다.

tag검색어 확장의 주요 고려사항

검색어 확장은 분명히 임베딩 기반 검색에 이점을 가져올 수 있지만, 몇 가지 주의사항이 있습니다:

tag비용

LLM과의 상호작용은 정보 검색에 지연시간과 계산 비용을 추가하며, 상업용 LLM을 사용하는 경우 실제 비용이 발생할 수 있습니다. 이로 인한 적당한 개선이 비용을 정당화하지 못할 수 있습니다.

tag프롬프트 엔지니어링

좋은 프롬프트 템플릿을 설계하는 것은 경험적이고 실험적인 예술입니다. 우리가 이 작업에 사용한 것들이 최적이거나 다른 LLM에 이식 가능하다고 주장하지 않습니다. 작업별 프롬프팅에 대한 우리의 실험은 프롬프트를 변경하는 것이 결과의 품질에 매우 큰 영향을 미칠 수 있음을 보여줍니다. 또한 결과는 도메인에 따라 상당히 다양합니다.

이러한 불확실성은 개발 비용을 증가시키고 유지보수성을 저해합니다. 시스템의 모든 변경—LLM, 임베딩 모델 또는 정보 도메인의 변경—은 전체 프로세스를 재확인하고 가능한 경우 재구현해야 함을 의미합니다.

tag대안

여기서 우리는 검색어 확장이 초기 성능이 가장 낮은 임베딩 모델에 가장 큰 개선을 가져왔음을 볼 수 있습니다. 적어도 이 실험에서 검색어 확장은 all-MiniLM-L6-v2와 jina-embeddings-v3 사이의 성능 격차를 좁히지 못했으며, jina-embeddings-v3는 검색어 확장으로부터 더 적은 개선을 보았습니다.

이러한 상황에서, all-MiniLM-L6-v2 사용자는 검색어 확장을 추구하는 대신 jina-embeddings-v3를 채택함으로써 더 낮은 비용으로 더 나은 결과를 얻을 수 있을 것입니다.

tag향후 방향

우리는 여기서 검색어 확장이 검색어 임베딩을 개선할 수 있으며, LLM이 좋은 검색어 확장 용어를 얻기 위한 간단하고 유연한 수단을 제공한다는 것을 보여주었습니다. 하지만 상대적으로 적은 이득은 더 많은 작업이 필요함을 시사합니다. 우리는 미래 연구를 위한 여러 방향을 검토하고 있습니다:

  • 문서 임베딩 생성에서 용어론적 향상의 가치 테스트.
  • 재순위 지정과 같은 다른 AI 검색 기술에서 검색어 향상의 가능성 탐색.
  • 시소러스와 같은 더 오래되고 계산 비용이 적은 용어 소스와 LLM 기반 검색어 확장 비교.
  • 검색어 확장에 더 나은 성능을 보이는 언어 모델을 특별히 훈련하고 더 도메인별 훈련 제공.
  • 추가되는 용어 수 제한. 100개는 시작하기에 너무 많을 수 있습니다.
  • 도움이 되는 용어와 도움이 되지 않는 용어를 식별하는 방법 찾기. 검색어 확장에 우리가 부과하는 고정된 숫자는 완벽하게 맞지 않을 것이며, 제안된 용어를 동적으로 평가하고 좋은 것만 유지할 수 있다면 성능이 향상될 것입니다.

이는 매우 예비적인 연구이며, 우리는 이러한 기술이 Jina AI의 검색 기반 제품에 추가적인 개선을 가져올 것으로 낙관하고 있습니다.

범주:
기술 블로그
rss_feed

더 많은 뉴스
3월 11, 2026 • 7 독서의 분
멀티모달 LLM 을 활용한 오디오 임베딩 부트스트래핑
Han Xiao
Abstract illustration of a sound wave or heartbeat, formed by blue, orange, and gray dots on a white background.
3월 06, 2026 • 6 독서의 분
원시 수치 값에서 임베딩 모델 식별하기
Han Xiao
Fingerprint illustration made from numbers, showcasing digital and high-tech design on a light background.
9월 09, 2025 • 11 독서의 분
Llama.cpp 및 GGUF의 멀티모달 向量模型
Andrei Ungureanu
Alex C-G
Cartoon llama in the center of a white background, emitting laser-like beams from its eyes. The illustration creates a playfu
사무실
location_on
캘리포니아주 서니베일
710 Lakeway Dr, Ste 200, Sunnyvale, California 94085, United States
location_on
베를린, 독일
Prinzessinnenstraße 19-20, 10969 베를린, 독일
검색 기반
리더
벡터 모델
재배열자
Jina API 키 받기
비율 제한
API 상태
회사
회사 소개
영업팀에 문의
소식
인턴십 프로그램
지나 로고 다운로드
open_in_new
Elastic 로고 다운로드
open_in_new
자귀
안전
이용약관
은둔
쿠키 관리
email
탄력적인 지나 AI © 2020-2026.