Jupyterガイド

JupyterLabのセットアップに関するガイダンス

関連するリポジトリを参照してください。

機能

  • 最も便利な拡張機能がプリインストールされた仮想環境のJupyterLabのインストール
  • 一般的なPython DS/MLライブラリ(pandas、scikit-learn、sci-pyなど)
  • dbtの認証情報を使用してSnowflakeにネイティブに接続(ログイン不要)
  • Git機能: JupyterLab内でGitリポジトリへのプッシュ/プル(SSH認証情報が必要
  • ローカルマシンまたはGitLabリポジトリのいずれかからPythonファイルまたはノートブックを実行
  • VS CodeでのJupyterの実行をサポート
  • 使用しているが見当たらない機能が必要な場合は#bt-data-scienceでお知らせください

はじめに

JupyterLabはローカルマシンの仮想環境で実行するように設定されています。仮想環境のセットアップを希望しない場合は、CUDAサポートのあるdata science dockerイメージを使用することもできます。

JupyterLabのセットアップ時に以下が行われます:

  • uv.venv/に必要なすべてのパッケージを含むPython仮想環境を作成・管理します。uvは非常に高速で、多くの一般的なPythonツール(pipenv、pip-compile、installなど)の優れた代替ツールです。
  • uvとpyproject.tomlで定義されたPythonバージョンとパッケージを使用してPython仮想環境が作成されます
  • JupyterLabはvenv内でビルドされます

インストール手順

注意: このセットアップはMacOSを対象としています。コードはLinuxやWindowsでも一部の変更で動作する場合があります。

  1. 前提条件 - インストール前に以下がローカルマシンにインストールされていることを確認してください:
    • Python3.11+
    • Pip3(通常pipとしてエイリアスされます)
    • Git
    • 特定のバージョンのMacOSはXcode Command Line Toolsのインストールが必要な場合があります。コマンドラインからxcode-select --installを実行してください
  2. data-scienceリポジトリをローカルマシンにクローンします: git clone [email protected]:gitlab-data/data-science.git
  3. ディレクトリに移動します: cd data-science
  4. 以下のコマンドを実行します: make setup。これにより以下が行われます:
    • brew、node.js、uv、および特定のPythonパッケージがローカルマシンにインストールされているか確認し、必要に応じてインストール/更新します
    • data-scienceディレクトリに仮想環境をセットアップします
  5. Jupyterを起動します
    • JupyterLabを起動するには: make jupyter
    • Jupyter ServerでVS Codeを起動するには: make jupyter-vscode、その後ターミナルの指示に従います

Dockerから実行する

仮想環境からJupyterLabを実行することをお勧めしますが、それが常に可能とは限りません。そのような場合に使用できるDockerイメージを作成しました。

  1. イメージregistry.gitlab.com/gitlab-data/data-science/datascienceimage:latestをコンテナマネージャー(Rancher Desktopを推奨)にプルします
  2. docker-compose.ymlを使用してJupyterLabを起動します。ターミナルでローカルマシンのdata-scienceリポジトリの場所に移動し、make jupyter-dockerと入力します
  3. JupyterLabを読み込むには、ターミナルに表示されたURLを手動でコピーしてWebブラウザに貼り付ける必要があります

ローカルディレクトリのマウント

デフォルトでは、ローカルインストールはdata-scienceフォルダーをJupyterLabのルートディレクトリとして使用します。コード、データ、ノートブックが他の場所にある場合は役立ちません。変更するには、Jupyter Notebookの設定ファイルを作成して変更する必要があります:

  1. ターミナルを開き、data-scienceリポジトリに移動します(例: cd repos/data-science
  2. ./.venv/bin/jupyter lab --generate-configを実行すると/Users/{your_user_name}/.jupyter/jupyter_lab_config.pyが生成されます
  3. ファイルの場所を参照してテキストエディターで開きます
  4. ファイル内の次の行を検索します: #c.ServerApp.root_dir = ''c.ServerApp.root_dir = '/the/path/to/other/folder/'に変更します。不明な場合は、リポジトリディレクトリを設定します(例: c.ServerApp.root_dir = '/Users/{your_user_name}/repos')。行の先頭の#を削除してください。
  5. パスには必ずフォワードスラッシュを使用してください
  6. data-scienceディレクトリからmake jupyterを再実行すると、ルートディレクトリが上記で指定したものに変更されます

Jupyterテンプレートの有効化

データサイエンスチームは、ゼロからPythonコードを書くことなく予測モデルを簡単に構築できるモデリングテンプレートを作成しました。これらのテンプレートを有効にするには:

  • ローカルディレクトリのマウントの一部として作成したjupyter_lab_config.pyに以下の行を追加します(/Users/{your_user_name}/repos/をローカルマシンのdata-science/templatesリポジトリへのパスに置き換えます):
c.JupyterLabTemplates.template_dirs = ['/Users/{your_user_name}/repos/data-science/templates']
c.JupyterLabTemplates.include_default = False
  • JupyterLabを起動すると、新しいテンプレートアイコンが表示されます。アイコンをクリックして使用したいテンプレートを選択します。 alt text

Jupyter拡張機能のセットアップ

  • data-scienceリポジトリには、gitexecute timesystem monitorなど、多くの便利なJupyterLab拡張機能がプリインストールされています。
  • これらを最大限に活用するために(毎回コンテナを実行するたびに設定しなくても済むように)、次のファイルを作成します: /Users/{your_user_name}/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/tracker.jupyterlab-settings
  • そのファイル内に以下を貼り付けて保存します:
{
    "codeCellConfig": {
        "codeFolding": true,
        "lineNumbers": true,
    },

    "recordTiming": true,

}

仮想環境の更新

  1. data-scienceリポジトリから最新の変更をローカルマシンにプルします: git pull
  2. オプション: make recompileコマンドを使用して依存関係を更新するか、make add-packagesmake remove-packagesを使用して依存関係を追加/削除できます
  3. make setupを再実行します
  4. make jupyterまたはmake jupyter-vscodeでJupyterLabを起動します

Snowflakeへの接続

  1. ローカルマシンに/Users/{your_user_name}/.dbt/profiles.ymlファイルがセットアップされていることを確認してください(パスワードを含めない)。profiles.ymlは「ホーム」ディレクトリのこのディレクトリに配置する必要があります。参考としてサンプルプロファイルを使用できます
  2. リポジトリのauth_exampleノートブックを実行して、すべてが正しく設定されていることを確認します。OktaでSnowflakeの認証情報を認証するためにブラウザがリダイレクトされます。
  3. エラーが発生した場合は、おそらくマシンでSnowflakeが適切に設定されていません。データオンボーディングIssueのSnowflakeとdbtのセクションを参照してください。おそらく.dbt/profiles.ymlが正しく設定されていません。

GitLab Model Experiments(MLFlow統合)への接続

  1. GitLabのプロファイルで、API権限を持つ個人アクセストークンを作成します
  2. GitLabのプロジェクトでSettings -> General -> Visibility, project features, permissionsの下でModel experimentsがオンになっていることを確認します
  3. Settings -> Generalの下でプロジェクトのプロジェクトIDを見つけます
  4. ローカルマシンで2つの新しい環境変数MLFLOW_TRACKING_TOKENMLFLOW_TRACKING_URIを作成する必要があります
    1. ローカルマシンのホームディレクトリにあるシェルリソースファイル(例: .zshrc)を開きます
    2. 次の行を追加します: export MLFLOW_TRACKING_TOKEN="your-access-token"
    3. プロジェクトIDを含む次の行を追加します: export MLFLOW_TRACKING_URI="https://gitlab.com/api/v4/projects/{your-project-id}/ml/mlflow"。また、ノートブックに直接配置することもできます。
    4. ファイルを保存します
    5. ファイルをソースします(例: source ./zshrc)またはターミナルを終了して再起動します
  5. JupyterLabを起動します。JupyterLabでmlflow.set_tracking_uri(os.getenv('MLFLOW_TRACKING_URI'))コマンドで実験トラッカーを初期化できるようになります

注意: CIを使用してModel Experimentsに接続しようとしている場合は、モデルトレーニングのステップバイステップ手順を参照してください

含まれる興味深いライブラリ

データとモデル管理

  • GitLabDS: 一般的なEDAタスクをすばやく実行するためのツール
  • MLFlow: 実験追跡とモデルレジストリ
  • Feast: オープンソースのフィーチャーストア
  • Papermill: Jupyter Notebookのパラメーター化、実行、分析
  • interpret: 解釈可能なモデル開発

可視化ツール

MLライブラリ

  • Scikit-Learn: 一般的に使用されるアルゴリズムのスイート
  • AutoTS: 自動時系列予測
  • XGBoost + Optuna: 自動ハイパーパラメーター最適化を備えた強力なブラックボックス法
  • Tensorflow and Keras: ディープラーニングとニューラルネットワーク
  • Lifelines: 生存分析ツール