メインコンテンツまでスキップ

Databricksで DSPyを用いた生成AIアプリの構築

この記事では、DSPy について説明し、 Databricks on DSPy を使用して生成AI エージェントをビルドおよび最適化する方法を示すノートブックの例を提供します。

DSPyとは何ですか?

DSPyは、プログラムで定義し、生成AIエージェントを最適化するためのフレームワークです。DSPyは、プロンプトエンジニアリングを自動化し、パフォーマンスを向上させるためにLLMのファインチューニングをオーケストレーションできます。

DSPyは、エージェント開発を簡素化し、エージェントの品質を向上させるいくつかのコンポーネントで構成されています。

  • モジュール :DSPy では、これらは質問への回答や要約などの特定のテキスト変換を処理するコンポーネントです。従来の手書きのプロンプトに代わるもので、例から学習できるため、より適応性が高くなります。
  • **シグネチャ**:モジュールの入力と出力の動作に関する自然言語の説明。例えば、「question -> answer」は、モジュールが質問を入力として受け取り、回答を返すことを指定します。
  • コンパイラ : これはDSPyの最適化ツールです。これは、より良いプロンプトを生成するか、モデルをファインチューニングすることで、パフォーマンスメトリクスを満たすようにモジュールを調整することにより、LMパイプラインを改善します。
  • プログラム(DSPy) : 複雑なタスクを実行するためにパイプラインに接続された一連のモジュール。DSPyプログラムは柔軟で、コンパイラを使用して最適化や適応が可能です。

テキスト分類器DSPyプログラムを作成

以下のノートブックでは、テキスト分類を実行するDSPyプログラムを作成する方法を示します。この例では、DSPy の仕組みと使用されるコンポーネントを示します。

テキスト分類器DSPyプログラムノートブックの作成

ノートブックを新しいタブで開く

RAG 用の DSPy プログラムで AI Search インデックスを使用する

以下のノートブックでは、AIサーチインデックスを作成し、RAGを実行するDSPyプログラムとともに使用する方法を示します。

テキスト分類器DSPyプログラムノートブックの作成

ノートブックを新しいタブで開く

GenieとDSPyを使用したマルチエージェントシステム

以下のノートブックは、これらのタイプのエージェントをオーケストレートするマルチエージェントシステムの作成方法を示しています:

  • Genieスペース
  • Model Serving にデプロイされたエージェント
  • DSPy を使用して構築された UC 関数呼び出しエージェント。

GenieとDSPyを使用したマルチエージェント

ノートブックを新しいタブで開く

RAG用のDSPyプログラムを作成

これらのノートブックは、DSPy を使用して基本的な RAG プログラムを作成および最適化する方法を示します。これらのノートブックは、サーバレス コンピュートを使用することを前提としており、Databricks Runtime のバージョンに依存せずに実行できるようにノートブックレベルでパッケージをインストールします。

パート1: RAG用のデータとAI Searchインデックスの準備のためのDSPyプログラムノートブック

ノートブックを新しいタブで開く

パート2: RAGのためのDSPyプログラムを作成、最適化するノートブック

ノートブックを新しいタブで開く

LangChainをDSPyに移行する

これらのノートブックでは、LangChainモデルコードをDSPyに移行し、より高いパフォーマンスのために最適化する方法を示します。これらのノートブックは、サーバレス コンピュートを使用していることを前提としており、Databricks Runtime のバージョンに依存せずに実行されるよう、ノートブック レベルでパッケージをインストールします。

LangChainモデルコードをDSPyノートブックに移行する

ノートブックを新しいタブで開く

移行したDSPyモデルノートブックを最適化する

ノートブックを新しいタブで開く