fine-tuning
fine-tuning
Purpose
This skill enables fine-tuning of pre-trained ML models using transfer learning, adapting them to specific tasks like text classification or image recognition. It leverages OpenClaw's AIMLOps framework to optimize training loops and resource usage.
When to Use
Use this skill when you have a pre-trained model (e.g., BERT for NLP) and a custom dataset that requires adaptation, such as sentiment analysis on domain-specific text. Apply it for tasks where training from scratch is inefficient, like in production environments with limited data.
Key Capabilities
- Fine-tune models with techniques like gradient checkpointing for memory efficiency.
- Support for popular frameworks: Hugging Face Transformers, TensorFlow, and PyTorch.
- Hyperparameter tuning via integrated tools, e.g., learning rate schedulers.
- Distributed training across GPUs or cloud instances.
- Model evaluation metrics like accuracy, F1-score, and loss tracking.
Usage Patterns
Start by preparing your dataset and model. Load data into a compatible format (e.g., JSONL for text), then invoke the fine-tuning command. Monitor progress via logs or callbacks. For pipelines, integrate as a step in AIMLOps workflows, ensuring data preprocessing precedes fine-tuning.
Common Commands/API
Use the OpenClaw CLI for quick execution or the REST API for programmatic access. Authentication requires setting $OPENCLAW_API_KEY as an environment variable.
-
CLI Command Example: Fine-tune a BERT model on a dataset.
openclaw fine-tune --model bert-base-uncased --data-path ./data.jsonl --epochs 3 --batch-size 16 --learning-rate 5e-5This command loads the model, trains for 3 epochs, and saves outputs to the current directory.
-
API Endpoint: POST to
/api/v1/fine-tunewith a JSON body. Example request body:{ "model_id": "bert-base-uncased", "dataset_url": "s3://my-bucket/data.jsonl", "epochs": 3, "hyperparameters": {"learning_rate": 5e-5, "batch_size": 16} }Send via curl:
curl -X POST -H "Authorization: Bearer $OPENCLAW_API_KEY" -d '{"model_id": "bert-base-uncased", ...}' https://api.openclaw.ai/api/v1/fine-tune -
Config Format: Use YAML for configuration files. Example snippet:
model: bert-base-uncased data: path: ./data.jsonl format: jsonl training: epochs: 3 optimizer: adamwPass to CLI:
openclaw fine-tune --config config.yaml
Integration Notes
Integrate with other OpenClaw skills by chaining outputs; for example, use the "data-preprocessing" skill to prepare datasets before fine-tuning. For cloud setups, specify providers like AWS in configs (e.g., add "provider": "aws" in JSON). Handle dependencies by installing required packages via pip install transformers==4.28.0 torch==1.13.1. Ensure compatibility with AIMLOps clusters by setting env vars like $OPENCLAW_CLUSTER_ID.
Error Handling
Check for common errors like invalid model IDs or data format mismatches. Use try-catch in scripts:
try:
response = requests.post('https://api.openclaw.ai/api/v1/fine-tune', headers={'Authorization': f'Bearer {os.environ["OPENCLAW_API_KEY"]}'}, json=payload)
response.raise_for_status()
except requests.exceptions.HTTPError as e:
print(f"Error: {e.response.status_code} - {e.response.text}")
Log detailed errors with --verbose flag in CLI (e.g., openclaw fine-tune --verbose). For GPU issues, verify availability with nvidia-smi before running.
Concrete Usage Examples
-
Fine-Tuning for Sentiment Analysis: Adapt BERT for movie reviews.
- Prepare data: Save reviews in JSONL format.
- Run:
openclaw fine-tune --model bert-base-uncased --data-path reviews.jsonl --epochs 5 --output-dir ./models - This trains the model and saves checkpoints; evaluate with
openclaw evaluate --model-path ./models/checkpoint-5
-
Fine-Tuning Image Classifier: Use a pre-trained ResNet for custom images.
- Dataset: Organize images in folders (e.g., train/class1/*.jpg).
- Command:
openclaw fine-tune --model resnet50 --data-path ./image_dataset --epochs 10 --batch-size 32 - Integrate: Follow with deployment via OpenClaw's "model-serving" skill for inference.
Graph Relationships
- Relates to: "data-preprocessing" (input dependency for dataset handling)
- Relates to: "model-evaluation" (output for performance metrics)
- Relates to: "aimlops-deployment" (for post-fine-tuning model serving)
- Clusters with: "aimlops" (shared ecosystem for ML operations)