LLMs for Relevance: Automating High-Quality Product Relevance Labeling in Flipkart Search

Author: Amey Patil, Shreya Malani (Flipkart) | Source: blog.flipkart.tech | Published: 2026-07-31


한 줄 요약

관련성 라벨링을 SFT로 어떻게 추론하는지 가르치고 GRPO로 그 추론을 일관되고 견고하게 만드는 2단계 레시피로, 사람 어노테이터 수준을 넘으면서 비용의 일부로 몇 배 규모를 처리했다.

핵심 주장/내용

  • 수동 라벨링의 3가지 병목: 제한된 대역폭과 높은 비용(어노테이터 팀이 주당 처리할 수 있는 쿼리 수에 한계), 일관되지 않은 판정(데이터 노이즈) — 관련성은 주관적이라 두 사람이 같은 쿼리-상품 쌍을 보고 다르게 판단할 수 있고 그 불일치가 노이즈가 되어 더 약한 모델을 학습시킨다, 거친 이해 — 사람 라벨은 상품이 “Partially Relevant”라는 것만 알려주고 왜를 알려주지 않아서 같은 버킷의 두 상품을 구분하거나 검색 결과의 정확히 무엇이 잘못됐는지 진단하기 어렵다
    • 사람이 갈리는 예시: 쿼리 “Wakefit metal bed” 에 “wooden bed frame, Wakefit collection” 리스팅. 한 어노테이터는 브랜드·컬렉션명에 집중(“Wakefit — relevant!”), 다른 어노테이터는 소재에 집중(“사용자가 metal을 요청했는데 이건 wood — partially relevant”). 둘 다 방어 가능하다. 이런 모호성을 수백만 쌍에 곱하면 노이즈 많은 기반이 된다
    • 고품질 라벨이 희소해서 heuristic·semi-supervised 데이터에 의존하게 됐고, 그것은 덜 신뢰할 만하고 Quick commerce나 Conversational Search 같은 새 영역에 적응이 느리다
  • Stage I — SFT (풀이가 있는 문제집): 목표는 (Query, Product, Reasoning, Label) 의 크고 신뢰할 만한 데이터셋을 만드는 것. 최종 라벨만이 아니라 거기에 이르는 단계별 추론까지. 그 예시로 파인튜닝해 답하기 전에 소리 내어 생각하도록 학습시킨다
    • gold standard에서 시작 — 사람 어노테이터 3명이 독립적으로 라벨링하고 다수결을 gold로. 입력은 Query + 상품 상세, 출력은 짧은 추론 trace + 최종 라벨
    • 어려운 케이스도 보게 하기 — 실제 검색 데이터는 압도적으로 Relevant 상품이 많다(보통 상위에 랭크되므로 랜덤 샘플을 지배). 그것만으로 학습하면 모델이 “Irrelevant”가 어떤 건지 거의 못 보고 나쁜 매치를 거부하는 데 서툴러진다. 그래서 랜덤 샘플링 대신 쿼리마다 가능한 한 각 관련성 버킷에서 최소 하나씩 의도적으로 뽑았다 — 완벽한 매치, near-miss(Wakefit wooden bed), 명백한 불일치(metal bed-side lamp)를 나란히 보여주면 좋은 매치를 알아보는 게 아니라 선을 긋는 법을 배운다. 이 균형 잡힌 식단이 나중의 강한 거부 능력을 만들었다
    • 모델이 스스로 추론을 생성하되 안전장치 부착 — 모든 예시의 추론을 사람이 쓰는 건 비싸고 느리므로 LLM이 추론을 생성하게 하고 증명 가능하게 올바른 답으로 이어진 추론만 남긴다. “Wakefit metal bed” vs “Wakefit wooden bed”에서 (R1) “Wakefit 일치, bed 일치 → Relevant”와 (R2) “Wakefit 일치, bed 일치, 그러나 소재가 metal이 아니라 wood → Partially Relevant”를 생성하면, gold가 Partially Relevant면 R2를 남기고 R1을 버려 소재가 여기서 결정 요인이지 부차적 고려사항이 아님을 가르친다
    • 몇천에서 수백만으로 확장. 이미 e-commerce Query-Product 도메인을 잘 파악한 사내 foundation LLM에서 시작
  • Stage II — GRPO 정렬 (연습과 코칭): SFT 후 모델은 보통 올바른 라벨과 그럴듯한 설명을 낼 수 있었지만 “보통”으로는 부족하다 — SFT만 받은 모델은 취약(brittle) 해서 모호하거나 낯선 입력에서 추론이 무너진다
    • GRPO의 직관 — 별도 grader가 필요 없다: 대부분의 RL은 각 답이 얼마나 좋은지 끊임없이 추정하는 두 번째 모델(critic)을 필요로 하고 학습·운영이 비싸다. GRPO는 단순한 아이디어로 이를 우회한다 — 각 쿼리에 대해 답의 그룹을 생성하고 점수를 매긴 뒤 각 답을 자기 그룹 평균에 상대적으로 판단한다. 평균 위 답을 더 많이, 아래 답을 더 적게 내도록 모델을 밀어준다. 그룹 자체가 척도가 되므로 별도 grader 모델이 불필요
      • 같은 상품에 다섯 답을 생성했을 때 셋이 브랜드+유형+소재를 올바르게 추론해 정답에 도달하고 둘이 지름길을 타 틀리면, 셋이 그룹 평균 위이므로 모델이 그 철저한 추론 스타일 쪽으로, 지름길에서 멀어지는 쪽으로 조종된다 — 어느 것이 “최선”인지 손으로 라벨링한 적 없이
      • 학습 안정을 위해 GRPO는 모델이 Stage-I 행동에서 너무 멀리 표류하지 않도록 부드럽게 억제해 이미 가진 견고한 기반을 “잊지 않으면서” 개선하게 한다
    • 3부 reward 신호 — 올바른 답뿐 아니라 올바른 방식으로 거기 도달한 것에 보상
    • Reasoning Reward Model — 사고 방식을 위한 코치: 독립적으로 학습된 ~8B 모델이 답변 쌍과 어느 쪽이 나은지를 공부해 좋은 설명을 약한 설명보다 선호하도록 학습. 라벨이 다르면 정답인 쪽이 당연히 선호되고, 둘 다 라벨이 맞으면 더 크고 유능한 오픈소스 teacher 모델(~32B)이 어느 설명이 더 논리적·완결적·일관적인지 판단해 선호/거부 쌍을 만든다
      • 예: 둘 다 “Wakefit wooden bed”를 Partially Relevant로 맞게 라벨링했는데 A는 “완벽한 매치가 아님”이라고만 하고 B는 “브랜드가 맞고 bed이지만 사용자가 metal을 요청했고 이건 wood라 partial”이라고 한다. 둘 다 라벨은 맞았지만 B의 추론이 모델이 내재화하기를 원하는 것이고, Reasoning Reward Model이 B를 높게 점수 매기도록 학습한다
    • 순 효과: 모델이 정확하면서 동시에 잘 추론된 답으로 이동했고, 그것이 최종 정확도 이득과 사람이 신뢰하고 행동할 수 있는 설명을 만들었다

주요 수치 / 사실

  • gold 평가셋에서 3단계 정확도 +2.3%, 이진 정확도 +2.9% (사람 어노테이터 벤치마크 대비)
  • 최고 범용 프로프라이어터리 LLM을 off-the-shelf로 쓴 것보다 +12% 우수하면서 비용은 약 30%
  • 높은 rejection recall — 쿼리에 대해 보여서는 안 될 모호하고 저신뢰 상품을 안정적으로 잡아낸다 (Stage I 균형 샘플링의 보상)
  • 비즈니스가 실제로 돌리는 리포팅에서도 버틴다: 검색 팀이 품질 추적에 실제로 쓰는 NDCG 랭킹 품질 리포트를 모델 라벨로 22주치 데이터(수백만 쿼리-상품 쌍) 에 걸쳐 재생성. 자동 리포트와 수동 리포트의 차이가 1% 미만 — 팀이 이전과 같은 결정을 자동 수치로 신뢰해 내리되 이제 지속적으로 전체 규모로 할 수 있다
  • 정확도 너머의 가치: 병목 → 상시 가용 능력(관련성 평가가 어노테이터 대역폭에 제한되어 주 단위로 측정되던 것이 온디맨드로, 수백만 쌍 규모로) / 라벨당 비용 급감(전문 어노테이터를 진짜 어려운 프론티어 케이스와 가이드라인 정의에 집중시킬 수 있게 됨) / 더 깨끗한 데이터 → 더 나은 모델 / 풍부한 고품질 학습 데이터 / 진단, 단순 채점이 아니라 — 모든 판정에 추론 trace가 따라오므로 팀이 왜 결과가 어긋났는지(카탈로그 데이터 gap인지 검색 miss인지) 보고 근본 원인을 고칠 수 있다. 거친 사람 라벨은 이것을 준 적이 없다
    • 예: 모델이 “Wakefit metal bed”의 많은 결과를 “material mismatch: wood vs metal”이라고 표기하며 Partially Relevant로 플래그하는 패턴이 카탈로그 팀에게 이 카테고리의 소재 속성이 신뢰할 수 없다는 구체적 수정 사항을 즉시 알려준다 — 단지 “여기 관련성이 좀 낮다”는 숫자가 아니라
  • 다음 단계: 멀티모달(상품 이미지가 많은 관련성 신호를 담고 있다), 실시간 서빙용 속도 — 현재 ~8B 모델은 오프라인 라벨링에는 좋지만 실시간에는 너무 느리다(>100ms). 0.5~1B로 distill하고 고급 추론 기법으로 레이턴시 감축 탐색, 새 도메인 일반화(오늘은 e-commerce 가이드라인에 튜닝되어 있고, few-shot 학습을 강화해 jobs·news 같은 새 도메인과 낯선 가이드라인에 빠르게 적응하는 범용 관련성 엔진으로)

관련 위키


Source: 원문 보기