-
Notifications
You must be signed in to change notification settings - Fork 12
Closed
Labels
P2Medium priorityMedium prioritySSCShell Safety ClassifierShell Safety ClassifierenhancementNew feature or requestNew feature or request
Description
SSC-027: End-to-End CLI Execution
Priority: P2
Blocked by: SSC-026 (training loop)
Blocks: —
Contract: References training-loop-v1.yaml
Problem
apr finetune --task classify currently only does plan mode (VRAM estimation, pipeline summary). It does not actually execute training. The last mile: wire the real ClassifyTrainer::train() invocation from the CLI.
What Exists
- CLI argument parsing for
--task classify,--num-classes,--data,--method lora - Config construction and pipeline summary display
- Plan-mode output (VRAM estimation, parameter count)
ClassifyTrainer(after SSC-026) with full training loop
What's Missing
-
Actual training invocation in
run_classify():- Load tokenizer (BPE from HuggingFace or ShellVocab)
- Load base model weights (from_safetensors)
- Create ClassifyPipeline with LoRA
- Create ClassifyTrainer
- Call
trainer.train(corpus) - Save final adapter + classification head
-
Progress reporting:
- Per-epoch: loss, accuracy, LR, time
- ETA estimation
- Final summary with best metrics
-
Model saving:
- Save LoRA adapter as
.aprformat - Save classification head weights
- Save training config for reproducibility
- Generate model card
- Save LoRA adapter as
-
Integration test:
apr finetune --task classify --data test_corpus.jsonl --epochs 2 --batch-size 4- Verify model files created
- Verify training completed without error
Acceptance Criteria
-
apr finetune --task classify --data corpus.jsonlactually trains - Progress output shows loss/accuracy per epoch
- Final adapter saved to output path
-
--planstill works (no regression) - Integration test passes
- Documentation updated with full usage examples
References
- CLI dispatch in
crates/apr-cli/src/commands/finetune.rs - Spec:
bashrs/docs/specifications/shell-safety-inference.mdSection 14
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P2Medium priorityMedium prioritySSCShell Safety ClassifierShell Safety ClassifierenhancementNew feature or requestNew feature or request