メインコンテンツへスキップ
Model は、データ (設定、トレーニング済みモデルの重み、その他の情報を含む場合があります) と、そのモデルの動作を定義するコードを組み合わせたものです。コードをこの API に対応するよう構成することで、アプリケーションを構造的にバージョン管理でき、Experiments をより体系的に追跡できます。
Weave でモデルを作成するには、次のものが必要です。
  • weave.Model を継承するクラス
  • すべてのパラメーターに対する型定義
  • @weave.op() デコレーターが付いた、型付きの predict 関数
from weave import Model
import weave

class YourModel(Model):
    attribute1: str
    attribute2: int

    @weave.op()
    def predict(self, input_data: str) -> dict:
        # モデルのロジックはここに記述します
        prediction = self.attribute1 + ' ' + input_data
        return {'pred': prediction}
モデルは通常どおり次のように呼び出せます。
import weave
weave.init('intro-example')

model = YourModel(attribute1='hello', attribute2=5)
model.predict('world')
これにより、predict() を呼び出すたびに、モデルの設定が inputs と outputs とともにトラッキングされます。

モデルの自動バージョン管理

モデルを定義するパラメーターやコードを変更すると、それらの変更がログされ、バージョンが更新されます。 これにより、モデルの異なるバージョン間で予測を比較できます。これを使ってプロンプトを改善したり、最新の LLM を試したり、異なる設定での予測を比較したりできます。たとえば、ここでは新しいモデルを作成します。
import weave
weave.init('intro-example')

model = YourModel(attribute1='howdy', attribute2=10)
model.predict('world')
これを呼び出すと、UI でこの Model の 2 つのバージョンが表示され、それぞれで異なる呼び出しがトラッキングされていることがわかります。

モデルをサーブする

モデルをサーブするには、次を呼び出すだけで FastAPI サーバーを簡単に起動できます。
weave serve <your model ref>
追加の手順については、serve を参照してください。

本番呼び出しをトラッキングする

本番呼び出しを区別するには、UI または API で簡単にフィルターできるよう、予測に追加の属性を付与できます。
with weave.attributes({'env': 'production'}):
    model.predict('world')