План: как стать AI-инженером
📖 Учебник по главам: book/README.md
Для кого: разработчик, который уже программирует на каком-то языке и знает основы git, SQL и командной строки. Python, опыт с моделями и ML не нужны. Нагрузка: ~8–10 часов в неделю → ~4–5 месяцев. Интенсивный вариант: 4 часа в день → ~2,5 месяца (см. ниже). Принцип: 20% теории, 80% проектов. Каждый этап заканчивается проектом, который можно показать.
Модели для учёбы: DeepSeek + Ollama
Заголовок раздела «Модели для учёбы: DeepSeek + Ollama»Курс проходится на дешёвых и бесплатных моделях; Claude и OpenAI остаются в главах «для сравнения».
| Что | Где | Для чего |
|---|---|---|
DeepSeek API (deepseek-flash, deepseek-v4-pro) |
облако, копейки | основная облачная модель; судья в evals — deepseek-v4-pro. Серверы в Китае: только публичные тексты, база знаний магазина и демо-база |
Ollama (qwen3:4b по умолчанию, эмбеддинги bge-m3) |
локально, бесплатно | персональные данные клиентов, рабочий код и всё приватное (в том числе снимок базы магазина); эмбеддинги и реранкер. Запуск с OLLAMA_NO_CLOUD=1 |
| OpenRouter (глава 2.4) | облако, один ключ ко многим моделям | сравнение моделей, бесплатные :free модели, фолбэки |
| Claude / OpenAI | облако | по желанию, для сравнения |
Железо (локальные модели по объёму памяти): 8 ГБ → модели 3–4B; 16 ГБ → 7–8B; 32 ГБ и больше → 14B и крупнее. Курс рассчитан на минимум: qwen3:4b для чата, bge-m3 для эмбеддингов.
Приватность: персональные данные клиентов, рабочий код и всё, что нельзя показывать посторонним, никогда не уходят в облачные модели — их обрабатывает локальная модель. Облаку достаются публичные тексты, база знаний магазина и демо-база. Правило касается любого облачного провайдера, не только DeepSeek.
Нумерация: главы пронумерованы «неделя.порядок» (1.1, 1.2, 2.1 …) — как в оглавлении учебника.
Что важно знать про DeepSeek и Ollama с первого дня
Заголовок раздела «Что важно знать про DeepSeek и Ollama с первого дня»- DeepSeek совместим с OpenAI SDK: меняются только
base_url, ключ и имя модели. У Ollama то же самое черезhttp://localhost:11434/v1. - У DeepSeek нет API эмбеддингов → эмбеддинги и реранкер всегда локально (Ollama / sentence-transformers).
- Кэш у DeepSeek автоматический и без наценки; у Claude — явный
cache_control. - Structured output: у DeepSeek только JSON mode (
json_object), у Ollama — строгая схема черезformat. - Режим размышления DeepSeek включён по умолчанию:
temperatureв нём игнорируется, с инструментами нужно возвращатьreasoning_content, принудительныйtool_choiceдаёт 400. - Цена DeepSeek зависит от часа: вне пика (вечер и выходные по UTC) вдвое дешевле — длинные прогоны evals удобно запускать тогда.
- У Ollama контекст по умолчанию 4096 токенов и молча обрезается — для RAG и агентов нужно увеличивать
num_ctx. - Факты на ноябрь 2026 — актуальное стоит проверять в документации DeepSeek и Ollama.
Интенсивный график: 4 часа в день, 5 дней в неделю
Заголовок раздела «Интенсивный график: 4 часа в день, 5 дней в неделю»~20 часов в неделю, ~200 часов всего, 11 недель (включая неделю запаса на праздники, болезни и отставание).
Структура одного дня (4 часа)
Заголовок раздела «Структура одного дня (4 часа)»| Время | Что делать |
|---|---|
| 1 час | Теория: глава учебника, документация, видео |
| 2,5 часа | Практика: упражнение или проект (AI генерирует — мы читаем, правим, спрашиваем «почему так») |
| 0,5 часа | Заметки: что поняли, что не получилось, вопросы на завтра (папка notes/ в репозитории для учёбы) |
Пятница — последний час на ревью недели: что сделано, что переносится, коммит на GitHub. Выходные — отдых. Без них через месяц выгорание. Долгие прогоны на DeepSeek удобно ставить на выходные — это вне пика, дешевле.
План по неделям
Заголовок раздела «План по неделям»| Неделя | Главы | Задачи недели | Результат |
|---|---|---|---|
| 1 | 1.1–1.7 | Пн–Ср: Python на уровне уверенного чтения (отличия от привычного языка, uv, Pydantic, async), видео Карпатого, ключ DeepSeek, установка Ollama (с проверкой подписи). Чт–Пт: сырой API DeepSeek и Ollama, токены, режим размышления, стоимость |
Скрипт сравнения ответов и цены запроса |
| 2 | 2.1–2.7 | Промптинг, structured output (JSON mode DeepSeek vs format Ollama), обзор моделей, OpenRouter, tool calling, ретраи и кэш |
Извлечение JSON из 20 текстов; модель вызывает 3 функции |
| 3 | 3.1–3.4 | Проект 1: Telegram-бот «аналитик магазина» для владельца на Ollama (только чтение, снимок базы); DeepSeek — только на демо-базе; логирование токенов и стоимости | Проект 1 на GitHub |
| 4 | 4.1–4.4 | Эмбеддинги руками (numpy) на локальной модели bge-m3, chunking, sqlite-vec, загрузка базы знаний магазина kb/ |
Поиск по базе знаний работает |
| 5 | 5.1–5.5 | Переформулировка запроса, гибридный поиск + BM25, локальный реранкер, ассистент поддержки с ответами со ссылками на раздел базы знаний (генерация — DeepSeek); версия на LlamaIndex | Проект 2 на GitHub |
| 6 | 6.1–6.5 | Статьи про evals, синтетические вопросы, набор из 50–100 вопросов, скрипт оценки (судья — deepseek-v4-pro), Langfuse Cloud / promptfoo |
Evals выдают первую цифру |
| 7 | 7.1 | Запас / праздники. Догнать хвосты или отдыхать | — |
| 8 | 8.1–8.5 | Статистика evals, эксперименты: chunking A/B, qwen3:4b vs deepseek-flash, с реранкером и без; ручной разбор ошибок |
Проект 3 (таблица экспериментов) |
| 9 | 9.1–9.5 | «Building effective agents», workflow-паттерны, цикл агента руками, prompt injection, свой MCP-сервер (только чтение, хост — Ollama) | MCP-сервер к базе магазина (только чтение) |
| 10 | 10.1–10.4 | Память агента, агент-разборщик заказов (Ollama на снимке базы с данными клиентов, DeepSeek — только на демо-базе), фреймворки, evals на 20 случаях | Проект 4 на GitHub |
| 11 | 11.1–11.5 | Docker, кэш DeepSeek vs Claude, бюджеты (баланс DeepSeek), фолбэк DeepSeek → OpenRouter → Ollama, трейсинг и стоимость ответа, свои evals на локальной модели, LoRA-пример | Сравнение облачной и локальной модели в цифрах |
Контрольные точки
Заголовок раздела «Контрольные точки»- Конец недели 3 — первый проект работает и лежит на GitHub. Если нет — сократить теорию, но не пропускать проект.
- Конец недели 8 — есть цифры из evals. Это главный артефакт для собеседований.
- Конец недели 11 — 4 проекта и сравнение облачной и локальной модели в цифрах.
- DeepSeek: весь курс — порядка нескольких долларов (оценка; прогон 60 вопросов evals ≈ $0,30–0,60). Баланс стоит пополнять маленькими суммами — при нуле API отвечает 402, это и есть потолок расходов.
- Ollama, sentence-transformers, sqlite-vec, promptfoo: бесплатно.
- Claude / OpenAI: по желанию, $5–10 на сравнения в конце курса.
Кто такой AI-инженер (коротко)
Заголовок раздела «Кто такой AI-инженер (коротко)»Разработчик, который строит продукты поверх готовых моделей (GPT, Claude, Gemini, DeepSeek, Qwen, Llama): интегрирует LLM в приложения, делает RAG, агентов, измеряет качество (evals) и доводит всё до продакшена — с контролем стоимости, латентности, приватности и безопасности. Это в первую очередь софтверная инженерия, а не математика. Умение работать с разными провайдерами и сравнивать их на своих evals — отдельный плюс.
- Статья, которая дала имя профессии: The Rise of the AI Engineer — swyx, Latent Space
Этап 0. Подготовка (1–2 недели)
Заголовок раздела «Этап 0. Подготовка (1–2 недели)»Что сделать
Заголовок раздела «Что сделать»- Подтянуть Python до уверенного чтения: типы,
async/await, виртуальные окружения,uv,pydantic. - Завести ключ DeepSeek, пополнить на $2–5.
- Установить Ollama только с официального сайта (на macOS перед первым запуском проверить подпись:
codesign -dvиspctl -a -vv; для других систем — официальная инструкция). Скачатьqwen3:4bиbge-m3. - (Для сравнения, по желанию) ключи Anthropic Console и OpenAI Platform.
- Посмотреть Intro to Large Language Models — Андрей Карпатый (1 час).
- (Опционально) Neural Networks — 3Blue1Brown — визуальная интуиция, как работают нейросети и трансформеры.
Ресурсы
Заголовок раздела «Ресурсы»- Официальный туториал Python
- uv — быстрый менеджер пакетов Python
- Pydantic — валидация данных, нужен почти везде в LLM-коде
- DeepSeek API docs — quick start, цены, режим размышления
- Ollama docs — установка на macOS, OpenAI-совместимость
Этап 1. Основы работы с LLM (3–4 недели)
Заголовок раздела «Этап 1. Основы работы с LLM (3–4 недели)»Что изучить
Заголовок раздела «Что изучить»- Токены, контекстное окно,
temperature,top_p, системный промпт; режим размышления (reasoning) и как он меняет параметры. - Промптинг: роли, few-shot примеры, XML/Markdown-структура, chain-of-thought.
- Structured output — модель возвращает валидный JSON по схеме (DeepSeek: JSON mode; Ollama:
formatсо схемой; Claude/OpenAI: строгие схемы). - Tool calling — модель вызывает наши функции.
- Стриминг ответов, ретраи, rate limits (у DeepSeek — лимит одновременных запросов), расчёт стоимости запроса с учётом кэша и часа пик.
- Кэширование промптов — автоматическое у DeepSeek, явное у Claude.
- OpenRouter — один API ко многим моделям, сравнение моделей.
План по неделям
Заголовок раздела «План по неделям»| Неделя | Тема | Упражнение |
|---|---|---|
| 1 | Сырой API DeepSeek и Ollama, параметры, стоимость | Скрипт: один вопрос с разными настройками, посчитать токены и цену (с кэшем и без) |
| 2 | Промптинг, structured output, OpenRouter | Извлечь из 20 неструктурированных текстов JSON по Pydantic-схеме; одна задача через 4–5 моделей OpenRouter |
| 3 | Tool calling | Модель вызывает 2–3 функции (курс валют, калькулятор, время) |
| 4 | Проект этапа | См. ниже |
Ресурсы
Заголовок раздела «Ресурсы»- DeepSeek API docs — JSON mode, function calling, thinking mode, context caching
- Ollama docs — structured outputs, tool calling
- OpenRouter docs — quickstart, бесплатные модели, фолбэки
- Anthropic: Prompt engineering overview — лучший гайд по промптингу, работает для любой модели
- Anthropic Courses на GitHub — интерактивные ноутбуки по промптингу и tool use
- OpenAI Cookbook
- DeepLearning.AI Short Courses — бесплатные курсы по 1–2 часа
- Instructor — structured output поверх Pydantic (у DeepSeek — режим
MD_JSON) - Vercel AI SDK — то же самое на TypeScript
Проект 1: Telegram-бот «аналитик магазина»
Заголовок раздела «Проект 1: Telegram-бот «аналитик магазина»»- Бот для владельца интернет-магазина «Полка» отвечает на вопросы о заказах и продажах («какая выручка за неделю», «какие заказы ещё не отправлены», «как смотрят лампу „Свет“»).
- Модель через tool calling вызывает только читающие функции:
get_open_orders,get_sales,get_product_interest,get_recent_orders. - ⚠️ Никаких функций, которые меняют заказ, оформляют возврат или выдают промокод. Работать со снимком базы (
VACUUM INTO). - 🔒 В снимке базы есть персональные данные клиентов — только локальная модель Ollama (
qwen3:4b). DeepSeek и другие облачные модели — только на демо-базе без персональных данных. Проверка политики данных — прямо в коде. - Логировать каждый запрос: токены, стоимость, время ответа.
Этап 2. RAG и эмбеддинги (3–4 недели)
Заголовок раздела «Этап 2. RAG и эмбеддинги (3–4 недели)»Что изучить
Заголовок раздела «Что изучить»- Эмбеддинги, косинусное сходство. Эмбеддинги — локально (Ollama
bge-m3или sentence-transformers): у DeepSeek их нет. - Chunking: по размеру, по структуре документа, с перекрытием.
- Векторные БД: начать с sqlite-vec (знакомый SQLite) или pgvector; посмотреть Qdrant.
- Переформулировка запроса, гибридный поиск (вектор + BM25), реранкинг (локальный cross-encoder — rerank-эндпоинта нет ни у DeepSeek, ни у Ollama).
- Генерация ответа — DeepSeek (база знаний магазина публичная, её можно отправлять; сообщения реальных клиентов — только локально).
- Типичные причины, почему RAG ошибается, и как их чинить.
План по неделям
Заголовок раздела «План по неделям»| Неделя | Тема | Упражнение |
|---|---|---|
| 1 | Эмбеддинги | Посчитать эмбеддинги 100 фраз локальной моделью, найти ближайшие руками (numpy) |
| 2 | Chunking + векторная БД | Загрузить базу знаний магазина, сравнить 3 стратегии chunking |
| 3 | Гибридный поиск, реранкинг | Добавить BM25 и локальный реранкер, сравнить выдачу |
| 4 | Проект этапа | См. ниже |
Ресурсы
Заголовок раздела «Ресурсы»- Anthropic: Contextual Retrieval — отличная статья о том, как улучшить RAG (на DeepSeek работает за счёт автоматического кэша)
- Sentence Transformers — локальные эмбеддинги и реранкеры
- Ollama: embeddings —
/api/embed, следить заtruncate - LlamaIndex docs — фреймворк для RAG (после ручной версии)
- Hugging Face Learn — курсы по NLP и моделям
Проект 2: ассистент поддержки по базе знаний магазина
Заголовок раздела «Проект 2: ассистент поддержки по базе знаний магазина»- Собрать базу знаний магазина
kb/(доставка, оплата, возвраты, гарантия, промокоды, товары) — Markdown-страницы, источник правды. - Ассистент отвечает на вопросы клиентов («можно ли вернуть вскрытый чай?», «какая гарантия на LAMP-LIGHT-MINI?») со ссылкой на раздел базы знаний; если ответа в базе нет — честно говорит об этом и передаёт вопрос человеку.
- Эмбеддинги и реранкер — локально, генерация — DeepSeek; работает и полностью офлайн на Ollama.
- Версия 1 — без фреймворков, руками. Версия 2 — на LlamaIndex. Сравнить.
Этап 3. Evals — оценка качества (2–3 недели) ⭐ самый важный
Заголовок раздела «Этап 3. Evals — оценка качества (2–3 недели) ⭐ самый важный»Что изучить
Заголовок раздела «Что изучить»- Как собрать тестовый набор: вопрос → эталонный ответ / критерии.
- Метрики RAG: retrieval (нашёлся ли нужный кусок), faithfulness (не выдумал ли), answer relevance.
- LLM-as-judge и его ограничения (bias, нестабильность, предпочтение «своих»). Судья — модель сильнее проверяемой:
deepseek-v4-proбез режима размышления; локальная 4B-модель судьёй не годится. - Статистика: шум, размер выборки, когда улучшение настоящее.
- Регрессионное тестирование: поменяли промпт/модель → прогнали → сравнили.
- Анализ ошибок вручную: читать реальные ответы, а не только смотреть на цифры.
Ресурсы
Заголовок раздела «Ресурсы»- Hamel Husain: Your AI Product Needs Evals — обязательно
- Hamel Husain — блог — много практики по evals
- Eugene Yan — блог — паттерны LLM-систем, evals
- Langfuse — трейсинг и evals; при 8 ГБ памяти проще Langfuse Cloud (только для публичных данных: база знаний и набор вопросов), self-hosted требует больше ресурсов
- promptfoo — тестирование промптов из командной строки, есть провайдеры
deepseek:иollama:
Проект 3: evals и эксперименты для ассистента поддержки
Заголовок раздела «Проект 3: evals и эксперименты для ассистента поддержки»- Набор из 50–100 вопросов клиентов с эталонами (включая ловушки: архивные правила возврата, похожие товары, вопросы без ответа в базе).
- Скрипт, который выдаёт оценку (retrieval + качество ответа) и стоимость прогона.
- Таблица экспериментов: «chunking A vs B», «
qwen3:4bvsdeepseek-flash», «с реранкером / без» — с цифрами качества, стоимости и латентности. - Это главный материал для портфолио и собеседований.
Этап 4. Агенты (4 недели)
Заголовок раздела «Этап 4. Агенты (4 недели)»Что изучить
Заголовок раздела «Что изучить»- Цикл агента: думает → вызывает инструмент → смотрит результат → повторяет.
- Workflow vs агент: когда хватает простого пайплайна (чаще всего).
- MCP (Model Context Protocol) — написать свой MCP-сервер; хост для снимка базы с данными клиентов — мост к Ollama.
- Фреймворки: LangGraph, OpenAI Agents SDK, Claude Agent SDK — и как они работают с DeepSeek и Ollama.
- Слабые места маленьких локальных моделей в агентах: 3–5 простых инструментов, плоские схемы, лимит шагов, проверки в коде.
- Безопасность: prompt injection, минимальные права инструментов, подтверждение человеком опасных действий; облачный провайдер — тоже канал утечки данных.
Ресурсы
Заголовок раздела «Ресурсы»- Anthropic: Building effective agents — обязательно
- Model Context Protocol — документация
- MCP серверы — примеры на GitHub
- LangGraph
- OpenAI Agents SDK — работает с любым OpenAI-совместимым API, включая DeepSeek и Ollama
- OWASP Top 10 for LLM Applications — главные уязвимости LLM-приложений
Проект 4: агент-разборщик заказов
Заголовок раздела «Проект 4: агент-разборщик заказов»- MCP-сервер к базе магазина: только чтение (заказы, оплаты, доставки, товары, журнал событий заказа).
- Агент по запросу «что случилось с заказом 1042?» сам смотрит оплаты, доставку и журнал событий и пишет разбор с доказательствами: двойное списание, застрявшая доставка, не применённый промокод, не дошедший возврат.
- 🔒 Снимок базы с данными клиентов — только Ollama; DeepSeek — только на сгенерированной демо-базе.
- Evals для агента: 20 случаев с известной причиной (судья — код + ручная проверка + локальная модель: облачный судья увидел бы персональные данные клиентов).
Этап 5. Продакшен (3–4 недели)
Заголовок раздела «Этап 5. Продакшен (3–4 недели)»Что изучить
Заголовок раздела «Что изучить»- Кэширование: автоматический кэш DeepSeek (поля
prompt_cache_hit_tokens/prompt_cache_miss_tokens) vs явныйcache_controlу Claude; контроль стоимости, бюджеты (баланс DeepSeek,402при нуле). - Observability: трейсинг каждого вызова, дашборд качества и затрат.
- Фолбэки: DeepSeek → OpenRouter → Ollama (приватные запросы — никогда в облако), через свою обёртку, LiteLLM или OpenRouter; таймауты, деградация.
- Локальные модели: Ollama, vLLM, квантизация; Ollama на macOS — нативно, контейнеры ходят к ней через
host.docker.internal. - Файнтюнинг и LoRA — понимать, когда он нужен (редко), уметь запустить базовый пример. У DeepSeek файнтюнинга нет.
Ресурсы
Заголовок раздела «Ресурсы»- Hugging Face: PEFT / LoRA
- LiteLLM — единый интерфейс и фолбэки (пиннить версию, проверять пакет)
- Simon Willison — блог — практика, новости, инструменты, безопасность LLM
- LLM CLI от Simon Willison — удобный инструмент для экспериментов
Что сделать
Заголовок раздела «Что сделать»- Прогнать свои evals на локальной модели и на DeepSeek, сравнить качество, скорость и цену.
- Фолбэк DeepSeek → OpenRouter → Ollama с флагом приватности.
- Добавить трейсинг (Langfuse) и посчитать стоимость одного ответа с учётом кэша и часа пик.
Постоянное чтение
Заголовок раздела «Постоянное чтение»- Chip Huyen — AI Engineering (O’Reilly, 2025) — лучшая обзорная книга по профессии
Блоги и рассылки
Заголовок раздела «Блоги и рассылки»- Anthropic Engineering
- DeepSeek API News / Changelog — смена моделей и цен
- Simon Willison
- Hamel Husain
- Eugene Yan
Подкасты
Заголовок раздела «Подкасты»- Latent Space — главный подкаст про AI Engineering
Для углубления (по желанию)
Заголовок раздела «Для углубления (по желанию)»- Karpathy — Neural Networks: Zero to Hero — строим GPT с нуля
- fast.ai — Practical Deep Learning — практический курс глубокого обучения
Главные правила
Заголовок раздела «Главные правила»- Строить, а не только смотреть курсы. 20% теории, 80% проектов.
- Сначала без фреймворков. Сырой API → потом LangChain/LlamaIndex.
- Всегда измерять. Проект с evals ценится намного выше, чем «работает, я проверил руками».
- Опираться на свою предметную область. Знание области + AI — сильная ниша.
- Безопасность по умолчанию. Агентам — только чтение, пока нет подтверждения человеком. Никаких изменений заказов, возвратов и промокодов без человека.
- Приватность по умолчанию. Персональные данные клиентов, рабочий код и всё приватное — только локально (Ollama). В облако (DeepSeek и любые бесплатные тарифы) — только публичные тексты, база знаний и демо-база.
- Не привязываться к провайдеру. Один OpenAI-совместимый клиент, модель и
base_url— в настройках; модели сравнивать на своих evals.
Трекер прогресса
Заголовок раздела «Трекер прогресса»| Этап | Начал | Закончил | Проект на GitHub |
|---|---|---|---|
| 0. Подготовка | — | ||
| 1. Основы LLM | |||
| 2. RAG | |||
| 3. Evals | |||
| 4. Агенты | |||
| 5. Продакшен |
Лицензия
Заголовок раздела «Лицензия»- Текст курса — главы в
book/, этот план, тесты и задания — распространяется по лицензии CC BY-NC-SA 4.0: материалы можно читать, копировать, переводить и переделывать с указанием источника и ссылкой на лицензию, переделки — под той же лицензией, коммерческое использование (платные курсы, продажа материалов) — только с разрешения авторов. Полный текст условий — в файлеLICENSE-CONTENTрепозитория. - Код — сайт в
site/и примеры кода в главах — по лицензии MIT (файлLICENSE): примеры можно свободно переносить в свои и рабочие проекты, в том числе коммерческие, сохранив уведомление об авторских правах.