Instructions to use VoltageVagabond/spam-classifier-liquid with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use VoltageVagabond/spam-classifier-liquid with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("LiquidAI/LFM2.5-1.2B-Instruct") model = PeftModel.from_pretrained(base_model, "VoltageVagabond/spam-classifier-liquid") - Notebooks
- Google Colab
- Kaggle
| # ============================================================= | |
| # Spam Classifier — Liquid AI LoRA Retrain | |
| # Double-click to choose fast or full retrain mode. | |
| # Replaces retrain-fast.command and retrain-full.command. | |
| # ============================================================= | |
| cd "$(dirname "$0")" | |
| source venv/bin/activate | |
| echo "============================================================" | |
| echo " Liquid AI LoRA Retrain — Spam / Ham / Phishing" | |
| echo " Model: LiquidAI/LFM2.5-1.2B-Instruct" | |
| echo "============================================================" | |
| echo "" | |
| echo " f) Fast retrain — ~8,000 examples, ~1-1.5 hours" | |
| echo " u) Full retrain — ~16,000 examples, ~2 hours" | |
| echo " q) Quit" | |
| echo "" | |
| echo " Memory optimizations: MPS cache flush, gradient checkpointing, bf16, fused AdamW." | |
| echo "" | |
| read -p "Choice [f/u/q]: " MODE_CHOICE | |
| case "$MODE_CHOICE" in | |
| q|Q) | |
| echo "Bye!" | |
| sleep 2 | |
| exit 0 | |
| ;; | |
| f|F) | |
| MODE="fast" | |
| ADAPTER_DIR="$(dirname "$0")/adapters_fast" | |
| echo "" | |
| echo " Starting FAST retrain (~8K examples, ~1-1.5 hours)..." | |
| ;; | |
| u|U) | |
| MODE="full" | |
| ADAPTER_DIR="$(dirname "$0")/adapters_full" | |
| echo "" | |
| echo " Starting FULL retrain (~16K examples, ~2 hours)..." | |
| ;; | |
| *) | |
| echo "Invalid choice." | |
| sleep 3 | |
| exit 1 | |
| ;; | |
| esac | |
| echo "" | |
| python3 "../new_training_data/retrain_liquid.py" --mode "$MODE" | |
| RETRAIN_STATUS=$? | |
| if [[ $RETRAIN_STATUS -ne 0 ]]; then | |
| echo "" | |
| echo "Retrain failed (exit $RETRAIN_STATUS)." | |
| echo "" | |
| read -p "Press any key to close..." | |
| exit 1 | |
| fi | |
| echo "" | |
| echo "============================================================" | |
| echo " Retrain complete!" | |
| echo " New adapter: $ADAPTER_DIR" | |
| echo "============================================================" | |
| echo "" | |
| echo "Would you like to make this the default adapter?" | |
| echo " - Backs up current adapters/ -> adapters_backup/" | |
| echo " - Copies adapters_${MODE}/ -> adapters/" | |
| echo " - The app and notebook will use the new adapter automatically" | |
| echo "" | |
| read -p "Swap in as default? [y/N]: " SWAP | |
| if [[ "$SWAP" == "y" || "$SWAP" == "Y" ]]; then | |
| PROJ_DIR="$(dirname "$0")" | |
| if [[ -d "$PROJ_DIR/adapters" ]] && [[ ! -d "$PROJ_DIR/adapters_backup" ]]; then | |
| mv "$PROJ_DIR/adapters" "$PROJ_DIR/adapters_backup" | |
| echo " Backed up adapters/ -> adapters_backup/" | |
| elif [[ -d "$PROJ_DIR/adapters" ]]; then | |
| rm -rf "$PROJ_DIR/adapters_old_backup" | |
| mv "$PROJ_DIR/adapters_backup" "$PROJ_DIR/adapters_old_backup" 2>/dev/null | |
| mv "$PROJ_DIR/adapters" "$PROJ_DIR/adapters_backup" | |
| echo " Backed up adapters/ -> adapters_backup/" | |
| fi | |
| cp -r "$ADAPTER_DIR" "$PROJ_DIR/adapters" | |
| echo " Copied adapters_${MODE}/ -> adapters/" | |
| echo " The app and notebook now use the new adapter!" | |
| else | |
| echo " Skipped. To use later, copy adapters_${MODE}/ to adapters/" | |
| fi | |
| echo "" | |
| echo "Next: run Retrain.command in the LLM Project folder to" | |
| echo "rebuild the GGUF and upload to HuggingFace." | |
| echo "" | |
| read -p "Press any key to close..." | |