This is basically five system design questions stapled together.
Start by clarifying requirements and scale, then walk through the end-to-end pipeline from ingestion to search, making explicit trade-offs at each stage (e.g., synchronous vs. asynchronous processing, model choice, storage tiering). Emphasize idempotency, backfills, and cost controls as first-class concerns, and tie privacy considerations to Adobe's enterprise context.
Pro tip: Treat model updates as a versioned, replayable pipeline: store raw files and processing metadata so you can re-embed without re-uploading, and use shadow deployments to validate new models before switching. This shows you think about long-term operability, not just the happy path.
Ask about scale (files/day, size limits), latency expectations, supported modalities, privacy/compliance needs, and budget. This shapes architecture choices like synchronous vs. batch processing and storage tiers.
Define an API that accepts uploads, validates, and stores raw files in object storage (e.g., S3) with metadata in a database. For each modality, outline preprocessing: text extraction/chunking for documents, resizing/normalization for images, frame sampling/transcoding for videos.
Choose modality-specific embedding models (e.g., CLIP for images, Sentence-BERT for text, VideoMAE for video) and explain batching strategies to maximize GPU utilization. Describe a queue-based scheduler with priority and autoscaling to handle variable load.
Store embeddings in a vector database (e.g., FAISS, Milvus, Pinecone) with metadata for filtering. Explain index type (HNSW, IVF) and trade-offs between recall, latency, and cost. Include deduplication via hashing or near-duplicate detection.
Implement idempotent processing with retries and dead-letter queues. For model updates, version embeddings and run backfills as batch jobs. Monitor pipeline health, embedding drift, and costs; enforce privacy via encryption, access controls, and data retention policies.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.