Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/elenacarino-max/Pildora4_ext_StarWars/llms.txt

Use this file to discover all available pages before exploring further.

The six chambers are the conceptual spine of the MLflow Jedi activity. Each one targets a single MLflow concept and presents students with a code challenge drawn from a bank of 50 questions (8 or more per concept). Chambers open in order — a team cannot enter Chamber 2 until Chamber 1 is sealed — and each correct solution awards 20 points. Every hint costs 5 points and reveals progressively more of the solution (concept name → category → near-complete syntax). After five failed attempts the solution is shown, 10 additional points are deducted, and the team advances automatically to prevent blocking. This reference documents the fixed structure of each chamber type and the exact rules the validator applies.

Chamber 1 — Experiment

PropertyValue
Number1
TitleArchivo de campañas
ConceptExperiment
SealSello de la Biblioteca
Goal: Selecciona la campaña que agrupará todas las ejecuciones.
mlflow.set_experiment("Biblioteca_Jedi_Digits")
Hints (progressive):
  1. Una campaña agrupa runs relacionadas.
  2. La función pertenece a la categoría Experiment.
  3. mlflow.set_e_________("Biblioteca_Jedi_Digits")
Validation rule: validate_chamber checks that mlflow.set_experiment is present in the parsed calls and that its first positional argument is the string constant "Biblioteca_Jedi_Digits" exactly. Any other experiment name — even a close variant — is rejected with the message “Usa exactamente Biblioteca_Jedi_Digits.”

Chamber 2 — Run

PropertyValue
Number2
TitleCámara de las misiones
ConceptRun
SealSello de la Misión
Goal: Abre una ejecución llamada Mision_Coruscant y delimítala con with.
with mlflow.start_run(run_name="Mision_Coruscant"):
    pass
Hints (progressive):
  1. Cada entrenamiento concreto necesita su propia run.
  2. Usa start_run dentro de un bloque with.
  3. with mlflow.start_r__(run_name="Mision_Coruscant"):
Validation rule: validate_chamber checks that mlflow.start_run is present in the parsed calls and that the AST contains at least one ast.With node. A bare mlflow.start_run(...) call without the with wrapper is rejected with the message “Abre la run dentro de un bloque with.”

Chamber 3 — Parameters

PropertyValue
Number3
TitleSala de estrategias
ConceptParameters
SealSello de la Estrategia
Goal: Registra el diccionario parametros como decisiones previas.
parametros = {
    "n_estimators": 100,
    "max_depth": 10,
    "random_state": 42,
}

# Escribe aquí el registro
Hints (progressive):
  1. Estos datos se conocen antes de entrenar.
  2. Deben registrarse como parámetros.
  3. mlflow.log_p____(parametros)
Validation rule: validate_chamber checks that mlflow.log_params is present in the parsed calls. If it is absent, the student sees “n_estimators y max_depth son decisiones previas: son parámetros.”

Chamber 4 — Metrics

PropertyValue
Number4
TitleConsejo de evaluación
ConceptMetrics
SealSello del Consejo
Goal: Registra el diccionario metricas como resultados de evaluación.
metricas = {
    "accuracy": accuracy,
    "precision_weighted": precision_weighted,
    "recall_weighted": recall_weighted,
    "f1_weighted": f1_weighted,
}

# Escribe aquí el registro
Hints (progressive):
  1. Estas cifras se conocen después de evaluar.
  2. No son configuración: son métricas.
  3. mlflow.log_m______(metricas)
Validation rule: validate_chamber checks that mlflow.log_metrics is present in the parsed calls. If it is absent, the student sees “La accuracy se conoce después de evaluar: es una métrica.”

Chamber 5 — Artifacts

PropertyValue
Number5
TitleCámara de holocrones
ConceptArtifacts
SealSello del Holocrón
Goal: Registra matriz_confusion.png como archivo de evidencia.
archivo = "matriz_confusion.png"

# Escribe aquí el registro
Hints (progressive):
  1. Una imagen no es una cifra única.
  2. Debe guardarse como artefacto.
  3. mlflow.log_a_______(archivo)
Validation rule: validate_chamber checks that mlflow.log_artifact is present in the parsed calls. If it is absent, the student sees “Una matriz de confusión es un archivo, no una cifra única.”

Chamber 6 — Model

PropertyValue
Number6
TitleArchivo de modelos
ConceptModel
SealSello del Jedi entrenado
Goal: Conserva el modelo entrenado bajo modelo_digits.
mlflow.sklearn.log_model(
    sk_model=modelo,
    artifact_path="modelo_digits",
)
Hints (progressive):
  1. Las métricas no guardan el objeto entrenado.
  2. Usa la integración mlflow.sklearn.
  3. mlflow.sklearn.log_m____(sk_model=modelo, ...)
Validation rule: validate_chamber checks that mlflow.sklearn.log_model is present in the parsed calls and that the call includes both sk_model and artifact_path as keyword arguments. Missing either keyword triggers “Indica sk_model=modelo y artifact_path=“modelo_digits”.”

Question bank

Each session draws one question per concept from a bank of 50 questions total, with at least 8 questions per concept. The six concept categories covered are:

Experiment

8+ questions on mlflow.set_experiment and naming conventions

Run

8+ questions on mlflow.start_run and context managers

Parameters

8+ questions on mlflow.log_params and pre-training decisions

Metrics

8+ questions on mlflow.log_metrics and post-evaluation results

Artifacts

8+ questions on mlflow.log_artifact and file evidence

Model

8+ questions on mlflow.sklearn.log_model and model registration
Questions appear in three formats:
  • Code completion — a partial snippet with a blank to fill in
  • Bug fix — a snippet with a deliberate error (wrong function, wrong argument name) to correct
  • Multiple choice — a conceptual question about when or why a particular call is used
Because the bank is randomised per session, two teams in the same room may face different phrasings of the same concept, reducing direct copying without losing pedagogical coherence.
All validation is purely structural — the validator parses the student’s submission as an AST and inspects node types and argument values. No submitted code is ever executed in the chamber phase. This is why imports, lambda expressions, and any call outside the ALLOWED_CALLS whitelist are rejected immediately, regardless of what they do.

Build docs developers (and LLMs) love