Fase de Entrenamiento
Entrena y califica anotadores con preguntas de práctica antes de la tarea principal.
Potato 2.0 incluye una fase de entrenamiento opcional que ayuda a calificar a los anotadores antes de que comiencen la tarea principal de anotación. Los anotadores responden preguntas de práctica con respuestas correctas conocidas y reciben retroalimentación sobre su desempeño.
Cómo el entrenamiento filtra a los anotadores
Casos de Uso
- Asegurar que los anotadores entiendan la tarea
- Filtrar anotadores de baja calidad
- Proporcionar práctica guiada antes de las anotaciones reales
- Recopilar métricas de calidad base
- Enseñar directrices de anotación a través de ejemplos
Cómo Funciona
- Los anotadores completan un conjunto de preguntas de entrenamiento
- Reciben retroalimentación inmediata sobre cada respuesta
- Se rastrea el progreso contra los criterios de aprobación
- Solo los anotadores que aprueban pueden continuar a la tarea principal
Configuración
Configuración Básica
training:
enabled: true
data_file: "data/training_data.json"
annotation_schemes: ["sentiment"]
passing_criteria:
min_correct: 3
require_all_correct: false
allow_retry: true
failure_action: "repeat_training"Configuración Completa
phases:
order: [consent, instructions, training, annotation]
consent:
type: consent
file: surveyflow/consent.json
instructions:
type: instructions
file: surveyflow/instructions.html
training:
type: training
file: data/training_data.jsonCriterios de Aprobación
Puedes establecer varios criterios para aprobar la fase de entrenamiento:
Mínimo Correcto
passing_criteria:
min_correct: 3El anotador debe responder correctamente al menos 8 de 10 preguntas.
Requerir Todo Correcto
passing_criteria:
require_all_correct: trueEl anotador debe responder correctamente cada pregunta para aprobar.
Máximo de Errores
passing_criteria:
max_mistakes: 5El anotador es descalificado después de 3 errores totales.
Máximo de Errores por Pregunta
passing_criteria:
max_mistakes_per_question: 2El anotador es descalificado después de 2 errores en cualquier pregunta individual.
Criterios Combinados
passing_criteria:
min_correct: 3
max_mistakes: 5
max_mistakes_per_question: 2Debe obtener 8 correctas Y no fallar ninguna pregunta individual más de 3 veces.
Formato de Datos de Entrenamiento
Los datos de entrenamiento deben incluir respuestas correctas y explicaciones opcionales:
[
{
"id": "train_1",
"text": "I absolutely love this product! Best purchase ever!",
"correct_answers": {
"sentiment": "Positive"
},
"explanation": "This text expresses strong positive sentiment with words like 'love' and 'best'."
},
{
"id": "train_2",
"text": "This is the worst service I've ever experienced.",
"correct_answers": {
"sentiment": "Negative"
},
"explanation": "The words 'worst' and the overall complaint indicate negative sentiment."
},
{
"id": "train_3",
"text": "The package arrived on time.",
"correct_answers": {
"sentiment": "Neutral"
},
"explanation": "This is a factual statement without emotional indicators."
}
]Entrenamiento con Múltiples Esquemas
Para tareas con múltiples esquemas de anotación:
{
"id": "train_1",
"text": "Apple announced new iPhone features yesterday.",
"correct_answers": {
"sentiment": "Neutral",
"topic": "Technology"
},
"explanation": {
"sentiment": "This is a factual news statement.",
"topic": "The text discusses Apple and iPhone, which are tech topics."
}
}Experiencia del Usuario
Flujo de Entrenamiento
- El usuario ve el indicador "Training Phase"
- Se muestra la pregunta con el formulario de anotación
- El usuario envía su respuesta
- Se muestra retroalimentación inmediata:
- Correcto: Marca verde, continúa al siguiente
- Incorrecto: X roja, se muestra explicación, opción de reintento
Visualización de Retroalimentación
Cuando un anotador responde incorrectamente:
- Se resalta la respuesta correcta
- Se muestra la explicación proporcionada
- Aparece el botón de reintento (si los reintentos están habilitados)
- Se muestra el progreso hacia los criterios de aprobación
Monitoreo del Administrador
Rastrea el rendimiento del entrenamiento en el panel de administración:
- Tasas de finalización
- Promedio de respuestas correctas
- Tasas de aprobación/rechazo
- Tiempo dedicado al entrenamiento
- Precisión por pregunta
Accede a través de endpoints de API /admin:
GET /api/admin/training/stats
GET /api/admin/training/user/{user_id}
Ejemplo: Entrenamiento de Análisis de Sentimiento
annotation_task_name: "Sentiment Analysis"
task_dir: "."
port: 8000
data_files:
- "data/reviews.json"
item_properties:
id_key: id
text_key: text
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the sentiment of this review?"
labels:
- Positive
- Negative
- Neutral
sequential_key_binding: true
training:
enabled: true
data_file: "data/training_data.json"
annotation_schemes: ["sentiment"]
passing_criteria:
min_correct: 3
require_all_correct: false
allow_retry: true
failure_action: "repeat_training"
phases:
order: [training, annotation]
training:
type: training
file: "data/training_data.json"
output_annotation_dir: "output/"
export_annotation_format: "jsonl"
user_config:
allow_all_users: trueEjemplo: Entrenamiento de NER
annotation_schemes:
- annotation_type: span
name: entities
description: "Highlight named entities"
labels:
- Person
- Organization
- Location
- Date
training:
enabled: true
data_file: "data/ner_training.json"
annotation_schemes: ["entities"]
passing_criteria:
min_correct: 2
allow_retry: trueDatos de entrenamiento para anotación de span:
{
"id": "train_1",
"text": "Tim Cook announced that Apple will open a new store in New York on March 15.",
"correct_answers": {
"entities": [
{"start": 0, "end": 8, "label": "Person"},
{"start": 24, "end": 29, "label": "Organization"},
{"start": 54, "end": 62, "label": "Location"},
{"start": 66, "end": 74, "label": "Date"}
]
},
"explanation": "Tim Cook is a Person, Apple is an Organization, New York is a Location, and March 15 is a Date."
}Mejores Prácticas
1. Empieza Simple
Comienza con ejemplos sencillos antes de introducir casos límite:
[
{"text": "I love this!", "correct_answers": {"sentiment": "Positive"}},
{"text": "I hate this!", "correct_answers": {"sentiment": "Negative"}},
{"text": "It arrived yesterday.", "correct_answers": {"sentiment": "Neutral"}}
]2. Cubre Todas las Etiquetas
Asegúrate de que el entrenamiento incluya ejemplos de cada etiqueta posible:
[
{"correct_answers": {"sentiment": "Positive"}},
{"correct_answers": {"sentiment": "Negative"}},
{"correct_answers": {"sentiment": "Neutral"}}
]3. Escribe Explicaciones Claras
Las explicaciones deben enseñar las directrices de anotación:
{
"explanation": "While this text mentions a problem, the overall tone is constructive and the reviewer expresses satisfaction with the resolution. This makes it Positive rather than Negative."
}4. Establece Criterios Razonables
No exijas perfección innecesariamente:
passing_criteria:
require_all_correct: true5. Incluye Casos Límite
Agrega ejemplos difíciles para preparar a los anotadores:
{
"text": "Not bad at all, I guess it could be worse.",
"correct_answers": {"sentiment": "Neutral"},
"explanation": "Despite negative words like 'not bad' and 'worse', this is actually a lukewarm endorsement - neutral rather than positive or negative."
}Integración con Flujos de Trabajo
El entrenamiento se integra con flujos de trabajo multifase:
passing_criteria:
min_correct: 3
max_mistakes_per_question: 2Consideraciones de Rendimiento
- Los datos de entrenamiento se cargan al inicio
- El progreso se almacena en memoria por sesión
- Impacto mínimo en el rendimiento de la anotación principal
- Considera separar entrenamientos complejos en múltiples fases
Lectura Adicional
- Control de Calidad - Verificaciones de atención y estándares de referencia
- Asignación por Categoría - Enrutar ítems por experiencia del anotador
- Flujos de Trabajo Multifase - Flujos de trabajo de anotación complejos
Para detalles de implementación, consulta la documentación fuente.