Integrate representation vector library extraction in benchmark_fces_vs_adam.py
This commit is contained in:
@@ -16,6 +16,11 @@ from send_telemetry import push_to_mariadb, push_to_surrealdb # noqa: E402
|
|||||||
from transformers import AutoModelForCausalLM, AutoTokenizer # noqa: E402
|
from transformers import AutoModelForCausalLM, AutoTokenizer # noqa: E402
|
||||||
from parasitic_qlora import ParasiticQLoRAExtractor, QLoRAConfig # noqa: E402
|
from parasitic_qlora import ParasiticQLoRAExtractor, QLoRAConfig # noqa: E402
|
||||||
from expert_manifold_alignment import ExpertManifoldAligner # noqa: E402
|
from expert_manifold_alignment import ExpertManifoldAligner # noqa: E402
|
||||||
|
from representation_engineering import ( # noqa: E402
|
||||||
|
PlaybookParser,
|
||||||
|
RepresentationVectorExtractor,
|
||||||
|
SkillVectorLibrary,
|
||||||
|
)
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# 1. DSPY SIGNATURE & SYSTEM DESIGN
|
# 1. DSPY SIGNATURE & SYSTEM DESIGN
|
||||||
@@ -278,6 +283,27 @@ def train_run(
|
|||||||
library_path = f"parasitic_adapters_{optimizer_name.lower()}_step{steps}.pt"
|
library_path = f"parasitic_adapters_{optimizer_name.lower()}_step{steps}.pt"
|
||||||
extractor.save_library(library_path)
|
extractor.save_library(library_path)
|
||||||
|
|
||||||
|
# Extract and save Skill representation vectors
|
||||||
|
print(f"[{optimizer_name}] Extracting Skill representation vectors...")
|
||||||
|
try:
|
||||||
|
skills_dir = "C:/Users/Sven/Documents/svenco-knowledge/skills"
|
||||||
|
playbooks = PlaybookParser.parse_directory(skills_dir)
|
||||||
|
print(f"[{optimizer_name}] Found {len(playbooks)} playbooks in {skills_dir}")
|
||||||
|
|
||||||
|
rep_extractor = RepresentationVectorExtractor(model, tokenizer, device)
|
||||||
|
skill_lib = SkillVectorLibrary()
|
||||||
|
|
||||||
|
for pb in playbooks:
|
||||||
|
print(f"[{optimizer_name}] Extracting steering vector for skill: {pb.name}")
|
||||||
|
vec = rep_extractor.extract_steering_vector(pb)
|
||||||
|
skill_lib.add_vector(vec)
|
||||||
|
|
||||||
|
skill_lib_path = f"skill_library_{optimizer_name.lower()}.pt"
|
||||||
|
skill_lib.save(skill_lib_path)
|
||||||
|
print(f"[{optimizer_name}] Saved SkillVectorLibrary to {skill_lib_path}")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"[{optimizer_name}] Error extracting skill representation vectors: {e}")
|
||||||
|
|
||||||
# 4. Post-Training Evaluation
|
# 4. Post-Training Evaluation
|
||||||
print(f"[{optimizer_name}] Running Post-Training Evaluation...")
|
print(f"[{optimizer_name}] Running Post-Training Evaluation...")
|
||||||
post_eval = evaluate_model(model, tokenizer, device)
|
post_eval = evaluate_model(model, tokenizer, device)
|
||||||
|
|||||||
Reference in New Issue
Block a user