AI 검색에서 재순위 매기기: 패시지와 출처 선택 방식
핵심
AI 검색은 한 번에 일어나는 단일 의사결정이 아니라, 발견 → 패시지 선택 → 출처 선택 → 답변 생성의 분리된 단계들로 구성된다. 재순위 매기기는 검색 시스템이 찾아낸 후보 문서와 패시지들을 신경망 모델이 다시 평가하여 관련성 점수를 매기는 단계다.
AI 검색의 기본 구조
검색 파이프라인 개요
-
쿼리 계획(Query Planning)
- 사용자 질문을 재작성하고 여러 검색 쿼리로 분산("Best CRM for small business"가 3~4개 검색으로 나뉨)
-
검색 단계(Retrieval) - 넓은 그물
- 키워드 검색(BM25): 정확한 단어 매칭, 빠르고 직자적
- 벡터 검색(Embeddings): 텍스트를 의미를 담은 숫자 목록으로 변환(예: "자동차"와 "자동모빌"이 가까이 위치)
- 두 결과 목록을 **Reciprocal Rank Fusion(RRF)**으로 병합(둘 다에서 높게 순위된 문서에 보상)
-
재순위 매기기 단계(Reranking) - 세밀한 체(sieve)
- 수십~수백 개 후보를 신경망 모델이 쿼리와 각 패시지를 비교하며 다시 점수 매김
- 최강 후보들이 다음 단계로 진행
-
생성 단계(Generation)
- LLM이 남은 패시지들을 사용해 답변 작성 및 인용
재순위 매기기를 중요하게 봐야 하는 이유
왜 관련 페이지가 여전히 인용되지 않는가
- 관련성 있고 순위가 높아도 다른 출처가 인용될 수 있다
- 페이지가 패시지 단위로 검색·점수 매겨지므로, 권위 있는 페이지도 약한 패시지를 포함할 수 있고, 덜 권위 있는 페이지가 명확한 답변 패시지를 가질 수 있다
- 권한(authority), 신선도, 출처 품질, 검색 커버리지, 다양성 규칙, 최종 LLM 모두 인용 출처 결정에 영향
전통 SEO 지표의 한계
- 페이지 수준 SEO 메트릭만으로는 인용 승리/패배를 모두 설명할 수 없다
- 페이지가 여러 패시지로 분리되어 평가되기 때문
BERT 가족 모델 기초
BERT란
- BERT(양방향 트랜스포머 인코더 표현): 구글이 2018년 10월 발표
- BERT-base(1억 1천만 파라미터), BERT-large(3억 4천만 파라미터)
- 혁신점: 텍스트를 양방향으로 동시에 읽음
- 이전 모델: 왼쪽에서 오른쪽(음성 낭독처럼)
- BERT: 모든 단어가 주변의 다른 모든 단어의 빛에서 이해됨
- 예: "the bank of the river"에서 "bank"가 "강의 둑"이라고 이해(인근의 "river"가 영향)
- 이 메커니즘을 **주의(attention)**라 함(모든 단어가 "내 의미에 중요한 다른 단어는 뭐지?"라고 계속 묻는 방식)
BERT 학습 방식(왜 중요한가)
- 마스크 언어 모델링(Masked Language Modeling): 수십억 문장에서 15%를 숨기고 모델이 추측하게 함
- 예: "The capital of France is [MASK]" → 사람의 라벨링 없이 사실, 문법, 단어 관계를 학습
- 이 학습 스타일 덕분에 문맥적 의미 표현이 가능해짐
- 관련성 순위 매김은 쿼리-문서 예제에 대한 추가 미세 조정(fine-tuning) 필요
- 2019년 구글과 마이크로소프트 모두 검색 순위 매김에 BERT나 트랜스포머 기반 방법을 사용한다고 밝혔음
이항 인코더(Bi-encoder) vs 교차 인코더(Cross-encoder)
이항 인코더(임베딩 모델)
- 쿼리와 문서를 별도로 처리해 각각 하나의 벡터로 변환 후 단순 수학(코사인 유사도)으로 비교
- 장점: 문서를 미리 임베드할 수 있어 수백만 개를 밀리초 단위로 검색 가능
- 단점: 속도 대신 정밀도 손실(각 텍스트가 다른 텍스트를 보기 전에 하나의 벡터로 압축되어 세밀한 상호작용이 흐려짐)
교차 인코더(재순위 매기기 모델 대부분)
- 쿼리와 패시지를 함께 모델에 입력(결합된 하나의 입력으로)
- 쿼리의 모든 단어가 전체 신경망을 통해 패시지의 모든 단어에 주의를 기울임
- 훨씬 정확하나 훨씬 느림(아무것도 미리 계산할 수 없어 모든 쿼리-패시지 쌍마다 전체 모델 실행 필요)
이유: 파이프라인이 2단계로 운영
- 이항 인코더(+BM25)가 넓은 그물을 저렴하게 던짐
- 교차 인코더가 후보 목록을 비싸게 다시 점수 매김
- 생산 검색 시스템(AI 챗봇 포함) 거의 모두 이 방식
모델 가족과 특성
주요 모델 계보
BERT(구글, 2018)
- 원래 인코더 전용 트랜스포머, 512 토큰 문맥, 영어만
- 대부분의 고전 MS MARCO 교차 인코더가 이 계열
- SEO 작업의 실용적 유산: 문맥적, 패시지 수준 평가
DistilBERT, MiniLM, TinyBERT(2019-2020): 증류된 자식들
- 증류(Distillation): 작은 "학생" 모델이 큰 "선생님" 모델을 모방하도록 훈련, 크기와 비용의 대부분을 줄이면서 정확도 유지
MiniLM(마이크로소프트, 2020)
- 검색에서 널리 사용되는 증류 가족
- ms-marco-MiniLM-L-6-v2: 약 2,300만 파라미터, 6층 - CPU에서 편하게 실행되는 컴팩트 교차 인코더
- ms-marco-MiniLM-L-12-v2: 약 3,300만, 12층
TinyBERT(화웨이, 2019)
- 훨씬 더 작음(ms-marco-TinyBERT-L-2-v2: 약 400만 파라미터, 2층)
- 강한 모델이 목록을 검토하기 전에 많은 후보를 분류하기에 충분히 작음
RoBERTa(페이스북, 2019)
- BERT와 같은 아키텍처이나 더 오래 훈련(10배 더 많은 데이터)
- BERT 훈련 레시피의 비효율적 부분 제거
- 같은 크기에서 BERT를 신뢰성 있게 능가
- 많은 후대 모델이 BERT보다 RoBERTa에서 시작
XLM-RoBERTa(페이스북, 2019)
- 약 100개 언어에 걸쳐 2.5 테라바이트 텍스트로 훈련된 RoBERTa
- 세계에서 가장 인기 있는 오픈 재순위 매기기 모델의 기반:
- BGE-reranker-base(2억 7,800만), BGE-reranker-large(5억 6,000만): BAAI(베이징 인공지능 연구원)의 미세 조정된 XLM-RoBERTa
- 오픈소스 RAG 튜토리얼을 사용해봤다면 이들을 아마 사용했을 것
- BGE-reranker-v2-m3(5억 6,800만): 더 새로운 버전, BGE-M3 기반
- 100+ 언어 지원, 더 긴 입력 처리, 다국어 작업의 기본 권장
ELECTRA(구글, 2020)
- 훈련 게임을 바꿈: 마스크된 단어 추측 대신 문장에서 몰래 바뀐 단어 감지 학습
- 훈련 시간당 더 많은 학습 신호 제공
- ms-marco-electra-base(1억 1,000만)가 고전 재순위 매기기 중 대표
- 같은 입력에서 BERT 사촌들과 눈에 띄게 다르게 행동 - 유용한 제2의 의견
DeBERTa(마이크로소프트, 2020-2021)
- 주의 내에서 위치와 내용 정보가 섞이는 방식 개선
- 학년도 학문적 리더보드에서 최고 순위
- 그보다 직접 기반한 인기 있는 오픈 재순위 매기기는 적으나, 그 아이디어는 후대 모든 것에 스며들음
ModernBERT(2024년 12월)
- 6년 동안 인코더 쪽은 거의 움직이지 않은 반면 디코더 LLM이 모든 관심을 받음
- ModernBERT가 인코더를 현대화: 8,192 토큰 문맥 창(원래 BERT의 16배), 현대적 위치 임베딩, 훨씬 빠른 추론
- SEO 도구에 중요: 512 토큰은 약 350단어일 뿐이므로, 고전 재순위 매기기는 긴 기사의 대부분을 한 번에 볼 수 없음
- ModernBERT 세대 재순위 매기기는 할 수 있음
- Ettin(존스 홉킨스, 2025): ModernBERT 레시피로 여러 크기에서 훈련된 인코더 가족
- ettin-reranker-150m이 아래 측정 예제에서 가장 큰 이의 제기자
Qwen3-Reranker(알리바바, 2025)
- 새로운 가지: 디코더 LLM을 관련성 판사로 재사용
- 생성 LLM이 배운 모든 것을 상속받아 "쿼리: ... 문서: ... 문서가 쿼리에 답하는가? 예 또는 아니오"라는 프롬프트로 실행
- 순위 지정 지침 따르기("최근 출처 선호", "공식 문서 선호"), 긴 문서(Qwen3-Reranker는 32,000 토큰 vs 고전 BERT 재순위 매기기의 512), 100+ 언어, 코드 처리 가능
- 0.6B, 4B, 8B 크기로 제공, 현재 다국어 검색 벤치마크의 최고 수준 또는 근처
각 재순위 매기기가 콘텐츠에 대해 말할 수 있고 없는 것
4.1 교차 인코더: 판사들
예시: ms-marco-MiniLM, BGE-reranker, Jina-reranker, mxbai-rerank, GTE-multilingual-reranker
- 쿼리와 패시지를 함께 입력받아 하나의 관련성 점수 반환, 짧은 패시지당 파라미터별 최고 정확도
GEO/AEO가 알아야 할 두 가지 실용적 특이점
- 주의 싱크(Attention Sinks): BERT 가족 모델은 내부 주의의 큰 부분을 구두점과 구조적 토큰(마침표, [SEP] 마커)에 주차시킴(문서화된 현상, Clark et al. 2019 "What Does BERT Look At?")
- 측정에서 BGE-reranker-large는 일반적인 패시지에서 구두점과 특수 토큰에 주의의 약 24%를 배치
- 도구가 "모델이 이 한 단어에 가장 많은 주의를 기울였다"고 보여주면 회의적이어야 함
- 강조된 단어의 군집은 의미 있으나 한 개 최고 단어는 보통 그렇지 않음
측정된 출력 비교: 12개 오픈 재순위 매기기가 같은 두 패시지를 읽은 결과
- Peec(AI 검색 가시성 플랫폼)에 대한 패시지를 "best aeo tools" 쿼리로 평가
- 패시지 A: 제품 설명
- 패시지 B: 직접 단편 목록
- 모델마다 정규화된 점수가 다름(모델 간 비교 불가):
- MiniLM-L6: 0.0019% → >99.9%
- MiniLM-L12: 0.0018% → >99.9%
- TinyBERT-L2: 0.0015% → >99.9%
- ELECTRA-base: 0.0026% → 99.4%
- Ettin-150M: 99.9% → >99.9%(강한 이의 제기)
- BGE-base: 11.6% → >99.9%
- BGE-large: 0.20% → 99.8%
- Qwen3-Reranker-0.6B: 0.27% → >99.9%
- MiniLM-L6 EN-DE(다국어): 0.12% → >99.9%
4.2 SPLADE: 투명한 키워드 기계
예시: naver/splade-cocondenser-ensembledistil(1억 1,000만)
- SPLADE(Naver Labs Europe, 2021): 콘텐츠 진단에 가장 해석 가능한 모델(어휘 기여를 정확히 분해 가능)
- 텍스트를 가중 어휘 항 가방으로 확장: 나타난 단어뿐 아니라 모델이 텍스트와 연결되어야 한다고 생각하는 단어
- 쿼리도 같은 방식 처리
- 관련성 점수: 양쪽이 공유하는 모든 항마다 두 가중치를 곱하고 합산
예시 분석
- 패시지 단어 "platform"이 무거운 짐: "software"와 "tools" 모두 트리거(패시지는 "software"라고 말하지 않음에도 불구하고 어휘 확장이 유리하게 작동)
- 주황색 행(문제): 모델의 최고 가중치 쿼리 항은 "aeo"의 부분과 "best"인데, 설명적 패시지가 둘 다 활성화하지 않음
- "ae", "##o"는 "aeo"의 WordPiece 조각이지, 분리된 개념이 아님
- SPLADE는 정확히 말함: 이 패시지는 AEO 도구라고 말하지 않고, "best"에 참여하지 않아서 이 쿼리에서 이길 수 없음
실무 용도: SPLADE는 기본적으로 아주 똑똑한 키워드 시스템, 어휘 확장하지만 문장이 질문에 답하는지 깊게 모델링 하지 않음 → 설명 가능성과 "어떤 항이 빠졌는가" 도구로 사용, 품질의 최종 판정자가 아님
4.3 ColBERT: 단어 중매인
예시: jina-colbert-v2(1억 3,700만, 다국어)
- ColBERT(스탠포드, 2020): 이항 인코더와 교차 인코더 사이에 위치("후기 상호작용"이라 불리는 이유)
- 쿼리의 모든 개별 토큰과 문서의 모든 개별 토큰을 별도로 임베드(문서를 여전히 미리 인덱싱할 수 있어 속도 유지), 쿼리 시간에 각 쿼리 토큰이 문서에서 최고 일치 토큰을 찾음
- 점수는 이 최고 일치들의 합(MaxSim)
메커니즘
- 각 쿼리 토큰이 패시지에서 최고 파트너를 선택
- 초록색 바 = 강한 파트너 발견
- 빨간 짧은 바 = 쿼리 단어가 기본적으로 미응답
예시 해석
- 쿼리 단어 "best"가 "most"보다 나은 것을 찾지 못함(약한 유사도)
- "tools"가 "helps"와 쌍을 이룸
- 쿼리 단어당 평균 일치 품질 0.36(0~1 척도): 약한 결과
- 직접 답변 패시지에서 같은 모델의 평균이 급상승(최고 일치: "best" → "best", "tools" → "tools")
- SPLADE처럼 이 분해는 정확함, 근사가 아니므로 진단에 신뢰할 수 있음
읽기 팁: ColBERT 원점수는 쿼리 길이에 따라 증가(쿼리 토큰 합계)하므로, 다른 쿼리 간 원점수 비교 금지 → 대신 쿼리 토큰당 평균 유사도 비교
4.4 LLM 기반 재순위 매기기: 신세대
예시: Qwen3-Reranker(0.6B/4B/8B, 알리바바, 2025), mxbai-rerank-v2(Qwen2.5 기반)
- BERT를 완전히 버리고 디코더 LLM을 사용
- 프롬프트("쿼리: ... 문서: ... 문서가 쿼리에 답하는가? 예 또는 아니오")를 주고 출력 토큰 확률에서 관련성 점수 도출
- 데이터에 대해 보정되지 않으면 모델 점수이지 관찰된 인용 확률이 아님
능력
- LLM이 배운 모든 것을 상속(지시 따르기 가능 - "최근 출처 선호", "공식 문서 선호", 긴 문서 32,000 토큰, 100+ 언어, 코드)
- Qwen3-Reranker는 0.6B, 4B, 8B 크기로 제공, 현재 다국어 검색 벤치마크 최고 또는 근처
비용
- MiniLM보다 10~100배 무거움
- 내부 작동이 4개 가족 중 가장 검사하기 어려움
- 투명성과 속도를 교환해 능력 얻음
ChatGPT가 아마 사용하는 것
공개된 정보(높은 확신)
OpenAI File Search(검색 기능, OpenAI API)
- 공개 문서화됨
- 문서 청킹(기본 800 토큰/청크, 400 토큰 겹침), text-embedding-3-large로 임베드
- 쿼리 시간에 의미론적(벡터) 검색과 키워드 검색 모두 실행 가능, 결합된 후보에 재순위 매기기 적용 가능
- API는 재순위 매기기 옵션("auto" 및 버전 지정)과 청크별 관련성 점수(0~1) 반환
- 재순위 매기기 꺼킬 수도 있음
- 재순위 매기기 꺼진 독립 테스트가 일관됨: w_e/(60+r_semantic) + w_t/(60+r_kw) 형태의 Reciprocal Rank Fusion(RRF 상수 60 사용)
- OpenAI는 신경 재순위 매기기가 무엇인지 말하지 않지만, 그 존재와 파이프라인 위치는 공식
ChatGPT 웹 검색(OpenAI 도움말 페이지 문서화)
- 제3자 검색 제공자 혼합 사용, 마이크로소프트 Bing 명시, OpenAI 파트너와 자체 크롤링(OAI-SearchBot) 콘텐츠
행동이 시사하는 것(중간 확신)
관찰된 인용이 일치하는 패턴
- 답변 패시지 선택 단계 존재하나, 행동만으로 특정 아키텍처를 식별할 수 없음
- 자주 나타나는 세 패턴:
- 주제만 관련된 패시지보다 답변을 담은 패시지가 자주 이김: 측정된 모델 전체에서 이 제어된 패시지 비교 재현
- 목록, 정의, 비교표가 의도 일치에서 잘 수행: 메커니즘이 보편적 "목록 편향"이 아님 - 이런 구조가 추출 가능한 답변, 명명된 항목, 많은 프롬프트 변형 적용 포함하고, 답변 형태가 쿼리 요청과 일치(단편 목록)하기 때문 → 검색 기회 확장, 추출 용이
- 인용이 자주 구체적 섹션이나 주장으로 해석: 패시지 수준 검색/점수 매김 일치하나, 페이지 수준 권한이 다른 곳에서 중요할 수도 있음
미지의 것
- 어느 오픈 모델이 ChatGPT가 내부에서 실행하는 것과 가장 가까운가 → 공개 증거 부족으로 특정 이름 불가
- 다만 더 좁게: 검색 측(하이브리드 키워드+벡터 검색 후 재순위 매기기) 형태가 OpenAI File Search와 많은 오픈 RAG 스택에서 공개된 산업 표준 패턴과 일치
- 현대 생산 시스템은 인코더 교차 인코더, 디코더 LLM 기반 재순위 매기기, 맞춤 모델, 또는 앙상블 사용 가능
- 공개 행동만으로 어느 것인지 말할 수 없음
AEO/GEO와 SEO 팀을 위한 실용적 재순위 매기기 결정 가이드
진단 워크플로우(15분)
☐ 5~10개 목표 프롬프트 나열, 각 답변 카테고리 표시: 브랜드, 정의, 최고, 비교, 방법
☐ 각 프롬프트마다 페이지의 답변해야 할 섹션 저장. 경쟁자 URL이 인용/언급되면 열고 그 섹션 캡처. URL만 표시되면 가장 답변 같은 섹션 사용
☐ 실패 버킷 하나 지정: 검색되지 않음, 검색되었으나 약함, 또는 언급/잘못된 주장으로 인용됨
☐ 그래야만 편집 선택. 키워드 밀도나 모델 점수 추적으로 시작하지 말 것
사용 사례별 모델 선택
"왜 콘텐츠 점수가 낮은지 이해하려면"(설명 가능성)
- SPLADE 먼저, 그 다음 ColBERT
- SPLADE: 가중치를 가진 정확히 일치하고 누락된 항 목록 → 편집 질문 세트
- ColBERT: 어느 쿼리 개념이 텍스트에서 강한 파트너를 찾지 못하는지 표시
- 교차 인코더 주의 지도는 인상적이나 부분적으로 산물 → 힌트로 취급, 증거로 취급하지 말 것
"가장 정확한 순위 매김, 비용은 보조"
- Qwen3-Reranker-4B 또는 8B 같은 LLM 기반 재순위 매기기 벤치마크
- 이들은 더 긴 입력, 다국어, 순위 지정 지침 처리 가능
- "가장 정확"은 여전히 자신의 쿼리 유형과 관련성 라벨에서 측정되어야 함
"CPU에서 속도, 대량 처리, 낮은 지연"
- ms-marco-MiniLM-L-6-v2(2,300만) 로컬에서 시작
- 또는 자체 호스트 원하지 않으면 저렴한 재순위 매기기 API
- 관리형 옵션 예: Jina Reranker는 요청당 약 $0.00001
- 실제 처리량은 하드웨어, 시퀀스 길이, 배치 처리에 따라 다름
- 품질 이득이 L6보다 L12의 추가 지연을 정당화할 때 L12 테스트
- TinyBERT는 거친 사전 필터로만 사용
"콘텐츠가 영어 아님"
- BGE-reranker-v2-m3 또는 계산 여유가 있으면 Qwen3-Reranker
- 다국어(각각 XLM-RoBERTa와 Qwen 계열)
- ms-marco 영어 모델을 비영어 텍스트에 사용하고 숫자를 신뢰하지 말 것 → 조용히 저하되지 시끄럽게 실패하지 않음
- 광범위한 다국어 작업에는 mMARCO 가족(기계 번역된 MS MARCO를 13+ 언어로 훈련) 고전 옵션
"문서가 길다"(가이드, 문서, 백서)
- ModernBERT 세대 재순위 매기기(Ettin 가족) 또는 LLM 기반 재순위 매기기 테스트
- 고전 BERT 가족 재순위 매기기는 512 토큰만 보통 받음(분할 않으면 나중 텍스트 잘림)
- ModernBERT/Ettin과 LLM 재순위 매기기는 훨씬 더 긴 입력 받음
- 생산 검색 시스템이 여전히 섹션 반환할 수 있으므로 더 작은 패시지도 테스트 필요
"2단계 검색 파이프라인 구축"
- 강한 기준선: 1단계 BM25+이항 인코더, RRF로 병합. 2단계 재순위 매기기를 측정된 후보 깊이(예: 상위 50 또는 100)에 적용
- OpenAI File Search와 많은 공개 RAG 스택의 공개 하이브리드 형태와 유사
- 공개 구글 자료가 일부 순위 매기기 단계에서 대략 20~30 범위 후보 깊이 논의했으므로, 50~100을 보편적 RAG 기본값이 아닌 일반적 기본값으로 취급
- 깊이를 회상 및 지연 테스트로 조정
모델 선택 빠른 참조표
| GEO/AEO/SEO 질문 | 먼저 테스트할 모델 | 출력이 지원하는 것 | |---|---|---| | 낮은 점수 설명 | SPLADE | 정확한 항 수준 분해, 직접 편집 가능 | | 누락된 쿼리 단어 확인 | ColBERT(jina-colbert-v2) | 단어당 정렬 표 | | 최고 정확도, GPU 있음 | Qwen3-Reranker 4B/8B | 벤치마크 리더, 긴 문맥, 지침 | | 최고 관리형 품질, API 예산 | 현재 관리형 재순위 매기기 API | 자체 호스트 없이 생산 순위 매김 | | CPU, 대량 점수 매김 | ms-marco-MiniLM-L-6-v2 | 빠른 기준선, 하드웨어에서 처리량 측정 | | 거친 사전 필터 | ms-marco-TinyBERT-L-2 | 분류용 작은 모델, 최종 편집 결정 아님 | | 다국어 콘텐츠 | BGE-reranker-v2-m3 | 광범위 언어 적용, 각 지역 검증 필요 | | 긴 문서 | Ettin/ModernBERT 가족 | 잘림 전 더 많은 문맥, 여전히 패시지 창 테스트 필요 | | 콘텐츠 진단 | 여러 가족 | 합의가 신뢰도 높임, 불일치가 검토 사례 드러냄 |
AEO/GEO 및 SEO 콘텐츠 전략의 변화
발견 1: "주제에 대해"와 "이 쿼리에 답함"은 다른 테스트
- 설명적 패시지가 엄격한 모델에서 매우 낮은 정규화 일치 점수를 받음
- 직접 답변 버전이 자신의 변환 척도에서 99% 이상 이동
- SEO 결정: 각 쿼리 대상 섹션에 명확한 답변 문장을 넣고, 증거와 뉘앙스로 지원
- (쿼리 복사가 99% 인용 확률을 만들 증거는 아님)
발견 2: 목록이 인용에 자주 나타나는 이유는 보편적 "목록 편향"이 아님
- 좋은 "best AEO tools" 목록은 여러 항목 명시, 여러 속성 포함, 여러 프롬프트 변형 서브쿼리 답변, 쿼리가 요청한 답변 형태(단편 목록) 포함
- 이런 특성이 검색 기회 확장하고 추출 용이하게 함
- 같은 논리: 정의는 "what is X", 주문 단계는 "how to do X"에서 좋은 성능 예측
- 유용한 원칙: 의도-답변 형태 정렬, "모든 페이지를 목록으로 바꾸기" 아님
발견 3: 대부분 테스트된 모델에서 단어 순서 섞기보다 누락된 개념이 더 중요
- 모델을 섞인 쿼리와 관련 없는 제어 쿼리로 다시 실행
- SEO 결정: 의도가 정말 요구하는 결정 기준과 항목 포함
- (구문, 표현, 문장 품질이 모든 쿼리/모델에서 절대 중요하지 않음을 증명하지 않음)
발견 4: 패시지 품질이 로컬 병목이 될 수 있음
- File Search 같은 공개 RAG 청크 검색, 웹 시스템은 페이지 수준과 패시지 수준 신호 결합 가능
- SEO 결정: 중요 섹션을 로컬에서 이해 가능하게 만들고, 명시적으로 주제 명시, 답변을 증거 근처에 유지
- (권한, 링크, 신선도, 전체 페이지 품질이 중요하지 않음을 증명하지 않음)
발견 5: 교차 인코더 주의는 편집 지침 목록이 아님
- BGE-large 측정 주의의 약 1/4가 설명 예제의 구두점과 구조 토큰에 착지
- SEO 결정: 주의를 가설 형성에 사용, 폐기, 대체 문제 등, SPLADE 항 또는 ColBERT 정렬로 더 강한 증거 사용
- (강한 증거 전에 주의만으로 결정하지 말 것)
발견 6: 모델 가족이 급격히 불일치하면서 상대 편집에서 일치 가능
- Ettin은 설명적 패시지에 관대했으나 엄격 모델은 거부
- 그런데도 직접 답변 다시 쓰기가 이런 모델들 전반에서 강함
- SEO 결정: 각 모델 내 버전 비교, 방향 일관한 개선 찾음
- (절대 다른 모델들의 원점수를 만든 보편적 "GEO 점수"로 평균화하지 말 것)
AEO/GEO 및 SEO 팀을 위한 실용적 워크플로우
도구 선택에 관계없이 시작할 일곱 단계
- 쿼리 클러스터와 의도 정의: 브랜드, 정의, 비교, 선택, 방법 쿼리 분리
- 패시지 수준 후보 수집: 관련 섹션 저장, 현재 인용되거나 자주 능가하는 패시지
- 실패 단계 찾기: 발견/검색, 패시지 관련성, 최종 출처 사용 구별 후 편집 제안
- 여러 모델 가족 실행: 교차 인코더 1개 + SPLADE 또는 ColBERT, 복잡한 의도에는 LLM 재순위 매기기 추가
- 가장 강한 증거 읽기: 정확한 항 기여와 토큰 정렬, 제어된 다시 쓰기 선호, 주의를 가설로 취급
- 가장 작은 유용 다시 쓰기: 누락된 답변, 기준, 항목, 한정자, 증거 추가하되 관련 없는 산문 변경하지 말 것
- 두 번 검증: 같은 경쟁자 대상으로 다시 점수 매김, 실시간 검색, 언급, 인용 결과 모니터링
역할별 확인
콘텐츠 작성/편집할 때
- 대상 각 쿼리마다 한 문장의 직접 답변 작성, 해당 섹션의 처음 두 문장에 배치
- 각 섹션을 자체 완결: 대명사 대신 전체 이름, 주제 재명시, 섹션당 한 개 부질문만 답변
- 질문 목표 섹션은 질문 형식 소제목 사용
- 개념 적용 (표현 반복 아님): SPLADE나 다른 항 간극 도구로 패시지가 놓친 개념 찾기, 각각 답변에 속하는지 결정
- 답변 우선 구조 선호: 답변 후 정교함, 그 대신이 아님
콘텐츠 검토할 때
- 몇 가지 믿을 만한 창 크기와 페이지 수준 문맥 보존에서 패시지 테스트
- 최소 두 개 모델 가족 사용: 일치를 신뢰, 단일 숫자가 아님
- 시그모이드 변환 로짓을 정규화 모델 점수로 취급(보정하지 않으면 관찰된 인용 확률이 아님)
- 같은 쿼리의 최고 성능 경쟁자 청크 확인 후 구조 비교: 차이는 보통 다섯 백 단어 추가 콘텐츠가 아닌 직접 답변 문장
AEO/GEO 성능 보고할 때
- 검색 노출, 후보/재순위 매기기 강도, 최종 인용/언급 비율 분리: 단일 가시성 점수가 실패 단계를 숨김
- 쿼리 의도별 분할: 브랜드, 정의, 비교, "best X", 방법은 다른 답변 형태 예상
- 모델 버전, 쿼리 세트, 로케일, 날짜, 패시지 창 보고: 없으면 재순위 매기기 점수 재현 불가능
- 경쟁자와 다시 쓰기 제어 사용: 가장 유용한 출력은 "버전 B가 버전 A를 일관되게 능가"이지 "이 페이지는 83% GEO 최적화"가 아님
도구/파이프라인 구축할 때
- 2단계 기준선 사용: 넓은 검색 BM25+임베딩(RRF 병합), 재순위 매기기를 선택된 후보 깊이(회상/지연 테스트로 선택)에 적용
- 벤치마크: 속도는 MiniLM-L6, 다국어는 BGE-v2-m3, 복잡한 관련성은 Qwen3, 어휘 설명은 SPLADE
- 시간에 따라 청크당 점수 기록: 편집 후 재순위 매기기 점수 회귀가 깨진 승리 패시지의 가장 초기 경고
"재순위 매기기 친화적 청크"로 작성해야 하는가?
신화 부분
신화 1: 청크를 제어할 수 있다
- 할 수 없음: 모든 시스템이 다르게 청킹
- OpenAI File Search는 기본 800 토큰(400 겹침)
- 다른 시스템: 256, 512 토큰, 문장 경계, 고정 문자, 웹 검색 원본 크롤러/스니펫 추출기 생성
- 신중히 디자인한 800 토큰 섹션이 한 시스템에서 문단 중간 잘리고 다른 시스템에서 이웃과 병합됨
신화 2: 청크 경계가 치명적
- 대부분 그렇지 않음(겹침 때문에)
- 50% 겹침(OpenAI 기본)할 때 모든 텍스트가 두 창에 나타남
- 겹침이 임의 절단이 패시지를 손상 시키는 것을 엔지니어들이 알고 보상하는 이유
신화 3: 모든 문단이 자체 완결 답변 기계여야 한다
- 전체 기사를 다시 쓰면 모든 문단이 정의로 시작하고 전체 문맥을 재명시하면 사람이 읽기 중단하는 로봇 텍스트 얻음
- 사람이 링크, 언급, 브랜드 검색을 지정하는데, 재순위 매기기를 이기나 독자를 잃으면 순손실
실제로 도움이 되는 것
로컬 자체 완결성
- 시스템이 어느 창을 자르든, 그 창이 혼자 판단됨
- 유용한 특성: "청커와 일치하는 섹션" 아님, "어떤 몇 백 단어 창도 혼자 의미 있음"
- 실무: 대명사 대신 명시적 명칭("it", "this tool" 대신 전체 이름), 답변과 주제를 같은 근처에, 세 섹션 전에 본 경우에만 일하는 주장 구축 금지
- 이렇게 하면 모든 청킹 스킴에서 동시 도움 → 정확히 가치 있는 이유
각 목표 쿼리당 한 문장 직접 답변
- 측정이 존재하는 최고 지렛값 편집을 보임
- 아무것도 재구조화 필요 없음 → 각 쿼리를 대상 섹션의 한 문장 추가/날카롭게 하기만
청크 의식 작성이 이득일 때
-
긴 정보 콘텐츠(가이드, 문서, 비교 페이지, FAQ): 공격적으로 청킹, 많은 다른 부질문 검색, 각 섹션이 혼자 경쟁
- 여기서 자체 완결 섹션과 질문 형식 소제목이 효과 발휘
-
한 페이지에서 많은 구별 쿼리 대상: 각 목표 쿼리가 자체 답변 패시지 필요 → 구조가 친구
-
RAG 제품에서 인용되길 원하는 모든 것(문서 읽는 AI 보조, 지원 봇, File Search 스타일 시스템): 패시지 검색/점수 매김이 중심
- 메타데이터, 권한, 신선도, 출처 필터는 여전히 중요 가능
불필요하거나 적극적 낭비일 때
-
짧은 페이지: 400단어 페이지는 1~2 청크로 맞음 → 청크 의식 구조가 변화 없음 → 질문 잘 답변하기만 집중
-
브랜드와 네비게이션 쿼리: 명시적 브랜드 항이 검색을 용이하게 하므로 패시지 구조가 보통 병목이 아님 → 정확도와 출처 정체성이 더 중요
-
고유성에서 이기는 콘텐츠: 원본 데이터, 인용, 사실이 주요 출처 검색/인용 이유 생성 → 토큰 수 미세 최적화보다 보통 더 투자 가치
-
인용이 아닌 다른 목표의 페이지(랜딩, 제품, 전환): 일자리가 인간 전환 → 청크 구조 희생하기 = 잘못된 메트릭 최적화
-
청크 크기 미세 최적화: 특정 토큰 수 히트하기, 상상 경계로 문단 분할, 모든 문단에 문맥 복제 → 겹침과 다중 창 검색이 일부 경계 손상 흡수 가능, 로컬 명확성과 답변 완결성을 넘어 반환 빠르게 줄어듦
용어집
- 주의(Attention): 트랜스포머 내부 메커니즘, 모든 단어가 다른 모든 단어가 자신의 의미에 중요한지 가중치. BERT와 GPT의 핵심
- 주의 싱크(Attention Sink): BERT 가족 모델이 사용하지 않은 주의를 구두점과 특수 토큰에 집중하려는 경향. 주의 시각화를 부분적으로 오도함
- BM25: 수십 년 검색 엔진 사용 고전 키워드 점수 공식. 여전히 벡터 검색과 함께 널리 존재
- 이항 인코더(Bi-encoder): 쿼리와 문서를 별도 임베드, 벡터 비교. 빠름, 정밀도 낮음. 검색에 사용
- 청크(Chunk): 검색과 재순위 매기기가 실제 작동하는 텍스트 단위(몇 백 토큰). 당신의 실제 경쟁자
- 교차 인코더(Cross-encoder): 쿼리와 문서를 함께 읽음, 하나의 관련성 점수 출력. 느림, 정확도 높음. 재순위 매기기에 사용
- [CLS] 토큰: 특수 요약 토큰 BERT 가족이 입력 앞에 추가, 분류 헤드가 최종 점수 읽음
- 증류(Distillation): 작은 모델이 큰 모델을 모방하도록 훈련. MiniLM, TinyBERT는 이렇게 만들어짐
- 임베딩(Embedding): 텍스트 의미를 나타내는 숫자 목록, 유사한 의미가 수학적으로 가까움
- 후기 상호작용(Late Interaction): ColBERT 방식: 토큰 별도 임베드(빠른 인덱싱), 토큰-대-토큰 쿼리 시간 매칭(정확도)
- 로짓(Logit): 시그모이드나 소프트맥스 전 모델 원점수. 부호와 척도는 모델과 작업 내에만 의미
- MaxSim: ColBERT 점수 규칙: 각 쿼리 토큰이 최고 일치 문서 토큰 선택, 유사도 합계
- MS MARCO: 마이크로소프트 실제 Bing 쿼리와 인간 관련성 라벨 데이터세트. 거의 모든 고전 재순위 매기기 훈련 장
- 마스크 언어 모델링(Masked Language Modeling): BERT 문제 채우기 사전 훈련
- 재순위 매기기(Reranker): 검색된 패시지 단편 목록을 쿼리 대상으로 다시 평가하는 모델. 인용 문지기
- RRF(상호 순위 융합): 여러 순위 목록 병합 간단 공식, 여러 곳에서 높게 순위된 항목에 보상
- 시그모이드(Sigmoid): 숫자를 0~1로 매핑하는 함수. 결과는 확률처럼 보이나 데이터에서 검증되지 않으면 보정된 인용 확률이 아님
- SPLADE: 텍스트를 가중 어휘 항으로 확장하는 희소 모델, 점수가 항별로 정확히 분해됨