- Technische Gültigkeit. Ist die Aufnahme nutzbar? Avala meldet sie anhand von Akzeptanzkriterien und Qualitätszielen. Siehe den Abschnitt Technische Gültigkeit unten.
- Verhaltensergebnis. Was hat die Person oder der Roboter getan, und war die Aufgabe erfolgreich? Avala speichert es als Ergebnis-Label der Sequenz.
Das Ergebnis-Label
Jede Sequenz hat höchstens ein aktuelles Ergebnis-Label. Jeder Schreibvorgang erfasst eine neue Version. Frühere Versionen bleiben in der Label-Historie lesbar.Beispiel
Dies ist das Label einer menschlichen Demonstration mit einem Abrutschen und einer Erholung, so wieGET .../sequences/<sequence-uid>/outcome/ es zurückgibt:
Felder
Alle Zeitstempel sind Sekunden ab Beginn der Sequenz.mistake_type, recovery_type und failure_stage sind Freitext. Verwenden Sie die Tags aus der Fehlertaxonomie Ihres Programms, damit sich Sequenzen sauber gruppieren lassen.
Ergebniswerte
Jede Teilaufgabe kann ihr eigenes Ergebnis aus derselben Liste tragen.
Autonomiegrad
Teilaufgaben
Jede Teilaufgabe ist{label, start_ts, end_ts, outcome}.
Ein Label enthält höchstens 256 Teilaufgaben. Die Liste muss nach
start_ts sortiert sein. Zwei Teilaufgaben sind entweder disjunkt, oder eine enthält die andere vollständig, etwa eine Phase und ihre Schritte. Aneinanderstoßende Enden gelten als disjunkt. Eine teilweise Überlappung wird abgelehnt. Wenn zwei Teilaufgaben zur selben Zeit beginnen, führen Sie die umschließende zuerst auf.
Handaktionen
hand_actions enthält zwei unabhängige Ströme, left und right. Jedes Element beschreibt, was eine Hand über einen Zeitbereich tut.
- Innerhalb einer Hand sind die Elemente nach
start_tssortiert und dürfen sich nicht überlappen. Ein Element beginnt am Ende des vorherigen oder danach. Aneinanderstoßen ist erlaubt. - Die beiden Hände dürfen sich beliebig überlappen.
- Jede Hand enthält höchstens 3.600 Elemente. Das entspricht einer Stunde bei einem Label pro Sekunde.
leftundrightsind die einzigen Schlüssel. Sie können jeden davon weglassen. Eine weggelassene Hand wird als leere Liste gespeichert.- Ein leeres
objectoderverbwird alsnullgespeichert. Jedes gespeicherte Element hat alle sechs Felder.
Dauer der Sequenz
Wenn Avala die Dauer der Sequenz kennt, muss jedesend_ts einer Teilaufgabe und jedes end_ts einer Handaktion höchstens die Dauer plus 1 Sekunde betragen. Die zusätzliche Sekunde berücksichtigt Labels, die mit einem pro Sekunde geschrieben werden. Avala kennt die Dauer, wenn die Sequenz genau eine extrahierte MCAP-Datei mit erfasster Länge hat. Bei anderen Sequenzen entfällt die Prüfung.
Zugehörigkeit zur Evaluation
evaluation_membership ordnet die Sequenz einer Aufteilung zu:
Avala setzt
held_out_eval für die Sequenzen jeder Evaluationskohorte. Diese Sequenzen erscheinen nie in einem Trainings-Release. Siehe Evaluation.
Leakage-Gruppen
Leakage-Gruppen verhindern, dass Beinahe-Duplikate auf beiden Seiten einer Aufteilung in Training und Evaluation landen.leakage_groups akzeptiert diese Schlüssel, jeweils mit einer Gruppen-ID von bis zu 255 Zeichen:
Jeder andere Schlüssel wird abgelehnt. Jeder Schlüssel ist optional.
Avala stellt Evaluationskohorten so zusammen, dass kein Gruppenwert einer Kohorte in einem Trainings-Release vorkommt. Sie können Ihre eigenen Daten genauso aufteilen: Halten Sie nach Gruppe zurück, nie nach zufälliger Sequenz. Die Gruppen-IDs von Avala sind pseudonym, sodass Sie gruppieren und aufteilen können, ohne zu erfahren, wer oder wo.
Quell-Metadaten
source_metadata erfasst, woher ein importiertes Label stammt, zum Beispiel {"importer": "...", "run_id": "...", "task": "...", "log_path": "..."}.
- Es ist ein flaches Objekt mit höchstens 20 Schlüsseln.
- Jeder Schlüssel hat 1 bis 64 Zeichen.
- Jeder Wert ist ein String mit bis zu 512 Zeichen, eine endliche Zahl oder ein Boolean.
- Verschachtelte Objekte, Listen und
null-Werte werden abgelehnt.
Wie Schreibvorgänge funktionieren
- Ein Schreibvorgang ersetzt das aktuelle Label vollständig und erfasst eine neue Version. Jedes optionale Feld, das Sie weglassen, wird als nicht gesetzt gespeichert. Es wird nicht aus der vorherigen Version übernommen.
- Schreiben erfordert Bearbeitungszugriff auf den Datensatz. Lesen erfordert denselben Zugriff wie das Lesen der Sequenz, auch bei öffentlichen Datensätzen.
confidencewird abgelehnt, sofernsourcenichtmodelist.- Das Lesen einer Sequenz ohne Label gibt
404zurück.
Technische Gültigkeit
Technische Gültigkeit ist nicht Teil des Ergebnis-Labels. Avala meldet sie aus der Akzeptanz-Engine und aus Qualitätszielen, und sie hat kein eigenes JSON-Schema. Akzeptanzkriterien. Jede Aufnahme in einer Erfassungskampagne erhält ein maschinelles Urteil:accept, quarantine oder reject. Das Urteil ergibt sich aus diesen Kriterien:
Jedes Kriterium meldet
pass, fail, insufficient_evidence oder skipped. Ein fehlgeschlagenes Kriterium erfasst einen Grundcode, etwa acceptance_frame_rate_drop oder hands_not_visible. Ein Reviewer bestätigt oder überstimmt dann das Urteil. Die Grundcodes sind unter Akzeptierte Stunde aufgeführt.
Lesen Sie die Akzeptanz mit den MCP-Tools get_result_acceptance für eine Aufnahme und get_campaign_acceptance_summary für eine Kampagne. list_capture_submissions enthält die maschinelle Akzeptanzzusammenfassung jeder Aufnahme.
Qualitätsziele. Ein Projekt kann Schwellenwerte für Qualitätsmetriken festlegen, etwa Akzeptanzrate, Ablehnungsrate und Problemrate. Avala alarmiert, wenn eine Metrik ihren Schwellenwert überschreitet. Lesen Sie sie mit dem MCP-Tool list_quality_targets.
Programmprüfungen, die keine maschinellen Kriterien sind, etwa Kalibrierung, Einwilligung und Zeitstempel-Synchronisierung, werden als Ablehnungsgründe im Abdeckungsbericht gemeldet. Siehe Akzeptierte Stunde.
Ergebnis-Labels lesen und schreiben
Die REST-Endpunkte liegen unterhttps://api.avala.ai/api/v1:
Die Datensatzliste akzeptiert die Filter
outcome, evaluation_membership, source und autonomy_level. Jeder nimmt einen Wert oder eine kommagetrennte Liste, und eine Sequenz passt, wenn sie einem beliebigen Wert der Liste entspricht. model_version passt auf genau eine Version. Ein unbekannter Filterwert gibt 400 zurück.
Die Sequenzliste, GET /datasets/{owner}/{slug}/sequences/, akzeptiert outcome und evaluation_membership in derselben Form. Sie gibt die Sequenzen zurück, deren aktuelles Label passt.
Ein Label schreiben
sourceMetadata werden so gesendet, wie sie geschrieben sind. In der CLI nimmt --hand-actions-file eine JSON-Datei mit {"left": [...], "right": [...]}, und --leakage-group KEY=ID kann wiederholt werden.
Labels lesen
cursor der vorherigen Seite, um fortzufahren.
Labels mit dem MCP-Server lesen
Der MCP-Server liest Ergebnis-Labels. Er schreibt sie nicht.get_sequence_outcomenimmtowner,slugundsequenceUid. Es gibt das aktuelle Label zurück.list_sequence_outcomesnimmtownerundslug, dazu die Filteroutcome,evaluationMembership,source,autonomyLevelundmodelVersionsowielimitundcursor.
detail: "full", um Teilaufgaben, Handaktionen, die Fehler- und Erholungs-Tags, Leakage-Gruppen, Quell-Metadaten und den Labeler einzuschließen. Siehe Avala mit KI nutzen für die Verbindung.
Ergebnis-Labels mit LeRobot exportieren
Der LeRobot-Exporter kann das aktuelle Ergebnis-Label jeder Sequenz neben den Datensatz schreiben. Eine Avala-Sequenz wird zu einer LeRobot-Episode.meta/avala_sequence_outcomes.jsonl geschrieben, ein JSON-Objekt pro Zeile und eine Zeile pro gespeicherter LeRobot-Episode. Die Episodentabelle von LeRobot selbst hat keinen Platz für diese Metadaten, deshalb ist es eine separate Datei. Jede Zeile hat diese Schlüssel:
Eine Sequenz ohne Label erhält eine Zeile mit nur
episode_index, avala_sequence_uid und "outcome": null.
Die Fehler-und-Erholungs-Spur
Behebbare Fehler werden als eigene Spur geliefert: Sequenzen, deren Ergebnismistake_and_recovery oder intervention ist. Die Teilaufgaben und Handaktionen jeder Sequenz markieren, wo der Fehler und die Erholung stattfinden.
Die Spur wird als separater Slice im Release ausgeliefert. Sie können darauf trainieren, sie gewichten oder weglassen. Sie können dieselbe Menge auch selbst mit ?outcome=mistake_and_recovery,intervention zusammenstellen. Unsichere Sequenzen gehören nicht zur Spur.