2024年03月03日
ビッグデータからAIまで。
データブリックスの管理機能とは?
データ活用への関心が高まる昨今、様々な場所からデータを収集、分析し業務効率化に役立てていらっしゃる企業も多いことと思います。
そのような企業にとってデータは利益に結び付く資産価値を持っています。その資産をどのように管理しているでしょうか?一般的な資産については管理台帳などで管理されていると思いますがデータはどうでしょうか?
近頃公表されたガートナー・ジャパンによるレポート「日本におけるデータ活用の実情」によると、データ活用のための組織体制をある程度整えている企業は4割程度、データを資産ととらえ管理の重要性を認識している企業は2割にも達していません。
現状ではデータをきちんと管理している企業は少ないことが伺えます。まだデータ活用に至っていない企業であっても、将来を見据え、資産であるデータの管理について導入時から考えていく必要があります。
データブリックスはメジャーなクラウドサービス(AWS、Azure、GCP)上でデータ加工やデータ分析に関する機能と機械学習/AIのための機能をオールインワンで提供し、優れた管理機能を備えています。この記事では、データブリックスの管理機能について紹介いたします。
ガートナー・ジャパン 「日本におけるデータ活用の実情」
https://www.gartner.co.jp/ja/newsroom/press-releases/pr-20240129
データ管理とガバナンスを担うUnity Catalog
データ活用が進むにつれてデータの重要性はますます増してきています。中には個人情報や金融情報などの機微情報を含むためにアクセスできる人を制限したい場合があります。従来のデータベースやデータウェアハウスでもテーブルの行レベルや列レベルでのアクセス制御を行っている場合があります。データブリックスの場合はこのような制御は「Unity Catalog」が担います。
Unity Catalogの役割はテーブルのアクセス制御のみに限りません。従来は管理が難しかったデータレイク内のデータについてもデータレイクとデータウェアハウス両方の特徴を併せ持つレイクハウス(※)というアーキテクチャを採用することにより、Unity Catalogで一元的に管理することができます。ユーザー、グループ、サービスのロールに応じてアクセス権限を設定することもできます。Unity Catalogは個々のワークスペースやプロジェクトごとに管理をするのではなく、データブリックス全体の管理、ガバナンスを一手に引き受けています。
データ分析が進むにつれて様々な加工を経てデータが変化していきます。データがどこから取り込まれてどのような加工を経て現在の状態になったかという履歴をデータリネージと呼びます。データの血統などと呼ぶこともあります。様々なデータを組み合わせて分析することもありますし、複数のメンバーで共同作業をしたりするとデータリネージはどんどん複雑になりマニュアルで管理することが非常に難しくなります。データブリックスでは自動的にデータリネージを作成し、系統図としてみることができます。これにより目的のデータがどのように作られたかを直観的に理解し、過去のデータ加工方法なども必要に応じて後から確認することができます。
Unity Catalogの対象はデータに限りません。例えば機械学習モデルの学習を行っているときに問題が起こった場合でもその学習に利用したデータまでたどれますので、機械学習に問題があるのか、利用したデータに問題があるのかを判別することにも役立ちます。また、機械学習モデルの管理もできます。
(※)レイクハウスについてはこちらの記事「データレイクハウスとは?」(https://promotion.jsol.co.jp/data-acceleration-program/blog/what-is-a-lakehouse.html)で紹介していますのでご覧ください。
機械学習/AIのライフサイクル管理を担うMLflow
機械学習のモデル開発をしようとすると様々なことを記録しておく必要があります。アルゴリズムやそれに付随する多数のパラメータ、学習データや精度などです。あなたはこれらをどのように管理しているでしょうか?Excelで管理しているでしょうか?たとえExcelで管理できていたとしてもチームで開発する場合には管理がさらに複雑になっていきます。いいモデルを開発できても別の環境では動かなかったり同じ結果が再現されなかったりする問題が発生することもあります。
このような課題を解決するのがMLflowです。MLflowはデータブリックスが開発したオープンソースの機械学習ライフサイクル管理ツールです。OSSですので誰でも利用可能ですが、データブリックスではインストールや管理をすることなくすぐに使えるだけでなく、ノートブック環境やApache Spark分散処理環境との統合により非常に使いやすくなっています。
MLflowは「Tracking」、「Projects」、「Models」、「Registry」の4つの機能で構成されています。
MLflow Trackingでは機械学習を実行するコードに少しコードを追加するだけでパラメータやメトリック、出力ファイルなどの情報を記録できます。異なるハイパーパラメータの組み合わせを試す度にこれらの情報がデータベースに蓄積されていき、MLflow UIというウェブベースのUIで試行ごとにどのように変化しているかをグラフィカルに確認できます。
MLflow Projectsでは開発した機械学習コードや様々な依存ライブラリなどを含めてコンテナなどの仮想環境として容易にパッケージングできます。そのために別のプラットフォームに移しても実行を再現できるようになります。
いいモデルができればMLflow Modelsを使用して学習済みモデルをパッケージング、デプロイできます。REST APIのついたコンテナとしてデプロイできますので様々なサービスから容易に呼び出せます。また、バッチ推論を行うユーザー定義関数としてデプロイすることもできますので大量のデータを一括で処理するような用途にも容易に利用できます。
作成したモデルはMLflow Registryで一元的にバージョン管理できます。APIでよいモデルを呼び出して利用するような使い方もできます。
このようにMLflowは機械学習に関する様々な管理から解放してくれますのでモデルの構築に専念できます。
まとめ
データは管理をきちんと行わない適切に管理をしないと埋もれてしまい生み出せるはずの価値も生み出させなくなってしまいます。データブリックスは統合データ分析基盤ですが、今回は管理という観点でUnity CatalogとMLflowについてご紹介しました。データの管理を適切に行い、データからさらに大きな価値を引き出していきましょう。
データブリックスに興味がわいたら
今回はデータブリックスの管理機能についてご紹介しましたが、他にも多くの機能があります。多機能と聞くと、コストが高くなるのでは、と思われる方もいらっしゃると思いますが心配ありません。データブリックスでは利用しなかった機能については料金は発生しません。まずは必要な機能のみで始めていただき、段階的に他の機能について知って徐々に活用の幅を広げていただければと思います。
新しいシステムは使いこなすまでに時間がかかるということで導入を躊躇される方もいるかもしれません。データブリックスでは多くの外部ツールと連携できますので現在利用しているツールとうまく組み合わせることで学習時間を短縮できます。例えばBIツールであればTableauやPowerBIがよくつかわれますが、これらとデータブリックスを組み合わせて使うことが可能です。また「店頭在庫管理」や「大規模な需要予測」など様々な業界のユースケースに対応可能なテンプレートがソリューションアクセラレーターとして提供されていますので、アイデアを思いついてからPoC実施までの期間を大幅に短縮することができます。
このようにデータブリックスにはデータ・AI活用のための準備の労力を減らし皆様がビジネス課題に集中できるようにする仕組みが多数あります。
JSOLではデータブリックスの導入からその後の活用支援まで行っていますので、ご興味をお持ちになりましたらお気軽にご相談ください。