semantic-search

3 개의 포스트

Dash가 더 스마트한 AI를 위해 (새 탭에서 열림)

Dropbox Dash는 단순한 검색 시스템을 넘어 사용자의 의도를 이해하고 실행하는 에이전트형 AI로 진화하면서, 모델에 제공되는 정보를 정교하게 관리하는 '컨텍스트 엔지니어링'을 핵심 전략으로 채택했습니다. 단순히 많은 정보를 제공하는 것이 아니라 모델이 추론하고 행동하는 데 꼭 필요한 정보만을 선별하여 전달함으로써, AI의 '분석 마비' 현상과 토큰 낭비를 방지했습니다. 결과적으로 이러한 전략적 컨텍스트 관리는 모델의 판단 속도와 작업 정확도를 동시에 높이는 성과를 거두었습니다. ### 도구 정의의 최소화와 통합 인터페이스 구축 * 모델에게 너무 많은 API 호출 선택지를 주면 판단 속도가 느려지고 정확도가 떨어지는 현상이 발생했습니다. 이를 해결하기 위해 개별 서비스(Confluence, Jira, Google Docs 등)의 검색 도구를 하나로 묶은 '유니버설 검색 인덱스' 기반의 단일 도구를 구축했습니다. * Model Context Protocol(MCP)을 활용하여 도구 설명을 간결하게 유지함으로써, 모델의 컨텍스트 창(Context Window)이 사용자 요청이라는 본연의 목적에 더 많이 할애되도록 설계했습니다. * 하나의 일관된 인터페이스를 통해 정보를 검색하게 함으로써 모델의 계획 수립 과정을 단순화하고 효율성을 극대화했습니다. ### 지식 그래프를 통한 맥락적 데이터 필터링 * 단순히 여러 API에서 데이터를 가져오는 것에 그치지 않고, 검색된 결과 중 가장 관련성 높은 정보만 모델에 전달되도록 필터링 시스템을 강화했습니다. * 통합 인덱스 위에 사람, 활동, 콘텐츠 간의 관계를 연결한 '지식 그래프'를 구축하여 사용자별 맞춤형 순위 산출이 가능하게 했습니다. * 모델이 런타임에 방대한 정보를 직접 분석하는 대신, 이미 관계가 정립된 고가치 정보만 수신함으로써 추론의 질을 높이고 성능 저하를 방지했습니다. ### 복잡한 작업을 위한 전담 에이전트 도입 * 검색 쿼리 생성과 같이 복잡한 지침과 예시가 필요한 작업은 메인 모델의 컨텍스트 창을 과도하게 점유하는 문제를 일으켰습니다. * 이를 해결하기 위해 메인 에이전트는 전체적인 계획만 세우고, 구체적인 쿼리 작성은 별도의 '전담 에이전트'에게 위임하는 구조를 도입했습니다. * 역할 분담을 통해 메인 모델은 복잡한 세부 사항에 매몰되지 않고 전체 작업의 흐름에 집중할 수 있으며, 각 에이전트는 자신에게 할당된 컨텍스트 내에서 최적의 결과를 도출합니다. 효과적인 에이전트형 AI를 구축하기 위해서는 무조건 많은 데이터를 입력하기보다 모델이 처리해야 할 정보의 양과 질을 전략적으로 제어해야 합니다. 도구의 통합, 지식 그래프 기반의 정교한 필터링, 그리고 전문 에이전트로의 역할 분담은 성능 향상과 비용 절감을 동시에 달성할 수 있는 실무적인 context engineering 방안이 될 것입니다.

Figma에서 AI 기반 검색을 (새 탭에서 열림)

피그마의 AI 검색 인프라는 수십억 개의 디자인 레이어를 실시간으로 처리하고 의미론적으로 검색할 수 있도록 구축되었습니다. 대규모 벡터 데이터베이스와 멀티모달 임베딩 모델을 결합하여 단순 텍스트 매칭을 넘어 시각적 유사성을 기반으로 한 검색 경험을 제공합니다. 이 시스템은 데이터 프라이버시를 엄격히 준수하면서도 디자인 파일의 빈번한 수정을 즉각적으로 검색 결과에 반영하는 고성능 데이터 파이프라인을 핵심으로 합니다. **멀티모달 임베딩을 통한 디자인의 수치화** * 디자인 파일 내의 레이어, 텍스트, 이미지를 고차원 벡터로 변환하기 위해 멀티모달 임베딩 모델(예: CLIP 변형 모델)을 사용합니다. * 단순한 시각적 특징뿐만 아니라 디자인의 구조적 맥락과 텍스트 정보를 함께 학습하여 "로그인 페이지", "네비게이션 바"와 같은 추상적인 검색어에도 정확한 결과를 반환합니다. * AWS SageMaker를 활용해 모델 추론을 확장 가능하게 관리하며, 다양한 해상도의 이미지 자산을 효율적으로 처리하기 위한 전처리 과정을 포함합니다. **실시간 변경 사항을 반영하는 증분 인덱싱 파이프라인** * 피그마 디자인은 수시로 수정되기 때문에, 전체 데이터를 다시 인덱싱하는 대신 변경된 부분만 업데이트하는 증분(Incremental) 업데이트 방식을 채택했습니다. * 사용자가 디자인을 수정하면 해당 이벤트가 Kafka를 통해 실시간 스트리밍되며, Flink와 같은 처리 엔진을 거쳐 즉시 벡터 데이터베이스에 반영됩니다. * 이 과정을 통해 수만 명의 사용자가 동시에 작업하는 환경에서도 검색 결과와 실제 디자인 사이의 시차를 최소화합니다. **벡터 데이터베이스와 하이브리드 검색 최적화** * 대규모 벡터 검색을 위해 Pinecone과 같은 전문 벡터 데이터베이스를 활용하여 밀집 벡터(Dense Vector) 검색을 수행합니다. * 단순히 유사도만 측정하는 것이 아니라, 파일 이름, 생성 날짜, 프로젝트 위치 등 구조화된 메타데이터를 함께 필터링하는 하이브리드 검색 방식을 사용합니다. * 검색 성능을 높이기 위해 사용자별, 팀별로 데이터를 논리적으로 분할하여 검색 범위를 최적화하고 응답 속도를 밀리초(ms) 단위로 유지합니다. **엄격한 권한 관리와 데이터 격리** * AI 검색 결과는 피그마의 복잡한 권한 체계(Permissions)를 완벽히 준수해야 하므로, 검색 요청 시 실시간으로 사용자의 접근 권한을 확인하는 레이어가 포함됩니다. * 인덱싱 단계에서부터 각 벡터에 조직 및 파일 식별자(ID)를 메타데이터로 부여하여, 사용자가 접근할 수 없는 디자인 데이터가 검색 결과에 노출되는 것을 원천 차단합니다. * 데이터 보안을 위해 테넌트(Tenant) 간 데이터 격리를 보장하며, 모델 학습과 추론 과정에서도 민감한 정보가 유출되지 않도록 설계되었습니다. 피그마와 같이 데이터 업데이트가 빈번하고 권한 체계가 복잡한 환경에서 AI 검색을 구현하려면, 단순히 성능 좋은 모델을 사용하는 것을 넘어 실시간 데이터 파이프라인과 메타데이터 필터링 시스템을 정교하게 결합하는 것이 필수적입니다. 효율적인 비용 관리와 낮은 지연 시간을 동시에 달성하고자 하는 팀에게 피그마의 증분 인덱싱 및 하이브리드 검색 아키텍처는 훌륭한 벤치마킹 사례가 될 것입니다.

피그마 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의 경우 프레임 단위의 계층 구조)을 모델이 어떻게 학습하게 할지 고민하는 과정이 실제 사용자 경험의 차이를 만듭니다.