Skip to main content
すべてのシーケンスには、別々の 2 種類のメタデータがあります:
  • 技術的妥当性。 レコーディングは使用可能か。Avala は承認基準と品質目標をもとにこれを報告します。後述の「技術的妥当性」の節をご覧ください。
  • 行動結果。 人またはロボットは何をしたか、そしてタスクは成功したか。Avala はこれをシーケンスの結果ラベルとして保存します。
シーケンスは技術的に妥当であっても、失敗を示すことがあります。失敗したシーケンスは、多くの場合最も役に立ちます。2 つの軸を分けておくことで、クリーンなデータ用のフィルターが有用な失敗を落とすことはなく、成功用のフィルターが壊れたセンサーを隠すこともありません。

結果ラベル

各シーケンスが持つ現在の結果ラベルは最大 1 つです。書き込みのたびに新しいバージョンが記録されます。以前のバージョンはラベル履歴で引き続き読み取れます。

例

次は、滑りとリカバリーを含む人間によるデモンストレーションのラベルを、GET .../sequences/<sequence-uid>/outcome/ が返す形で示したものです:
上の値はラベルの形を示すためのものです。実際の納品を表すものではありません。

フィールド

タイムスタンプはすべて、シーケンス開始からの秒数です。 mistake_type、recovery_type、failure_stage は自由記述のテキストです。シーケンスがきれいにグループ化されるよう、プログラムの失敗タクソノミーのタグを使ってください。

結果の値

各サブタスクは、同じ一覧から独自の結果を持てます。

自律レベル

サブタスク

各サブタスクは {label, start_ts, end_ts, outcome} です。 1 つのラベルが持てるサブタスクは最大 256 個です。リストは start_ts の順に並べる必要があります。任意の 2 つのサブタスクは、互いに重ならないか、フェーズとそのステップのように一方が他方を完全に含むかのどちらかです。端が接している場合は重ならないものとして扱います。部分的な重なりは拒否されます。2 つのサブタスクが同時に始まる場合は、含む側を先に並べてください。

手のアクション

hand_actions は、left と right という独立した 2 つのストリームを持ちます。各アイテムは、ある時間範囲で片方の手が何をするかを記述します。
  • 片方の手の中では、アイテムは start_ts の順に並び、重なってはいけません。アイテムは前のアイテムの終了時刻以降に始まります。端が接するのは問題ありません。
  • 2 つの手は自由に重なれます。
  • 各手が持てるアイテムは最大 3,600 個です。これは 1 秒に 1 ラベルで 1 時間分にあたります。
  • キーは left と right のみです。どちらかを省略できます。省略した手は空のリストとして保存されます。
  • 空の object または verb は null として保存されます。保存されるすべてのアイテムは 6 つのフィールドをすべて持ちます。

シーケンスの長さ

Avala がシーケンスの長さを把握している場合、すべてのサブタスクの end_ts とすべての手のアクションの end_ts は、長さに 1 秒を足した値以下である必要があります。この 1 秒の余裕は、1 秒に 1 つ書かれるラベルのためのものです。Avala が長さを把握しているのは、記録された長さを持つ抽出済み MCAP ファイルがシーケンスにちょうど 1 つある場合です。それ以外のシーケンスでは、このチェックは行われません。

評価への所属

evaluation_membership は、シーケンスを分割のいずれかに置きます: Avala は、すべての評価コホートのシーケンスに held_out_eval を設定します。これらのシーケンスはトレーニングリリースに含まれることはありません。評価をご覧ください。

リーケージグループ

リーケージグループは、ほぼ重複したデータが訓練と評価の分割の両側に入ることを防ぎます。leakage_groups は次のキーを受け付け、それぞれ最大 255 文字のグループ ID を持ちます: その他のキーは拒否されます。各キーは任意です。 Avala は、コホート内のどのグループ値もトレーニングリリースに現れないように評価コホートを構築します。お客様自身のデータも同じ方法で分割できます。ホールドアウトはグループ単位で行い、ランダムなシーケンス単位では行いません。Avala のグループ ID は仮名なので、誰がどこで記録したかを知ることなく、グループ化して分割できます。

ソースメタデータ

source_metadata は、インポートされたラベルの出どころを記録します。たとえば {"importer": "...", "run_id": "...", "task": "...", "log_path": "..."} です。
  • 最大 20 個のキーを持つフラットなオブジェクトです。
  • 各キーは 1 から 64 文字です。
  • 各値は、最大 512 文字の文字列、有限の数値、またはブール値です。
  • ネストしたオブジェクト、リスト、null 値は拒否されます。

書き込みの仕組み

  • 書き込みは現在のラベル全体を置き換え、新しいバージョンを記録します。省略した任意のフィールドは未設定として保存されます。前のバージョンからはコピーされません。
  • 書き込みには、データセットの編集権限が必要です。読み取りには、公開データセットを含め、シーケンスの読み取りと同じ権限が必要です。
  • confidence は、source が model でない限り拒否されます。
  • ラベルのないシーケンスを読み取ると 404 が返ります。

技術的妥当性

技術的妥当性は結果ラベルの一部ではありません。Avala は承認エンジンと品質目標からこれを報告します。技術的妥当性に独自の JSON スキーマはありません。 承認基準。 キャプチャキャンペーンのすべてのキャプチャに、機械による判定が付きます。判定は accept、quarantine、reject のいずれかで、次の基準から決まります: 各基準は pass、fail、insufficient_evidence、skipped のいずれかを報告します。不合格の基準は、acceptance_frame_rate_drop や hands_not_visible などの理由コードを記録します。その後、レビュアーが判定を確認または覆します。理由コードは承認済み時間に一覧があります。 承認は、1 つのキャプチャには MCP ツール get_result_acceptance で、キャンペーンには get_campaign_acceptance_summary で読み取ります。list_capture_submissions には、各キャプチャの機械承認の概要が含まれます。 品質目標。 プロジェクトは、承認率、却下率、問題発生率などの品質メトリクスにしきい値を設定できます。メトリクスがしきい値を超えると、Avala がアラートを出します。品質目標は MCP ツール list_quality_targets で読み取ります。 キャリブレーション、同意、タイムスタンプの同期など、機械による基準ではないプログラムのチェックは、カバレッジレポートで却下理由として報告されます。承認済み時間をご覧ください。

結果ラベルの読み取りと書き込み

REST エンドポイントは https://api.avala.ai/api/v1 の下にあります: データセットの一覧は、outcome、evaluation_membership、source、autonomy_level のフィルターを受け付けます。それぞれ 1 つの値またはカンマ区切りのリストを取り、シーケンスはリスト内のいずれかの値に一致すれば該当します。model_version は 1 つのバージョンに完全一致します。不明なフィルター値は 400 を返します。 シーケンスの一覧 GET /datasets/{owner}/{slug}/sequences/ は、outcome と evaluation_membership を同じ形式で受け付けます。現在のラベルが一致するシーケンスを返します。

ラベルを書き込む

TypeScript SDK は camelCase のオプション名を受け取り、API の snake_case のフィールドとして送信します。sourceMetadata 内のキーは書いたとおりに送信されます。CLI では、--hand-actions-file が {"left": [...], "right": [...]} の JSON ファイルを受け取り、--leakage-group KEY=ID は繰り返し指定できます。

ラベルを読み取る

データセットの一覧は、1 ページあたり最大 100 件のラベルを返します。続きを取得するには、前のページの cursor を渡します。

MCP サーバーでラベルを読み取る

MCP サーバーは結果ラベルを読み取ります。書き込みは行いません。
  • get_sequence_outcome は owner、slug、sequenceUid を受け取り、現在のラベルを返します。
  • list_sequence_outcomes は owner と slug に加え、フィルター outcome、evaluationMembership、source、autonomyLevel、modelVersion、および limit と cursor を受け取ります。
どちらのツールも、デフォルトでは短い形式を返します。サブタスク、手のアクション、ミスとリカバリーのタグ、リーケージグループ、ソースメタデータ、ラベル作成者を含めるには、detail: "full" を渡します。接続方法はAI で Avala を使うをご覧ください。

LeRobot で結果ラベルをエクスポートする

LeRobot エクスポーターは、各シーケンスの現在の結果ラベルをデータセットの隣に書き出せます。1 つの Avala シーケンスが 1 つの LeRobot エピソードになります。
ラベルは meta/avala_sequence_outcomes.jsonl に書き出されます。1 行に 1 つの JSON オブジェクトで、保存された LeRobot エピソードごとに 1 行です。LeRobot 自体のエピソードテーブルにはこのメタデータを置く場所がないため、別ファイルになっています。各行には次のキーがあります: ラベルのないシーケンスには、episode_index、avala_sequence_uid、"outcome": null だけを持つ行が書き出されます。

失敗とリカバリーのレーン

リカバリー可能な失敗は、独立したレーンとして納品されます。結果が mistake_and_recovery または intervention のシーケンスです。各シーケンスのサブタスクと手のアクションが、失敗とリカバリーの起きた箇所を示します。 このレーンは、リリース内の独立したスライスとして納品されます。訓練に使うことも、重み付けすることも、除外することもできます。?outcome=mistake_and_recovery,intervention を使って、同じセットをお客様自身で作ることもできます。安全でないシーケンスはこのレーンに含まれません。