Перейти к содержимому
Начало

Установка и запуск

Как запустить сайт курса и Python для домашних работ на Linux, macOS и Windows, где хранится прогресс и как его не потерять, с какой ступени понадобятся ваши видеокарты.

Сайт курса работает прямо на вашем компьютере: Node.js запускает его как маленький локальный сервер, а вы открываете его в браузере по адресу localhost. Домашние работы — обычные программы на Python, которые проверяет автогрейдер. Кроме аккаунта на GitHub (репозиторий курса приватный), никаких регистраций, своего сервера и платных сервисов не нужно.

ИнструментЗачемКогда понадобится
GitСкачать курс, получать обновления, сохранять свои решения и журналСразу
Node.js 22.12+Запускать сайт курсаСразу
Python 3.11+Домашние работы и код на PyTorch из уроковВ модуле 0.1 (урок 0.1.2). Первое ДЗ — после модуля 0.3. Можно поставить и сразу
Ваши видеокарты (4× RTX 4080)Обучение и запуск моделей: блоки «🖥 На вашей машине» в урокахСо ступени 4. Настройка — на странице «Ваша лаборатория (4×GPU)»
  1. Откройте терминал.

    Нажмите Ctrl+Alt+T или найдите «Терминал» в меню приложений.

  2. Установите Git и проверьте, что он работает.

    Окно терминала
    sudo apt update && sudo apt install -y git # Ubuntu и Debian
    git --version

    Ожидаемый вывод — строка вида git version 2.….

  3. Склонируйте репозиторий. Команда создаст папку ChinaAI в текущей папке терминала:

    Окно терминала
    git clone https://github.com/samnolak/ChinaAI.git
    cd ChinaAI
  1. Установите Node.js версии 22.12 или новее. Подойдёт текущая LTS-версия.

    В стандартных репозиториях Ubuntu версия Node.js обычно старее нужной. Надёжнее поставить менеджер версий nvm по инструкции на github.com/nvm-sh/nvm, открыть новый терминал и выполнить:

    Окно терминала
    nvm install --lts
    node -v

    Ожидаемый вывод — v22.12.0 или число больше, например v24.….

  2. Установите зависимости сайта. Из папки ChinaAI:

    Окно терминала
    cd site
    npm install

    Первый раз это займёт несколько минут: npm скачает Astro, редактор кода, Pyodide и остальное в папку site/node_modules.

  3. Запустите сайт:

    Окно терминала
    npm run dev

    Сначала скрипт скопирует ядро Python для браузера в site/public/pyodide, потом запустится сервер. В терминале появится адрес http://localhost:4321/. Откройте его в браузере и начните с раздела «Начало».

  4. Остановите сайт, когда закончите: Ctrl+C в терминале. В следующий раз хватит двух команд: cd site и npm run dev. После обновления курса (git pull) сначала повторите npm install: вдруг поменялись зависимости.

Все команды этого раздела выполняются из корня репозитория, папки ChinaAI (не из site).

  1. Установите Python 3.11 или новее.

    В Ubuntu 24.04 уже есть Python 3.12, нужно доставить модуль окружений:

    Окно терминала
    sudo apt install -y python3 python3-venv python3-pip
    python3 --version

    В Ubuntu 22.04 системный Python — 3.10, этого мало. Поставьте отдельно 3.11 (sudo apt install -y python3.11 python3.11-venv) и на следующем шаге создавайте окружение командой python3.11 -m venv .venv.

    Ожидаемый вывод — Python 3.11.… или новее. На Linux команда называется python3, на macOS — python3.12, на Windows — python (или py -3.12).

  2. Создайте виртуальное окружение и активируйте его. Окружение — отдельная папка .venv с библиотеками только для этого курса. Так курс не конфликтует с другими проектами на компьютере.

    Окно терминала
    python3 -m venv .venv
    source .venv/bin/activate

    В начале строки терминала появится (.venv). Внутри окружения команда везде называется просто python. Активируйте окружение в каждом новом терминале, прежде чем запускать домашние работы.

  3. Установите библиотеки.

    Окно терминала
    pip install torch --index-url https://download.pytorch.org/whl/cpu # PyTorch без CUDA
    pip install -r homework/requirements.txt

    На машине с видеокартами можно сразу поставить сборку с CUDA, чтобы не переустанавливать PyTorch к ступени 4: вместо первой строки выполните pip install torch. Скачается несколько гигабайт, зато всё будет готово заранее.

    Зачем PyTorch отдельной первой командой? Обычная сборка для Linux тянет библиотеки CUDA на несколько гигабайт, а тесты всех домашних работ выполняются на процессоре. Видеокарты включатся в работу на ступени 4, тогда сборку и заменим (см. ниже). В requirements.txt — NumPy, pytest, PyYAML, Matplotlib, PyTorch, а для модуля 2.4 — pandas, scikit-learn и LightGBM. Установка займёт несколько минут.

  4. Проверьте автогрейдер:

    Окно терминала
    python homework/check.py --list

    Вы увидите список домашних работ и ваш статус по каждой:

    Домашние работы ChinaAI:
    s0-hw01-python-warmup не сдано Разминка на Python — анализ русского и английского текста
    …

    Теперь запустите проверку первой домашней работы:

    Окно терминала
    python homework/check.py s0-hw01-python-warmup
    ━━━ s0-hw01-python-warmup: Разминка на Python — анализ русского и английского текста ━━━
    🥉 Simple: 0/4
    ✗ test_simple_tokenize_basic
    → NotImplementedError
    …
    🐉 Boss: 0/1
    ✗ test_boss_performance
    → NotImplementedError
    Итог: пока не зачтено. Начните с тестов Simple.

    Так и должно быть: заготовка в homework/s0-hw01-python-warmup/code/ ещё не решена. Вы решите её после модуля 0.3, и автогрейдер покажет уровень от 🥉 Simple до 🐉 Boss.

  • ДиректорияChinaAI/
    • README.md
    • Директорияsite/ сайт курса
      • Директорияsrc/
        • Директорияcontent/docs/ тексты уроков
          • …
        • Директорияexercises/ задания для браузера: заготовка, эталон, тесты
          • …
        • Директорияdata/ программа курса и глоссарий RU · EN
          • …
        • Директорияcomponents/ квизы, задания, карточки, карта прогресса
          • …
      • package.json
    • Директорияhomework/ домашние работы
      • check.py автогрейдер
      • requirements.txt библиотеки для ступеней 0–5
      • requirements-llm.txt библиотеки для ступеней 6–8
      • Директорияs0-hw01-python-warmup/
        • Директорияcode/ здесь пишете вы
          • …
        • Директорияtests/ тесты уровней от Simple до Boss
          • …
        • task.yaml
      • …
    • Директорияsolutions/ эталонные решения ДЗ — не подглядывать!
      • …
    • Директорияdocs/ проектная документация и исследования
      • …
    • Директорияjournal/ ваш журнал и экспорт прогресса
      • README.md шаблоны записей
ПапкаЧто тамЧто вы с ней делаете
site/Сайт курса: уроки, задания, компонентыЗапускаете npm run dev. Менять ничего не нужно
homework/Домашние работы: условие в README.md, тесты, заготовки в code/Пишете решения в homework/<id>/code/ и проверяете check.py
solutions/Эталоны домашних работОткрываете только после своей попытки, когда засчитан хотя бы Simple
docs/Видение, программа, архитектура, исследовательские отчётыЧитаете, если интересно, как устроен курс
journal/Ваш журнал обученияВедёте записи, складываете экспорт прогресса, коммитите

У прогресса два места хранения:

  • Сайт хранит в браузере отметки уроков, квизы, задания, карточки, тетрадь ошибок и календарь занятий.
  • Автогрейдер записывает лучшие уровни по домашним работам в файл homework/.results.json.

Чтобы сохранить прогресс сайта, раз в неделю делайте экспорт:

  1. Откройте «Карта курса и прогресс» и нажмите «⬇ Экспорт прогресса (JSON)». Браузер скачает файл chinaai-progress-ГГГГ-ММ-ДД.json.

  2. Переложите его в journal/progress/ в репозитории:

    Окно терминала
    mkdir -p journal/progress
    mv ~/Загрузки/chinaai-progress-*.json journal/progress/ # или ~/Downloads, смотря как называется папка
  3. Закоммитьте вместе с решениями и журналом:

    Окно терминала
    git add journal homework
    git commit -m "Прогресс: неделя 41"

На другом компьютере или в другом браузере откройте ту же страницу, нажмите «⬆ Импорт» и выберите последний файл из journal/progress/.

Перед git pull (получить обновления курса) всегда коммитьте свои изменения. Тогда Git сам соединит ваши коммиты с обновлениями. Если вы и автор курса изменили одни и те же строки, Git покажет конфликт и попросит выбрать нужный вариант. С незакоммиченными изменениями git pull может просто отказаться обновляться.

У вас машина с четырьмя RTX 4080 по 32 ГБ, и её хватает на весь курс без облаков. Но включится она не сразу: ступени 0–3 идут на процессоре. Так и задумано: на маленьких примерах всё видно лучше, а тесты всех домашних работ выполняются на CPU. Тяжёлое обучение со ступени 5 проверяется по сохранённым метрикам (metrics.json), а не повторным запуском.

СтупениЧто делает процессорЧто дают ваши видеокарты
0–3. Python, математика, ML, нейросетиВсёПока не нужны. Можно для интереса сравнить скорость одного и того же обучения на CPU и GPU
4. ТрансформерМини-GPT обучается за минутыПервая настройка GPU. GPT на 10–50M параметров на одной карте
5. Большие моделиУчебные версии MLA и MoEСвоя мини-LLM (MiniMind) за часы, DDP и FSDP на всех четырёх картах
6. Пост-трейнингLoRA, DPO и GRPO на игрушечных моделяхLoRA и QLoRA для моделей 7–14B, GRPO для моделей 0.5–3B
7–8. Инференс и приложенияМаленькие модели и работа через APIvLLM или SGLang на четырёх картах, свой локальный «ChatGPT» для RAG и агентов
9. Мультимодальность и фронтирМаленькие VAE, диффузия и flow matching на MNISTГенерация изображений и видео, распознавание речи, интерпретируемость на открытых моделях
10. ВыпускнойУпрощённая версияПолный цикл: от токенизатора и претрейна до сервера и агента
11. ПрофессияПочти всё: данные, код, расчёты, собеседованияЛокальный ИИ-ревьюер и ИИ-интервьюер на vLLM, воспроизведение статьи (гроккинг) за минуты

Когда настраивать. Драйвер, PyTorch с CUDA и проверку связи между картами сделайте перед ступенью 4: это один вечер по шагам на странице «Ваша лаборатория (4×GPU)». Там же — сколько памяти занимают модели разного размера и что реально запустить на каждой ступени.

Если медленно качаются пакеты Python или модели с Hugging Face, помогут зеркала: зеркало PyPI университета Цинхуа, hf-mirror.com и китайский хаб моделей ModelScope. Как их подключить — в блоке «Китайский угол» урока «Python, виртуальные окружения и Jupyter».

Видео — полноценная часть курса. В первоисточниках уроков есть лекции Андрея Карпатого, ролики 3Blue1Brown и курсы Ли Хунъи на YouTube (некоторые из них — и на Bilibili), с пометкой, какой фрагмент смотреть. Смотрите их с открытым редактором: Карпатый пишет код прямо в кадре, и этот код стоит набирать вслед за ним. Что смотреть на каждой ступени и как встроить видео в неделю — на странице «Как учиться».

Внешние ссылки иногда умирают. Тогда ищите материал по названию или загляните в библиотеку источников.

СимптомЧто делать
git clone спрашивает пароль и не принимает егоGitHub не принимает пароль аккаунта. Выполните gh auth login или используйте токен вместо пароля
npm: command not found или node не найденNode.js не установлен, или терминал открыт до установки. Закройте и откройте терминал
npm install или npm run dev ругаются на версию Node.jsПроверьте node -v. Нужна версия 22.12 или новее
Сайт открылся, но прогресс пропалДругой адрес, другой порт, другой браузер или приватное окно. Откройте прежний адрес или импортируйте JSON из journal/progress/
Задание с NumPy бесконечно загружаетсяНет интернета: NumPy грузится с CDN Pyodide. Задания на чистом Python работают и офлайн
python: command not found на Linux или macOSИспользуйте python3 (на Mac — python3.12) или активируйте .venv: внутри окружения есть python
На Windows команда python открывает Microsoft StoreЭто заглушка Windows. Используйте py -3.12 или отключите её: «Параметры → Приложения → Псевдонимы выполнения приложений»
python3 --version показывает 3.9 или 3.10Это старый системный Python. Поставьте 3.11+ и создавайте окружение явно: python3.12 -m venv .venv (или python3.11)
PowerShell: «выполнение сценариев отключено»Один раз выполните Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
No module named pytest, или check.py пишет «pytest не запустился»Окружение не активировано или библиотеки не установлены. Активируйте .venv и повторите pip install -r homework/requirements.txt
pip install качает гигабайтыЭто PyTorch с CUDA. Для процессора ставьте его с --index-url https://download.pytorch.org/whl/cpu
check.py пишет «ДЗ не найдено»Запускайте из корня репозитория и проверьте id: python homework/check.py --list