Analytics-Einstellungen: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
 
(18 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{ÜberarbeitenNeu}}{{Analytics}}{{Neu}}
{{Analytics}}
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-Block|Einstellungen]] > Website-Administration'')'' >  Analytics > Analytics-Einstellungen'' vornehmen.
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-Block|Einstellungen]] > Website-Administration'')'' >  Analytics > Analytics-Einstellungen'' vornehmen.


== Moodle-Site-Informationen ==
== Website-Informationen ==
{{Neu}}
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.
Die Moodle-Site-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.


== Configure learning analytics settings ==
== Analytics-Einstellungen vornehmen ==
[[File:configure_settings.png|thumb]] The settings for the Moodle Learning Analytics system are set to reasonable defaults, but let’s review them. To configure and enable Moodle Learning Analytics settings, access the Analytics settings panel under Site Administration/Analytics.
Die Moodle-Administration kann die Learning-Analytics-Funktionalität auf der Seite ''Website-Administration > Zusatzoptionen'' deaktivieren.


=== Vorhersage-Prozessor ===
Die Einstellungen für das Learning-Analytics-System von Moodle werden auf der Seite ''Website-Administration > Analytics > Analytics-Einstellungen'' vorgenommen.
 
=== Prozessor für Vorhersagen===
 
[[Image:analytics01_predictions_processor34.png|frame|center|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:
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:
* Der PHP-Prozessor ist der Standardprozessor. Es gibt keine Systemvoraussetzungen, um diesen Prozessor zu verwenden.
* Der Python-Prozessor ist mächtiger. Er generiert [https://www.tensorflow.org/get_started/summaries_and_tensorboard 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'''.


     pip install moodlemlbackend
====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 [https://www.tensorflow.org/get_started/summaries_and_tensorboard 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:
 
[[File:path_to_python_3.png|frame|center|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.


=== Log store ===
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.
From Moodle version 2.7 and up, the “Standard logstore” is the default. If for some reason you also have data in the older “legacy logs,” you can enable the Moodle Learning Analytics system to access them instead.


====== 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/.


=== Zeitaufteilungsmethode===
* 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.


Die [[dev:Analytics API#Time splitting methods|Zeitaufteilungsmethoden]] erlauben es, dass Analytics-Daten, die aus einem Kurs generiert wurden, in einem anderen Kurs verwendet werden können, selbst dann wenn die beiden Kurse nicht dieselbe Dauer haben.
* 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


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.
Wenn alles eingerichtet ist, können Sie den Python-Vorhersage-Prozessor als Standard oder für ein einzelnes Modell auswählen:


''Einzeln'' bedeutet, dass eine Vorhersage einmalig gemacht wird, d.h. am Ende eines Kurses.
[[File:python_backend.png|frame|center|Standard-Vorhersage-Prozessor]]


''Keine Zeitaufteilung'' bedeutet, dass das Model eine Vorhersage auf der Basis der aktuell vorliegenden Daten zu einem bestimmten Zeitpunkt berechnet ("Schnapschuss"). Z.B. schaut das Model ''Keine Lehrtätigkeit'', ob irgendwelche Trainer/innen oder Teilnehmer/innen im Kurs eingeschrieben sind und sendet eine Warnung an die Moodle-Administration, dass in einem leeren Kurs voraussichtlich keine Lehrtätigkeit stattfinden wird.
[[File:python_backend_at_model.png|frame|center|Auswahl des Vorhersage-Prozessors für ein einzelnes Modell]]


Die ''akkumulaiven'' Methoden unterscheiden sich darin, wie viele Daten in die Vorhersage einfließen. Sowohl ''Viertel'' als auch ''Viertel akkumuliert'' liefert Vorhersagen zum Ende jedes Viertels einer Zeiteinheit (z.B. nach jedem Viertel der Dauer eines Kurses). Bei der Einstellung ''Viertel'' wird die Vorhersage jedoch nur auf Basis der Daten des gerade vergangenen Viertels berechnet, bei ''Viertel akkumuliert'' dagegen auf der Basis der Daten aller vorangegangenen Viertel. Das gilt analog für die Optionen ''Zehntel'' bzw. ''Zehntel akkumuliert''.
=== 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.


Die Methoden ''Einzeln'' und ''Keine Zeitaufteilung'' haben keine Zeitbeschränkungen. Die Vorhersage-Engine wird beim nächsten geplanten Vorgang (dennoch kann das Modell Bedingungen haben, z.B. dass ein Kurs abgeschlossen sein muss, um ihn zum "trainieren" zu verwenden). Die Zeiteinteilungsmethoden ''Einzeln'' und ''Keine Zeitaufteilung'' sind nicht geeignet, um Teilnehmer/innen zu identifizieren, die gefährdet sind auszusteigen. Sie sollten stattdessen im Modell ''Keine Lehrtätigkeit'' verwendet werden oder um Nutzer/innen zu identifizieren, die Spam verursachen, d.h. in Modellen, in denen einmal eine Vorhersage gemacht wird und fertig. Z.B. kann das Modell ''Keine Lehrtätigkeit'' die Zeitaufteilungsmethode ''Einzeln'' verwenden; die Zielklasse (das ist die Haupt-PHP-Klasse des Modells) akzeptiert nur Kurse, die in der folgenden Woche beginnen; die Vorhersage wird dann für alle diese Kurse einmalig berechnet.
=== Zeitaufteilungsmethode===
Die [[dev:Analytics API#Time splitting methods|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.


Der Unterschied zwischen den Methoden ''Einzeln'' und ''Keine Zeitaufteilung'' besteht darin, dass Modelle, die mit der Methode ''Einzeln'' analysiert wurden, auf die analysierbaren Elemente beschränkt sind (z.B. auf die Daten Kursbeginn und Kursende im Fall des Modells ''Teilnehmer/innen, die gefährdet sind auszusteigen''). Bei der Zeitaufteilungsmethode ''Keine Zeitaufteilung'' gibt es keine zeitlichen Einschränkungen und alle im System verfügbaren Daten können zur Berechnung der Vorhersage verwendet werden.
[[Image:timesplitting.png]]


'''Anmerkung''': Obwohl alle oben beschriebenen Beispiele sich auf Kurse bezogen, können Zeitaufteilungsmethoden auch auf andere analysierbare Elemente bezogen werden. Z.B. können Kurseinschreibungen ein Beginn- und ein Endedatum haben, so dass die Zeitaufteilungsmethode verwendet werden kann, um Vorhersagen in Bezug auf Aspekte der Kurseinschreibung zu machen. Für analysierbare Elemente ohne Beginn- und Endedatum sind andere Zeitaufteilungsmethoden erforderlich. Z.B. könnte eine "wöchentliche" Zeitaufteilungsmethode in einem Modell verwendet werden, das auf der Basis von Daten über seine Aktivitäten in der vergangenen Woche vorhersagt, ob eine Person sich in  der Zukunftim System anmelden wird.  
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===
===Ausgabeverzeichnis===
[[Image: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 geplante Vorgänge gleichzeitig ausgeführt werden, die die Algorithmen trainieren und daraus Vorhersagen berechnen.
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.


==Geplante Vorgänge==
==Tasks==


Die meisten Analytics-API-Prozesse werden über [[Geplante Vorgänge|geplante Vorgänge]] ausgeführt. Die Prozesse lesen die Logdaten der Aktivitäten und benötigen etwas Zeit für die Ausführung. Es gibt die geplanten Vorgänge ''Trainingsmodelle'' und ''Modelle vorhersagen'' auf der Seite auf die Seite ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]] > Website-Administration'')'' > Server > Geplante Vorgänge''. Es wird empfohlen, die Ausführzeiten zu konfigurieren, so dass diese geplanten Vorgänge jede Nacht ausgeführt werden.
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-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 ==
== 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.


Moodle learning analytics makes use of a number of capabilities. These can be added or removed from roles at the site level or within certain contexts to customise who can view insights.
Um Benachrichtigungen über Einschätzungen zu erhalten und diese Einschätzungen anzusehen, benötigen Nutzer/innen das Recht [[Capabilities/moodle/analytics:listinsights|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 [[Capabilities/moodle/analytics:listinsights|analytics:listinsights]] in dem jeweiligen Kurs haben. Standardmäßig haben die Rollen [[Trainer-Rolle|Trainer/in]] mit und ohne Bearbeitungsrecht und [[Manager-Rolle|Manager/in]] dieses Recht.
 
To receive notifications and view insights, a user must have the [[Capabilities/moodle/analytics:listinsights|analytics:listinsights]] capability within the context used as the "Analysable" for the model. For example, the [[Students at risk of dropping out]] model operates within the context of a course. Insights will be generated for each enrolment within any course matching the criteria of the model (courses with a start date in the past and an end date in the future, with at least one teacher and student), and these insights will be sent to anyone with the listinsights capability in that course. By default, the roles of [[Teacher role|Teacher]], [[Non-editing teacher role|Non-editing teacher]], and [[Manager role|Manager]] have this capability.


Some models (e.g. the ''No teaching'' model) generate insights at the Site level. To receive insights from these models, the user must have a role assignment at the System level which includes the listinsights capability. By default, this is included in the [[Manager role]] if assigned at the site level.
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 [[Capabilities/moodle/analytics:listinsights|analytics:listinsights]] haben. Standardmäßig ist das für die [[Manager-Rolle]] der Fall, wenn sie auf Systemebene zugewiesen wird.


'''Note''': Site administrators do '''not''' automatically receive insight notifications, though they can choose to view details of any insight notifications on the system. To enable site administrators to receive notifications of insights, assign an additional role that includes the listinsights capability to the site administrator at the system level (e.g. the [[Manager role]]).
'''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 [[Capabilities/moodle/analytics:listinsights|analytics:listinsights]] auf Systemebene zu (z.B. die [[Manager-Rolle]]).


[[Category:Analytics]]
[[Category:Analytics]]

Aktuelle Version vom 6. Januar 2021, 19:56 Uhr

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).