information-retrieval

7 개의 포스트

GitHub Enterprise Server에서 고가용성을 (새 탭에서 열림)

제공해주신 내용은 GitHub의 검색 엔지니어 데이비드(David)의 약력으로 확인됩니다. 그가 주도적으로 작성한 **GitHub의 새로운 코드 검색 엔진인 'Blackbird'의 기술적 설계와 아키텍처**에 관한 블로그 글을 바탕으로 요약해 드립니다. 깃허브는 기존 검색 엔진의 한계를 극복하고 수십억 개의 파일에 대해 전례 없는 속도와 정확도를 제공하기 위해 Rust 기반의 새로운 검색 엔진 'Blackbird'를 자체 구축했습니다. 일반적인 텍스트 검색과 달리 코드의 특성을 깊이 있게 이해해야 하는 요구사항을 충족하기 위해, 인프라 계층부터 랭킹 알고리즘까지 모든 과정을 코드 검색에 최적화된 방식으로 재설계했습니다. 이를 통해 깃허브는 대규모 코드베이스에서 복잡한 쿼리를 밀리초 단위로 처리할 수 있는 강력한 검색 경험을 구현했습니다. **기존 범용 검색 엔진의 한계** * Elasticsearch와 같은 기존의 범용 엔진은 대규모 코드 검색에서 발생하는 특수 문자 처리와 정규 표현식 쿼리에 최적화되어 있지 않습니다. * 코드 데이터의 양이 기하급수적으로 늘어남에 따라 기존의 N-gram 인덱싱 방식은 인덱스 크기가 너무 커져 저장 비용과 검색 성능 면에서 효율성이 급격히 떨어지는 문제를 겪었습니다. * 다양한 프로그래밍 언어의 구문과 구조를 이해하지 못하는 일반적인 정보 검색 방식으로는 개발자가 원하는 정확한 검색 결과를 도출하는 데 한계가 있었습니다. **Blackbird: 코드 특화 검색 엔진 아키텍처** * **Rust 기반의 고성능 설계**: 시스템의 안정성과 메모리 효율성을 극대화하기 위해 Rust 언어를 사용하여 엔진을 밑바닥부터 직접 구현했습니다. * **Sparse N-gram 인덱싱**: 모든 데이터를 인덱싱하는 대신 유의미한 코드 패턴을 효율적으로 찾는 '희소(Sparse)' 인덱스 기술을 도입하여 인덱스 크기를 획기적으로 줄였습니다. * **Content-addressable Storage**: 코드의 중복을 제거하고 데이터 무결성을 보장하기 위해 콘텐츠 주소 지정 저장 방식을 사용하여 수 페타바이트의 데이터를 효율적으로 관리합니다. **샤딩 및 분산 처리 전략** * 수십억 개의 파일을 수천 개의 샤드(Shard)로 분할하여 관리하며, 각 샤드는 독립적으로 쿼리를 처리할 수 있도록 설계되었습니다. * 쿼리가 들어오면 오케스트레이터가 관련 있는 샤드들에 작업을 분산시키고 결과를 취합하는 분산 컴퓨팅 구조를 통해 동시 사용자가 많아도 낮은 지연 시간을 유지합니다. * 특정 리포지토리의 가시성 변화나 코드 수정 사항이 실시간에 가깝게 검색 결과에 반영될 수 있도록 고안된 파이프라인을 갖추고 있습니다. **관련성(Relevance) 엔지니어링** * 단순한 키워드 일치를 넘어 코드의 품질, 해당 리포지토리의 별(Star) 개수, 최근성 등을 종합적으로 고려한 랭킹 알고리즘을 적용했습니다. * 사용자의 의도를 파악하여 함수 정의, 변수 사용처 등 코드의 구조적 맥락을 반영한 검색 결과를 상단에 배치합니다. 대규모 시스템에서 범용 솔루션이 성능의 병목이 될 때, 도메인 특화(Domain-specific) 엔진을 직접 설계하고 구현하는 것이 서비스의 질을 한 단계 높이는 결정적인 차별점이 될 수 있음을 보여줍니다. 코드와 같이 특수한 구조를 가진 데이터를 다룰 때는 그 데이터의 본질에 맞춘 인덱싱 기법과 언어 선택이 성능 최적화의 핵심입니다.

학술 논문 및 에 (새 탭에서 열림)

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 리스트)별 전용 지표를 설정하거나, 텍스트와 이미지를 통합한 다중 모달 임베딩을 구축하는 접근 방식은 유사한 도메인의 엔지니어들에게 실무적인 영감을 제공합니다.

사용자 피드백을 바탕으로 (새 탭에서 열림)

페이스북 릴스(Facebook Reels)는 단순한 '좋아요'나 시청 시간 같은 지표를 넘어, 사용자 피드백을 직접 활용하여 개인화된 추천 시스템의 성능을 대폭 개선했습니다. 새롭게 도입된 UTIS(User True Interest Survey) 모델은 사용자의 실제 관심사를 정밀하게 파악함으로써 니치(Niche)한 고품질 콘텐츠의 노출을 늘리고 사용자의 만족도와 유지율을 높이는 데 성공했습니다. 결과적으로 이번 연구는 암묵적인 행동 데이터와 명시적인 사용자 설문을 결합했을 때 추천 시스템의 장기적인 가치가 어떻게 극대화될 수 있는지를 보여줍니다. **기존 행동 지표의 한계와 진정한 관심사 측정** * 기존의 추천 시스템은 시청 시간이나 공유와 같은 행동 신호에 의존하지만, 이러한 데이터는 노이즈가 많고 사용자의 장기적인 만족도를 완전히 반영하지 못하는 한계가 있습니다. * 조사 결과, 기존의 휴리스틱 기반 관심사 파악 방식은 실제 사용자의 관심사를 식별하는 데 있어 정밀도가 48.3%에 불과한 것으로 나타났습니다. * 페이스북은 단순한 주제 정합성을 넘어 오디오, 제작 스타일, 분위기 등 사용자가 체감하는 다양한 차원을 측정하기 위해 대규모 실시간 설문을 피드 내에 도입했습니다. **UTIS(User True Interest Survey) 모델 프레임워크** * 매일 무작위로 선정된 사용자에게 "이 영상이 당신의 관심사와 얼마나 일치합니까?"라는 질문을 1~5점 척도로 제시하여 실시간 피드백을 수집합니다. * 수집된 설문 데이터는 노이즈를 줄이기 위해 이진화(Binarized) 처리를 거치며, 샘플링 편향을 보정하기 위해 가중치를 적용하여 학습 데이터셋으로 구축됩니다. * 메인 랭킹 모델의 예측값을 입력 피처로 사용하는 경량화된 '인지 레이어(Perception Layer)'를 설계하여, 희소한 설문 데이터를 전체 추천 시스템에 일반화할 수 있도록 구현했습니다. **추천 시스템 파이프라인으로의 통합** * **지연 단계 랭킹(Late Stage Ranking, LSR):** UTIS 모델의 점수를 최종 랭킹 공식의 추가 피처로 투입하여, 관심사 일치도가 높은 영상에는 가산점을 주고 낮은 영상은 순위를 낮추는 정밀 조정을 수행합니다. * **초기 단계 랭킹(Retrieval):** 설문 데이터를 집계하여 사용자의 진정한 관심사 프로필을 재구축하고, 이를 기반으로 후보군을 추출합니다. 또한 지식 증류(Knowledge Distillation) 기법을 활용해 LSR의 UTIS 예측값을 검색 모델 학습에 반영합니다. * 이러한 다단계 통합을 통해 단순 인기 기반의 저품질 콘텐츠 추천은 줄이고, 사용자 개인에게 최적화된 고품질 니치 콘텐츠의 비중을 높였습니다. **성과 및 실용적 함의** * UTIS 모델 도입 이후 리텐션(재방문율) 지표가 유의미하게 개선되었으며 좋아요, 공유, 팔로우와 같은 능동적 참여율도 상승했습니다. * 시청 시간만을 최적화할 때 발생할 수 있는 '저품질 대중 콘텐츠 도배' 문제를 해결하고, 장기적인 플랫폼 건강도를 높이는 결과를 얻었습니다. * 이번 사례는 대규모 추천 시스템을 운영할 때 사용자 행동 데이터(Implicit)와 직접적인 피드백(Explicit)을 결합한 '인지 모델'을 구축하는 것이 정교한 개인화를 위해 필수적임을 시사합니다.

엔터프라이즈 LLM 서비스 구축기 1: 컨텍스트 엔지니어링 (새 탭에서 열림)

대규모 엔터프라이즈 환경에서 LLM 서비스를 구축할 때는 정교한 지시어(프롬프트 엔지니어링)보다 AI에게 필요한 정보만 선별해 제공하는 '컨텍스트 엔지니어링'이 더욱 중요합니다. LY Corporation은 260개가 넘는 API와 방대한 문서를 다루는 클라우드 AI 어시스턴트를 개발하며, 컨텍스트의 양이 늘어날수록 모델의 추론 성능이 하락하고 환각 현상이 발생하는 문제를 확인했습니다. 이를 해결하기 위해 사용자의 의도에 맞춰 필요한 도구와 가이드라인만 실시간으로 주입하는 '점진적 공개' 전략과 시스템 프롬프트의 충돌을 방지하는 '모의 도구 메시지' 기법을 도입하여 성능과 정확도를 동시에 확보했습니다. ### 컨텍스트 과부하와 성능의 상관관계 * **정보량과 성능의 반비례**: 최신 LLM은 수십만 토큰의 컨텍스트 윈도우를 지원하지만, 입력 길이가 길어질수록 핵심 정보를 찾는 능력이 최대 85%까지 급격히 하락합니다. * **노이즈로 인한 판단력 저하**: 질문과 유사해 보이지만 실제로는 관계없는 정보(노이즈)가 섞이면 모델이 당당하게 가짜 정보를 생성하는 환각 현상이 빈번해집니다. * **토큰 소모 효율성**: LLM은 이전 대화를 기억하지 못하는 스테이트리스(stateless) 구조이므로, 대화가 길어지고 API의 JSON 응답이 누적되면 64K 토큰 정도의 용량은 순식간에 소모되어 비용과 성능에 악영향을 줍니다. ### 도구 선별을 통한 컨텍스트 절약 * **선별적 로드**: 260개의 모든 API 도구를 한 번에 컨텍스트에 올리지 않고, 사용자의 질문에서 제품군(예: Redis, Kubernetes)을 먼저 식별합니다. * **도구 최적화**: 사용자가 특정 제품에 대해 물을 때만 관련된 소수의 도구(API)만 선별하여 제공함으로써 모델의 인지 부하를 획기적으로 줄입니다. ### 응답 가이드라인과 점진적 공개 전략 * **상황별 지침 주입**: "리소스 변경 시 UI 안내 우선"과 같이 특정 조건에서만 필요한 운영 지침을 '응답 가이드라인'으로 정의하고, 질문의 성격에 따라 필요한 시점에만 선택적으로 로드합니다. * **시스템 프롬프트와 가이드라인의 분리**: 모든 상황에 적용되는 '대원칙'은 시스템 프롬프트에, 특정 상황의 '행동 절차'는 가이드라인에 배치하여 관리 효율을 높입니다. ### 모의 도구 메시지(ToolMessage)를 활용한 환각 방지 * **프롬프트 충돌 문제**: 새로운 가이드라인을 단순히 시스템 프롬프트 뒤에 추가할 경우, 모델이 기존의 대원칙(예: "반드시 검색 결과로만 답변하라")을 무시하고 가이드라인에만 매몰되어 환각을 일으키는 현상이 발생했습니다. * **도구 메시지 전략**: 가이드라인을 시스템 프롬프트에 넣는 대신, 마치 검색 도구를 실행해서 얻은 결과값인 것처럼 '도구 메시지(ToolMessage)' 형식으로 주입합니다. * **전략의 효과**: 이 방식을 통해 LLM은 시스템 프롬프트의 대원칙을 준수하면서도, 주입된 가이드라인을 도구로부터 얻은 최신 정보로 인식하여 훨씬 정확하고 일관된 답변을 생성하게 됩니다. 엔터프라이즈 LLM 서비스의 핵심은 모델의 지능을 믿고 모든 데이터를 던져주는 것이 아니라, 모델이 가장 똑똑하게 판단할 수 있도록 최적의 정보만 정교하게 큐레이션하여 전달하는 설계 능력에 있습니다. 특히 복잡한 비즈니스 로직이나 사내 고유 지식을 반영해야 할 때는 시스템 프롬프트를 비대하게 만드는 대신, 도구 메시지나 동적 컨텍스트 주입 기술을 활용해 모델의 판단 체계를 보호하는 것이 실질적인 해결책이 됩니다.

Speech-to-Retrie (새 탭에서 열림)

구글 리서치는 기존의 음성-텍스트 변환 과정을 거치지 않고 음성에서 직접 정보를 찾아내는 새로운 음성 검색 엔진인 'Speech-to-Retrieval(S2R)'을 공개했습니다. 이 기술은 중간 단계인 텍스트 전사 과정에서 발생하는 오류 전파를 차단하여 검색의 속도와 신뢰성을 획기적으로 높인 것이 특징입니다. 결과적으로 사용자의 발화 의도를 더 정확하게 파악함으로써 기존 계단식(Cascade) 모델이 가진 한계를 극복하고 더 나은 검색 경험을 제공합니다. **기존 계단식 모델의 한계와 오류 전파** * 전통적인 음성 검색은 음성 인식(ASR)으로 목소리를 텍스트로 바꾼 뒤 이를 검색 엔진에 전달하는 '계단식 모델'을 사용해 왔습니다. * 이 방식은 ASR 단계에서 발생하는 미세한 소리 인식 오류가 검색 결과에 치명적인 영향을 미치는 '오류 전파(Error Propagation)' 문제에 취약합니다. * 예를 들어, 명화 "절규(The Scream)"를 검색했을 때 ASR이 이를 "Screen"으로 잘못 인식하면, 검색 엔진은 예술 작품이 아닌 스크린 페인팅 기술에 대한 엉뚱한 결과를 내놓게 됩니다. * 오디오를 하나의 텍스트 문자열로 압축하는 과정에서 문맥적 단서나 음향적 특성이 손실되는 '정보 손실' 문제도 주요한 한계로 지적됩니다. **S2R 모델의 혁신적 접근 방식** * S2R은 텍스트 전사 단계를 완전히 우회하여 음성 쿼리로부터 직접 검색 의도를 매핑하고 정보를 추출합니다. * 이는 "어떤 단어를 말했는가?"라는 질문에서 벗어나 "사용자가 찾고 있는 정보는 무엇인가?"라는 본질적인 질문에 집중하는 아키텍처의 전환을 의미합니다. * 텍스트 전사가 완벽하지 않더라도 음성 데이터 자체에 담긴 풍부한 정보를 활용하므로 검색의 정확도를 높일 수 있습니다. **성능 평가 및 데이터셋 공개** * 구글은 S2R의 성능을 평가하기 위해 17개 언어와 26개 지역의 음성 질문을 담은 'Simple Voice Questions(SVQ)' 데이터셋을 공개했습니다. * 실험 결과, 음성 인식 오류율(WER)이 낮다고 해서 반드시 검색 품질(MRR)이 높아지는 것은 아니며, 언어별로 전사 오류가 검색에 미치는 영향이 각기 다르다는 점이 확인되었습니다. * 현재의 실제 음성 인식 시스템(Cascade ASR)과 완벽한 텍스트를 가정한 시스템(Cascade Groundtruth) 사이에는 여전히 큰 성능 격차가 존재하며, S2R은 이 간극을 메우는 핵심 기술이 될 것으로 보입니다. 음성 검색의 미래는 단순한 전사(Transcription)를 넘어 직관적인 검색(Retrieval)으로 진화하고 있습니다. 개발자와 연구자들은 구글이 오픈소스로 공개한 SVQ 데이터셋을 활용해 다국어 환경에서의 검색 성능을 벤치마킹할 수 있으며, 특히 음성 인식률이 낮은 언어권에서 S2R 방식의 도입은 검색 품질을 개선하는 데 실질적인 도움이 될 것입니다.

MUVERA: 다 (새 탭에서 열림)

구글 리서치에서 발표한 MUVERA는 복잡한 멀티 벡터 검색(Multi-vector retrieval) 과정을 단일 벡터 기반의 최대 내적 탐색(MIPS) 문제로 변환하여 처리 속도를 혁신적으로 개선한 알고리즘입니다. 이 기술은 고정 차원 인코딩(FDE)을 통해 여러 개의 벡터 집합을 하나의 벡터로 압축함으로써, 멀티 벡터 모델의 높은 정확도를 유지하면서도 기존의 최적화된 단일 벡터 검색 인프라를 그대로 활용할 수 있게 해줍니다. **멀티 벡터 검색의 복잡성과 기존의 한계** * ColBERT와 같은 최신 멀티 벡터 모델은 텍스트의 각 토큰마다 별도의 임베딩을 생성하여 문맥을 정밀하게 파악하지만, 이는 처리해야 할 벡터의 양을 기하급수적으로 늘리는 결과를 초래합니다. * 멀티 벡터 간의 유사도를 측정할 때는 주로 챔퍼 유사도(Chamfer similarity)를 사용하는데, 이는 비선형적인 행렬 곱 연산이 필요하여 단일 벡터의 점곱(Dot-product) 연산보다 훨씬 많은 계산 자원을 소모합니다. * 기존의 효율적인 검색 알고리즘(공간 분할 기법 등)은 대개 단일 벡터에 최적화되어 있어, 복잡한 멀티 벡터 구조에서는 검색 속도가 데이터 규모에 비례해 느려지는 성능 병목 현상이 발생합니다. **고정 차원 인코딩(FDE)을 통한 효율화** * MUVERA의 핵심은 '고정 차원 인코딩(Fixed Dimensional Encoding, FDE)' 기술로, 여러 벡터로 구성된 데이터 포인트를 유사도 정보가 보존된 단일 벡터로 변환합니다. * 이 방식은 두 FDE 벡터 간의 내적 값이 원래 멀티 벡터 집합 간의 복잡한 유사도와 유사하도록 설계되어, 고차원적인 검색 문제를 단순한 벡터 비교 문제로 치환합니다. * 특히 이 변환 과정은 '데이터 무관(Data-oblivious)' 방식으로 작동하여 특정 데이터셋의 분포에 의존하지 않으므로, 데이터가 실시간으로 변하는 스트리밍 환경에서도 안정적으로 적용 가능합니다. **MUVERA의 3단계 검색 프로세스** * **FDE 생성 및 인덱싱**: 문서 내의 멀티 벡터 집합을 단일 FDE 벡터로 변환하고, 이를 표준 MIPS 솔버를 사용하여 인덱싱합니다. * **MIPS 기반 1차 검색**: 쿼리가 들어오면 쿼리의 FDE를 즉시 계산한 후, 최적화된 MIPS 알고리즘을 통해 수많은 데이터 중 유사도가 높은 후보군을 하위 선형 시간(Sublinear time) 내에 빠르게 추출합니다. * **재순위화(Re-ranking)**: 추출된 소수의 후보군에 대해서만 원래의 정밀한 챔퍼 유사도를 계산하여 최종 검색 결과의 순위를 조정함으로써 정확도를 극대화합니다. 멀티 벡터 모델의 높은 검색 품질을 원하면서도 기존 단일 벡터 검색 엔진의 속도와 효율성을 포기할 수 없는 환경이라면 MUVERA가 최적의 해결책이 될 수 있습니다. 기존 MIPS 인프라를 그대로 사용하면서 모델의 성능만 업그레이드할 수 있다는 점에서 시스템 확장성 측면의 이점이 매우 큽니다.

피그마 AI 검색의 (새 탭에서 열림)

Figma는 수십억 개의 디자인 레이어 속에서 사용자가 원하는 자산을 직관적으로 찾을 수 있도록 AI 기반의 시각적 검색(Visual Search) 기능을 도입했습니다. 이 시스템은 디자인의 시각적 특징과 맥락을 수학적 벡터 값으로 변환하는 임베딩 기술을 핵심으로 하며, 이를 통해 키워드 일치 여부를 넘어선 '의미론적 검색'을 구현했습니다. Figma는 성능과 정확도, 보안이라는 세 가지 요소를 동시에 충족하기 위해 정교한 머신러닝 파이프라인과 실시간 인덱싱 아키텍처를 구축하는 데 성공했습니다. ### 시각적 의미를 포착하는 벡터 임베딩 시스템 * **CLIP 모델의 활용**: 텍스트와 이미지를 동일한 벡터 공간에 매핑하는 CLIP(Contrastive Language-Image Pre-training) 기반 모델을 사용하여, 사용자가 입력한 검색어와 디자인 프레임 간의 유사도를 측정합니다. * **디자인 특화 데이터 처리**: 일반적인 사진과 달리 디자인 파일은 복잡한 레이어 구조를 가집니다. Figma는 검색 최적화를 위해 개별 프레임을 고해상도로 래스터화(Rasterization)하여 모델이 디자인의 시각적 요소를 정확히 이해하도록 학습시켰습니다. * **다국어 지원 및 시각적 검색**: 벡터 공간 내에서 유사도를 계산하므로, 특정 언어에 구속되지 않고 전 세계 사용자의 쿼리를 처리할 수 있으며 유사한 디자인 스타일을 찾는 이미지 기반 검색도 가능해졌습니다. ### 대규모 데이터 처리를 위한 검색 파이프라인 * **실시간 인덱싱 아키텍처**: 사용자가 디자인을 수정할 때마다 실시간으로 검색 인덱스가 업데이트되어야 합니다. Figma는 Kafka와 같은 메시지 큐를 활용해 디자인 변경 사항을 감지하고, 이를 비동기적으로 처리하여 벡터 데이터베이스에 반영합니다. * **효율적인 데이터 샘플링**: 수조 개에 달하는 레이어 전체를 인덱싱하는 대신, 의미 있는 단위인 '프레임'과 '컴포넌트'를 중심으로 인덱싱하여 저장 공간을 절약하고 검색 효율을 극대화했습니다. * **벡터 데이터베이스 운용**: 고차원 벡터 검색을 빠르게 수행하기 위해 전문적인 벡터 DB 솔루션을 도입하여, 수 밀리초(ms) 내에 수십억 개의 후보군 중 가장 유사한 결과를 반환하도록 설계했습니다. ### 보안과 권한 관리를 고려한 검색 설계 * **엄격한 테넌트 격리**: 기업 고객의 데이터 보안을 위해 각 조직의 데이터는 논리적으로 완전히 격리됩니다. AI 모델은 공유될 수 있지만, 검색 결과는 철저히 사용자가 접근 권한을 가진 범위 내에서만 노출됩니다. * **사후 필터링(Post-filtering) 메커니즘**: 벡터 검색 결과가 나오면, 시스템은 즉시 사용자의 권한(RBAC)을 확인하여 접근할 수 없는 파일은 결과에서 제외합니다. 이는 속도와 보안 사이의 균형을 맞추기 위한 핵심적인 단계입니다. * **개인정보 보호**: 학습 및 검색 과정에서 민감한 정보를 보호하기 위해 데이터 비식별화 처리를 거치며, 사용자가 자신의 데이터가 AI 학습에 활용될지 여부를 직접 선택할 수 있는 옵션을 제공합니다. 효과적인 AI 검색 시스템 구축을 위해서는 고성능 모델 못지않게 데이터의 권한 관리와 실시간 동기화 인프라가 중요합니다. 단순히 벡터 DB를 도입하는 것에 그치지 않고, 자사 서비스의 데이터 특성(Figma의 경우 프레임 단위의 계층 구조)을 모델이 어떻게 학습하게 할지 고민하는 과정이 실제 사용자 경험의 차이를 만듭니다.