К содержанию
Первый Коммит

Искусственный интеллектПродвинутыйСкоро

Курс Тестирование и MLOps

Как тестировать то, что каждый раз отвечает иначе: pytest и фикстуры, метрики качества, CI, kind и Prometheus.

Курс готовится к публикации

Материалы курса написаны и проверены, идёт подготовка к выходу на сайте: программа ниже — настоящая. Открытые курсы можно читать уже сейчас, а о запуске этого напишите — ответим, когда он появится.

Модулей
12
Ак. часов
108
Разделов
118

Что нужно знать заранее. Python на уровне функций и классов, базовый HTTP (метод, статус-код, тело запроса), работа в терминале и азы git (репозиторий, коммит, клон). Опыт тестирования, знакомство с Kubernetes и машинное обучение НЕ требуются: сервис-объект даётся готовым в модуле 1, прохождение курса «Интеграция Ollama и DeepSeek в веб-системы» не нужно.

Обложка курса Тестирование и MLOps

Программа курса

12 модулей; каждый — полноценное занятие с теорией, листингами, практикой и домашним заданием.

  1. 1

    Что ломается в ИИ-системе

    Этот курс о том, как проверять систему, часть которой отвечает каждый раз по-новому…

    Предпосылки курсаСервис как объект тестированияОтказ без ошибкиПервый тест на pytestПроверяемые свойства ответаКарта курса

  2. 2

    Основы pytest

    В модуле 1 тест был один, лежал в случайном файле и требовал, чтобы на машине был запущен сервис и работала модель…

    Поиск тестовКлючи запускаРазбор assertФикстурыПараметризацияМаркерыПокрытие

  3. 3

    Проверки, которые не запускают программу

    В модуле 2 появился инструмент, который запускает код и сравнивает полученное с ожидаемым…

    PEP 8 и единый стильruff как линтер и форматтерРазбор пятнадцати находокmypy и строгий режимДефект мимо зелёных тестовПредупреждения и pre-commit

  4. 4

    Тесты кода, который ходит в сеть

    Раздел 1.4 закончился обещанием: тест, зависящий от живой модели, — не тест, а лотерея, и способ обойтись без неё разбирается в четвёртом модуле. Пора его выполнить.

    Отказ живого тестаГраница подменыrespxОтправленный запросЗаписанные ответыПять отказовАсинхронные тесты

  5. 5

    Ответ модели как данные

    Модуль 1 оставил незакрытый вопрос. Сравнивать ответ модели с эталонной строкой нельзя, значит, проверять надо свойства ответа…

    Просьба вместо договораЗаплатка регуляркойПараметр formatPydantic как договорОтказ вместо паденияПовтор и его пределТесты на испорченных ответахФорма против содержания

  6. 6

    Числа вместо впечатлений

    Модуль 5 закончился границей, которую стоит повторить дословно. Схема гарантирует форму ответа и не гарантирует его правильность…

    Размеченный наборМатрица ошибокЛенивый классификаторТочность и полнотаУсреднения macro и microПорог и ROC-криваяМетрика как тест

  7. 7

    Качество ответа, у которого нет эталона

    Модуль 6 научил считать качество там, где верный ответ известен заранее. Обращение размечено человеком, классификатор назвал категорию, дальше арифметика: совпало…

    Свойства вместо эталонаНабор примеров как кодОшибки самих проверокШум замераРегрессия промптовСудья из моделиГраницы судьи

  8. 8

    Тесты интерфейса на Selenium

    Всё, что курс проверял до сих пор, лежит ниже интерфейса: тело запроса, код ответа, схема, метрика на размеченном наборе. Пользователь не видит ничего из этого…

    Что видит браузерДрайвер и протоколПоиск элементовЯвные ожиданияФлаки-тестыОбъект страницыУборка после теста

  9. 9

    Непрерывная интеграция: пайплайн вместо памяти

    Восемь модулей подряд мы запускали проверки руками: ruff check, ruff format --check, mypy, pytest. Пока проект держит один человек, этого хватает…

    Обработчик коммитов против пайплайнаУстройство workflowЗелёный пайплайн, который ничего не проверилКэш и замерМатрица версийАртефактыGitLab CI и Jenkins

  10. 10

    Контейнер, кластер и пробы

    До этого модуля сервис жил в папке на машине разработчика и запускался командой uvicorn…

    Образ сервисаСлои и кэш сборкиЗачем нужен KubernetesКластер kindDeployment и ServiceПробы готовности и живучестиОбновление и ресурсы

  11. 11

    Наблюдение за сервисом в работе

    Все десять предыдущих модулей отвечали на один вопрос: работает ли код. Тесты запускаются до выкладки, ловят то, о чём мы догадались подумать, и молчат обо всём…

    Мониторинг против тестов и журналаСчётчик, датчик, гистограммаОпасные меткиPrometheus и язык запросовСреднее и длинный хвостМетрики моделиДашборд и алерты

  12. 12

    Проверенный сервис поддержки

    В одиннадцати модулях курса мы разбирали сервис поддержки с разных сторон: писали тесты, ловили отказы, при которых не возникает исключений, подменяли сеть,…

    Постановка задачиОбязательный минимумСтруктура репозиторияОтчёт с замерамиГде проект разваливаетсяСамопроверка

← Ко всем курсам

Введите запрос: название модуля, тема или раздел.

Стрелки — выбор, Enter — открыть. Ищет по названиям модулей, темам и разделам.