크로스 인코더는 각 쿼리와 후보 문단을 함께 읽고 토큰 간 상호작용을 바탕으로 관련성을 판단하여 홈 AI 검색 결과에 점수를 매깁니다.
이는 일반적인 재순위화보다 범위가 좁습니다. 홈 서버에는 여전히 수천 개의 메모, PDF, OCR 청크, 매뉴얼, 메타데이터 레코드를 검색할 수 있는 빠른 1단계 검색기가 필요합니다. 크로스 인코더는 1단계에서 관리 가능한 후보 목록을 만든 뒤에만 작동합니다. 크로스 인코더의 특징적인 메커니즘은 공동 인코딩입니다. 쿼리 단어와 문단 단어가 하나의 모델 입력을 공유하므로, 별도로 인코딩된 벡터가 놓칠 수 있는 관계까지 점수 모델이 판단할 수 있습니다.
빠른 검색과 크로스 인코딩은 검색 경로의 서로 다른 부분을 해결합니다
밀집 바이 인코더는 문서 임베딩을 미리 준비하므로, 새로운 쿼리가 들어오면 한 번 임베딩한 뒤 대규모 인덱스와 효율적으로 비교할 수 있습니다. 따라서 1단계 후보 탐색에 적합합니다.
분리된 문장 임베딩은 쿼리가 들어오기 전에 문서 표현을 계산하고 여러 요청에서 재사용할 수 있게 하므로, 대규모 1단계 유사도 검색을 실용적으로 만듭니다.
크로스 인코더는 이러한 재사용 가능한 문서 표현을 사용하지 않습니다. 모든 후보에 대해 쿼리와 문단을 다시 함께 처리해야 하므로, 매번 질문이 들어올 때마다 전체 비공개 컬렉션을 검색하기에는 비용이 너무 큽니다.
따라서 두 단계는 깔때기 구조를 이룹니다. 저렴한 검색이 전체 코퍼스에서 재현율을 확보하고, 이후 비용이 큰 쌍별 점수 계산은 더 나은 관련성 판단이 최종 순서를 바꿀 수 있는 후보에만 연산을 집중합니다.
쿼리와 문단의 토큰은 하나의 공동 시퀀스로 입력됩니다
크로스 인코더는 쿼리와 하나의 후보 문단을 모델별 특수 토큰으로 구분한 단일 쌍 입력으로 받는 것이 일반적입니다. 그러면 어텐션이 쌍의 양쪽에 있는 용어를 서로 연결할 수 있습니다.
CrossEncoder 쌍은 쿼리와 하나의 후보 문단을 공동 모델 입력에 배치하므로, 관련성 점수가 생성되기 전에 두 텍스트의 토큰이 서로 상호작용할 수 있습니다.
이러한 공동 처리 경로는 쿼리의 “갱신일”이 문단의 “보험이 만료되는 날짜”로 답변되는 경우나, 정확한 모델 번호가 요청한 조건과 모순되는 주변 절이 포함된 문장에 등장하는 경우를 파악할 수 있습니다.
모델이 전체 쌍을 보기 때문에 문단 길이가 중요합니다. 긴 청크는 더 많은 토큰을 소비하고 연산량을 늘리며, 실제로 질문에 답하는 문장 주변의 국소적인 상호작용을 희석할 수 있습니다.
출력은 새로운 문서 벡터가 아니라 새로운 관련성 점수입니다
하나의 쿼리-문단 쌍을 처리한 뒤 크로스 인코더는 해당 문단이 모델이 학습한 관련성 함수에 따라 쿼리를 얼마나 잘 충족하는지를 나타내는 점수를 출력합니다.
CrossEncoder 관련성 점수는 제공된 쿼리-문단 쌍에 대해 계산되며, 이후 해당 후보들의 1단계 순서를 대체하는 데 사용할 수 있습니다.
이 점수는 쿼리에 따라 달라집니다. 쿼리가 바뀌면 쌍과 계산 결과도 바뀌기 때문에, 일반적으로 재사용 가능한 임베딩으로 저장하지 않습니다.
이 때문에 크로스 인코더는 밀집 벡터 유사도가 거의 동률이었던 두 후보의 순서를 크게 바꿀 수 있습니다. 2단계에서 다른 종류의 점수 계산 문제를 해결하기 때문입니다.
공동 점수가 시작되기 전에 후보 깊이가 재현율의 상한을 결정합니다
크로스 인코더는 좋은 문단을 30위에서 1위로 올릴 수 있지만, 30위 문단이 입력받은 후보 목록에 포함되어 있을 때만 가능합니다. 그 범위 밖에 있는 근거는 2단계에서 볼 수 없습니다.
2단계 순위화 모델인 크로스 인코더는 전체 비공개 코퍼스를 직접 검색하는 대신, 다른 검색기가 이미 찾아낸 후보를 대상으로 작동합니다.
후보 목록을 더 깊게 설정하면 올바른 비공개 문단이 1단계를 통과해 남을 가능성이 높아지지만, 쌍별 추론 작업도 그만큼 늘어납니다. 따라서 CPU나 GPU 자원이 제한적인 홈 서버는 재현율을 지키면서도 대화형 검색이 느려지지 않도록 후보 예산을 선택해야 합니다.
공동 점수화는 유사도만으로 놓칠 수 있는 세밀한 차이를 파악하는 데 도움이 됩니다
비공개 문서 검색에는 연도, 모델 접미사, 가족 구성원, 폴더, 개정판, 부정 표현, 예외 또는 요청된 작업과 같은 정확한 조건이 포함되는 경우가 많습니다. 두 문단이 주제상 유사하더라도 이러한 세부 조건을 충족하는 것은 하나뿐일 수 있습니다.
AI NAS의 시맨틱 검색은 표현이 서로 다른 비공개 파일에서 의미를 기준으로 후보를 제시하고, 크로스 인코딩은 그 후보 중 어떤 것이 정확한 쿼리를 가장 잘 충족하는지 더 좁은 범위에서 판단합니다.
예를 들어 오래된 보험 증권과 최신 보험 증권이 모두 “침수 피해 자기부담금”과 밀접하게 일치할 수 있습니다. 공동 점수화는 주변 날짜와 표현을 활용할 수 있지만, 현재 상태에 대한 답변에 어떤 개정판이 적합한지는 버전 메타데이터가 여전히 결정해야 합니다.
이러한 구분은 이 글의 범위를 명확하게 유지합니다. 크로스 인코딩은 쌍에 점수를 매기는 방법을 설명하고, 더 넓은 검색 파이프라인은 여전히 후보 생성, 최신성, 권한, 인용 출처를 담당합니다.
로컬 크로스 인코딩은 완벽한 재현율이 아니라 추가 연산을 위해 개인정보 보호를 선택합니다
점수 모델을 로컬에서 실행하면 비공개 쿼리와 후보 텍스트가 홈 검색 경로 안에 머물지만, 후보가 하나 늘어날 때마다 추론 쌍도 하나씩 추가됩니다.
쿼리-문서 점수화의 경계는 명확합니다. 모델은 쿼리와 제공된 문서를 받아 관련성 점수를 반환하므로, 제공된 집합에 없는 근거는 복구할 수 없습니다.
크로스 인코더를 실행하기 전에 후보 재현율을 측정하고, 실행 후 순위 품질과 전체 요청의 총 지연 시간을 측정하세요. 재순위화 전에 올바른 문단이 없다면 쌍별 점수 모델을 탓하기보다 추출, 검색, 필터 또는 후보 깊이를 개선해야 합니다.
크로스 인코더는 빠른 검색기가 이미 올바른 주변 후보를 찾아냈고, 남은 문제가 그중 실제로 가정의 질문에 답하는 후보를 결정하는 것일 때 가장 유용합니다.
기술 및 AI 허브
더 읽어보기

홈 카메라는 클라우드 시간 서비스 없이 이벤트를 동기화할 수 있나요?
클라우드 없이 카메라 시간을 동기화하는 메커니즘 우선 설명, 공유 리소스의 트레이드오프, 쿼리 팬아웃 관련 자주 묻는 질문 3가지, 그리고 실용적인 검증 프로토콜.

로컬 AI 서비스가 추론 전에 손상된 모델 레이어를 감지할 수 있나요?
손상된 모델 계층 감지에 대한 메커니즘 중심 설명, 공유 리소스의 트레이드오프, 쿼리 팬아웃 관련 자주 묻는 질문 3가지, 그리고 실용적인 검증 프로토콜.

모든 임베딩을 다시 생성하지 않고 RAG 시스템을 복원할 수 있을까요?
재임베딩 없이 RAG를 복원하는 메커니즘 중심 설명, 공유 리소스의 트레이드오프, 쿼리 팬아웃 관련 자주 묻는 질문 3가지, 그리고 실용적인 검증 프로토콜.

