ホームへ戻る

GitHub Repo

TypeSafe Python SDK 0.7.0、Jev に型付きレスポンスを追加、シリアライズを Pydantic に移行

新版では判断結果を Pydantic モデルにマッピングでき、分類やルーティングの処理で利用しやすくなる。シリアライズの変更には移行時の検証が必要で、中国語での正解率や確率のしきい値は別途評価する必要がある。

Dietmar Rabich · CC BY-SA 4.0 · Image source
zh-Hant

TypeSafe AI は9月18日に Python SDK 0.7.0 をリリースし、意思決定モデル Jev にレスポンスの型を指定できるインターフェースを追加した。同時に、シリアライズとデシリアライズを msgspec から Pydantic に移行した。公式は後者を破壊的変更としており、PyPI でも同日のパッケージ公開が確認できる。分類、ルーティング、スコアリングの処理にすでに組み込んでいる開発者は、互換性を確認する必要がある。[変更履歴](https://docs.typesafe.ai/sdk/python/changelog)、[パッケージのリリース情報](https://pypi.org/project/typesafe-sdk/0.7.0/)

Jev は、テキストまたは構造化された状態と、プログラムで事前に定義した質問を受け取る。Choice は選択肢から選んで確率分布を返し、Score は順序のある段階で評価し、Noul は命題が成立する確率を返す。3種類の質問は同じリクエストに含めることができ、それぞれが同じ状態を評価する。このインターフェースは、意味に基づく判断を既存のプログラムの分岐処理に組み込む用途に適している。[モデルのインターフェース](https://docs.typesafe.ai/introduction)

新版の具体的な変更点は、`system_one` に `response_model` パラメーターが追加されたことだ。開発者は `SystemOneResponse` を継承して名前付きの回答フィールドを宣言することも、独自の Pydantic モデルを定義することもできる。従来は辞書のキーでアクセスしていた回答を型付きの属性に変換でき、その後の確認や利用が容易になる。改善されるのはクライアント側のデータ契約であり、判断内容の正しさは引き続き別途評価する必要がある。[使用例](https://docs.typesafe.ai/sdk/python/usage)

移行時には、見落としやすい点がほかにも2つある。0.7.0 では、文字列のサブクラスが文字のリストとしてエンコードされる不具合が修正された。また、古いバージョンから複数のバージョンをまたいで更新する場合、0.6.0 ですでに Score の評価基準が順序付きシーケンスに変更され、整数キーの辞書を受け付けなくなった点にも注意が必要だ。既存のリクエストサンプルを再実行し、レスポンス処理や独自のシリアライズ処理も検証しておきたい。[互換性に関する変更](https://docs.typesafe.ai/sdk/python/changelog)

型付き出力も、意思決定のしきい値の調整に代わるものではない。公式の説明によると、Choice と Score の信頼度は確率分布から計算される統計量であり、Noul には同じフィールドがない。既知の制約として、同じ質問でも異なるプリミティブを使うと数値を直接比較できるとは限らず、否定形の質問の確率と元の質問の確率を足しても、1になる保証はないとされている。[信頼度の定義](https://docs.typesafe.ai/confidence)、[既知の制約](https://docs.typesafe.ai/model-jaggedness/jev-1.13)

中国語を使う用途では、特に独自のテストセットが必要になる。公式は、主な学習言語は英語であり、中国語などの言語では性能が異なること、敵対的入力によって判断が変わる可能性があることを明記している。実装では、判定を見送る経路や人手での対応に切り替える経路を用意し、算術計算や日付の比較はプログラムに任せるべきだ。また、しきい値の調整後はモデルのバージョンを固定し、エイリアスの更新による挙動の変化を避ける必要がある。受け入れ検証では、分類誤差、人手対応への切り替え率、エンドツーエンドのレイテンシーをそれぞれ測定することで、今回のインターフェース更新が実際のワークフローにもたらす価値を判断できる。[言語とバージョンに関する方針](https://docs.typesafe.ai/models)、[入力のリスク](https://docs.typesafe.ai/model-jaggedness/jev-1.13)

出典

  1. TypeSafe Python SDK 版本紀錄
  2. typesafe-sdk 0.7.0
  3. TypeSafe 官方 Python SDK 儲存庫
  4. Jev 與 System One 介面介紹
  5. Python SDK 使用方式與型別化回覆
  6. Confidence:信心值的定義
  7. Jev 1.13 已知限制
  8. 模型版本、語言支援與別名政策