- DSPy(Declarative Self-improving Python)は、プログラミングによって言語モデル(LM)を制御するために設計されたフレームワーク
- シンプルな分類器から複雑なRAGパイプライン、エージェントループまで、モジュール化されたAIシステムを素早く構築でき、プロンプトと重みを最適化するアルゴリズムも提供
- 既存の不安定なプロンプトの代わりに、合成可能なPythonコードを記述することで、モジュール化されたAIシステムを迅速に構築し、LMが高品質な出力を生成するよう学習させられる
- Moduleを使って、AIの動作を文字列ではなくコードで記述
- 信頼できるAIシステムを構築するには、素早い反復が必要
- しかし、プロンプトを保守する場合、LM、メトリクス、またはパイプラインを変更するたびに文字列やデータを修正しなければならず、困難
- DSPyは、LMシステムの定義を、特定のLMやプロンプティング戦略に関する複雑な選択から切り離すために開発された
- DSPyのプログラミング方式
- DSPyは、プロンプト文字列の調整から、構造化され宣言的な自然言語モジュールを用いたプログラミングへと焦点を移す
- システム内のすべてのAIコンポーネントについて、入出力の動作をシグネチャとして指定し、モジュールを選択してLM呼び出し戦略を割り当てる
- DSPyは、シグネチャをプロンプトへ展開し、型付けされた出力をパースすることで、使いやすく移植性が高く、最適化可能なAIシステムを記述できる
- OptimizerがAIモジュールのプロンプトと重みを調整
- DSPyは、自然言語の注釈を含む高水準コードを、低水準の演算、プロンプト、または重み更新へコンパイルするツールを提供
- これにより、LMをプログラムの構造およびメトリクスに整合させられる
- コードやメトリクスを変更した場合も、それに合わせて簡単に再コンパイルできる
- DSPyの最適化プロセス
- タスクを代表する数十件または数百件の入力と、システム出力の品質を測定できるメトリクスがあれば、DSPy Optimizerを使用できる
dspy.BootstrapRSは、すべてのモジュールに対して良質なfew-shot例を合成する
dspy.MIPROv2は、すべてのプロンプトに対してより良い自然言語命令を提案し、インテリジェントに探索する
dspy.BootstrapFinetuneは、モジュール用のデータセットを構築し、それを使ってシステムのLM重みをファインチューニングする
- DSPyエコシステムはオープンソースAI研究を前進させる
- DSPyのモジュール型パラダイムは、大規模言語モデルと比べて、より多くの研究者がLMプログラムの構成アーキテクチャ、推論時戦略、最適化ツールを分散的に改善できる機会を提供する
- これによりDSPyユーザーはより大きな制御権を得られ、反復作業をより高速に進められ、最新の最適化ツールやモジュールを適用することでプログラムを時間とともに発展させられるという利点がある
- DSPyの研究は2022年2月にStanford NLPで始まり、ColBERT-QA、Baleen、Hindsightのような初期の複合LMシステム開発から得た教訓をもとに構築された
- 2022年12月にDSPとして初めて公開され、2023年10月にDSPyへと発展し、250人のコントリビューターのおかげで何万人もの人々がモジュール型LMプログラムの構築と最適化の方法を学べるようになった
- DSPyコミュニティは、MIPROv2、BetterTogether、LeReTのような最適化ツールや、STORM、IReRa、DSPy Assertionsのようなプログラムアーキテクチャに関する多くの研究成果を生み出している
- PAPILLON、PATH、WangLab@MEDIQA、UMDのプロンプティング事例研究、Haizeのレッドチーミングプログラムのような新しい課題への成功事例も多数ある
- このほかにも、多くのオープンソースプロジェクト、プロダクションアプリケーション、その他のユースケースを通じて、DSPyの実用性が実証されている
まだコメントはありません。