Дизайн 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)