Перейти к основному содержимому

Как настроить аналитику обучения

Система аналитики обучения YooLearn требует первоначальной настройки перед началом использования. Доступ к настройкам аналитики осуществляется через раздел: "Администрирование" → "Аналитика" → "Настройки аналитики".

Информация о сайте​


Информация о сайте будет использоваться для того, чтобы помочь моделям аналитики обучения учитывать характеристики учреждения. Эти данные также передаются как часть сбора информации о сайте при его регистрации. Это позволит центральному аппарату понимать, какие области аналитики обучения используются наиболее активно, и соответствующим образом распределять ресурсы на разработку.

Настройка параметров аналитики обучения​


Возможность использования аналитики может быть отключена в разделе "Администрирование" → "Расширенные возможности".

После этого её параметры можно настроить в разделе "Администрирование" → "Аналитика".

Обработчик прогнозов​

Выделение обработчика прогнозов

Обработчики прогнозов — это машинные бэкенды, которые обрабатывают наборы данных, сгенерированные на основе рассчитанных индикаторов и целевых показателей, и возвращают прогнозы. Ядро YooLearn включает 2 процессора прогнозов:

Обработчик прогнозов PHP​

Обработчик PHP используется по умолчанию. Для его применения не требуется выполнения каких-либо иных системных требований.

Обработчик прогнозов Python​

Процессор Python является более мощным и генерирует графики, объясняющие работу модели. Он требует настройки дополнительных инструментов: собственно Python (https://wiki.python.org/moin/BeginnersGuide/Download) и пакет moodlemlbackend. Пакет может быть установлен на веб-сервере (на всех узлах, если используется кластерная среда) или на отдельном сервере.

Версии​
  • Moodle 4.0 и выше использует пакет 3.0.* (минимум 3.0.4)
Установлен на веб-сервере​

Последние версии пакетов для Moodle 3.8 и выше совместимы с Python 3.4, 3.5, 3.6 и 3.7. Обратите внимание, что пакет должен быть доступен как для пользователя интерфейса командной строки (CLI), так и для пользователя, от имени которого работает веб-сервер (например, www-data).

При необходимости установите Python 3 (и pip для Python 3) Убедитесь, что для установки пакета moodlemlbackend используется Python 3 (для ВЕРСИИ см. предыдущий раздел):
sudo -H python3 -m pip install "moodlemlbackend==ВЕРСИЯ"

Также необходимо указать путь к исполняемому файлу Python 3 в разделе "Администрирование" → "Сервер" → "Системные пути":

Введите системный путь для Python 3
Установка на отдельном сервере​

Установка пакета Python на отдельном сервере, вместо установки на веб-сервер(ах), имеет ряд преимуществ:

  • ML-бэкенд на Python остается внешней службой.
  • Раздельное управление ресурсами: ресурсы веб-серверов, выделенные для обслуживания YooLearn, и ресурсы, выделенные для ML-бэкенда на Python, управляются независимо.
  • Докеризация: пакет можно установить как новый контейнер Docker в вашей докеризованной среде.
  • Развертывание в AWS: ML-бэкенд можно обслуживать из AWS через API Gateway и AWS Lambda, храня файлы обученных моделей в S3.

С другой стороны, при таком подходе может возникнуть дополнительная задержка при подключении к серверу ML-бэкенда на Python.

Данный Python-бэкенд предоставляется как приложение Flask. Это приложение является частью официального пакета Python moodlemlbackend, и его скрипт FLASK_APP — это webapp в корне пакета. Вы можете использовать конфигурацию, которая наилучшим образом соответствует вашей существующей инфраструктуре.

Новый сервер в вашей инфраструктуре​

Бэкенд машинного обучения на Python представлен в виде приложения Flask, которое использует WSGI-сервер (https://wsgi.readthedocs.io/en/latest/what.html) для предоставления доступа в Интернет. Официальная документация по развертыванию приложения Flask доступна по адресу: https://flask.palletsprojects.com/en/1.0.x/tutorial/deploy/.

  • Используйте переменную окружения MOODLE_MLBACKEND_PYTHON_USERS для задания списка пользователей и паролей (через запятую). Значение по умолчанию — 'default:sshhhh' (пользователь: default, пароль: sshhhh).
  • Установите переменную окружения MOODLE_MLBACKEND_PYTHON_DIR в значение пути, который будет использоваться для хранения данных, генерируемых пакетом.
Docker​

Официальным образом Docker для moodle-mlbackend-python является https://hub.docker.com/r/moodlehq/moodle-mlbackend-python. Мы используем его внутри YooLearn (Moodle) HQ для внутреннего тестирования, и вы также можете его использовать. Если вам требуется больший контроль над образом, то https://github.com/moodlehq/moodle-docker-mlbackend-python/blob/master/Dockerfile может служить примером того, что необходимо для запуска пакета python moodlemlbackend.

Используйте переменную окружения MOODLE_MLBACKEND_PYTHON_USERS, чтобы задать список пользователей и паролей (через запятую). Значение по умолчанию — 'default:sshhhh' (пользователь: default, пароль: sshhh).

Чтобы запустить контейнер Docker локально, выполните (для VERSION см. раздел "Версии" выше):

docker pull moodlehq/moodle-mlbackend-python:VERSION-python3.7.5
docker run -d -p 5000:5000 --name=mlbackendpython --rm --add-host=mlbackendpython:0.0.0.0 moodlehq/moodle-mlbackend-python:VERSION-python3.7.5

Примечание: необходимо добавить --network=moodledocker_default, если вы используете moodle-docker и хотите, чтобы этот контейнер был виден с веб-сервера.

Затем добавьте следующие настройки в ваш файл config.php:

$CFG->pathtopython = 'python';
define('TEST_MLBACKEND_PYTHON_HOST', 'localhost'); // Измените на "mlbackendpython", если вы используете moodle-docker.
define('TEST_MLBACKEND_PYTHON_PORT', 5000);
define('TEST_MLBACKEND_PYTHON_USERNAME', 'default');
define('TEST_MLBACKEND_PYTHON_PASSWORD', 'sshhhh');

Чтобы проверить работу, выполните следующую команду — она не должна пропускать ни один тест:
vendor/bin/phpunit analytics/tests/prediction_test.php --verbose

Бессерверный сервис AWS​

Вы можете запустить приложение Flask как серверное приложение, используя AWS API Gateway и AWS Lambda. Самый простой способ сделать это — использовать Zappa (https://github.com/Miserlou/Zappa) для развертывания приложения Flask, содержащегося в пакете Python ML.

  • Используйте переменную окружения MOODLE_MLBACKEND_PYTHON_USERS для задания списка пользователей и паролей (через запятую). Значение по умолчанию — 'default:sshhhh' (пользователь: default, пароль: sshhhh).
  • Задайте переменную MOODLE_MLBACKEND_PYTHON_DIR для указания пути, который будет использоваться для хранения данных, генерируемых пакетом.
  • Задайте следующие переменные окружения для настройки доступа к S3:
    • MOODLE_MLBACKEND_PYTHON_S3_BUCKET_NAME — для указания имени бакета.
    • AWS_ACCESS_KEY_ID — как обычно.
    • AWS_SECRET_ACCESS_KEY — как обычно.

После выполнения этих действий вы сможете выбрать процессор прогнозов Python по умолчанию или для отдельной модели:

Обработчик прогнозов по умолчанию

Выделение обработчика прогнозов для отдельной модели

Способ хранения журнала событий​

Начиная с версии Moodle 2.7 и выше, по умолчанию используется "Стандартный журнал событий". Если по какой-либо причине у вас также есть данные в более старых "устаревших журналах", вы можете включить в системе аналитики обучения YooLearn доступ к ним вместо данных из стандартного хранилища.

Интервалы анализа​

Интервалы анализа определяют, как часто будут формироваться аналитические данные (инсайты) и какой объем информации использовать для каждого вычисления. Применение пропорциональных интервалов анализа позволяет использовать курсы разной продолжительности для обучения единой модели.

Для моделей в системе доступно несколько интервалов анализа. В данной настройке определяются интервалы анализа, которые будут использоваться для оценки моделей (например, для того, чтобы можно было выбрать для модели наилучший интервал анализа, выявленный в процессе оценки). Данная настройка не ограничивает интервалы анализа, которые могут использоваться для конкретных моделей.

Частые вопросы​

  • Проблема: Модели не делают прогнозов. Решение: Проверьте настройки аналитики, ML-бэкенд и наличие исторических данных для обучения моделей.
  • Проблема: Аналитика сильно нагружает сервер. Решение: Настройте интервалы анализа и используйте выделенный ML-бэкенд (см. раздел «Обработчик прогнозов»).
  • Проблема: Не приходят уведомления аналитики. Решение: Проверьте, что модели включены, обучены и настроены уведомления.

Смотрите также​


Оригинал: https://docs.moodle.org/502/en/Analytics_settings