Skip to main content

Bloombee Logo
Run large language models in a heterogeneous decentralized environment with offloading.

The rapid rise of generative AI has boosted demand for large language model (LLM) inference and fine-tuining services. While proprietary models are still favored, advancements in open-source LLMs have made them competitive. However, high costs and limited GPU resources hinder deployment. This work introduces BloomBee, a decentralized offline serving system that leverages idle GPU resources to provide cost-effective access to LLMs.

We rely on global GPU sharing, which includes more consumer-grade GPUs. If your GPU can only manage a small portion of a large language model, like the Llama3.1 (405B) model, you can connect to a network of servers that load different parts of the model. In this network, you can request inference or fine-tuning services.

🚀  Try now in Colab

Installation

From Pypi

pip install bloombee

From Source

git clone https://github.com/yottalabsai/BloomBee.git  
cd BloomBee  
pip install .

How to use BloomBee(Try now in Colab)

1. Start the main server

python -m bloombee.cli.run_dht --host_maddrs /ip4/0.0.0.0/tcp/31340 --identity_path bootstrapp1.id 

Now you will get the BloomBee's main server location:

Mon 00 01:23:45.678 [INFO] Running a DHT instance. To connect other peers to this one, use --initial_peers /ip4/YOUR_IP_ADDRESS/tcp/31340/p2p/QmefxzDL1DaJ7TcrZjLuz7Xs9sUVKpufyg7f5276ZHFjbQ

You can provide this address as --initial_peers to workers or other backbone servers.

If you want your swarm to be accessible outside of your local network, ensure that you have a public IP address or set up port forwarding correctly, so that your peer is reachable from the outside.

2. Connect the workers to the main bloombee server

Here is the BloomBee Server location:

export BBSERVER=/ip4/10.52.2.249/tcp/31340/p2p/QmefxzDL1DaJ7TcrZjLuz7Xs9sUVKpufyg7f5276ZHFjbQ  

Start one worker to hold 16 blocks (16 tranformer layers)

python -m bloombee.cli.run_server huggyllama/llama-7b --initial_peers $BBSERVER --num_blocks 16  --identity_path bootstrap_1.id

Start second worker to hold another 16 blocks (16 tranformer layers)

python -m bloombee.cli.run_server huggyllama/llama-7b --initial_peers $BBSERVER --num_blocks 16  --identity_path bootstrap_1.id

3. Run inference or finetune jobs

Inference

cd Bloombee/
python benchmarks/benchmark_inference.py --model huggyllama/llama-7b  --initial_peers $BBSERVER --torch_dtype float32 --seq_len 128

Finetune

cd Bloombee/
python benchmarks/benchmark_training.py --model huggyllama/llama-7b  --initial_peers $BBSERVER --torch_dtype float32  --n_steps 20 --batch_size 32 --seq_len 128

Acknowledgements

Bloombee is built upon a few popular libraries:

  • Hivemind - A PyTorch library for decentralized deep learning across the Internet.
  • FlexLLMGen - An offloading-based system running on weak GPUs.
  • Petals - A library for decentralized LLMs fine-tuning and inference without offloading.

Metadata

Release files for bloombee 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bloombee 0.1.3
File Size Uploaded Provenance Actions
bloombee-0.1.3.tar.gz 114.0 kB Without provenance Details for bloombee-0.1.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for bloombee 0.1.3
File Interpreter ABI Platform Actions
bloombee-0.1.3-py3-none-any.whl Python 3 none any Details for bloombee-0.1.3-py3-none-any.whl

Total release size: 240.9 kB

Release files / bloombee-0.1.3.tar.gz

Download URL bloombee-0.1.3.tar.gz
Size 114.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a138fc98911d10a42432c40a7e34a710815e086e7826cf2f3b0b6e6ea0c7c05f
BLAKE2b-256 checksum
How to use checksums
b1b2c7b279b7d61f7a5891dd7213347171221cbd3386e416b1fd239fc73ec002
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

Release files / bloombee-0.1.3-py3-none-any.whl

Download URL bloombee-0.1.3-py3-none-any.whl
Size 126.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
49181a6ff2cea07ffb11a4958e9bc501c405ba8d3eb30ebd70af27b04d8788c8
BLAKE2b-256 checksum
How to use checksums
ef183fe30d6f34b1e34502d89d6e30fdb4d77f196086cd154933815b681743a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

Security for bloombee 0.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page