배달과 이동 / 차량 호출과 배달
Uber: 음식 배달 검색 고도화
- 기업
- Uber
- 국가
- 미국
- 도입 상태
- 운영
- 자료 공개
- 날짜 기준
- 자료 발표 시점. 도입 시작일과 다를 수 있음
- 근거 확인 방법
- 원문 본문 열람
업무 문제
Uber Eats에서 검색은 주문으로 가는 주된 통로다. 글자를 맞춰 보는 기존 방식은 같은 뜻의 다른 말, 오타, 줄임말, 여러 언어가 섞인 질의, 뜻이 여럿인 단어에서 무너진다. 원문은 글자 기반 방법이 문자열을 볼 뿐 뜻을 보지 못한다고 적었다. 그래서 질의와 문서를 벡터로 바꿔 뜻으로 찾는 구조가 필요했다.
적용한 기술과 데이터
질의와 문서를 따로 인코딩하는 two-tower 구조다. 질의 임베딩은 온라인 서비스가 실시간으로 만들고, 문서 임베딩은 예약된 batch 작업이 미리 만든다. 바탕 모델은 Qwen 계열이며 Uber Eats 내부 데이터로 추가 학습했다. 한 모델이 모든 업종과 시장을 함께 맡는다. MRL 기반 infoNCE 손실로 학습해 한 모델이 여러 크기의 임베딩을 낸다. 색인은 Apache Lucene Plus의 HNSW 그래프이며 float32와 int8 벡터를 함께 담는다. 지역, 도시, 문서 종류, 배송 방식 같은 조건으로 먼저 걸러낸 뒤 근사 최근접 검색을 돌린다. 2주마다 다시 학습하고 색인을 다시 만드는데, 색인을 따로 두지 않고 한 색인 안에서 열 단위로 blue와 green을 나눠 바꾼다. 배포 전에는 문서 수 대조, 바뀌지 않아야 할 열의 바이트 단위 일치, 실제 질의를 재생해 얻은 재현율 비교를 통과해야 한다. 운영 중에는 표본 요청으로 질의 모델과 색인 열의 모델 번호가 맞는지 확인하고, 어긋남이 이어지면 모델 배포를 자동으로 되돌린다.
성과
원문은 조각별 후보 수를 1,200에서 200 수준으로 낮춰 지연을 34% 줄이고 CPU를 17% 아꼈으며 재현율 영향은 거의 없었다고 밝혔다. int7 스칼라 양자화는 fp32 대비 지연을 50% 넘게 줄이면서 재현율 0.95 이상을 지켰다. 임베딩을 256차원으로 잘라 쓰면 영어와 스페인어에서 품질 손실이 0.3% 아래였고 저장 공간은 약 50% 줄었다. 회사는 이 구조가 식당, 식료품, 소매 검색을 함께 담당하며 예약된 갱신이 실제 이용자 요청을 끊지 않고 돈다고 밝혔다.
한계와 남은 과제
원문에 실제 이용자를 나눠 비교한 실험 결과가 없다. 주문 전환이나 클릭 변화 같은 사업 지표는 밝히지 않았다. 제시된 수치는 오프라인 평가와 기반 구조 성능 측정값이다. 도입을 시작한 시점도 원문에 없다.
출처
공개된 자료를 정리한 사례입니다. ATF Works 도입 고객의 결과가 아닙니다.