Skip to content
此页面尚未提供您所选语言的版本,当前显示英文版本。

Paarweiser Vergleich

Elementpaare für Präferenz- und Qualitätsbewertung vergleichen.

Paarweiser Vergleich

Der paarweise Vergleich ermöglicht es Annotatoren, zwei Elemente nebeneinander zu vergleichen und ihre Präferenz anzugeben. Es werden zwei Modi unterstützt:

  1. Binärmodus (Standard): Auf die bevorzugte Kachel (A oder B) klicken, mit optionaler Unentschieden-Schaltfläche
  2. Skalenmodus: Einen Schieberegler verwenden, um zu bewerten, wie stark eine Option der anderen vorgezogen wird

Häufige Anwendungsfälle sind der Vergleich von Modellausgaben, das Präferenzlernen für RLHF, der Qualitätsvergleich von Übersetzungen oder Zusammenfassungen sowie A/B-Tests.

Binärmodus

Im Binärmodus werden zwei anklickbare Kacheln angezeigt. Annotatoren klicken auf die bevorzugte Option.

yaml
annotation_schemes:
  - annotation_type: pairwise
    name: preference
    description: "Which response is better?"
    mode: binary
 
    # Data source - key in instance data containing items to compare
    items_key: "responses"
 
    # Display options
    show_labels: true
    labels:
      - "Response A"
      - "Response B"
 
    # Tie option
    allow_tie: true
    tie_label: "No preference"
 
    # Keyboard shortcuts
    sequential_key_binding: true
 
    # Validation
    label_requirement:
      required: true

Skalenmodus

Im Skalenmodus wird ein Schieberegler zwischen zwei Elementen angezeigt, mit dem Annotatoren den Grad der Präferenz angeben können.

yaml
annotation_schemes:
  - annotation_type: pairwise
    name: preference_scale
    description: "Rate how much better A is than B"
    mode: scale
 
    items_key: "responses"
 
    labels:
      - "Response A"
      - "Response B"
 
    # Scale configuration
    scale:
      min: -3           # Negative = prefer left item (A)
      max: 3            # Positive = prefer right item (B)
      step: 1
      default: 0
 
      # Endpoint labels
      labels:
        min: "A is much better"
        max: "B is much better"
        center: "Equal"
 
    label_requirement:
      required: true

Datenformat

Das Schema erwartet Instanzdaten mit einer Liste zu vergleichender Elemente:

json
{"id": "1", "responses": ["Response A text", "Response B text"]}
{"id": "2", "responses": ["First option here", "Second option here"]}

Die items_key-Konfiguration gibt an, welches Feld die zu vergleichenden Elemente enthält. Das Feld sollte eine Liste mit mindestens 2 Elementen enthalten.

Tastaturkürzel

Im Binärmodus mit sequential_key_binding: true:

TasteAktion
1Option A auswählen
2Option B auswählen
0Unentschieden/keine Präferenz auswählen (wenn allow_tie: true)

Im Skalenmodus wird die Schieberegler-Interaktion verwendet.

Ausgabeformat

Binärmodus

json
{
  "preference": {
    "selection": "A"
  }
}

Mit Unentschieden:

json
{
  "preference": {
    "selection": "tie"
  }
}

Skalenmodus

Negative Werte bedeuten Präferenz für A, positive für B, null für gleich:

json
{
  "preference_scale": {
    "scale_value": "-2"
  }
}

Beispiele

Einfacher Binärvergleich

yaml
annotation_schemes:
  - annotation_type: pairwise
    name: quality
    description: "Which text is higher quality?"
    labels: ["Text A", "Text B"]
    allow_tie: true

Mehrdimensionaler Vergleich

Auf mehreren Dimensionen vergleichen:

yaml
annotation_schemes:
  - annotation_type: pairwise
    name: fluency
    description: "Which response is more fluent?"
    labels: ["Response A", "Response B"]
 
  - annotation_type: pairwise
    name: relevance
    description: "Which response is more relevant?"
    labels: ["Response A", "Response B"]
 
  - annotation_type: pairwise
    name: overall
    description: "Which response is better overall?"
    labels: ["Response A", "Response B"]
    allow_tie: true

Präferenzskala mit benutzerdefiniertem Bereich

yaml
annotation_schemes:
  - annotation_type: pairwise
    name: sentiment_comparison
    description: "Compare the sentiment of these two statements"
    mode: scale
    labels: ["Statement A", "Statement B"]
    scale:
      min: -5
      max: 5
      step: 1
      labels:
        min: "A is much more positive"
        max: "B is much more positive"
        center: "Equal sentiment"

RLHF-Präferenzerhebung

yaml
annotation_schemes:
  - annotation_type: pairwise
    name: overall
    description: "Overall, which response is better?"
    labels: ["Response A", "Response B"]
    allow_tie: true
    sequential_key_binding: true
 
  - annotation_type: multiselect
    name: criteria
    description: "What factors influenced your decision?"
    labels:
      - Accuracy
      - Helpfulness
      - Clarity
      - Safety
      - Completeness
 
  - annotation_type: text
    name: notes
    description: "Additional notes (optional)"
    textarea: true
    required: false

Gestaltung

Die paarweise Annotation verwendet CSS-Variablen aus dem Theme-System. Benutzerdefiniertes CSS für Kachelanpassung hinzufügen:

css
/* Make tiles taller */
.pairwise-tile {
  min-height: 200px;
}
 
/* Change selected tile highlight */
.pairwise-tile.selected {
  border-color: #10b981;
  background-color: rgba(16, 185, 129, 0.1);
}

Bewährte Vorgehensweisen

  1. Klare, eindeutige Beschriftungen verwenden - Annotatoren sollten Optionen sofort verstehen
  2. Unentschieden-Optionen sorgfältig abwägen - Manchmal ist es sinnvoll, eine Wahl zu erzwingen
  3. Tastaturkürzel verwenden - Beschleunigt die Annotation erheblich
  4. Begründungsfelder hinzufügen - Hilft beim Verständnis der Argumentation und verbessert die Datenqualität
  5. Mit den eigenen Daten testen - Sicherstellen, dass die Anzeige mit der eigenen Inhaltslänge gut funktioniert

Weiterführende Lektüre

Implementierungsdetails sind in der Quelldokumentation zu finden.