К обычному разбору
Тренировка по собеседованиюТехническое собеседованиеSolmate / TAVAX2026-02-13

Solmate / TAVAX: fintech support bot, Python и LLM inference

Идите сверху вниз: сначала попробуйте сами, затем откройте разбор. Если шаг с кодом, пишите решение прямо здесь и запускайте проверки на странице.

Шагов
4
Вопросов
4
Задач
0
1Кейс15 мин

RAG support bot для fintech-продукта

Нужно построить support bot для fintech-приложения. Какие компоненты нужны и как снизить риск неправильного ответа?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Нужны knowledge base, retrieval, answer generation with citations, escalation, policy guardrails, feedback loop и мониторинг unsafe answers.

Подробный разбор

Для support bot сначала определяем scope: какие вопросы бот может решать сам, какие обязан эскалировать оператору. Knowledge base индексируется для retrieval, документы версионируются, а ответ должен ссылаться на источники или хотя бы сохранять evidence.

В fintech нельзя отвечать свободно на любые темы. Нужны policy rules: запрет на финансовые советы вне разрешенного scope, проверка персональных данных, authentication/authorization, escalation для спорных случаев. Retrieval должен работать только по актуальным и разрешенным документам.

Production loop: логируем вопросы, retrieved docs, answer, feedback, escalation reason. На основе ошибок улучшаем документы, retrieval и prompts.

Типичные ошибки

  • Считать, что RAG автоматически делает ответ безопасным.
  • Не отделить FAQ от account-specific actions.
  • Не иметь human escalation.

Как сказать на собеседовании

  • Подчеркни fintech risk и policy guardrails.
  • Добавь citations/evidence и feedback loop.
2Вопрос8 мин

Private attributes и name mangling в Python

Что означают _attr и __attr в Python class, и чем convention отличается от name mangling?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

_attr - convention: internal use. __attr запускает name mangling в _ClassName__attr, чтобы снизить риск случайного override.

Подробный разбор

В Python нет настоящих private fields как в некоторых языках. Один underscore _name - соглашение: это internal implementation detail, но доступ технически открыт.

Два underscores __name включают name mangling: внутри класса атрибут превращается примерно в _ClassName__name. Это помогает избежать случайного конфликта имен в subclass, но не является security boundary.

Trailing double underscores вроде __init__ - отдельный случай: dunder methods, специальные протоколы Python.

Типичные ошибки

  • Считать `__attr` настоящей приватностью.
  • Путать `_attr`, `__attr` и `__dunder__`.
  • Использовать name mangling без необходимости.

Как сказать на собеседовании

  • Скажи convention vs name mangling.
  • Подчеркни, что это не защита данных.
3Вопрос10 мин

Temperature, top-k, top-p и max length в LLM generation

Объясните основные параметры генерации LLM: temperature, max length, top-k и top-p. Как они влияют на ответы support bot?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Temperature управляет остротой распределения, top-k/top-p ограничивают множество кандидатов, max length ограничивает длину ответа.

Подробный разбор

Temperature меняет распределение вероятностей следующего токена: низкая temperature делает ответы более детерминированными, высокая повышает разнообразие и риск странных формулировок. Для support bot обычно нужна низкая или умеренная temperature.

Top-k оставляет только k наиболее вероятных токенов. Top-p оставляет минимальное множество токенов, суммарная вероятность которого достигает p. Эти методы ограничивают sampling tail.

Max length ограничивает число генерируемых токенов. Для support bot это защита от слишком длинных ответов и runaway generation, но слишком маленький лимит может обрезать важную инструкцию.

Типичные ошибки

  • Думать, что высокая temperature улучшает factual accuracy.
  • Путать top-k и top-p.
  • Не связывать параметры с продуктовым риском.

Как сказать на собеседовании

  • Для support bot скажи low temperature.
  • Объясни top-p как nucleus sampling.
4Вопрос8 мин

Зачем нужен `torch.no_grad()` на inference

В PyTorch inference код часто оборачивают в torch.no_grad(). Что это дает и когда это важно?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

no_grad() отключает построение autograd graph, снижает память и overhead на inference, где gradients не нужны.

Подробный разбор

Во время training PyTorch сохраняет промежуточные значения, чтобы потом посчитать gradients. На inference gradients не нужны, поэтому построение autograd graph только тратит память и время.

torch.no_grad() говорит PyTorch не отслеживать операции для autograd. Это особенно важно для больших моделей, batch inference и production service, где memory footprint влияет на throughput.

Для новых версий PyTorch есть еще torch.inference_mode(), который может быть еще эффективнее, но имеет более строгие ограничения.

Типичные ошибки

  • Думать, что `no_grad()` меняет веса модели.
  • Забывать `model.eval()` для dropout/batchnorm.
  • Использовать `no_grad()` во время training step.

Как сказать на собеседовании

  • Свяжи no_grad с memory и autograd graph.
  • Упомяни `model.eval()` как отдельную вещь.