Databricksの弥生です。Databricks Japanにjoinして3年が経ちました。
2021年には以下の記事を訳したり、
自分でもJupyter notebookとの比較記事を書いたりしました。
そして、他のソリューションアーキテクトの方によっても記事が書かれています。
しかし、Databricksは日進月歩で進化しています。2週間周期で新機能がリリースされるので、これらの記事も古くなってしまっている部分が少なからずあります。
と言うことで、2023年12月時点での「Databrikcsとは何か」を記事にします。
Databricksとは何か?
まず、会社としてのDatabricksの説明をさせてください。同名のプラットフォームを提供している企業で、2013年に創業されました。今年でちょうど10年です。由来はユニークで、カルフォルニア大学バークレー校に在学していた大学院生と教授たちとで創業された会社です。そして、彼らはApache Spark、Delta Lake、MLflowのオリジナルクリエーターです。このような背景から、企業全体としてオープンソースにコミットしています。
現在ではグローバルで従業員数は6000人を超えています。私が入社した3年前は1500人程度だったので成長著しいと言えます。未上場ですが先日シリーズIの投資を受けました。
レイクハウスとは何か?
2020年まではプラットフォームとしてのDatabricksの別名は「Unified Analytics Platform」でしたが、この時点で「(データ)レイクハウスプラットフォーム」という名前になりました。レイクハウスの由来はデータレイク + データウェアハウスです。両者のいいところどりをしていると言う意味からこのような名前となりました。名前を作り出したのはDatabricksですが、今では他社様も使うようになって認知が進んだと言えます。
データウェアハウス、データレイク、データレイクハウスの説明、違いについてはこちらにまとめています。
非常にざっくり言うと、
- データウェハウス: 構造化データの取り扱いが得意でガバナンスも効いており、処理が高速。しかし、高価で専用フォーマットが必要。機械学習には適していない。
- データレイク: クラウドストレージとオープンフォーマットで安価に構造化データも非構造化データも格納でき、機械学習にも対応可能。しかし、ガバナンスが効かず読み書き性能が出ない。
- データレイクハウス データの格納場所はデータレイクなので、安価かつオープンで任意のタイプのデータを取り扱える。かつ、ガバナンスも効いており処理も高速。もちろん、機械学習でも活用可能。
また、近年においてデータ&AIを取り組む際には、機械学習、データウェアハウス、データレイク、BI、ストリーミング処理、オーケストレーションなど様々なツールを組み合わせる必要があります。これによってシステムの複雑さが増加している中、今年からは生成AIという新たな技術、それによる新たなユースケースへの取り組みも増えてきています。
結果として、以下のような課題がさらに深刻なものとなっています。
-
サイロ化されたデータ、AI、ガバナンス
- データの格納場所だけではなく、大規模言語モデルを含む各種機械学習モデルが散在することで、管理コストを引き上げ、イノベーションの加速を阻害します。
-
AIがもたらすデータ、プライバシー&コントロールの課題
- 特に生成AIは幻覚やバイアスなどの新たな課題を我々に突きつけるようになりました。我々は生成AIに対する新たなコントロールの手段を必要としています。
-
高度に技術的なスタッフへの依存
- 生成AI以前においても、複雑な処理を行うためにはSQLやPythonの習熟者の協力が必須となっており、クイックな課題解決が困難でした。
2020年にリリースされたデータレイクハウスは主に最初の課題を解決するために提供されています。Delta LakeとUnity CatalogによってデータやAIのサイロを排除し、データとAIに対する包括的なガバナンスを実現することで、様々なデータ&AIワークロードを円滑に進めることができます。この結果、現在ではグローバル企業の74%がレイクハウスを導入しています。
それでは、その他の2つの課題についてはどうしたらいいのでしょうか?
データインテリジェンスプラットフォームとは何か?
このため、我々は生成AIを用いてデータレイクハウスをデータインテリジェンスプラットフォームに進化させます。
データインテリジェンスプラットフォームでは、レイクハウスに新たにデータインテリジェンスエンジンを付け加えます。
これによって、Databricksの各コンポーネントも以下のように進化します。
- Delta Lake: 利用パターンに基づき自動でデータレイアウトを最適化
- Unity Catalog: 自然言語でセキュアに洞察を取得
- Databricks AI(旧Lakehouse AI): カスタムLLMの作成チューニング、提供
- Delta Live Tables: データ品質の自動化
- Workflows: 過去の処理に基づくジョブコストの最適化
- Databricks SQL: テキストからSQL
特に、Databricks AIを活用することで、RAGなどの生成AIアプリケーションを容易に構築・運用できるようになります。
また、これ以外にもProject Genieというプロジェクトも進行中です。これによって、PythonやSQLを知らない方でも自然言語で容易にデータを操作できるようになります。
Databricksのデータインテリジェンスプラットフォームによって、皆様にシンプル、インテリジェント、プライベートというメリットを提供することになります。
- シンプル: 自然言語が使いやすさと効率性を全員に提供
- インテリジェント: あなたのデータを理解するためにE2EでAIがインテグレーション
- プライベート: プライベートデータを用いて容易にカスタムモデルを構築
Databricksの提供機能
上述したデータインテリジェンスプラットフォームの機能の一部はプライベートプレビュー、パブリックプレビューですが、順次リリースされていきます。こちらですべての機能をカバーすることはできませんが、プレビュー中のものを含めていくつかのDatabricksの機能を説明します。
Databricksワークスペース
ブラウザからアクセスする作業場です。こちらでノートブックやクラスターを用いて様々な処理を実装します。ちなみに3年前は日本語対応してませんでした。今でも我々が日々翻訳しています!
Databricksクラスター
Databricksにおける計算資源です。ちなみに、Databricksの課金はこのクラスターのスペックと稼働時間によって決まります。つまり、クラスターが停止していればDatabricksのお金は発生しません。なお、背後のクラウドサービスのお金は発生します。
以下のような機能を提供しています。背後ではApache Sparkが動作しているので、大量データでも水平分散させることで高速な処理を実現できます。
- Databricksランタイム(データ&AIの取り組みでよく使うソフトウェアを事前インストールするソフトウェアパッケージ)
- 追加ライブラリのインストール
- initスクリプトの実行
- シェル実行のためのWebターミナル
- クラスターポリシー(ユーザーの設定範囲をコントロール)
- GPUクラスターの構築
- オートスケーリング
- 自動停止
また、サーバレスの機能も順次利用できるようになっています。起動がとても高速です!
Databricksノートブック
Databricksで最も利用することになるインタフェースです。ノートブック形式ですので、Jupyterノートブックに慣れている方であればすぐに使い始められます。
以下のような便利機能がてんこ盛りです。
- アクセスコントロール
- 同時参照、同時編集
- バージョン管理
- 複数言語をサポート(Python、SQL、R、Scalaなど)、一つのノートブック内で言語を切り替えることも可能
- 結果からクリック操作でグラフを作成
- Databricksアシスタント(生成AIアシスタント)
- MLflowとのインテグレーション(モデルをトレーニングすると自動で記録されます)
Databricks AI
従来の機械学習モデルだけではなく、生成AIモデルの開発、運用、管理を容易にするためのフレームワークです。
- Vector Search
- AI Functions(SQLからLLMを呼び出せます)
- キュレーテッドモデル
- ファインチューニング
- モデルサービング(GPUも使えます)
- LLMのAutoML
- 特徴量ストア
AI Functionsを用いることで、SQLの関数にLLMを埋め込むことができます。
モデルサービングを用いることで、LLMを含む機械学習モデルに対してREST APIを受け付けるエンドポイントを構築できます。
GUIと組み合わせることで独自のRAGアプリケーションを構築できます。(こちらの画面は別マシンでホストしているstreamlitです)
こちらの機能はプレビューのものがありますので、続報に期待していてください!
Unity Catalog
Databricksにおける各種資産に対するガバナンス管理を一手に引き受けているのがUnity Catalogです。
以下のような機能を提供しています。これも3年前はなかったので嬉しい限りです。
- テーブル、データベース、ファイル、機械学習モデルなどに対するアクセスコントロール
- 監査ログ
- リネージ(依存関係)の自動捕捉
- 洞察の自動抽出
- 生成AIによる自動コメント作成
カタログエクスプローラという機能で、データベース、テーブル、ファイル、機械学習モデルなどを管理できます。
洞察タブにアクセスするとテーブルがどのように使われているのか、誰がよくアクセスしているのかという情報にアクセスできるので、データ活用が捗ります。
強力なリネージ機能、テーブル間の依存関係だけではなく、カラム間の依存関係やファイル、ノートブック、ダッシュボードなどとの依存関係もすべて自動でキャプチャされます。
今後の新機能はすべてUnity Catalogを前提としていると言っても過言ではありません。是非ご活用ください!
Databricksワークフロー
開発した処理を夜間バッチなどで定期運用するというのは、典型的なユースケースといえます。DatabricksマネージドのオーケストレーションツールがDatabricksワークフローです。
ノートブックはもちろん、データパイプラインを実装したDelta Live Tablesパイプライン、Databricks SQLのダッシュボードなど、様々なオブジェクトを組み合わせたジョブを簡単に実装することができます。条件分岐、エラー時の通知、リトライ機能なども搭載しています。
Databricks SQL
DatabricksにビルトインされているBI・データウェアハウス機能がDatabricks SQLです。簡単なBIダッシュボードであれば、Databricks上で簡単に作成できます。
特に最近リリースされたLakeviewを用いると、完全にノーコードでダッシュボードを作成することができます。
まとめ
Databricksは、これまでもレイクハウスプラットフォームとしてデータやAIのサイロ化、ガバナンスの不在などに関する課題を解決してきています。今回紹介した内容は、よりインテリジェントに処理を行えるようにし、企業における生成AIの活用を促進し、様々な方がデータ&AIを活用できるようにするために、生成AIのパワーを活用することでレイクハウスからデータインテリジェンスプラットフォームに進化しているのだと私自身は理解しています。これは、以前から掲げている理念であるデータとAIの民主化に即したものだと思います。Databricksのデータインテリジェンスプラットフォームの今後にご期待ください!