Вопросы на собеседовании AI Engineer: 28 вопросов с ответами
На собеседовании AI Engineer проверяют, понимаете ли вы, как работают большие языковые модели и где они ошибаются, умеете ли получить от модели надёжный структурированный ответ, собрать поиск по документам (RAG) и агента с инструментами, а главное — измерить качество результата и защитить систему от злоупотреблений. Ниже — 28 вопросов с короткими ответами по семи темам, пять практических задач с кодом на Python, типичные ошибки кандидатов и план подготовки на две недели.
AI Engineer в этой статье — инженер, который строит продукты поверх готовых моделей: чат-ассистентов, поиск по базе знаний, агентов, автоматизацию процессов. Это не то же самое, что ML Engineer, который обучает и разворачивает модели, хотя на собеседованиях темы частично пересекаются. Список вопросов — авторский отбор по темам, которые повторяются в вакансиях и на технических интервью, а не рейтинг по частоте.
Примеры кода запущены на Python 3.12.2 и используют только стандартную библиотеку; вывод в комментариях — реальный. Вызовы моделей в задачах заменены простыми функциями-заглушками, чтобы код можно было запустить без ключей API. Названия моделей и цены провайдеров меняются каждые несколько месяцев, поэтому в статье их нет: проверяйте актуальные данные в документации провайдера.
Как проходит собеседование AI Engineer?
Обычно отбор состоит из тех же этапов, что и у разработчика: скрининг с рекрутером, техническое интервью, практическое задание и финальная встреча с командой. Отличие в содержании: вместо алгоритмических задач чаще дают задание, связанное с моделью, — собрать небольшой RAG, написать вызов с проверкой ответа или разобрать, почему агент ведёт себя неправильно. Состав этапов зависит от компании, уточняйте его у рекрутера.
| Этап | Что проверяют | Как готовиться |
|---|---|---|
| Скрининг с рекрутером | Опыт с LLM, мотивацию, ожидания по зарплате и формату работы, английский | Рассказ о себе и одном AI-проекте за две минуты, заранее продуманная вилка |
| Техническое интервью | Понимание LLM, RAG, агентов, оценки качества и безопасности; Python и работу с API | Проговорить вслух ответы на вопросы из этой статьи и привязать каждый к своему проекту |
| Практическое задание | Умение собрать работающий пайплайн и проверить его результат | Решить пять задач из этой статьи; для тестового — README с архитектурой, набором тестовых вопросов и результатами |
| Финальная встреча | Как вы принимаете решения, объясняете ограничения модели бизнесу, работаете в команде | Примеры: где модель ошибалась, как вы это обнаружили и что изменили |
Про зарплатные ожидания лучше говорить с цифрами под рукой: медианные зарплаты по уровням и сравнение с ML Engineer и Data Scientist собраны на странице зарплаты AI-инженеров. Что такое агент и как он устроен, подробно разобрано в статье что такое AI-агент.
Какие темы проверяют на Junior и Middle?
На уровне Junior проверяют понимание LLM, промптинга и RAG и умение написать рабочий код вокруг модели; на Middle — решения в продакшене: оценку качества, стоимость, задержку и безопасность. Граница условна: в таблице указан уровень, начиная с которого тему обычно спрашивают всерьёз.
| Тема | Что проверяют | Уровень |
|---|---|---|
| Как работают LLM | Токены, контекстное окно, параметры генерации, галлюцинации | Junior |
| Промптинг | Системные инструкции, примеры в промпте, структурированный вывод и его проверка | Junior |
| RAG | Эмбеддинги, нарезка на чанки, векторный и гибридный поиск | Junior; реранкинг и оценка поиска — Middle |
| Агенты | Вызов инструментов, цикл агента, ограничения, MCP | Junior — концепции; Middle — проектирование |
| Качество и продакшен | Наборы тестовых вопросов, логирование, стоимость, задержка, обработка ошибок API | Middle |
| Безопасность | Prompt injection, персональные данные, права инструментов | Junior — понятие; Middle — защита |
| Основы ML | Выборки, переобучение, fine-tuning | Junior |
Как работают LLM
С этого блока начинается почти любое интервью: без понимания механики модели невозможно объяснить, почему она ошибается.
Как большая языковая модель генерирует текст?
Модель получает на вход последовательность токенов и предсказывает распределение вероятностей для следующего токена. Выбранный токен добавляется к входу, и шаг повторяется, пока модель не сгенерирует признак конца или не упрётся в лимит длины. Большинство современных LLM построены на архитектуре трансформера, описанной в статье «Attention Is All You Need».
Что хотят услышать: модель не «ищет ответ в базе», а продолжает текст наиболее вероятным образом. Отсюда и её сильные стороны, и галлюцинации.
Что такое токен и почему это важно?
Токен — единица текста, с которой работает модель: слово, часть слова или знак. Длину запроса, лимит контекста и стоимость вызова считают в токенах, а не в символах. Один и тот же текст на разных языках занимает разное количество токенов, поэтому стоимость и лимиты стоит проверять на реальных данных проекта.
Что такое контекстное окно и что будет, если его превысить?
Контекстное окно — максимальное количество токенов, которое модель учитывает за один вызов: системная инструкция, история диалога, найденные документы и сам ответ. Если входа больше, API вернёт ошибку или часть текста придётся отбросить. Даже в пределах окна длинный контекст дороже, медленнее и не гарантирует, что модель заметит важную деталь в середине.
Что хотят услышать: решения для длинных данных — поиск нужных фрагментов (RAG), суммаризация истории, обрезка лишнего, а не «взять модель с окном побольше».
Что делают параметры temperature и top_p?
Оба параметра управляют случайностью выбора следующего токена. Низкая temperature делает ответы более предсказуемыми и подходит для извлечения данных и классификации; высокая — более разнообразными, что полезно для генерации идей. top_p ограничивает выбор токенами, суммарная вероятность которых не превышает заданный порог. Обычно меняют один из параметров, а не оба сразу.
Почему модель галлюцинирует и как это уменьшить?
Модель генерирует правдоподобный текст, а не проверенный факт, поэтому при нехватке знаний она может уверенно выдумать ответ. Снизить риск помогают: передача нужных фактов в контексте (RAG), инструкция отвечать только по источникам и признавать незнание, ссылки на источники в ответе, проверка формата и фактов кодом, набор тестовых вопросов для регулярной проверки.
Что такое эмбеддинг?
Эмбеддинг — вектор чисел, в который модель преобразует текст так, что близкие по смыслу тексты получают близкие векторы. Эмбеддинги используют для семантического поиска, кластеризации, поиска дубликатов и рекомендаций. Близость векторов обычно измеряют косинусным сходством — пример есть в практической задаче 2.
Промптинг и структурированный вывод
Блок о том, как получить от модели предсказуемый результат, который можно обработать кодом.
Чем системная инструкция отличается от сообщения пользователя?
Системная инструкция задаёт роль, правила и формат ответа для всего диалога; сообщения пользователя — конкретные запросы. Правила, которые не должен менять пользователь, держат в системной части. Но это не граница безопасности: модель может последовать инструкции из пользовательского текста, поэтому критичные ограничения проверяют кодом вне модели.
Что такое few-shot и когда он нужен?
Few-shot — несколько примеров «вход → ожидаемый выход» прямо в промпте. Примеры объясняют формат и стиль точнее, чем описание словами, и особенно помогают в классификации и извлечении данных. Минусы — больше токенов на каждый вызов и риск, что модель начнёт копировать особенности примеров, поэтому примеры подбирают разнообразными.
Как получить от модели ответ в формате JSON?
Описать нужную схему в инструкции и, если провайдер это поддерживает, включить режим структурированного вывода, при котором API ограничивает ответ заданной JSON-схемой. В любом случае ответ проверяют кодом: парсят, сверяют поля и типы, а при ошибке повторяют запрос с текстом ошибки или возвращают понятный отказ. Пример проверки — практическая задача 3.
Что хотят услышать: ответу модели нельзя доверять без валидации, даже если «обычно он правильный».
Когда достаточно промпта, когда нужен RAG, а когда fine-tuning?
Промпт — первый шаг: он дешёвый и быстро меняется. RAG нужен, когда модели не хватает знаний — внутренних документов, свежих данных, информации о конкретном клиенте. Fine-tuning, то есть дообучение модели на своих примерах, применяют, когда нужно закрепить формат, стиль или узкий навык, а промпт и примеры не дают стабильного результата. Новым фактам надёжнее «научить» через RAG: их проще обновлять и показывать источник.
RAG, эмбеддинги и векторный поиск
RAG — самая частая архитектура в вакансиях AI Engineer, поэтому этот блок спрашивают подробно.
Что такое RAG и из каких шагов он состоит?
RAG (Retrieval-Augmented Generation) — генерация ответа с опорой на найденные документы. Подготовка: документы режут на фрагменты (чанки), для каждого считают эмбеддинг и сохраняют в векторное хранилище. При запросе: считают эмбеддинг вопроса, находят ближайшие чанки, передают их модели вместе с вопросом и инструкцией отвечать по этим источникам.
Как выбрать размер чанка и зачем нужно перекрытие?
Слишком маленький чанк теряет контекст, слишком большой — размывает смысл эмбеддинга и тратит токены. Размер подбирают по типу документов и проверяют на тестовых вопросах; часто режут по структуре — разделам, абзацам, а не по фиксированному числу символов. Перекрытие повторяет конец предыдущего чанка в начале следующего, чтобы мысль на границе не потерялась. Код — практическая задача 1.
Чем векторный поиск отличается от полнотекстового и что такое гибридный поиск?
Полнотекстовый поиск находит совпадения слов и хорошо работает с артикулами, именами и точными терминами. Векторный ищет близость по смыслу и находит ответ, даже если слова в вопросе другие. Гибридный поиск объединяет результаты обоих подходов, чтобы не терять ни точные совпадения, ни смысловые.
Что такое реранкинг?
Реранкинг — второй этап поиска: из первых нескольких десятков кандидатов отдельная, более точная, но более медленная модель выбирает и упорядочивает самые релевантные. Так первый этап остаётся быстрым, а в контекст модели попадают лучшие фрагменты.
Как понять, что RAG работает плохо, и где искать проблему?
Ошибку делят на две части: поиск не нашёл нужный фрагмент или модель неправильно использовала найденное. Поиск проверяют отдельно: для набора вопросов заранее отмечают правильные документы и считают, в скольких случаях они попали в выдачу. Генерацию проверяют по найденным фрагментам: опирается ли ответ на источник и отвечает ли на вопрос.
Что хотят услышать: «улучшить промпт» — не первый шаг. Сначала нужно измерить, на каком этапе теряется качество.
Начать с практики AI-инструментов
На курсе AI Automation в Prog Academy разбирают промпт-инжиниринг и кастомных GPT-ассистентов, работу с NotebookLM, автоматизацию на Make и n8n, Telegram-ботов с AI, Claude Code и OpenAI Codex. Это курс по прикладной работе с AI-инструментами без программирования, а не по обучению моделей.
Программа курса AI Automation →AI-агенты и вызов инструментов
Блок о системах, где модель не только отвечает, но и выполняет действия. Подробнее о видах агентов — в статье что такое AI-агент, пошаговый пример на Python — в статье как создать AI-агента на Python.
Чем AI-агент отличается от workflow с LLM?
В workflow последовательность шагов задаёт разработчик: например, классифицировать письмо, затем извлечь данные, затем записать в CRM. В агенте модель сама решает, какой инструмент вызвать следующим и когда задача выполнена. Workflow предсказуемее, дешевле и проще в тестировании, поэтому агента выбирают, когда шаги заранее неизвестны.
Что хотят услышать: агент — не цель сама по себе. Хороший ответ начинается с вопроса, нельзя ли решить задачу простым фиксированным пайплайном.
Как работает вызов инструментов (tool calling)?
Разработчик передаёт модели описание инструментов: название, назначение и JSON-схему аргументов. Модель не выполняет функцию сама, а возвращает запрос «вызови такой инструмент с такими аргументами». Код приложения проверяет аргументы, выполняет функцию и отправляет результат модели следующим сообщением. Цикл повторяется, пока модель не даст финальный ответ. Пример цикла — практическая задача 4.
Как ограничить агента, чтобы он не натворил лишнего?
Ограничить число шагов и время работы, дать только те инструменты и права, которые нужны для задачи, проверять аргументы до выполнения, требовать подтверждения человека для необратимых действий — оплаты, удаления, отправки сообщений. Каждое действие логируют, чтобы можно было разобрать, почему агент поступил именно так.
Что такое MCP?
Model Context Protocol — открытый протокол, через который AI-приложения подключаются к внешним инструментам и источникам данных по единому стандарту. Вместо отдельной интеграции под каждое приложение сервис реализует MCP-сервер, а клиенты с поддержкой протокола получают доступ к его инструментам. На собеседовании достаточно объяснить идею и понимать, что каждый подключённый сервер расширяет права системы.
Качество, стоимость и надёжность
Блок, который отличает прототип от продукта: именно его подробно спрашивают на позицию Middle.
Как оценить качество LLM-приложения?
Собрать набор тестовых вопросов с ожидаемыми ответами или критериями, прогонять его после каждого изменения промпта, модели или поиска и сравнивать результат. Проверки бывают простыми — формат, наличие ключевого факта — и сложными, когда ответ оценивает человек или другая модель по заданным критериям. Пример простейшего прогона — практическая задача 5.
Что хотят услышать: «посмотрел несколько ответов, вроде нормально» — не оценка. Нужен повторяемый набор и цифра, которую можно сравнить до и после изменения.
Что логировать в LLM-приложении?
Вход и выход каждого вызова модели, найденные документы, вызовы инструментов с аргументами и результатами, количество токенов, задержку, ошибки и версию промпта. Это позволяет воспроизвести проблемный ответ, посчитать стоимость и найти медленные шаги. Персональные данные в логах маскируют или не сохраняют.
Как снизить стоимость и задержку?
Сократить контекст: передавать только нужные фрагменты и сжимать историю диалога. Использовать модель поменьше для простых шагов вроде классификации. Кешировать повторяющиеся запросы и неизменную часть промпта, если провайдер это поддерживает. Для пользователя задержку уменьшает потоковая выдача ответа, а для фоновых задач — пакетная обработка.
Как обрабатывать ошибки и лимиты API модели?
Ставить таймауты, повторять временные ошибки и ответы о превышении лимита с экспоненциальной задержкой и ограниченным числом попыток, не повторять ошибки в самом запросе. Для критичных функций — запасной вариант: другая модель или понятный ответ пользователю, что сервис временно недоступен.
Безопасность и данные
Блок, который всё чаще выделяют в отдельный раздел интервью. Основной справочник по теме — OWASP Top 10 for LLM Applications.
Что такое prompt injection и как от неё защищаться?
Prompt injection — текст, который заставляет модель выполнить чужие инструкции вместо инструкций разработчика. Прямая — пользователь пишет «игнорируй правила». Непрямая — инструкция спрятана в документе, письме или веб-странице, которые модель читает в процессе работы. Полностью исключить её нельзя, поэтому защита строится вокруг модели: минимальные права инструментов, подтверждение человеком опасных действий, проверка выходных данных кодом, разделение доверенных инструкций и внешнего контента.
Что хотят услышать: системная инструкция «не выполняй чужие команды» сама по себе не защищает. Защищают ограничения, которые действуют независимо от того, что ответила модель.
Как работать с персональными и конфиденциальными данными?
Отправлять модели только то, что нужно для задачи, маскировать персональные данные, проверять условия провайдера о хранении и использовании данных, разграничивать доступ к документам в RAG так, чтобы пользователь не получил в ответе фрагмент, который ему не положено видеть.
Основы ML, о которых спросят
Даже если вы не обучаете модели, базовые понятия машинного обучения на собеседовании обычно проверяют.
Чем AI Engineer отличается от ML Engineer и Data Scientist?
AI Engineer строит продукты на основе готовых моделей: RAG, агентов, интеграции. ML Engineer обучает, оптимизирует и разворачивает модели. Data Scientist исследует данные, проверяет гипотезы и строит модели для конкретных бизнес-задач. Границы в компаниях размыты, поэтому обязанности стоит уточнять по описанию вакансии. Как различаются зарплаты этих ролей, показано на странице зарплаты AI-инженеров.
Зачем делить данные на обучающую, валидационную и тестовую выборки?
На обучающей модель учится, на валидационной подбирают настройки, а тестовую используют один раз для честной итоговой оценки. Если проверять качество на тех же данных, на которых модель обучалась или настраивалась, результат будет завышен. Тот же принцип работает и для LLM-приложений: промпт не стоит подгонять под тот же набор вопросов, по которому вы потом отчитываетесь о качестве.
Что такое переобучение?
Переобучение — ситуация, когда модель хорошо работает на обучающих данных, но плохо на новых: она запомнила примеры вместо общей закономерности. Признак — растущий разрыв между качеством на обучающей и валидационной выборках. Помогают больше данных, более простая модель, регуляризация и ранняя остановка обучения.
Практические задачи с решениями
Такие задачи дают на live coding или в тестовом задании: они короткие, но показывают, понимаете ли вы, что происходит внутри пайплайна. Вызовы модели заменены функциями-заглушками, поэтому весь код запускается без ключей API.
Задача 1. Как разбить текст на чанки с перекрытием?
Напишите функцию, которая режет строку на фрагменты длиной size с перекрытием overlap символов.
def chunk(text, size, overlap):
if not 0 <= overlap < size:
raise ValueError("overlap must be in [0, size)")
step = size - overlap
return [text[i:i + size] for i in range(0, max(len(text) - overlap, 1), step)]
print(chunk("abcdefghij", size=4, overlap=1))
# ['abcd', 'defg', 'ghij']
print(chunk("abc", size=4, overlap=1))
# ['abc']
Что хотят услышать: проверку некорректных параметров (при overlap >= size цикл никогда не закончится) и понимание, что в реальном проекте режут по токенам или по структуре текста, а не по символам.
Задача 2. Как найти ближайшие документы по эмбеддингам?
Дан вектор запроса и словарь векторов документов. Верните k самых близких по косинусному сходству. В реальном проекте векторы считает модель эмбеддингов, а здесь они заданы вручную.
import math
def cosine(a, b):
dot = sum(x * y for x, y in zip(a, b))
norm = math.sqrt(sum(x * x for x in a)) * math.sqrt(sum(y * y for y in b))
return dot / norm if norm else 0.0
def top_k(query, docs, k=2):
scored = [(cosine(query, vec), doc_id) for doc_id, vec in docs.items()]
return sorted(scored, reverse=True)[:k]
docs = {
"refund-policy": [0.9, 0.1, 0.0],
"delivery-times": [0.1, 0.9, 0.1],
"refund-form": [0.8, 0.0, 0.3],
}
for score, doc_id in top_k([1.0, 0.0, 0.1], docs):
print(doc_id, round(score, 3))
# refund-policy 0.989
# refund-form 0.967
Что хотят услышать: на больших объёмах полный перебор заменяют индексом приближённого поиска в векторной базе данных, а качество выдачи проверяют на тестовых вопросах.
Задача 3. Как проверить JSON-ответ модели?
Модель должна вернуть объект с полями intent (строка) и priority (целое число). Напишите проверку, которая возвращает данные или понятную ошибку.
import json
REQUIRED = {"intent": str, "priority": int}
def parse_reply(raw):
"""Возвращает (data, None), если ответ модели валиден, иначе (None, error)."""
try:
data = json.loads(raw)
except json.JSONDecodeError as e:
return None, f"not JSON: {e.msg}"
if not isinstance(data, dict):
return None, "expected a JSON object"
for field, kind in REQUIRED.items():
if not isinstance(data.get(field), kind):
return None, f"field '{field}' must be {kind.__name__}"
return data, None
print(parse_reply('{"intent": "refund", "priority": 2}'))
# ({'intent': 'refund', 'priority': 2}, None)
print(parse_reply('Конечно! Вот JSON: {"intent": "refund"}'))
# (None, 'not JSON: Expecting value')
print(parse_reply('{"intent": "refund", "priority": "high"}'))
# (None, "field 'priority' must be int")
Что хотят услышать: текст ошибки можно вернуть модели для повторной попытки с ограниченным числом повторов, а для сложных схем используют библиотеку валидации, например Pydantic.
Задача 4. Как устроен цикл агента с инструментами?
Соберите цикл: модель либо просит вызвать инструмент, либо даёт ответ. Модель здесь — заглушка с заранее заданным поведением.
def get_order_status(order_id):
return {"order_id": order_id, "status": "shipped"}
TOOLS = {"get_order_status": get_order_status}
def fake_model(messages):
"""Заменяет LLM: сначала просит инструмент, потом отвечает."""
if messages[-1]["role"] == "user":
return {"tool": "get_order_status", "args": {"order_id": "A-17"}}
return {"answer": f"Заказ отправлен: {messages[-1]['content']['status']}"}
def run_agent(question, max_steps=5):
messages = [{"role": "user", "content": question}]
for _ in range(max_steps):
reply = fake_model(messages)
if "answer" in reply:
return reply["answer"]
tool = TOOLS.get(reply["tool"])
if tool is None:
raise ValueError(f"unknown tool: {reply['tool']}")
messages.append({"role": "tool", "content": tool(**reply["args"])})
raise RuntimeError("step limit reached")
print(run_agent("Где мой заказ A-17?"))
# Заказ отправлен: shipped
Что хотят услышать: ограничение числа шагов, обработку неизвестного инструмента и проверку аргументов до выполнения функции.
Задача 5. Как сделать простой прогон набора тестовых вопросов?
Для каждого вопроса проверьте, содержит ли ответ ожидаемый факт, и посчитайте итог.
cases = [
{"question": "Сколько дней на возврат?", "expected": "14"},
{"question": "Есть ли доставка в Польшу?", "expected": "да"},
{"question": "Какой телефон поддержки?", "expected": "0 800"},
]
def answer(question):
"""Заменяет RAG-пайплайн, который тестируем."""
return {
"Сколько дней на возврат?": "Вернуть товар можно в течение 14 дней.",
"Есть ли доставка в Польшу?": "Нет, только по Украине.",
}.get(question, "Не знаю.")
passed = 0
for case in cases:
reply = answer(case["question"])
ok = case["expected"].lower() in reply.lower()
passed += ok
print("PASS" if ok else "FAIL", case["question"], "->", reply)
print(f"{passed}/{len(cases)}")
# PASS Сколько дней на возврат? -> Вернуть товар можно в течение 14 дней.
# FAIL Есть ли доставка в Польшу? -> Нет, только по Украине.
# FAIL Какой телефон поддержки? -> Не знаю.
# 1/3
Что хотят услышать: проверка подстрокой — самая грубая. Например, ожидаемое «да» нашлось бы и внутри слова «когда». Поэтому для свободных ответов используют критерии оценки и проверку человеком или другой моделью, а сам набор вопросов хранят рядом с кодом и прогоняют при каждом изменении.
Типичные ошибки кандидатов
- Нет оценки качества. Кандидат рассказывает о проекте, но не может сказать, как проверял, что ответы правильные.
- Модель как источник истины. Ответ модели используется без проверки формата и фактов.
- Агент там, где хватит пайплайна. Сложная архитектура без объяснения, зачем она нужна.
- Безопасность — «в промпте». Защита от prompt injection сводится к фразе в системной инструкции.
- Нет цифр по стоимости. Кандидат не знает, сколько токенов и денег тратит один запрос в его проекте.
- Проект из туториала без изменений. На вопрос «почему так» нет ответа, потому что решение принимал автор туториала.
Какие вопросы задать интервьюеру?
- Какие AI-функции уже работают у пользователей, а какие пока в разработке?
- Как команда оценивает качество ответов и как часто прогоняет тесты?
- С какими моделями и провайдерами вы работаете и кто принимает решение о смене модели?
- Как устроен доступ к данным и какие ограничения по их передаче внешним провайдерам?
- Какие задачи будут у меня в первые три месяца?
- Какие следующие шаги после этого собеседования и когда ждать ответа?
План подготовки на две недели
Двух недель по одному-два часа в день хватает, чтобы повторить темы и натренировать ответы вслух, — при условии, что Python и работу с API вы уже знаете. Это ориентир, а не норматив: подстраивайте план под свои слабые места.
| Дни | Тема | Что сделать |
|---|---|---|
| 1–2 | Как работают LLM | Своими словами объяснить токены, контекстное окно, temperature и причины галлюцинаций |
| 3–4 | Промптинг и JSON | Написать вызов модели с проверкой структурированного ответа и повтором при ошибке |
| 5–7 | RAG | Собрать RAG по реальной документации: чанки, эмбеддинги, поиск, ответ со ссылкой на источник |
| 8–9 | Агенты | Сделать агента с двумя инструментами, лимитом шагов и логированием каждого вызова |
| 10–11 | Оценка качества | Составить 20–30 тестовых вопросов к своему RAG и посчитать, сколько ответов правильные |
| 12 | Стоимость и безопасность | Посчитать токены одного запроса; попробовать непрямую prompt injection на своём проекте и закрыть её |
| 13 | Практические задачи | Решить пять задач из этой статьи по памяти, с таймером и вслух |
| 14 | Проект и пробное интервью | Рассказать о проекте за пять минут: архитектура, оценка, ограничения; пройти пробное собеседование |
Если вы только выбираете направление и хотите понять, как устроена прикладная работа с AI без программирования, начните с руководства по профессии AI Automation.
Частые вопросы
Нужно ли AI Engineer знать математику и машинное обучение?
Для большинства вакансий AI Engineer, где строят продукты поверх готовых моделей, хватает понимания основ: что такое эмбеддинг и косинусное сходство, как модель генерирует текст, чем обучающая выборка отличается от тестовой. Глубокая математика и обучение моделей с нуля — зона ML Engineer и Data Scientist. Требования конкретной компании указаны в вакансии.
Какой язык программирования нужен AI Engineer?
Чаще всего Python: на нём написаны основные SDK провайдеров моделей, библиотеки для работы с данными и большинство примеров в документации. В продуктовых командах встречается и TypeScript, особенно если AI-функции встроены в веб-приложение. На собеседовании обычно проверяют уверенный Python, работу с HTTP API и JSON.
Будет ли на собеседовании live coding?
Как правило, да, но задачи отличаются от классических алгоритмических: написать вызов модели с проверкой ответа, разбить текст на чанки, найти ближайшие документы по эмбеддингам, собрать простой цикл агента. Формат зависит от компании, поэтому уточните его у рекрутера заранее.
Что показать в портфолио AI Engineer?
Один-два законченных проекта лучше десятка демо: например, RAG-ассистент по реальной документации или агент, который выполняет задачу через несколько инструментов. В README стоит описать архитектуру, набор тестовых вопросов, результаты оценки качества и известные ограничения. На собеседовании спросят, почему решение устроено именно так.
Можно ли пользоваться AI-ассистентом на собеседовании?
Только если интервьюер прямо это разрешил. Для AI Engineer некоторые компании специально дают задачу с ассистентом и смотрят, как кандидат проверяет сгенерированный код. Если правила не названы, спросите в начале. Пользоваться подсказками тайно нельзя.
Чем собеседование на Middle AI Engineer отличается от собеседования на Junior?
От Junior ждут понимания базовых понятий и умения написать рабочий вызов модели с проверкой результата. На Middle спрашивают о решениях в продакшене: как вы оценивали качество, как снижали стоимость и задержку, как защищались от prompt injection, что делали, когда модель или поиск ошибались у реальных пользователей.
Сколько зарабатывает AI Engineer в Украине?
Медианные зарплаты AI Engineer по уровням, по данным зарплатного опроса DOU, собраны на странице «Зарплата AI-инженера в Украине» в разделе зарплат Prog Academy. Там же указано, сколько ответов стоит за каждой цифрой: выборка по этой должности пока небольшая.
Источники
- Vaswani et al. Attention Is All You Need (arXiv:1706.03762)
- Lewis et al. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (arXiv:2005.11401)
- Anthropic: Building effective agents
- Model Context Protocol: documentation
- OWASP Top 10 for LLM Applications
- Python documentation: json — JSON encoder and decoder
- Pydantic documentation
- DOU: Зарплати аналітиків, фахівців з Data Engineering, Data Science, AI, ML — літо 2026
