このリポジトリは 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
リプレイ入力には、パイプラインが必要とする記録済みの成果物がすでに含まれている必要があります。