Magneton: Jupyter Notebooks向けの透明でカスタマイズ可能なウィジェットフレームワーク

Magnetonは、計算ノートブックにおいて透明性が高く、再利用可能で表現力豊かなデータサイエンスのワークフローを実現するために、対話履歴を考慮したカスタマイズ可能なウィジェットを構成するフレームワークです。

データ実務者は、データサイエンスのワークフローを記述形式で実施および伝達する相対的な容易さから、Jupyter Notebooksのような計算ノートブックを広く採用しています。このような記述を伝える上で重要な要素となるのが、ipywidgetsのようなウィジェット内でレンダリングされるインタラクティブな可視化(グラフ化)です。これらのインタラクティブウィジェットは、探索的データ分析(例: B2)や機械学習およびコンピュータビジョンタスクのためのモデル開発(例: Symphony)のワークフローを支援するために展開されています。しかし、既存のウィジェットの設計にはいくつかのギャップがあり、それがデータ実務者の体験に悪影響を与えています。

既存ウィジェット設計の課題

ウィジェットは、ノートブックのフロントエンドに組み込むことができる軽量なインターフェースとして機能し、インタラクティブなコンポーネントを備えています。フロントエンドでのユーザー操作は、ウィジェットの状態を更新し、それに応じてコンポーネントを再レンダリングする事前定義されたデータ操作をトリガーします。ウィジェットの状態は、フロントエンドコンポーネントのプロパティ(例: 棒グラフに対応する頻度分布)の値を保持します。

図1は、米国各州ごとの年齢分布を要約するこのようなインターフェースを示しています(ソース: https://data.transportation.gov/)。左側のコンポーネントは州のリストをテーブルとして表示し、右側のコンポーネントは対応する年齢分布を表示します。初期状態では、ウィジェットは米国全州の平均年齢分布を表示します。テーブル内の州をクリックすると、対応する棒グラフの分布を再計算するデータ操作がトリガーされます。

図1: インタラクティブウィジェットの例

これらのウィジェットは非常に人気があり広く採用されていますが、いくつかの点で制約があります。

透明性と再利用性の欠如

既存のウィジェットはステートレスであり、ユーザーのインタラクション履歴や対応する状態遷移を追跡しません。その結果、インタラクション履歴が失われ、ユーザーは以前の状態にアクセスしたり再利用することができません。たとえば、図1に示されているウィジェットでは、テーブル内の州をクリックすると、対応する棒グラフの分布が再計算され、ウィジェットの状態遷移がトリガーされます。しかし、これらのウィジェットは最新の状態のみを保持しているため、以前の状態を復元するには、ユーザーが最初から操作をやり直す必要があります。特に、探索的分析では単一のユーザー操作だけで望ましい結果が得られることは稀です。ユーザーは、洞察を得たり結論を導く前に複数の操作を実行することが多いため、操作履歴を保持し、ユーザーが手順を遡れるようにすることが重要です。

  • カスタマイズ性の欠如
    これらのウィジェットは、ウィジェット開発者が定義した組み込みデータ操作をノートブック内からエンドユーザーがカスタマイズするための手段を欠いています。組み込みの操作がユーザーのニーズを満たさない場合、ユーザーはワークフローをウィジェットの機能に合わせて変更せざるを得ません。また、唯一の代替手段は、必要なデータ操作を統合するようにウィジェット開発者に依頼することです。たとえば、ノートブックに表示されるウィジェットに、特定の興味のある州を選択して表示する機能がない場合を考えます。ユーザーが米国南部の州のみを表示したい場合、特定の州を選択するカスタマイズ機能がないと、南部の州を手動でスクロールして探索する必要があります。
  • ギャップを埋める
    私たちは、これらのギャップに対応するために、Magnetonというフレームワークを開発しました。図2に示されているように、Magnetonを通じて、高度な状態管理およびインタラクション履歴管理機能を備えた「ステートフルウィジェット」を導入し、透明性と再利用性を確保しました。さらに、ウィジェットのフロントエンドビューとバックエンドのPythonカーネル間の通信メカニズムを拡張し、ラッパーを実装することで、ユーザーがノートブック内から事前定義されたウィジェットのデータ操作を上書きできるようにしました。技術的な詳細については、最近のCHI 2023の論文(遅延報告として採択)で詳しく説明しています。それでは、これらの機能の例を見ていきましょう。

図2: (a) 従来のウィジェットと (b) Magnetonウィジェットの設計。破線(「- -」)で示された要素 — ステートフルウィジェットとウィジェットビューラッパー — はMagnetonによって導入されました。

シナリオの例

透明性と再利用性
ユーザーがウィジェットと対話するたびに、各インタラクションが動的に追跡されます。図2に示されているように、ユーザーはノートブック内でインタラクション履歴を確認し、以前の状態にインタラクティブに戻ることができます。たとえば、図1では、ユーザーがアラスカ、カリフォルニア、フロリダの3つの状態を探索しました。Magneton対応のウィジェットを使用して同じ探索を実行すると、履歴ビューを利用し、「Restore」をクリックすることでカリフォルニアの年齢分布に戻ることが可能になります。

図3: 「履歴ビュー」を使用したインタラクション履歴の探索

ユーザーはプログラム的に任意のウィジェット状態をエクスポートおよび再利用することができ、これにより再利用性が確保されます。たとえば、図4に示されているように、ユーザーはノートブックから “view_state()” コマンドを発行してカリフォルニアの年齢分布にアクセスします。また、”get_state()” コマンドを発行して、状態データをPythonオブジェクトとしてロードし、同じノートブック内での下流タスクにそのオブジェクトを再利用することもできます。

図4: ウィジェットの現在の状態にプログラム的にアクセスする

カスタマイズ性
ユーザーはノートブック内でカスタムコードを記述し、ウィジェット開発者が事前定義したデータ操作を上書きすることができます。たとえば、図1では、テーブルに関するウィジェットのデータ操作はデフォルトで全米の州を返します。同じウィジェットをMagnetonフレームワークを使用して再設計すると、テーブルビューに対応するデータ操作をユーザーが上書きすることが可能になります。

先ほどの例に戻り、米国南部の州のみを表示する場合を考えてみましょう。これらの州をセマンティックにフィルタリングする新しいデータ操作をどのように定義できますか?近年注目されている大規模言語モデル(LLM)をこの目的に利用しましょう。具体的には、ユーザーはノートブック内で「group_by_region()」という関数を定義し、この関数がChatGPT APIを利用してテーブルに表示された米国の州リストから南部の州を取得します。図5に示されているように、ユーザーは組み込みのテーブル計算関数を新たに定義した関数で上書きし、南部と西部の州を探索します。

図5: ユーザー定義関数による組み込み操作の上書き

まとめと今後の展望

私たちは、計算ノートブック内で透明性、再利用性、表現力豊かなデータサイエンスワークフローを可能にする、インタラクション履歴対応でカスタマイズ可能なウィジェットを構築するフレームワークMagnetonを提案しました。Magnetonウィジェットは、既存のウィジェットにはないいくつかの利点を提供します。組み込みのインタラクション履歴により、ユーザーはプロジェクト内のさまざまなステップ間で洞察やデータを共有することができます。共有アクション機能により、ユーザーはウィジェットをカスタマイズできるため、開発者への依存を減らすことが可能です。

このフレームワークは、より表現力豊かなウィジェット作成フレームワークの構築、大規模データをウィジェットでレンダリングする際の最適化戦略の探求、さまざまな役割や専門知識を持つユーザーに対応するクロスプラットフォーム機能を備えたウィジェット設計といった、興味深い今後の研究の道を開きます。以下にこれらのアイデアについて詳しく説明します。

  • ウィジェットの作成
    現在のMagnetonの設計では、エンドユーザーが探索できるウィジェットをウィジェット開発者が作成する必要があります。この点で、Magnetonフレームワークはデータ可視化(グラフ化)のためのD3-Vegaスタックに似ています。Magnetonは、ウィジェットを作成するためのカーネルとして機能します。そのため、今後の研究方向としては、カーネルを活用して、宣言型の可視化(グラフ化)仕様やインタラクション、直接操作ベースのシステムを通じて、より表現力豊かなウィジェット作成戦略を模索することが挙げられます。
  • スケーラブルな計算
    大規模なデータセットに対しては、Magnetonウィジェットのレンダリングにかかる遅延がボトルネックになります。VegaFusionは、Vegaの可視化(グラフ化)生成のスケーラビリティを向上させる最近の研究で、パーティショニング戦略を用いてサーバー側の自動スケーリングを実現しています。Magnetonも、インタラクション履歴の追跡や可視化(グラフ化)のレンダリングを維持するために、同様の戦略を採用することが可能です。また、キャッシング、プリフェッチング、インデックス化、マテリアライゼーション、サーバー側でのインクリメンタルビューの維持といった古典的なデータベース最適化技術を適用することで、スケールに対応したウィジェットの再設計を進めるアプローチも考えられます。
  • インターフェースの柔軟性
    ノートブックが協調型である場合、Magnetonウィジェットは異なる役割(例: データサイエンティストやプロダクトマネージャー)を持つユーザーが関与する共有ワークフローに対応する必要があります。そのため、協調環境における利害関係者間で、インターフェースの価値の認識が異なる可能性があります。もう1つの拡張として、Magnetonウィジェットをクロスプラットフォーム機能で強化し、これらのウィジェットがウェブアプリケーションとして変換可能(その逆も含む)になることで、多様な利害関係者の要件に対応できるようにすることが考えられます。

詳細については、論文オープンソースリポジトリをご覧ください。

執筆者:Sajjadur Rahman、Megagon Labs

[原文へ – 2023/4/20]

(翻訳:Megagon Labs 東京オフィス

この記事をシェアする
1 Min Read
April 8, 2025
私たちのBlue v0.9は、エンタープライズ環境でエージェント型ワークフローを構築・展開するためのオープンソースフレームワークです。従来のAIフレームワークとは異なり、Blueは、スケーラビリティ、可観測性、設定の柔軟性、既存のインフラとの統合性など、エンタープライズ規模の要件を念頭にデザインされています。
1 Min Read
February 5, 2025
MCRankベンチマークとEXSIR手法を用いることで、構造化された推論によりLLMの性能がこれらの難解なタスクで大幅に向上することを示しました。