deepopen-com/deepopen
非自回归System 1决策引擎,专为结构化类型决策场景设计 DeepOpen Multilingual, non-autoregressive System 1 decision engine.
DeepOpen: 意図分類フレームワークおよび構造化意思決定 SDK
DeepOpen は、テキスト(または JSON)を受け取り、それに関する事前定義された質問に答えるソフトウェアフレームワークです。自由形式のテキストを生成する代わりに、提供する厳密な選択肢のセットからラベル、スコア、または確率を返します。これは、カスタム機械学習コードを書かずに、小さな固定された意思決定エンジン(例:「このリクエストはどの部門が処理すべきか?」)を構築する方法と考えてください。
機能
- 入力: テキストまたは JSON(例:顧客メッセージ)。
- 出力: 定義したカテゴリの 1 つ、数値スコア、または確率推定。たとえば、メールを
billing、technical、sales、またはotherに分類し、信頼度値も提供できます。 - 長文の応答は生成しません。設定した制約付きオプションからのみ選択します。
使用方法
まず事前トレーニング済みモデル(チェックポイントと呼ばれる)をロードします。README には Hugging Face(上流の Laya モデル)からロードする方法が示されています。次に、一連の質問を定義します。各質問にはタイプ(choice、score、または noul)と特定の基準があり、入力とともに渡します。結果には、回答、確率、信頼度スコアが含まれます。
言語検出(大まかなヒューリスティックであり、精度のオラクルではない)を処理し、適切なモデルを自動的にロードするための Router クラスが提供されています。また、明示的な選択または独自データで検証した後に auto_task_detection を有効にすることで、異なるチェックポイント(英語、多言語、または専門の typed-decisions モデル)を切り替えることもできます。
SDK には、guard_questions()、moderation_questions()、triage_questions()、email_questions() などの一般的なタスク用の質問テンプレートも含まれています。これらは既製の質問セットですが、README はこれらが本番の安全性保証ではないと警告しています。重大な決定に使用する前に、精度を検証し、信頼度を調整する必要があります。
ベンチマークと品質
README は 2 つの主要な精度数値を報告しています。
| データセット | テスト精度 | 構成 |
|---|---|---|
| BANKING77 | 94.1234%(3 つのシードの最良) | 単一分類器、SAM シード 13 |
| CLINC150 | 98.0222% | 4 エンコーダーアンサンブル |
ただし、重要な注意点が多数あります。
- BANKING77: 94.1234% は 3 回の実行の最良(3 シード平均は 94.0368%)であり、README は再現されたベースラインに対する統計的に確立された改善はないと明示的に述べています。
- CLINC150: これは範囲内の 150 の意図のみをカバーし、範囲外(OOS)検出を除外しています。結果は異種アンサンブル(1 つの Laya ベースモデルと 3 つの DeBERTa-v3-large モデル)からのものです。
- README には、異なるトレーニング実行からの異なる数値(例:BANKING77 で 94.0909%、単一モデルで CLINC150 で 97.7556%)を含む以前のテーブルが含まれています。これらは交換可能ではありません。別々の実験です。
これらの数値は公式のリーダーボード順位として主張されているわけではありません。プロジェクト自身の評価からのものであり、Hugging Face の比較ページにリンクされています。
既知の制限(明示的に記載)
- 予測は間違っている可能性があります。高い信頼度スコアは正確性を保証しません。
- 確率は独自データでの検証が必要です。
- ベースチェックポイントは出荷時のまま過信しています。温度フィッティング(キャリブレーション手法)は別のデータ分割を使用する必要があります。
- Typed-decisions の精度は低く(400 ケース / 2,000 決定テストで 0.766)、両方のベースチェックポイントはそのゼロショットタスクで偶然に近いパフォーマンスです。
- ある報告された実験では、モデレーション精度はわずか 0.530 です。
- 言語カバレッジ(宣伝されている 100+ 言語)は、すべての言語で同等の品質を意味しません。テストされた 51 の MASSIVE 言語のうち、45 のみが「3× ランダム」精度を超えました。
- プロンプト予算は共有されているため、大きなオプションセットはパフォーマンスを損ない、順序スコアリング(1〜5 のようなスケール)は既知の弱点です。
- レイテンシ数値は特定の GPU(NVIDIA T4)とウォーム推論用です。固定の推論速度を保証しません。
これらの制限は、過剰主張を防ぐために README に明記されています。
インストールと依存関係
- Python 3.10+ と Git が必要です。
- リポジトリから直接インストール:
pip install "git+https://github.com/deepopen-com/deepopen.git"。 - CPU のみの場合は、最初に CPU 用 PyTorch をインストールします。
- GPU ユーザーは、CUDA 環境に一致する PyTorch ビルドが必要です。
上流プロジェクトとの関係
README は、SDK とベースモデルアーキテクチャがLaya(オープンソースの意図分類モデル)から派生していると述べています。このリポジトリは、DeepOpen のパッケージングとドキュメントに加えて、BANKING77 と CLINC150 の再現実験(中国語のガイド付き)を追加します。また、ベンチマークスクリプト、T4 ベンチマークノートブック、typed-decisions モデルのファインチューニングノートブックも含まれています。
デフォルトでインストールされるパッケージは常に上流の Laya チェックポイントをロードします(DeepOpen がトレーニングしたモデルではありません)。実験ガイドでは、必要に応じてタスク固有のモデルをトレーニングおよびエクスポートする方法が説明されています。
法的および帰属
このプロジェクトはApache License 2.0 の下でライセンスされています。README は、上流の帰属を保持し、意図した使用のために個別のモデルおよびデータセットのライセンスを確認することを思い出させます。
要するに、DeepOpen は、事前トレーニング済みモデルから制約付き分類またはスコアリングシステムを構築するための、長所と短所の両方を透過的に報告する、十分に文書化された SDK です。これはすぐに展開できる安全システムではありません。重要なことに信頼する前に、独自データで出力を検証する必要があります。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト