Airbnb / llm

2 개의 포스트

airbnb

Academic Publications & Airbnb Tech: 2025 Year in Review (새 탭에서 열림)

Airbnb는 2025년 한 해 동안 KDD, CIKM, EMNLP 등 세계적인 AI 및 데이터 사이언스 학술대회에서 다수의 논문을 발표하며, 여행 및 주거 플랫폼으로서의 기술적 리더십을 공고히 했습니다. 이들은 단순히 학술적 성과에 그치지 않고 검색 알고리즘 고도화, 개인화 추천 시스템, 다중 모달(Multi-modal) 임베딩 등 실제 비즈니스 문제를 해결하기 위한 응용 머신러닝 기술에 집중했습니다. 결과적으로 이러한 연구들은 예약 전환율 향상과 수천만 달러의 추가 수익 창출이라는 실질적인 성과로 이어졌습니다. ### 검색 랭킹 및 개인화 기술 고도화 (KDD) * **교차 배치(Interleaving) 및 반사실적 평가(Counterfactual Evaluation):** 숙소 예약과 같이 전환 주기가 긴 상품의 경우 A/B 테스트 결과를 얻는 데 시간이 오래 걸립니다. 이를 해결하기 위해 실제 온라인 테스트 전 신속하게 알고리즘 성능을 예측하는 기법을 개발하여 실험 프로세스의 효율성을 높였습니다. * **극한 분류(Extreme Classification)를 통한 검색 지역 확장:** 사용자의 의도를 정밀하게 파악하기 위해 위치 검색 시 단순히 지리적 반경을 사용하는 대신, 고정밀 카테고리 기반의 위치 셀(Cell) 시스템을 도입하여 검색 정확도를 개선했습니다. ### 검색 보조 및 지도 UI 최적화 (CIKM) * **추천 시스템을 통한 검색 결과 보완:** 사용자가 지나치게 좁은 조건(필터)으로 검색하여 결과가 부족할 경우, 날짜 조정이나 편의시설 완화 등 대안적인 추천을 동적으로 제공하여 사용자 경험과 예약률을 개선했습니다. * **지도 기반 랭킹 최적화:** 전체 검색 상호작용의 80%가 발생하는 지도 UI는 기존 리스트 기반의 NDCG 지표로는 사용자 주의 집중도를 정확히 모델링하기 어렵습니다. 이에 지도 전용 NDCG 지표를 설계하고 이를 최적화하여 실제 예약 증대 효과를 거두었습니다. ### 다중 모달 데이터 활용 및 비교 쇼핑 모델링 (CIKM) * **BListing(이봉 분포 리스팅) 임베딩:** 숙소의 텍스트 정보와 사진 데이터를 대규모 언어 모델(LLM)과 이미지 모델을 통해 하나의 벡터로 통합했습니다. 이 다중 모달 임베딩 도입을 통해 수천만 달러의 점진적 수익 성장을 달성했습니다. * **비교 쇼핑 학습(Learning-to-Comparison-Shop):** 전통적인 랭킹 모델은 각 아이템을 개별적으로 평가하지만, 새로운 시스템은 사용자가 검색 결과 페이지에서 여러 아이템을 서로 비교하는 행동 자체를 모델링합니다. 이를 통해 예약 전환율을 0.6% 향상시켰습니다. ### NLP 및 대규모 언어 모델(LLM)의 실무 적용 (EMNLP) * **고객 지원 및 신뢰와 안전:** EMNLP에서는 LLM을 활용한 고객 상담 지원, 검색 및 발견 기능 강화, 플랫폼 내 신뢰 시스템 구축을 위한 최신 아키텍처와 학습 전략을 공유했습니다. * **실제 프로덕션 환경의 LLM:** 단순한 모델 성능을 넘어 대규모 서비스 환경에서 LLM을 안전하고 효율적으로 운영하기 위한 평가 체계와 오픈소스 라이브러리 활용 방안을 제시했습니다. 데이터 기반의 의사결정과 정교한 머신러닝 모델링은 복잡한 양면 시장(Two-sided Marketplace)에서 사용자 만족도를 높이는 핵심 동력입니다. 특히 사용자 경험에 직접적인 영향을 미치는 검색 UI(지도 vs 리스트)별 전용 지표를 설정하거나, 텍스트와 이미지를 통합한 다중 모달 임베딩을 구축하는 접근 방식은 유사한 도메인의 엔지니어들에게 실무적인 영감을 제공합니다.

airbnb

GraphQL Data Mocking at Scale with LLMs and @generateMock (새 탭에서 열림)

에어비앤비는 LLM과 제품 컨텍스트를 결합한 `@generateMock` 지시어를 도입하여, 수동으로 작성하던 GraphQL 모의 데이터 생성 과정을 자동화하고 혁신했습니다. 이 시스템은 단순한 랜덤 값 생성을 넘어 쿼리 정의, 스키마 주석, 그리고 디자인 목업 이미지까지 컨텍스트로 활용해 실제 서비스 환경과 매우 흡사한 타입 안정적(Type-safe) 데이터를 생성합니다. 이를 통해 개발자는 백엔드 구현을 기다리지 않고도 고품질의 데모와 테스트를 수행할 수 있으며, 쿼리 변경에 따른 모킹 데이터의 관리 부담을 획기적으로 줄였습니다. ### 기존 모킹 방식의 한계와 도전 과제 * **수동 작업의 비효율성:** 수백 줄에 달하는 GraphQL 쿼리에 대응하는 JSON 데이터를 직접 작성하고 수정하는 과정은 매우 번거롭고 실수에 취약합니다. * **병렬 개발의 병목:** 서버 스키마가 확정된 후에도 실제 API가 구현될 때까지 클라이언트 개발자는 UI 테스트를 진행하기 어려워 임시방편(하드코딩, 로컬 프록시 등)에 의존하게 됩니다. * **데이터의 동기화 문제:** 쿼리나 스키마가 진화함에 따라 수동으로 작성된 모의 데이터는 점차 실제 프로덕션 환경과 괴리가 생기며, 이는 테스트 신뢰도 저하로 이어집니다. ### @generateMock 지시어를 통한 선언적 모킹 * **지시어 기반 워크플로우:** 개발자는 `.graphql` 파일의 연산, 프래그먼트, 또는 특정 필드에 `@generateMock` 지시어를 추가하는 것만으로 모의 데이터를 정의할 수 있습니다. * **주요 파라미터 활용:** * `id`: 여러 버전의 모의 데이터를 생성할 때 식별자로 사용하며, 생성된 헬퍼 함수의 이름에 반영됩니다. * `hints`: "파리, 교토로 가는 여행 일정을 포함해달라"와 같이 LLM에게 구체적인 데이터 생성을 지시하는 자연어 가이드를 제공합니다. * `designURL`: 디자인 도구(Figma 등)의 URL을 입력하면 LLM이 실제 디자인 화면의 텍스트와 레이아웃에 부합하는 데이터를 생성합니다. * **로컬 개발 도구 통합:** 에어비앤비의 코드 생성 도구인 'Niobe'와 결합되어, 코드 생성 시 JSON 데이터와 이를 로딩하는 소스 코드(TypeScript, Swift, Kotlin)가 자동으로 빌드 아티팩트에 포함됩니다. ### LLM을 활용한 컨텍스트 중심의 데이터 생성 * **스키마 최적화 주입:** 전체 스키마를 LLM에 전달하는 대신, 해당 쿼리와 연관된 타입 및 인라인 문서 주석만을 추출하여 컨텍스트 윈도우 내에서 효율적으로 처리합니다. * **디자인 시각 정보 반영:** 내부 API를 통해 `designURL`의 스냅샷 이미지를 생성하고 이를 LLM에 전달함으로써, 실제 UI 디자인에 명시된 이름, 주소 등의 콘텐츠와 일치하는 현실적인 데이터를 얻습니다. * **수동 수정 및 보존:** 생성된 JSON 데이터는 개발자가 직접 수정할 수 있으며, 이후 다시 코드를 생성하더라도 Niobe는 사용자가 직접 수정한 내용을 지우지 않고 보존하는 지능적인 병합 기능을 제공합니다. 이러한 접근 방식은 단순히 더 나은 가짜 데이터를 만드는 것을 넘어, 프론트엔드와 백엔드 간의 의존성을 분리하고 개발 생산성을 극대화하는 데 목적이 있습니다. 대규모 GraphQL 환경을 운영하는 조직이라면 스키마 메타데이터와 LLM을 결합하여 테스트 자동화 수준을 한 단계 높이는 이 모델을 참고할 가치가 있습니다.