
Исследовательский конвейер, который конструирует проверенные успешные примеры и организует их в записи формирования, чтобы постепенно отравлять навыки модели через этапы HTS, LEGSA и GCTIR.
Этот репозиторий содержит реализацию SkillPoison — конвейера этапа формирования, предназначенного для построения проверенного успешного опыта и его организации в записи формирования.
.
├── 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/ содержит реализацию HTS, LEGSA и GCTIR; prompts/ хранит шаблоны промптов, обращённых к модели; configs/ хранит настройки экспериментов; а scripts/run_skillpoison.py — основная точка входа для выполнения.
Рекомендуется Python 3.10 или более поздней версии.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Задайте эндпоинт модели перед реальным запуском:
export MODEL_API_KEY="your-api-key"
export MODEL_BASE_URL="https://your-endpoint/v1"
export MODEL_NAME="your-model-name"
Шаблон переменных окружения предоставлен в .env.example.
Основной файл конфигурации:
configs/main.yaml
Он задаёт выходной каталог, настройки модели, целевое поведение, модель эмбеддингов, пороги HTS, каталог промптов LEGSA и настройки формирования GCTIR.
Конвейер принимает входные данные в формате JSON или JSONL. Для JSON используйте список 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"
}
]
}
Каждый кандидат должен содержать уникальный id, информацию о задаче/категории, записанную успешную траекторию, результаты проверки и формат вывода (text, json или python).
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input /path/to/candidate_experiences.json \
--out outputs/run
Конвейер выполняет:
Candidate Experiences
↓
HTS
↓
LEGSA
↓
GCTIR
↓
Formation Records
--out переопределяет выходной каталог, указанный в configs/main.yaml.
Стандартный запуск записывает:
outputs/run/
├── selection_audit.json
├── formation_records.json
└── run_summary.json
selection_audit.json: результаты отбора и валидации кандидатов.formation_records.json: итоговые записи формирования.run_summary.json: статистика запуска, конфигурация и сводка использования.Для детерминированного повторного выполнения на основе записанных промежуточных артефактов:
python scripts/run_skillpoison.py \
--config configs/main.yaml \
--input /path/to/replay_input.json \
--out outputs/replay \
--replay
Входные данные для воспроизведения должны уже содержать записанные артефакты, необходимые конвейеру.