Azure Databricks で DSPy を使用して生成 AI アプリを構築する
この記事では、DSPy について説明し、Azure Databricks で DSPy を使用して生成 AI エージェントを構築および最適化する方法を示すノートブックの例を示します。
DSPy とは
DSPy は、生成型 AI エージェントをプログラムで定義および最適化するためのフレームワークです。 DSPy では、プロンプト エンジニアリングを自動化し、LLM の微調整を調整してパフォーマンスを向上させることができます。
DSPy は、エージェントの開発を簡略化し、エージェントの品質を向上させるいくつかのコンポーネントで構成されています。
- モジュール: DSPy では、質問への回答や要約など、特定のテキスト変換を処理するコンポーネントです。 手書きの従来のプロンプトを置き換え、例から学習できるため、より適応性が高くなります。
- シグネチャ: モジュールの入力と出力の動作に関する自然言語の説明。 たとえば、"question -> answer" は、モジュールが質問を入力として受け取り、回答を返す必要があることを指定します。
- コンパイラ: これは DSPy の最適化ツールです。 優れたプロンプトを生成するか、モデルを微調整することで、パフォーマンス メトリックを満たすようにモジュールを調整することで、LM パイプラインを改善します。
- Program (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 モデル ノートブックを最適化する
ノートブック を取得する