Вернуться к курсуСкачать Markdown

Пошаговое руководство по курсу

Для кого: разработчики, строящие доверие агентов, репутацию и аудит системного риска на оракулах AIMarket.
Язык лаб: COURSE_LANG=en|ru|es|fr|zh · строки UI в i18n/ · этот гайд на русском. English · Español · Français · 中文


Сверка с текущей экосистемой

Сравните учебный граф PageRank с публичным снимком пиров Hub. Для сравнения используйте строки одобренных пиров и отдельно держите ожидающие предпросмотры. Запишите дату наблюдения, входной граф и правило выбора рёбер. Рейтинг описывает этот граф. Допуск и проверка ключа подписи выполняются отдельно.


Зачем этот курс

Мультиагентные системы постоянно отвечают на один вопрос: какому агенту (или агрегату, или маршруту) я доверяю — и могу ли я это доказать? Курс превращает этот вопрос в математику, которую можно запустить. Пять живых оракулов AIMarket считают сигналы — LUMEN (PageRank/EigenTrust), PERCOLA (пороги перколяции), FOURIER (спектральная связность), MURMURATION (устойчивый консенсус) и ABLATION (каскадный риск кучи песка) — и каждый сигнал приходит со своим сертификатом проверки, так что верить оракулу на слово не нужно. Лабы детерминированы и работают на NumPy: для базового трека не нужны ни API-ключи, ни сеть.

К концу вы умеете оценивать граф «кто кому доверяет», находить ключевой узел, удаление которого раскалывает граф, измерять, насколько граф близок к расколу, агрегировать шумные прогнозы против злоумышленника и оценивать риск хвоста системного каскада — а затем складывать всё это в один проверяемый аудит доверия.


Содержание

  1. Выбор трека
  2. Установка (10 минут)
  3. M1 — EigenTrust на LUMEN
  4. M2 — Перколяция и ключевые узлы
  5. M3 — Спектральная связность
  6. M4 — Устойчивый консенсус
  7. M5 — Каскадный риск
  8. M6 — Итоговый проект: математика доверия
  9. Упражнения и сертификат
  10. Наблюдаемость в каждой лабе
  11. Мост: от курса к боевым оракулам
  12. Чеклист самопроверки
  13. Типичные проблемы

Выбор трека

Трек Модули Время Оракулы
Базовый M1 → M2 → M3 → M4 ~2 ч LUMEN, PERCOLA, FOURIER, MURMURATION
Продвинутый Базовый + M5 каскад +30 мин + ABLATION (куча песка)
Итоговый M6 сводный аудит +20 мин LUMEN + FOURIER + PERCOLA вместе

Лаб шесть (labs/lab01–lab06), по одной на модуль. Каждая печатает блок Trace (трейс) — это её журнал аудита. Лабы с проверяемым оракулом печатают ещё и verify: True — результат независимо перепроверен, а не просто заявлен.


Установка (10 минут)

Шаг 1 — Клон и установка

git clone https://github.com/alexar76/aimarket-courses.git
cd aimarket-courses/mathematics-of-trust-course
pip install -e ".[oracles,dev]"

Из монорепозитория aicom (рекомендуется контрибьюторам):

cd courses/mathematics-of-trust-course
pip install -e ".[oracles,dev]"

Все пять оракулов подхватываются автоматически из oracles/oracles/* при запуске внутри монорепо.

Отдельный клон без соседнего монорепо:

git clone --depth 1 https://github.com/alexar76/oracles.git _deps/oracles
for pkg in lumen murmuration fourier percola ablation; do
  pip install -e _deps/oracles/oracles/$pkg
done
pip install -e ".[oracles,dev]"

Шаг 2 — Тесты

pytest -q

Ожидается: паритет i18n, интеграция с оракулами доверия, упражнения, smoke-импорт лаб.

Шаг 3 — Язык интерфейса лаб

export COURSE_LANG=ru   # или es, по умолчанию en
python labs/lab01_keystone_nodes.py

Шаг 4 — Google Colab

  1. Откройте сайт курса → Open in Colab на любой лабе.
  2. Выполните setup-ячейку (clone + pip + срез оракулов).
  3. При необходимости: os.environ["COURSE_LANG"] = "ru".
  4. Запустите ячейку лабы.

M1 — EigenTrust на LUMEN

Концепция: стационарное распределение PageRank на графе «кто кому доверяет».
Лаба: labs/lab02_trust_pagerank.py · ~20 мин · нужна установка

Шаги

  1. python labs/lab02_trust_pagerank.py
  2. Посмотрите учебный граф в courselib/trust.py — demo_trust_graph().
  3. Ранжированные оценки: hub и хорошо связанные агенты должны быть выше периферии.
  4. Загляните в oracles/oracles/lumen/lumen/pagerank.py — ядро EigenTrust (5 мин).
  5. Упражнение: python labs/run_exercises.py --module m1.

Самопроверка


M2 — Перколяция и ключевые узлы

Концепция: целенаправленное удаление узлов и критические пороги на графах доверия.
Лаба: labs/lab01_keystone_nodes.py · ~20 мин · нужна установка

Шаги

  1. python labs/lab01_keystone_nodes.py
  2. Следите за f_c — критической долей узлов, удаление которых обрушивает связность.
  3. Изучите keystones (ключевые узлы) — мосты между двумя кликами (3, 4, 8 в учебном графе).
  4. Подтвердите verify: True — PERCOLA пересчитывает порог, не доверяя оракулу на слово.
  5. Упражнение: python labs/run_exercises.py --module m2.

Самопроверка


M3 — Спектральная связность

Концепция: значение Фидлера и спектральная бисекция — насколько граф близок к расколу?
Лаба: labs/lab03_spectral_cut.py · ~20 мин · нужен M1 или M2

Шаги

  1. python labs/lab03_spectral_cut.py
  2. Читайте λ₂ (значение Фидлера) — малые значения = узкое «бутылочное горло».
  3. Изучите спектральный разрез — множества A и B и проводимость (conductance).
  4. Откройте oracles/oracles/fourier/fourier/spectral.py — analyze() и verify() (5 мин).
  5. Упражнение: python labs/run_exercises.py --module m3.

Самопроверка


M4 — Устойчивый консенсус

Концепция: медиана, усечённое среднее и biweight-оценка положения по прогнозам агентов.
Лаба: labs/lab04_consensus_aggregate.py · ~15 мин · нужна установка

Шаги

  1. python labs/lab04_consensus_aggregate.py
  2. Сравните наивное среднее, медиану и biweight на demo_agent_estimates() (один выброс на 500).
  3. Загляните в murmuration/consensus.py — точки слома (breakdown points) и число итераций DeGroot.
  4. Упражнение: python labs/run_exercises.py --module m4.

Самопроверка


M5 — Каскадный риск

Концепция: лавины абелевой кучи песка и степенной риск хвоста.
Лаба: labs/lab05_sandpile_cascade.py · ~30 мин · нужны M1–M4

Шаги

  1. python labs/lab05_sandpile_cascade.py
  2. Изучите τ (показатель степенного закона), максимальную лавину и CVaR 99%.
  3. Прочитайте топ узлов-триггеров — кто чаще всего запускает крупные каскады.
  4. Подтвердите verify: True — суммарное число обрушений и τ воспроизводятся бит-в-бит.
  5. Упражнение: python labs/run_exercises.py --module m5.

Самопроверка


M6 — Итоговый проект: математика доверия

Концепция: объединить сигналы PageRank, спектра и перколяции в один проверяемый аудит доверия.
Лаба: labs/lab06_trust_audit.py · ~20 мин · нужны M1–M3

Шаги

  1. python labs/lab06_trust_audit.py
  2. Прочитайте однострочный аудит по demo_trust_graph():
    • Самый доверенный узел и его оценка PageRank (LUMEN) — ожидается hub.
    • Алгебраическая связность λ₂ и её флаг verify от FOURIER.
    • Порог перколяции f_c и его флаг verify от PERCOLA.
    • Ключевые узлы, связывающие граф мостами.
  3. Подтвердите итоговый verify: True — это И (AND) сертификатов спектра и перколяции. Одно проваленное доказательство проваливает весь аудит.
  4. Откройте courselib/trust.py — trust_audit_summary(): вызывает score_pagerank, analyze_spectral и analyze_percolation, затем возвращает top_trusted, fiedler_value, percolation_f_c, keystones и оба флага проверки.
  5. Набросайте, как бы вы пропускали действие агента сразу по трём сигналам (доверенный источник и связный граф и отсутствие хрупких ключевых узлов).
  6. Упражнение: python labs/run_exercises.py --module m6.

Ожидаемый вывод

Самопроверка


Упражнения и сертификат

После лаб запустите проверки:

python labs/run_exercises.py
python labs/run_exercises.py --certificate "Иван Петров" --lang ru
Модуль Что проверяет упражнение
M1 Оценки PageRank в сумме дают 1
M2 Ключевые узлы найдены; проверка PERCOLA проходит
M3 Сертификат Фидлера проверяется
M4 Консенсус устойчив к выбросу
M5 τ каскада и суммарное число обрушений проверяются
M6 Сводный аудит: hub самый доверенный, доказательства спектра и перколяции проходят

Сертификат покрывает все шесть модулей. HTML открывается в браузере; Print → Save as PDF для версии, которой можно поделиться. ID сертификата — sha256(имя|дата)[:12], поэтому одно и то же имя в один и тот же день всегда даёт один и тот же ID. Чтобы перегенерировать без перезапуска проверок, добавьте --skip-check; путь задаётся через -o path/to/certificate.html.


Наблюдаемость в каждой лабе

Концепция: каждая лаба пишет решения в Trace (трейс) — это ваш журнал аудита событий доверия.

Шаги (после каждой лабы)

  1. Прокрутите к секции trace в конце вывода.
  2. Сопоставьте события со stdout: оценки доверия, пороги перколяции, спектральные значения, статистики консенсуса, метрики каскада.
  3. В M5 свяжите события cascade с напечатанными τ и CVaR.

Самопроверка


Мост: от курса к боевым оракулам

Цель: связать концепции курса с живыми деплоями оракулов AIMarket (~30 мин).

  1. Прочитайте README оракулов в oracles/oracles/{lumen,percola,fourier,murmuration,ablation}/.

  2. Сопоставление курс → возможности оракула

    Курс Оракул Возможность
    M1 LUMEN lumen.pagerank@v1
    M2 PERCOLA percola.threshold@v1 + percola.verify@v1
    M3 FOURIER fourier.spectrum@v1 + fourier.verify@v1
    M4 MURMURATION murmuration.aggregate@v1
    M5 ABLATION ablation.cascade@v1 + ablation.verify@v1
    M6 LUMEN + FOURIER + PERCOLA сводный аудит (trust_audit_summary)
  3. Вызов через Hub (опционально, из монорепо):

    cd aimarket-hub && pytest -q -k lumen
    

Чеклист самопроверки

Базовый трек:

Продвинутый трек:


Типичные проблемы

Проблема Решение
ModuleNotFoundError: courselib Запуск из корня репозитория; лабы добавляют родителя в sys.path
ImportError: Oracle package 'lumen' Установите срез оракулов или запускайте из монорепо aicom
Нет numpy pip install -e ".[oracles,dev]"
Пустые строки RU/ES export COURSE_LANG=ru; ключи i18n/ru.json должны совпадать с en.json
Падает i18n в pytest Добавьте недостающие ключи во все три JSON
Проверка PERCOLA не проходит samples должен совпадать в analyze и verify
Старый код в Colab Перезапустите setup-ячейку; закрепите ветку main

Обновление сайта и ноутбуков

После правок лаб или i18n:

python3 scripts/build_course_assets.py
python3 scripts/labs_to_notebooks.py

Гайды в docs/ правятся вручную — сначала EN, затем зеркала RU/ES.