Skip to content

Дизайн AI-систем

English · Русский · AI Interview Atlas › Темы

Сквозной дизайн AI-продуктов и платформ, рассказанный вслух: требования, компромиссы и сценарии отказа.

На этой странице: Оба трека (5) · AI-инженерия (11)

Оба трека

  • Спроектируйте помощника по десяти миллионам корпоративных документов с индивидуальными правами и постоянно меняющимся корпусом.
    • System design · Где спрашивали: Amazon †, Databricks †, Microsoft †, OpenAI † · ✍ Ответ · Предложить правку
    • Что проверяет: Умение связать загрузку, поиск, контроль доступа и обслуживание в рабочую систему.
    • Сильный ответ покрывает:
      • Уточнить объём запросов, свежесть и семантику прав до расчёта мощности.
      • Разделить загрузку и версии индекса с проверкой прав и поиском во время запроса.
      • Оценить обоснованность ответов и проверить отзыв прав, устаревание и частичные отказы.
    • Читать: Document-level access control (Microsoft Learn) · Contextual Retrieval in AI Systems (Anthropic)
  • Спроектируйте агента поддержки, который выполняет сервисные действия и при необходимости передаёт обращение человеку.
    • System design · ✍ Ответ · Предложить правку
    • Что проверяет: Учёт полномочий исполнения и передачи человеку в архитектуре.
    • Сильный ответ покрывает:
      • Связать поддерживаемые обращения с явными инструментами и границами разрешений.
      • Использовать наблюдаемые исходы операций и состояние обращения против повторных действий.
      • Задать условия эскалации и передавать контекст для продолжения человеком.
    • Читать: Building Effective AI Agents (Anthropic) · Writing effective tools for AI agents—using AI agents (Anthropic)
  • Спроектируйте модерацию, сочетающую специализированные классификаторы и LLM при ограничениях задержки и нагрузки на проверяющих.
    • System design · Где спрашивали: Meta † · ✍ Ответ · Предложить правку
    • Что проверяет: Учёт классов риска, эскалации и ошибочных решений в дизайне.
    • Сильный ответ покрывает:
      • Определить классы риска по вреду, с отдельным допуском на ошибочное удаление и пропуск нарушения для каждого.
      • Построить каскад: быстрые классификаторы на всё, LLM на зону неопределённости, люди на тяжёлые спорные случаи.
      • Задать пороги по классам по измеренным точности и полноте, отслеживая очередь проверяющих, апелляции и отмены.
    • Читать: A Holistic Approach to Undesired Content Detection in the Real World (Markov et al., arXiv) · Llama Guard: LLM-based Input-Output Safeguard for Human-AI Conversations (Inan et al., arXiv)
  • Спроектируйте LLM gateway с маршрутизацией, failover, кешированием, лимитами запросов и обязательными бюджетами.
    • System design · Где спрашивали: Palantir †, Perplexity † · ✍ Ответ · Предложить правку
    • Что проверяет: Умение сохранить контракт сервиса при различиях и отказах провайдеров.
    • Сильный ответ покрывает:
      • Описать возможности провайдеров и унифицировать только совместимую семантику.
      • Проверять квоты и бюджеты клиентов до отправки, включая повторы.
      • Задать границы failover при частично переданном ответе и вызовах с побочными эффектами.
    • Читать: Scaling your API with rate limiters (Stripe) · Designing robust and predictable APIs with idempotency (Stripe)
  • Спроектируйте безопасный API доступа к моделям для разработчиков: аутентификация, квоты, потоковые ответы и обратная совместимость.
    • System design · Где спрашивали: Anthropic † · ✍ Ответ · Предложить правку
    • Что проверяет: Понимание endpoint модели как долгосрочного платформенного контракта.
    • Сильный ответ покрывает:
      • Аутентифицировать по ключу с областями доступа и считать токены и параллельность, а не только запросы.
      • Отдавать поток инкрементально с идентификаторами запроса и определить поведение клиента при обрыве.
      • Развивать контракт аддитивно: версионирование, окна устаревания и опубликованные лимиты.
    • Читать: Scaling your API with rate limiters (Stripe)

AI-инженерия

  • Спроектируйте coding assistant для репозитория: от индексации и сборки контекста до применения изменений и проверки результата.
    • System design · Предложить правку
    • Что проверяет: Умение связать контекст кода, безопасные изменения и проверку задачи.
    • Сильный ответ покрывает:
      • Решить, как находится контекст: граф символов и поиск по запросу или заранее построенный индекс эмбеддингов.
      • Применять правки как diff к той версии файла, которую прочитали, в изолированной рабочей копии и с ревью пользователя.
      • Замкнуть цикл сборкой, линтерами и тестами самого репозитория; оценивать на исторических задачах с известными исправлениями.
    • Читать: Effective context engineering for AI agents (Anthropic) · Building Effective AI Agents (Anthropic)
  • Спроектируйте семантический поиск по большому каталогу товаров с оценкой релевантности и быстро меняющимися остатками.
    • System design · Предложить правку
    • Что проверяет: Умение сочетать смысловую релевантность с ограничениями каталога.
    • Сильный ответ покрывает:
      • Сочетать лексическое совпадение для брендов, размеров и артикулов с векторным поиском для описательных запросов.
      • Не зашивать остатки и цену в эмбеддинги: применять их как жёсткие фильтры во время запроса из актуального хранилища.
      • Измерять релевантность на размеченных запросах по сегментам, а онлайн — долю пустых выдач и показов отсутствующих товаров.
    • Читать: Contextual Retrieval in AI Systems (Anthropic)
  • Спроектируйте извлечение структурированных полей из десяти миллионов сканов с возможностью проверки сомнительных результатов.
    • System design · Где спрашивали: Palantir † · ✍ Ответ · Предложить правку
    • Что проверяет: Совместный учёт качества извлечения, происхождения данных и масштабирования.
    • Сильный ответ покрывает:
      • Обрабатывать документы идемпотентными заданиями, сохраняя для каждого поля страницу, область, версию модели и уверенность.
      • Отправлять на проверку поля с низкой откалиброванной уверенностью или проваленными правилами валидации, с учётом пропускной способности проверяющих.
      • Измерять точность по каждому полю на стратифицированной контрольной выборке и возвращать исправления проверяющих в оценку.
    • Читать: Interpret and improve model accuracy and confidence scores (Microsoft Learn) · Structured outputs (Anthropic)
  • Спроектируйте запросы на естественном языке к хранилищу с тысячами таблиц: от выбора схемы до безопасного исполнения.
    • System design · Где спрашивали: Databricks †, Palantir † · ✍ Ответ · Предложить правку
    • Что проверяет: Учёт смысловой корректности и разрешений при генерации запросов.
    • Сильный ответ покрывает:
      • Отобрать небольшую схему-кандидат по метаданным каталога, утверждённым определениям метрик и проверенным примерам запросов.
      • Выполнять сгенерированный SQL только на чтение под правами самого пользователя в хранилище, с лимитами стоимости, строк и времени.
      • Сравнивать результаты с проверенными запросами на реальных вопросах и отдельно измерять полноту выбора схемы.
    • Читать: OWASP Top 10 for LLM Applications (OWASP Gen AI Security Project) · Spider 2.0: Evaluating Language Models on Real-World Enterprise Text-to-SQL Workflows (Lei et al., arXiv)
  • Спроектируйте помощника для встреч: запись, различение говорящих, публикация итогов и поручений в подключённые системы.
    • System design · Где спрашивали: Microsoft † · Предложить правку
    • Что проверяет: Умение согласовать обработку аудио, атрибуцию и надёжность интеграций.
    • Сильный ответ покрывает:
      • Разделить распознавание речи и диаризацию; сопоставлять говорящих с людьми по отдельным аудиоканалам участников, где они есть.
      • Привязывать каждое поручение к фрагменту расшифровки, исполнителю и уверенности до любой публикации.
      • Публиковать с ключом идемпотентности на каждый пункт, чтобы повторы не создавали дубли задач, и давать пользователю сначала подтвердить.
    • Читать: Robust Speech Recognition via Large-Scale Weak Supervision (Radford et al., arXiv) · Designing robust and predictable APIs with idempotency (Stripe)
  • Спроектируйте потоковый чат для сотен миллионов пользователей с планированием мощности, хранением диалогов и работой при перегрузке.
    • System design · Где спрашивали: Anthropic †, Google и Google DeepMind †, Meta †, OpenAI † · ✍ Ответ · Предложить правку
    • Что проверяет: Умение вывести решения по мощности и надёжности из предположений о масштабе.
    • Сильный ответ покрывает:
      • Оценить число потоков, спрос на токены и хранение по явным предположениям о трафике.
      • Разделить допуск запросов, планирование инференса и долговременное состояние диалога.
      • Предусмотреть запас мощности, отмену, отказ при перегрузке и восстановление после частичного сбоя.
    • Читать: Site Reliability Engineering (Google) · Efficient Memory Management for Large Language Model Serving with PagedAttention (Kwon et al., arXiv)
  • Как поддержать несколько вопросов в одном диалоге, сохраняя порядок реплик и согласованность общего контекста?
    • System design · Где спрашивали: Anthropic † · Предложить правку
    • Что проверяет: Умение явно задать согласованность параллельных обновлений диалога.
    • Сильный ответ покрывает:
      • Сначала выбрать семантику: сериализовать реплики внутри диалога или ветвить его, давая каждой ветке свой снимок.
      • Дописывать реплики с порядковым номером внутри диалога и ключом идемпотентности, отклоняя устаревшие записи.
      • Проверить на чередующихся запросах, повторах той же реплики и отменах, что история не дублируется и не перемешивается.
    • Читать: Designing robust and predictable APIs with idempotency (Stripe)
  • Спроектируйте распределённый поиск по миллиарду документов при миллионе запросов в секунду; задайте предположения о разбиении и мощности.
    • System design · Где спрашивали: Anthropic † · Предложить правку
    • Что проверяет: Умение обосновать индексацию, fan-out и хвостовую задержку расчётами.
    • Сильный ответ покрывает:
      • Оценить объём индекса на документ и нагрузку на шард, чтобы вывести число шардов и реплик.
      • Выбрать разбиение по документам или по термам, учитывая, что fan-out на все шарды усиливает хвостовую задержку.
      • Сдерживать хвосты дублирующими запросами и частичными результатами; проверить p99 при отказе шарда и переиндексации.
    • Читать: The Tail at Scale (Dean and Barroso, Google Research)
  • Спроектируйте надёжную доставку событий на webhook клиентов при тайм-аутах, повторах и недоступности получателей.
    • System design · Где спрашивали: OpenAI † · Предложить правку
    • Что проверяет: Умение точно задать гарантии доставки и обязанности получателя.
    • Сильный ответ покрывает:
      • Заявить гарантию как at-least-once без порядка и обязать получателя отсеивать дубли по стабильному id события.
      • Записывать события в надёжный outbox в той же транзакции, затем повторять с ограниченным backoff и jitter.
      • Изолировать сбойные endpoint-ы отдельными очередями, отключать после окна повторов и поддержать повторную отправку.
    • Читать: Designing robust and predictable APIs with idempotency (Stripe) · Standard Webhooks specification (Standard Webhooks)
  • Найдите слабые места архитектуры существующего продакшен-сервиса, затем спроектируйте поверх неё новую продуктовую функцию.
    • System design · Где спрашивали: LangChain † · Предложить правку
    • Что проверяет: Умение рассуждать о реальной несовершенной системе, а не о чистом листе.
    • Сильный ответ покрывает:
      • Разобрать систему в том виде, в каком она работает: путь запроса, владение данными, режимы отказа и кто её эксплуатирует.
      • Ранжировать слабые места по риску для новой функции, а не по тому, насколько некрасиво они выглядят.
      • Спроектировать функцию в существующих ограничениях, назвав минимально необходимые изменения и безопасный путь миграции.
    • Читать: Working Inside Existing Systems (Palantir Careers)
  • Спроектируйте ML-систему для продуктовой функции целиком: сформулируйте задачу и требования, разбейте её на подзадачи, спланируйте сбор данных, выберите архитектуры моделей, затем выкатите и протестируйте.
    • System design · Где спрашивали: Т-Банк ✅ · Предложить правку
    • Что проверяет: Умение выстроить ML-систему от постановки задачи до выкатки, не перескакивая сразу к модели.
    • Сильный ответ покрывает:
      • Сформулировать продуктовое решение, офлайн- и онлайн-метрики, ограничения по задержке и стоимости до выбора модели.
      • Разбить на подзадачи, спланировать источник разметки и обыграть эвристический baseline до усложнения моделей.
      • Спланировать выкатку через теневой режим или A/B-тест с мониторингом дрейфа и откатом.
    • Читать: Rules of Machine Learning (Google for Developers)

← Мультимодальность и голос · Практический кодинг →