Skip to main content

ML Inference 🥶

Project description

🏖️ Nbox

pypi nbox is stable for SSH and other APIs. Check out v1 for the latest code and APIs!

A library that makes using a host of models provided by the opensource community a lot more easier.

The entire purpose of this package is to make using models 🥶.

pip install nbox

Current LoC

SLOC	Directory	SLOC-by-Language (Sorted)
996     top_dir         python=996
88      framework       python=88

Totals grouped by language (dominant language first):
python:        1084 (100.00%)

🔥 Usage

import nbox

# As all these models come from the popular frameworks you use such as 
# torchvision, efficient_pytorch or hf.transformers
model = nbox.load("torchvision/mobilenetv2", pretrained = True)

# nbox makes inference the priority so you can use it
# pass it a list for batch inference 
out_single = model('cat.jpg')
out = model([Image.open('cat.jpg'), np.array(Image.open('cat.jpg'))])
tuple(out.shape) == (2, 1000)

# deploy the model to a managed kubernetes cluster on NimbleBox.ai
url_endpoint, nbx_api_key = model.deploy()

# or load a cloud infer model and use seamlessly
model = nbox.load(
  model_key_or_url = url_endpoint,
  nbx_api_key = nbx_api_key,
  category = "image"
)

# Deja-Vu!
out_single = model('cat.jpg')
out = model([Image.open('cat.jpg'), np.array(Image.open('cat.jpg'))])
tuple(out.shape) == (2, 1000)

⚙️ CLI

Just add this to your dockerfile or github actions.

NBX_AUTH=1 python -m nbox deploy --model_path=my/model.onnx --deployment_type="nbox"

# or for more details

python -m nbox --help

✏️ Things for Repo

  • Using poetry for proper package management as @cshubhamrao says.
    • Add new packages with poetry add <name>. Do not add torch, tensorflow and others, useless burden to manage those.
    • When pushing to pypi just do poetry build && poetry publish this manages all the things around
  • Install pytest and then run pytest tests/ -v.
  • Using black for formatting, VSCode to the moon.
  • To make the docs:
    # from current folder
    sphinx-apidoc -o docs/source/ ./nbox/ -M -e
    cd docs && make html
    cd ../build/html && python3 -m http.server 80
    

🧩 License

The code in thist repo is licensed as BSD 3-Clause. Please check for individual repositories for licenses.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nbox-0.9.6a0.tar.gz (108.9 kB view hashes)

Uploaded Source

Built Distribution

nbox-0.9.6a0-py3-none-any.whl (111.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page