Analytics-Einstellungen

Aus MoodleDocs
Wechseln zu:Navigation, Suche

Das Moodle Learning Analytics System erfordert vorab einige Einstellungen, bevor es genutzt werden kann. Die Moodle-Administration kann die Analytics-Einstellungen auf der Seite Website-Administration (oder im Block Einstellungen > Website-Administration) > Analytics > Analytics-Einstellungen vornehmen.

Website-Informationen

Die Website-Informationen werden verwendet, damit die Learning Analytics Modelle die Besonderheiten einer Institution mit einbeziehen. Diese Informationen wird als Teil der Moodle-Site-Datensammlung übermittelt, wenn Sie Ihre Moodle-Site registrieren. Das ermöglicht es dem Moodle HQ zu verstehen, welche Bereiche in Learning Analytics am häufigsten verwendet werden, und die Ressourcen für die Weiterentwicklung entsprechend zu priorisieren.

Analytics-Einstellungen vornehmen

Die Moodle-Administration kann die Learning-Analytics-Funktionalität auf der Seite Website-Administration > Zusatzoptionen deaktivieren.

Die Einstellungen für das Learning-Analytics-System von Moodle werden auf der Seite Website-Administration > Analytics > Analytics-Einstellungen vorgenommen.

Prozessor für Vorhersagen

Auswahl des Vorhersage-Prozessors

Vorhersage-Prozessoren sind Backends für maschinelles Lernen, die Daten verarbeiten, die von den Zielen und Indikatoren generiert werden und aus diesen verarbeiteten Daten Vorhersagen generieren. Die Moodle-Standardinstallation stellt zwei Vorhersage-Prozessoren zur Verfügung:

PHP-Vorhersage-Prozessor

Der PHP-Vorhersage-Prozessor ist der Standardprozessor. Es gibt keine Systemvoraussetzungen, um diesen Prozessor zu verwenden.

Python-Vorhersage-Prozessor

Der Python-Vorhersage-Prozessor ist mächtiger. Er generiert Grafiken, die die Performanz des Modells erklären. Er erfordert zusätzliche Tools, die auf dem Moodle-Server installiert sein müssen: Python (https://wiki.python.org/moin/BeginnersGuide/Download) und das Python-Paket moodlemlbackend. Das Paket kann auf dem Webserver oder auf einem separaten Server installiert werden.

Installation im Webserver

Das neueste Moodle-Paket ist kompatibel mit Python 3.4, 3.5, 3.6 und 3.7. Beachten Sie, dass das Paket sowohl für den Kommandozeilennutzer (CLI) als auch für den Webserver-Nutzer (z.B. www-data) verfügbar sein sollte.

  • Wenn nötig, installieren Sie Python 3 (und pip für Python 3)
  • Stellen Sie sicher, dass Python 3 verwendet wird, um das moodlemlbackend Paket zu installieren:
   sudo -H python3 -m pip install "moodlemlbackend==2.3.*"
  • Sie müssen auch den Pfad zum Python 3 Executable auf der Seite Website-Administration > Server > Systempfade eintragen:
Systempfad für Python 3
Installation auf einem separaten Server

Die Installation des Python-Pakets auf einem separaten Server hat einige Vorteile gegenüber der Installation auf dem Webserver:

  • erhält das Python Machine Learning (ML) Backend als einen externen Service
  • gewährleistet eine separate Kontrolle der Ressourcen, die der Webserver für den Betrieb von Moodle reserviert und der Ressourcen, die für das das Python ML Backend reserviert sind
  • Sie können denselben ML Server für mehrere Moodle-Sites verwenden. Das ist leichter aufzusetzen und zu warten, als das Backend auf allen Moodle-Servern im Cluster zu installieren.
  • Sie können das Paket als neuen Docker-Container in Ihrer Docker-Umgebung installieren.
  • Sie können das ML Backend vom AWS über das API Gateway und AWS lambda bedienen und die Dateien der trainierten Modelle in S3 speichern.

Auf der anderen Seite kann es zu Verzögerungen beim Verbinden mit dem Python ML Backend Server kommen.

Das Python Backend wird als eine Flask Applikation ausgeliefert. Die Flask Applikation ist Teil des offiziellen moodlemlbackend Python-Pakets und ihr FLASK_APP Skript is webapp im Wurzelverzeichnis des Pakets. Sie können eine andere Konfiguration verwenden, wenn diese besser zu Ihrer Infrastruktur passt.

Neuer Server in Ihrer Infrastruktur

Das Python ML Backend wird als eine Flask Applikation ausgeliefert, die einen WSGI Server (https://wsgi.readthedocs.io/en/latest/what.html) verwendet, der über das WWW bereitgestellt wird. Die offizielle Dokumentation, wie Sie eine Flask Applikation aufsetzen, finden Sie unter https://flask.palletsprojects.com/en/1.0.x/tutorial/deploy/.

  • Verwenden Sie die Variable MOODLE_MLBACKEND_PYTHON_USERS, um eine kommaseparierte Nutzerliste mit Passwörtern zu erzeugen. Das Format ist default:sshhhh (Nutzer: default, Passwort: sshhhh).
  • Setzen Sie die Variable MOODLE_MLBACKEND_PYTHON_DIR auf den Pfad, den Sie verwenden wollen, um Daten zu speichern, die das Paket generiert.
Docker

https://hub.docker.com/r/moodlehq/moodle-mlbackend-python ist das offizielle moodle-mlbackend-python Docker Image. Wir verwenden es im Moodle HQ für interne Tests und Sie können es ebenfalls nutzen. Wenn Sie mehr Kontrolle über das Image haben wollen, kann das https://github.com/moodlehq/moodle-docker-mlbackend-python/blob/master/Dockerfile als Beispiel dienen, um das Python moodlemlbackend Paket zum Laufen zu bringen.

  • Verwenden Sie die Variable MOODLE_MLBACKEND_PYTHON_USERS, um eine kommaseparierte Nutzerliste mit Passwörtern zu erzeugen. Das Format ist default:sshhhh (Nutzer: default, Passwort: sshhhh).
AWS Serverless Service

Sie können die Flask Applikation als Serverless Applikation betreiben, indem Sie das AWS API Gateway und AWS lambda verwenden. Der einfachste Weg ist die Verwendung von Zappa https://github.com/Miserlou/Zappa, um die Flask Applikation aufzusetzen, die im Python ML Paket enthalten ist.

  • Verwenden Sie die Variable MOODLE_MLBACKEND_PYTHON_USERS, um eine kommaseparierte Nutzerliste mit Passwörtern zu erzeugen. Das Format ist default:sshhhh (Nutzer: default, Passwort: sshhhh).
  • Setzen Sie die Variable MOODLE_MLBACKEND_PYTHON_DIR auf den Pfad, den Sie verwenden wollen, um Daten zu speichern, die das Paket generiert.
  • Setzen Sie folgende Umgebungsvariablen, um den S3-Zugriff zu ermöglichen:
    • MOODLE_MLBACKEND_PYTHON_S3_BUCKET_NAME
    • AWS_ACCESS_KEY_ID
    • AWS_SECRET_ACCESS_KEY

Wenn alles eingerichtet ist, können Sie den Python-Vorhersage-Prozessor als Standard oder für ein einzelnes Modell auswählen:

Standard-Vorhersage-Prozessor
Auswahl des Vorhersage-Prozessors für ein einzelnes Modell

Log-Speicher

Ab Moodle 2.7 ist Logdaten Standard der standardmäßige Speicher für Logdaten. Wenn Sie aus irgendwelchen Gründen Daten im alten Legacy-Speicher Logdaten Alt gespeichert haben, dann können Sie diesen hier einstellen, so dass das Analytics-System auf diese Daten zugreift.

Zeitaufteilungsmethode

Die Zeitaufteilungsmethode legt fest, wie oft Einschätzungen generiert werden und wie viele Informationen für diese Berechnung verwendet werden. Wenn Sie geeignete proportionale Zeitintervalle verwenden, können Kurse mit verschiedener Kursdauer verwendet werden, um ein einzelnes Modell zu trainieren.

timesplitting.png

Jede Zeitaufteilungsmethode unterteilt die Kursdauer in Zeitabschnitte. Am Ende jedes so definierten Zeitabschnitts läuft die Vorhersage-Engine und generiert Vorhersagen. Es wird empfohlen, nur die Zeiteinteilungsmethoden zu aktivieren, die Sie tatsächlich verwenden wollen, denn der Vorhersage-Prozess iteriert über alle aktivierten Zeitaufteilungsmethoden und dauert folglich um so länger, je mehr Methoden aktiviert sind.

Ausgabeverzeichnis

outputdir.png

Mit dieser Einstellung legen Sie fest, wo die Daten des Machine Learning Backends gespeichert werden. Stellen Sie sicher, dass dieses Verzeichnis existiert und der Webserver dort Schreibrechte hat. Diese Einstellung kann von Moodle-Sites verwendet werden, die als Cluster betrieben werden, um ein gemeinsames Ausgabeverzeichnis zu nutzen. Dieses Verzeichnis kann von Backends für maschinelles Lernen verwendet werden, um trainierte Algorithmen zu speichern, die später zur Berechnung von Vorhersagen verwendet werden. Der Moodle-Cronjob verhindert, dass Analytics-spezifische Tasks gleichzeitig ausgeführt werden, die die Algorithmen trainieren und daraus Vorhersagen berechnen.

Tasks

Die meisten Analytics-API-Prozesse werden über Tasks ausgeführt. Die Prozesse lesen die Logdaten der Aktivitäten und benötigen etwas Zeit für die Ausführung. Es gibt die Tasks Trainingsmodelle und Modelle vorhersagen auf der Seite auf die Seite Website-Administration (oder im Block Einstellungen > Website-Administration) > Server > Tasks. Es wird empfohlen, die Ausführzeiten zu konfigurieren, so dass diese Tasks jede Nacht ausgeführt werden.

Rollen definieren

Das Moodle Learning Analytics System verwendet einige Fähigkeiten. Die entsprechenden Rechte können für einzelne Rollen auf Systemebene oder in bestimmten Kontexten vergeben oder entzogen werden, um festzulegen, wer Einschätzungen sehen darf.

Um Benachrichtigungen über Einschätzungen zu erhalten und diese Einschätzungen anzusehen, benötigen Nutzer/innen das Recht analytics:listinsights in dem Kontext, den das Modell analysiert. Zum Beispiel wird das Modell Teilnehmer/innen, die Gefahr laufen, aus dem Kurs auszusteigen auf einen Kurskontext angewendet. Einschätzungen werden für jede Einschreibung in den Kursen generiert, die die Kriterien des Modells erfüllen (Kurse mit Kursbeginn-Datum in der Vergangenheit und Kursende-Datum in der Zukunft, mit mindestens einem/r Trainer/in und mindestens einem/r Teilnehmer/in), und diese Einschätzungen werden an alle verschickt, die das Recht analytics:listinsights in dem jeweiligen Kurs haben. Standardmäßig haben die Rollen Trainer/in mit und ohne Bearbeitungsrecht und Manager/in dieses Recht.

Einige Modelle (z.B. Kurse, bei denen die Gefahr besteht, dass sie nicht beginnen) generieren Einschätzungen auf Systemebene. Um Einschätzungen von diesen Modellen zu erhalten, müssen Nutzer/innen eine globale Rolle mit dem Recht analytics:listinsights haben. Standardmäßig ist das für die Manager-Rolle der Fall, wenn sie auf Systemebene zugewiesen wird.

Hinweis: Administrator/innen bekommen nicht automatisch Benachrichtigungen mit Einschätzungen, sie können jedoch Details zu jeder Benachrichtigung im System einsehen. Damit auch Administrator/innen über Einschätzungen benachrichtigt werden, weisen Sie allen Administrator/innen eine zusätzliche Rolle mit dem Recht analytics:listinsights auf Systemebene zu (z.B. die Manager-Rolle).