
Pipeline de investigación que construye experiencias exitosas verificadas y las organiza en registros de formación para envenenar progresivamente las habilidades del modelo mediante las etapas HTS, LEGSA y GCTIR.
Este repositorio proporciona la implementación de SkillPoison, un pipeline de etapa de formación para construir experiencias exitosas verificadas y organizarlas en registros de formación.
.
├── assets/
│ └── framework.png
├── configs/
│ └── main.yaml
├── core/
│ ├── hts/
│ ├── legsa/
│ ├── gctir/
│ ├── utils/
│ ├── config.py
│ └── pipeline.py
├── prompts/
│ ├── legsa/
│ ├── target_audit.txt
│ ├── counterfactual_generation.txt
│ └── counterfactual_audit.txt
├── scripts/
│ └── run_skillpoison.py
├── .env.example
├── requirements.txt
└── README.md
core/ contiene la implementación de HTS, LEGSA y GCTIR; prompts/ almacena las plantillas de prompts orientadas al modelo; configs/ almacena la configuración de los experimentos; y scripts/run_skillpoison.py es el punto de entrada principal de ejecución.
Se recomienda Python 3.10 o posterior.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Establezca el endpoint del modelo antes de una ejecución en vivo:
export MODEL_API_KEY="your-api-key"
export MODEL_BASE_URL="https://your-endpoint/v1"
export MODEL_NAME="your-model-name"
Se proporciona una plantilla de variables de entorno en .env.example.
El archivo de configuración principal es:
configs/main.yaml
Especifica el directorio de salida, la configuración del modelo, el comportamiento objetivo, el modelo de embeddings, los umbrales de HTS, el directorio de prompts de LEGSA y la configuración de formación de GCTIR.
El pipeline acepta entrada en formato JSON o JSONL. Para JSON, utilice una lista experiences:
{
"experiences": [
{
"id": "example_001",
"category": "category_name",
"task_text": "task input",
"solution": "externally verified solution",
"trajectory": {
"task_input": "task input",
"model_output": "recorded successful output"
},
"requirement_checks": [true],
"verified_success": true,
"output_format": "text"
}
]
}
Cada candidato debe contener un id único, información de tarea/categoría, una trayectoria exitosa registrada, resultados de verificación y un formato de salida (text, json o python).
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input /path/to/candidate_experiences.json \
--out outputs/run
El pipeline ejecuta:
Candidate Experiences
↓
HTS
↓
LEGSA
↓
GCTIR
↓
Formation Records
--out sobrescribe el directorio de salida especificado en configs/main.yaml.
Una ejecución estándar escribe:
outputs/run/
├── selection_audit.json
├── formation_records.json
└── run_summary.json
selection_audit.json: resultados de selección y validación de candidatos.formation_records.json: registros de formación finales.run_summary.json: estadísticas de ejecución, configuración y resumen de uso.Para una re-ejecución determinista a partir de artefactos intermedios registrados:
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input /path/to/replay_input.json \
--out outputs/replay \
--replay
La entrada de reproducción debe contener ya los artefactos registrados requeridos por el pipeline.