アナリティクスの設定
- アナリティクスモデルの学習
- 教師向け
- 研究者向け
Moodle学習アナリティクスシステムを使用するには、いくつかの初期構成が必要です。 サイト管理 > アナリティクス >アナリティクス設定 から アナリティクスの設定 にアクセスできます。
サイト情報
サイト情報は、ラーニングアナリティクスモデルが教育機関の特性を考慮に入れるのに役立つために使用されます。この情報は、サイトを登録するときにサイトデータ収集の一部としても報告されます。これにより、HQは、ラーニングアナリティクスのどの領域が最も使用されているかを理解し、開発リソースに適切な優先順位を付けることができます。
ラーニングアナリティクス設定を行う
アナリティクスはサイト管理/拡張機能で無効になっている可能性があります。
アナリティクスの設定は、サイト管理/アナリティクス で行うことができます。
予測プロセッサ
予測プロセッサは、計算された指標とターゲットから生成されたデータセットを処理し、予測を返す機械学習バックエンドです。 Moodleコアには2つの予測プロセッサが含まれています:
PHP予測プロセッサ
PHPプロセッサがデフォルトです。このプロセッサを使用するための他のシステム要件はありません。
Python予測プロセッサ
Pythonプロセッサはより強力で、モデルのパフォーマンスを説明するグラフを生成します。追加のツールを設定する必要があります。Python自体( https://wiki.python.org/moin/BeginnersGuide/Download )と moodlemlbackend python パッケージです。パッケージは、Moodleと同じWebサーバに(クラスター環境の場合はすべてのノードに)インストールできます。また、別のサーバにインストールすることもできます。
Webサーバにインストール
Moodle 3.8用のパッケージの最新バージョンは、Python 3.4、3.5、3.6、3.7 と互換性があります。なお、このパッケージは、コマンドラインインターフェイス(CLI)ユーザとWebサーバを実行するユーザ(www-dataなど)の両方で使用できるようにする必要があることに注意してください。
- 必要に応じて、Python 3(およびPython 3用のpip)をインストールします
- 次行のように必ずPython3を使用して、 moodlemlbackend パッケージをインストールしてください。
sudo -H python3 -m pip install "moodlemlbackend==2.3.*"
- サイト管理 -> サーバ -> システムパスにPython3実行可能ファイルへのパスも入力する必要があります。
別のサーバにインストール
pythonパッケージをWebサーバにインストールするのではなく、別のサーバにインストールすることには、いくつかの利点があります。
- Python MLバックエンドを外部サービスとして保持します
- ウェブサーバがMoodleの提供に専念するリソースとPython MLバックエンド専用のリソースを別々に制御するため
- 同じMLサーバを複数のMoodleサイトで再利用できます。クラスター内のすべてのノードにPythonパッケージをインストール/アップグレードするよりも、セットアップと保守が簡単です
- Docker化された環境に新しいDockerコンテナとしてパッケージをインストールできます
- APIゲートウェイとAWSラムダを介してAWSからMLバックエンドにサービスを提供し、トレーニングされたモデルファイルをS3に保存できます
一方、Python MLバックエンドサーバへの接続には待ち時間が増えることが予想されます。
PythonバックエンドはFlaskアプリケーションとして公開されています。 Flaskアプリケーションは公式の 'moodlemlbackend' Pythonパッケージの一部であり、そのFLASK_APPスクリプトはパッケージのルートにある 'webapp' です。既存のインフラストラクチャにより適したセットアップを自由に使用できます。
あなたのインフラストラクチャ内の新しいサーバを使う
python MLバックエンドはFlaskアプリケーションとして公開され、WSGIサーバ( https://wsgi.readthedocs.io/en/latest/what.html )を使用してwwwに公開されます。 Flaskアプリのデプロイ方法に関する公式ドキュメントは、https://flask.palletsprojects.com/en/1.0.x/tutorial/deploy/ にあります。
- MOODLE_MLBACKEND_PYTHON_USERS環境変数を使用して、ユーザとパスワードのリストを設定します(カンマ区切り)。値は 'default:sshhhh'(ユーザ: default、パスワード: sshhhh)です。
- MOODLE_MLBACKEND_PYTHON_DIRを、パッケージによって生成されたデータを保存するために使用するパスに設定します
Docker
https://hub.docker.com/r/moodlehq/moodle-mlbackend-python は、公式の moodle-mlbackend-pythondocker イメージです。内部テストのためにMoodle HQで内部的に使用しており、誰でも使用することができます。Dockerイメージをより細かく制御したい時は、 https://github.com/moodlehq/moodle-docker-mlbackend-python/blob/master/Dockerfile が、Python機械学習バックエンドを機能させるために必要なことを理解する例として役立ちます。
- MOODLE_MLBACKEND_PYTHON_USERS環境変数を使用して、ユーザとパスワードのリストを設定します(カンマ区切り)。値は 'default:sshhhh'(ユーザ: default、パスワード: sshhhh)です。
Dockerコンテナをローカルで実行するには、次のコマンドを実行します:
docker pull moodlehq/moodle-mlbackend-python:2.4.0-python3.7.5
- Note that you need to add --network=moodledocker_default if your are using moodle-docker and you want this container to be visible from the web server.
docker run -d -p 5000:5000 --name=mlbackendpython --rm --add-host=mlbackendpython:0.0.0.0 moodlehq/moodle-mlbackend-python:2.4.0-python3.7.5
次に、これをconfig.phpファイルに追加します:
$CFG->pathtopython = 'python';
define('TEST_MLBACKEND_PYTHON_HOST', 'localhost'); // Change to "mlbackendpython" if your are using 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サーバレスサービス
AWS APIゲートウェイとAWSラムダを使用して、Flaskアプリケーションをサーバレスアプリケーションとして提供できます。これを行う最も簡単な方法は、Zappa https://github.com/Miserlou/Zappa を使用して、Python MLパッケージに含まれているFlaskアプリケーションをデプロイすることです。
- 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以降では、“標準ログストア” がデフォルトです。何らかの理由で古い “レガシーログ” にもデータがある場合は、代わりにMoodleラーニングアナリティクスシステムがそれらにアクセスできるようにすることができます。
分析間隔
分析間隔は、洞察が生成される頻度と、各計算に使用する情報の量を決定します。比例分析間隔を使用すると、さまざまな長さのコースを使用して単一のモデルをトレーニングできます。
システム内のモデルには、いくつかの分析間隔があります。この設定では、モデルの評価で使用される分析間隔が定義されます。たとえば、評価プロセスで特定された最適な分析間隔をモデルに選択できます。この設定は、特定のモデルに使用できる分析間隔を制限しません。
各分析間隔は、コース期間をセグメントに分割します。定義された各セグメントの最後に、予測エンジンが実行され、洞察が生成されます。使用したい分析間隔のみを有効にすることをお勧めします。評価プロセスは、有効になっているすべての分析間隔を反復処理するため、有効になっている分析間隔が多いほど、評価プロセスは遅くなります。
モデルアウトプットディレクトリ
この設定により、機械学習バックエンドデータが保存されるディレクトリを定義できます。このディレクトリが存在し、Webサーバによって書き込み可能であることを確認してください。この設定は、複数のフロントエンドノード(クラスター)を持つMoodleサイトがノード間で共有ディレクトリを指定するために使用できます。このディレクトリは、機械学習バックエンドがトレーニング済みのアルゴリズム(内部変数の重みなど)を格納し、後でそれらを使用して予測を取得するために使用できます。 Moodle cronロックは、機械学習アルゴリズムをトレーニングし、それらから予測を取得する分析タスクの複数の実行を防ぎます。
スケジュールされたタスク
ほとんどの分析APIプロセスは、 スケジュールタスクを介して実行されます。これらのプロセスは通常、活動ログテーブルを読み取り、完了するまでに時間がかかる場合があります。 管理 > サイト管理 > サーバ > スケジュールタスク にリストされている レーニングモデル と 予測モデル のスケジュールされたタスクを見つけることができます。ケジュールタスクを編集して、毎晩実行することをお勧めします。
ロールの定義
Moodleラーニングアナリティクスは多くのケイパビリティを利用します。これらは、サイトレベルで、または特定のコンテキスト内でロールに追加またはロールから削除して、洞察を表示できるユーザをカスタマイズできます。
通知を受け取り、洞察を表示するには、ユーザは analytics:listinsightsモデルの 分析可能 として使用されるコンテキスト内の機能。たとえば、脱落リスクのある学生モデルは、コースのコンテキスト内で動作します。モデルの基準に一致するコース(過去に開始日と将来の終了日があり、少なくとも1人の教師と学生がいるコース)内の登録ごとに洞察が生成され、これらの洞察は誰にでも送信されます。そのコースの洞察を一覧表示するケイパビリティを備えています。デフォルトでは、 教師、 非編集教師、および マネージャのロールにこのケイパビリティがあります。
一部のモデル(例: 授業なし モデル)は、サイトレベルで洞察を生成します。これらのモデルから洞察を受け取るには、ユーザは、洞察を一覧表示するケイパビリティを含むシステムレベルでの役割の割り当てを持っている必要があります。デフォルトでは、サイトレベルで割り当てられている場合、これはマネージャロールに含まれます。
注意:サイト管理者は、洞察通知を自動的に受信しませんが、システム上の洞察通知の詳細を表示することを選択できます。 サイト管理者が洞察の通知を受信できるようにするには、洞察を一覧表示するケイパビリティを含む追加のロールをシステムレベルのサイト管理者に割り当てます(マネージャロールなど)。