
Forschungspipeline, die verifizierte erfolgreiche Erfahrungen konstruiert und sie in Ausbildungsdatensätze organisiert, um Modellfähigkeiten über die Phasen HTS, LEGSA und GCTIR schrittweise zu vergiften.
Dieses Repository enthält die Implementierung von SkillPoison, einer Pipeline für die Formationsphase, mit der verifizierte erfolgreiche Erfahrungen konstruiert und in Formationsdatensätzen organisiert werden.
.
├── 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/ enthält die Implementierung von HTS, LEGSA und GCTIR; prompts/ speichert die modellseitigen Prompt-Vorlagen; configs/ speichert die Experimenteinstellungen; und scripts/run_skillpoison.py ist der Haupteinstiegspunkt für die Ausführung.
Python 3.10 oder höher wird empfohlen.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Legen Sie den Modell-Endpunkt vor einem Live-Lauf fest:
export MODEL_API_KEY="your-api-key"
export MODEL_BASE_URL="https://your-endpoint/v1"
export MODEL_NAME="your-model-name"
Eine Vorlage für Umgebungsvariablen ist in .env.example enthalten.
Die Hauptkonfigurationsdatei ist:
configs/main.yaml
Sie legt das Ausgabeverzeichnis, die Modelleinstellungen, das Zielverhalten, das Embedding-Modell, die HTS-Schwellenwerte, das LEGSA-Prompt-Verzeichnis und die GCTIR-Formationseinstellungen fest.
Die Pipeline akzeptiert JSON- oder JSONL-Eingaben. Verwenden Sie für JSON eine experiences-Liste:
{
"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"
}
]
}
Jeder Kandidat sollte eine eindeutige id, Aufgaben-/Kategorieinformationen, eine aufgezeichnete erfolgreiche Trajektorie, Verifikationsergebnisse und ein Ausgabeformat (text, json oder python) enthalten.
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input /path/to/candidate_experiences.json \
--out outputs/run
Die Pipeline führt Folgendes aus:
Candidate Experiences
↓
HTS
↓
LEGSA
↓
GCTIR
↓
Formation Records
--out überschreibt das in configs/main.yaml angegebene Ausgabeverzeichnis.
Ein Standardlauf schreibt:
outputs/run/
├── selection_audit.json
├── formation_records.json
└── run_summary.json
selection_audit.json: Ergebnisse der Kandidatenauswahl und -validierung.formation_records.json: endgültige Formationsdatensätze.run_summary.json: Laufstatistiken, Konfiguration und Nutzungszusammenfassung.Für eine deterministische erneute Ausführung aus aufgezeichneten Zwischenartefakten:
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input /path/to/replay_input.json \
--out outputs/replay \
--replay
Die Replay-Eingabe muss bereits die von der Pipeline benötigten aufgezeichneten Artefakte enthalten.