/LambdaML

Machine learning on serverless platform

Primary LanguagePythonApache License 2.0Apache-2.0

$\lambda$-ML

$\lambda$-ML is a machine learning system built in serverless infrastructure (Amazon AWS Lambda). Serverless compute service lets you run code without provisioning or managing servers, creating workload-aware cluster scaling logic, maintaining event integrations, or managing runtimes. Different from VM-based cloud compute, compute instances in serverless infrastructure cannot communicate with each other. To solve this problem, $\lambda$-ML implements various communication patterns using external storage.

Video Tutorials

We provide several video tutorials on YouTube.

Dependencies

  • awscli (version 1)
  • botocore
  • boto3
  • numpy
  • torch=1.0.1
  • thrift
  • redis
  • grpcio

Environment setup

  • Create a Lambda layer with PyTorch 1.0.1.
  • Compress the whole project and upload to Lambda.
  • Create a VPC and a security group in AWS.

Programming Interface

$\lambda$-ML leverages external storage services, e.g., S3, Elasticache, and DynamoDB, to implement communication between serverless compute instances. We provide both storage interfaces and communication primitives.

Storage

The storage layer offers basic operations to manipulate external storage.

Communication primitive

The communication layer provides popular communication primitives.

Hybrid framework.

In addition to storage services, $\lambda$-ML also implements a hybrid architecture --- one VM acts as a parameter server and serverless instances communicate with the VM.

Usage

The general usage of $\lambda$-ML:

  1. Partition the dataset and upload to S3.
  2. Create a trigger Lambda function and an execution Lambda function.
  3. Set configurations (e.g., dataset location) and hyperparameters (e.g., learning rate).
  4. Set VPC and security group.
  5. Execute the trigger function.
  6. See the logs in CloudWatch.

See examples for more details.

Contact

If you have any question or suggestion, feel free to contact jiawei.jiang@inf.ethz.ch and ce.zhang@inf.ethz.ch.

Reference

Jiawei Jiang, Shaoduo Gan, Yue Liu, Fanlin Wang, Gustavo Alonso, Ana Klimovic, Ankit Singla, Wentao Wu, Ce Zhang. Towards Demystifying Serverless Machine Learning Training. SIGMOD 2021.