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

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 プログラム ノートブックを作成する

Open notebook in new tab

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

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

パート1

Open notebook in new tab

パート2

Open notebook in new tab

LangChainをDSPyに移行する

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

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

Open notebook in new tab

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

Open notebook in new tab