
Pipeline de pesquisa que constrói experiências bem-sucedidas verificadas e as organiza em registros de formação para envenenar progressivamente as habilidades do modelo através dos estágios HTS, LEGSA e GCTIR.
Este repositório fornece a implementação do SkillPoison, um pipeline de estágio de formação para construir experiências bem-sucedidas verificadas e organizá-las em registros de formação.
.
├── 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/ contém a implementação de HTS, LEGSA e GCTIR; prompts/ armazena os templates de prompt voltados ao modelo; configs/ armazena as configurações de experimento; e scripts/run_skillpoison.py é o ponto de entrada principal de execução.
Recomenda-se Python 3.10 ou superior.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Defina o endpoint do modelo antes de uma execução ao vivo:
export MODEL_API_KEY="your-api-key"
export MODEL_BASE_URL="https://your-endpoint/v1"
export MODEL_NAME="your-model-name"
Um template de variáveis de ambiente é fornecido em .env.example.
O arquivo de configuração principal é:
configs/main.yaml
Ele especifica o diretório de saída, configurações do modelo, comportamento alvo, modelo de embedding, limiares do HTS, diretório de prompts do LEGSA e configurações de formação do GCTIR.
O pipeline aceita entrada JSON ou JSONL. Para JSON, use uma 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 deve conter um id único, informações de tarefa/categoria, uma trajetória bem-sucedida registrada, resultados de verificação e um formato de saída (text, json ou python).
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input /path/to/candidate_experiences.json \
--out outputs/run
O pipeline executa:
Candidate Experiences
↓
HTS
↓
LEGSA
↓
GCTIR
↓
Formation Records
--out substitui o diretório de saída especificado em configs/main.yaml.
Uma execução padrão grava:
outputs/run/
├── selection_audit.json
├── formation_records.json
└── run_summary.json
selection_audit.json: resultados de seleção e validação de candidatos.formation_records.json: registros de formação finais.run_summary.json: estatísticas de execução, configuração e resumo de uso.Para reexecução determinística a partir de artefatos intermediários registrados:
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input /path/to/replay_input.json \
--out outputs/replay \
--replay
A entrada de replay já deve conter os artefatos registrados exigidos pelo pipeline.