オブジェクト
オブジェクト は、バージョン管理されたシリアライズ可能なデータです。Weave はオブジェクトの変更時に自動でバージョンを付与し、不変の履歴を作成します。オブジェクトには次のものがあります。- データセット: 評価に使用するサンプルのコレクション
- モデル: LLM ロジックの設定とパラメーター
- プロンプト: バージョン管理されたプロンプトテンプレート
オブジェクトをパブリッシュする
Weave のシリアライズレイヤーは、オブジェクトの保存とバージョン管理を行います。- Python
- TypeScript
オブジェクトを取得する
パブリッシュした後は、その ref を使って保存済みオブジェクトを取得できます。- Python
- TypeScript
weave.publish() は Ref を返します。任意の Ref に対して .get() を呼び出すと、オブジェクトを取得できます。ref を作成し、そこからオブジェクトを取得することもできます。オブジェクトを削除する
オブジェクトの特定のバージョンが不要になった場合は、その ref を使って削除できます。- Python
- TypeScript
オブジェクトのバージョンを削除するには、そのオブジェクトの ref に対して 削除済みのオブジェクトにアクセスすると、エラーが返されます。削除済みのオブジェクトを参照しているオブジェクトを解決すると、削除済みのオブジェクトの代わりに
.delete() を呼び出します。DeletedRef が返されます。オブジェクトの ref を構築する
ref は、保存済みオブジェクトとそのバージョンを一意に識別します。以下のセクションでは、URI の構造と ref の構築方法について説明します。 Weave では、完全修飾されたオブジェクト ref URI は次のような形式になります。[YOUR-TEAM-NAME]: Weights & Biases の entity (ユーザー名またはチーム名)[YOUR-PROJECT-NAME]: Weights & Biases の project[OBJECT-NAME]: オブジェクト名[OBJECT-VERSION]: バージョンハッシュ、v0やv1のような string、または:latestのようなエイリアスのいずれかです。すべてのオブジェクトには:latestエイリアスが付いています。独自のエイリアスを作成する方法については、タグとエイリアスでオブジェクトのバージョンを整理するを参照してください。
weave.ref([NAME]): オブジェクトの:latestバージョンを取得します。事前にweave.init(...)を呼び出す必要があります。weave.ref([NAME]:[VERSION]): オブジェクトの指定したバージョンを取得します。事前にweave.init(...)を呼び出す必要があります。weave.ref([FULLY-QUALIFIED-REF-URI]): 指定した完全修飾オブジェクト ref URI にあるオブジェクトを取得します。weave.init()を呼び出す必要はありません。
タグとエイリアスでオブジェクトのバージョンを整理する
タグ と エイリアス を使用すると、Dataset、Model、Prompt をはじめ、weave.publish でパブリッシュしたあらゆる Weave オブジェクトの特定のバージョンにラベルを付けられます。これらのラベルはどの ObjectRef でも機能するため、オブジェクトのタイプを問わず同じ API を使用できます。
- エイリアス: 単一のバージョンに解決される一意の名前です。エイリアスはいつでも別のバージョンに付け替えられるため、
productionやstagingのような固定の参照先として便利です。すべてのオブジェクトには、最新バージョンを指す:latestエイリアスが自動的に付与されます。 - タグ: バージョンに関連付ける説明用のラベルです。1 つのバージョンに複数のタグを付けられ、同じタグを複数のバージョンに付けることもできます。タグは、
reviewedやpassed-evalのようにバージョンを分類したりフィルターしたりするのに使用します。
命名規則
オブジェクト名、タグ、エイリアスは、以下の規則に従う必要があります。規則に違反するタグやエイリアスは Weave によって拒否されます。
オブジェクトをパブリッシュする前に、Python SDK は名前を以下の規則に照らしてチェックし、必要に応じて書き換えます。
- 英字、数字、アンダースコア、ピリオド以外の文字が連続する部分を、それぞれ 1 つのハイフンに置き換えます。
- ピリオド、アンダースコア、ハイフンが 2 つ以上連続する部分を、それぞれ 1 つのハイフンに置き換えます。
- 名前の先頭と末尾にあるハイフンとアンダースコアを削除します。
- それでも名前が 128 文字を超える場合は、先頭の 128 文字のみを残し、警告をログします。
weave.publish() は ValueError を送出します。weave.publish() が返す ref には書き換え後の名前が含まれるため、オブジェクトを取得する際はその名前を使用してください。
TypeScript SDK は、client.publish() に渡した名前を書き換えません。名前がオブジェクト名の規則に違反している場合、リクエストは失敗します。
Op 名と Call の表示名の制限については、名前の長さの制限を参照してください。