データサイエンスハンドブック

GitLab データサイエンスチームのハンドブック

GitLab のエンタープライズデータサイエンスチーム

データサイエンスチームのミッションは、予測アナリティクスを使ってより速く、より良い意思決定を支援することです。

ハンドブックファースト

GitLab ではハンドブックファーストを実践しており、データサイエンスチームのページが目標・プロセス・プロジェクトに関する最新かつ正確な情報で更新された状態を維持することでこの考え方を推進しています。また、有益なリソースやデータサイエンスのツールセットもハンドブックに最新の状態で掲載するよう努めています。

データサイエンスの責務

データサイエンスチームは以下の事項に直接責任を持ちます:

  • GitLab の KPIを促進・改善する説明的予測的規範的なソリューションを提供する
  • 予測アナリティクスの***卓越センター(Center of Excellence)***として、他チームのデータサイエンスの取り組みを支援する
  • データサイエンスと機械学習のためのツール・プロセス・ベストプラクティスを開発する

さらに、データサイエンスチームは以下の責務を支援します:

  • データリーダーシップと連携して:
    • ビジネス KPI に直接インパクトを与えるデータサイエンス戦略をスコープ化・実行する
    • 成果物・進行中のイニシアティブ・ロードマップについて定期的な更新情報を発信する
  • Data Platform チームと連携して:
    • GitLab データシステムのデータ品質ベストプラクティスとプログラムを定義・推進する
    • データサイエンスモデルをデプロイし、データ品質と整合性を確保し、機械学習と互換性のあるデータセットを形成し、新しいデータセットをオンラインにする
    • GitLab プラットフォームと Data Team の技術スタックとネイティブに連携するデータサイエンスパイプラインを作成する
  • Data Analytics チームと連携して:
    • データサイエンスをアナリティクスイニシアティブに組み込む
    • データサイエンスモデルの価値とインパクトを高めるダッシュボードを設計する

私たちの働き方

卓越センターとして、データサイエンスチームは組織内の他チームと協力して作業することに注力しています。これは、私たちのステークホルダーや執行スポンサーが主にビジネスの他の部分(例: 営業・マーケティング)にいることを意味します。これらのチームと緊密に連携しながら、そのビジネスニーズ・目標・優先事項に合致したプロジェクト計画を策定します。これには通常、それらのチーム内の機能アナリストと密接に連携して、データ・過去の分析からのインサイト・実装上のハードルを把握することが含まれます。

データサイエンスのフライホイールは、正確で信頼性の高い予測を作成することでビジネス効率と KPI の改善に注力しています。これは機能アナリティクス卓越センター(Functional Analytics Center of Excellence)と協力して、最も関連性の高いデータソースが活用されビジネス目標が達成され、結果を定量的に測定できるようにしながら行われます。ビジネスニーズが変化し、ユーザーベースが成長するにつれ、このフライホイールアプローチによってデータサイエンスチームは機械学習モデルを素早く適応・イテレーション・改善できます。

graph BT;
   id1(より速く、より正確な予測)-->id2(ビジネス理解の向上) & id5(継続的なフィードバック)
   id2-->id3(より多くの収益とユーザー)
   id5-->id1
   id3-->id4(より多くのデータ)
   id4-->id1

データサイエンスイニシアティブ

現在のデータサイエンスイニシアティブの例:

  • 収益拡大
  • チャーン削減
  • 予測精度の改善
  • 顧客ヘルス
  • GitLab を使った MLOps

進行中・計画中のすべてのプロジェクトの最新情報については、データサイエンスイニシアティブ 社内ハンドブックを参照してください。

プロジェクト構成

データサイエンスチームはクロスインダストリー標準プロセス(CRISP-DM)に従っており、6つの反復フェーズで構成されています:

  1. ビジネス理解

    • 要件収集・ステークホルダーへのインタビュー・プロジェクト定義・製品ユーザーストーリー・プロジェクトの成功基準を確立するための潜在的なユースケースが含まれます。
  2. データ理解

    • 既存の関連データソースの範囲とスコープを決定する必要があります。データサイエンティストはデータエンジニアやデータアナリストと密接に連携して、ギャップが存在する可能性のある箇所を特定し、データの不一致やリスクを洗い出します。
  3. データ準備

    • データ品質チェックと探索的データ分析(EDA)を実施して、データとさまざまなデータポイントがビジネスニーズの解決にどう関係するかをより深く理解する必要があります。
  4. モデリング

    • 機械学習技術を使用してビジネスニーズに対処するソリューションを見つけます。これは多くの場合、ビジネスアウトカムの将来のインスタンスがいつ・なぜ・どのように発生するかを予測する形を取ります。
  5. 評価

    • パフォーマンスは一般的に、モデルの正確性パワー説明可能性によって測定されます。調査結果はフィードバックのためにステークホルダーに提示されます。
  6. デプロイ

    • モデルが承認されると、データサイエンス本番パイプラインにデプロイされます。このプロセスにより、モデルが定期的なケイデンスで自動的に更新・予測生成・監視されます。

GitLab のアプローチ

モデル開発に対するデータサイエンスチームのアプローチは、GitLab のバリューであるイテレーションと CRISP-DM 標準を中心に据えています。私たちのプロセスは、特定のビジネス目標とデータインフラのニーズに最も適切に対処するために、CRISP-DM で概説されている6つのフェーズのいくつかを拡張しています。

データサイエンスプラットフォーム

現在のプラットフォームは以下で構成されています:

  • 生データおよび正規化されたソースデータ、並びに下流のコンシューマーが利用するための最終モデル出力を保存するためのエンタープライズデータウェアハウス
  • モデルのトレーニング・チューニング・選定のためのJupyterLabと VSCode
  • コラボレーション・プロジェクトのバージョン管理・スコアコード管理・実験追跡CI/CDのためのGitLab
  • オートメーションとオーケストレーションのためのGitLab CI
  • 機械学習モデル用のオープンソース特徴量ストアとしてのSnowflake Feature Store
  • ドリフト検出のためのMonte Carlo
  • モデル監視と継続的なパフォーマンス評価のための Tableau Server

現在のデータフロー

graph
    A[エンタープライズデータウェアハウス: 生データおよび正規化データソース]
    B[JupyterLab & GitLab CI/CD: モデルのトレーニング・チューニング・選定]
    C(GitLab CI/CD & パイプラインスケジュール: Papermill を使ったバッチスコアリング)
    F[エンタープライズデータウェアハウス: コンシューマー向けモデル出力]
    D[Salesforce/Marketo: CRM ユースケース]
    E[Tableau/Monte Carlo: モデル監視とレポーティング]
    G[GitLab: ソースコード管理]
    H[実験追跡]
    I[特徴量ストア]
    A --> I
    I --> |ODBC| B
    B --> H
    H --> B
    B --> G
    G --> B
    G --> C
    I --> |ODBC| C
    C --> F
    F --> |Census| D
    F --> |ODBC| E

特徴量ストア

私たちは Snowflake Feature Store を使用して、機械学習モデルの特徴量を作成・提供しています。 設定は特徴量ストアプロジェクトリポジトリにあります。特徴量ストアの更新は GitLab CI/CD を使って行います。

特徴量の作成と提供方法の詳細については、特徴量ストアのハンドブックページを参照してください。

データサイエンス向け CI/CD パイプライン

私たちはすべてのモデルを GitLab のネイティブ CI/CD 機能を使ってデプロイしています。モデルを CI/CD でデプロイする方法の最新情報と手順については、データサイエンスパイプライン向け CI/CD 入門を参照してください。

GitLab のデータサイエンスツール

  • 事前設定済みデータサイエンス環境: データサイエンスチームは、一般的な Python モジュール(pandas、numpy 等)・ネイティブ Snowflake 接続・Git サポートが事前設定された JupyterLab を使用しています。共通のフレームワークから作業することで、より速くモデルを作成しインサイトを導出できます。このセットアップは誰でも自由に利用できます。詳細についてはJupyter ガイドをご覧ください。
  • Python 向け GitLab データサイエンスツール: 一般的なデータ前処理(ダミーコーディング・外れ値検出・変数削減等)とモデリングタスク(モデルパフォーマンスの評価等)を自動化するための関数。pypipip install gitlabds)から直接インストールするか、上記のデータサイエンス環境の一部として使用できます。
  • モデリングテンプレート: データサイエンスチームは、Python コードをゼロから書くことなく予測モデルの構築を簡単に始められるモデリングテンプレートを作成しました。これらのテンプレートを有効にするには、Jupyter ガイドの手順に従ってください。

データサイエンスプロジェクト開発アプローチ
GitLab データサイエンスチームのモデル開発アプローチ