Welcome to easy_sm¶
A Python CLI tool that simplifies AWS SageMaker workflows by enabling rapid local prototyping with Docker before deploying to the cloud.
Credits
This project borrows heavily from Sagify. Check it out especially if you want to work with LLMs on SageMaker.
Experimental Package
This is an experimental package. APIs may evolve between releases.
Features¶
- Local Development: Train, process, and deploy models locally in Docker containers that mimic SageMaker
- Cloud Deployment: Deploy trained models to AWS SageMaker with minimal configuration changes
- Docker Integration: Automatically build and manage Docker images
- Endpoint Management: Deploy and manage SageMaker endpoints (provisioned and serverless)
- Job Monitoring: List and filter training jobs
- Unix Philosophy: Composable commands with clean, pipable output
Quick Links¶
-
Getting Started
Install easy_sm and run your first training job in 5 minutes
-
User Guide
Learn about local development, cloud deployment, and piped workflows
-
Command Reference
Detailed documentation for all CLI commands
-
Developer Guide
Architecture, testing, and contribution guidelines
Requirements¶
- Python >=3.13
- Docker (for local development)
- AWS CLI configured with credentials
Quick Example¶
# Initialize project
easy_sm init
# Build and test locally
easy_sm build
easy_sm local train
# Deploy to SageMaker
export SAGEMAKER_ROLE=arn:aws:iam::123456789012:role/SageMakerRole
easy_sm push
easy_sm train -n job-name -e ml.m5.large \
-i s3://bucket/input -o s3://bucket/output
Design Philosophy¶
The CLI follows Unix philosophy:
- Composable: Commands output clean data for piping
- Context-aware: Auto-detects app name and IAM role from environment
- Minimal flags: Only essential options required
- Pipe-friendly: Output is data, not verbose messages
Piped Workflows¶
# Get latest training job, extract model, and deploy in one line
easy_sm deploy -n my-endpoint -e ml.m5.large \
-m $(easy_sm get-model-artifacts -j $(easy_sm list-training-jobs -n -m 1))
License¶
MIT License - see License for details.
Author¶
Created by Prateek (prteek@icloud.com)