Databricks で DSPy を使用して genAI アプリを構築する

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

DSPyとは何ですか?

DSPyは、生成AIエージェントをプログラムで定義および最適化するためのフレームワークです。 DSPyは、プロンプトエンジニアリングを自動化し、 LLM ファインチューニングを調整してパフォーマンスを向上させることができます。

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

  • モジュール: DSPy では、これらは、質問への回答や要約など、特定のテキスト変換を処理するコンポーネントです。 従来の手書きのプロンプトに取って代わり、例から学習できるため、適応性が向上します。

  • シグネチャ: モジュールの入力および出力動作の自然言語による記述。 たとえば、"question -> answer" は、モジュールが質問を入力として受け取り、回答を返すように指定します。

  • コンパイラ:これはDSPyの最適化ツールです。 LM パイプラインは、より優れたプロンプトまたはファインチューニング モデルを生成することにより、パフォーマンス メトリクスを満たすようにモジュールを調整することで改善されます。

  • プログラム(DSPy):複雑なタスクを実行するためにパイプラインに接続されたモジュールのセット。 DSPyプログラムは柔軟性があり、コンパイラを使用して最適化および適応させることができます。

テキスト分類子 DSPy プログラムの作成

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

テキスト分類子 DSPy プログラム ノートブックを作成する

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

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

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

パート1:RAG DSPyプログラムノートブック用のデータとベクトル検索インデックスの準備

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

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

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

LangChainをDSPyに移行する

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

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

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

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

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