Skip to main content

BeamDS (Beam Data Science)

What is Beam for? ✨

Beam was created by data-science practitioners for data-science practitioners. It is designed as an ecosystem for developing and deploying data-driven algorithms in Python. It aims to increase productivity, efficiency, and performance in the research phase and to provide production-grade tools in the deployment part.

Our Guiding Principles ✍

  1. Support all phases of data-driven algorithm development:
    1. Data exploration
    2. Data manipulation, preprocessing, and ETLs (Extract, Transform and Load)
    3. Algorithm selection
    4. Algorithm training
    5. Hyperparameter tuning
    6. Model deployment
    7. Lifelong learning
  2. Production level coding from the first line of code: no more quick and dirty Proof Of Concepts (POC). Every line of code counts toward a production model.
  3. Consume effectively all resources: use multi-core, multi-GPUs, distributed computing, remote storage solutions, and databases to enable as much as possible productivity by the resources at hand.
  4. Be agile: Development and production environments can change rapidly. Beam minimizes the friction of changing environments, filesystems, and computing resources to almost zero.
  5. Be efficient: every line of code in Beam is optimized to be as efficient as possible and to avoid unnecessary overheads.
  6. Easy to deploy and use algorithms: make deployment as easy as a line of code, import remote algorithms and services by their URI, and no more.
  7. Excel your algorithms: Beam comes with some state-of-the-art deep neural network implementations. Beam will help you store, analyze, and return to your running experiments with ease. When you are done, with development, beam will help you optimize your hyperparameters on your GPU machines.
  8. Data can be a hassle: beam can manipulate complex and nested data structures, including reading, processing, chunking, multi-processing, error handling, and writing.
  9. Be relevant: Beam is committed to staying relevant and updating towards the future of AI, adding support for Large Language Models (LLMs) and more advanced algorithms.
  10. Beam is the Swiss army knife that gets into your pocket: it is easy to install and maintain and it comes with the Beam Docker Image s.t. you can start developing and creating with zero effort even without an internet connection.

Installation 🧷

To install the full package from PyPi use:

pip install beam-ds[all]

If you want to install only the data-science related components use:

pip install beam-ds[ds]

To install only the LLM (Large Language Model) related components use:

pip install beam-ds[llm]

The prerequisite packages will be installed automatically, they can be found in the setup.cfg file.

Build from source 🚂

This BeamDS implementation follows the guide at https://packaging.python.org/tutorials/packaging-projects/

install the build package:

python -m pip install --upgrade build

to reinstall the package after updates use:

  1. Now run this command from the same directory where pyproject.toml is located:
python -m build
  1. reinstall the package with pip:
pip install dist/*.whl --force-reinstall

Getting Started 🚀

There are several examples both in .py files (in the examples folder) and in jupyter notebooks (in the notebooks folder). Specifically, you can start by looking into the beam_resources.ipynb notebook which makes you familiar the different resources available in Beam.

Go To the beam_resource.ipynb page

The Beam-DS Docker Image 🛸

We provide a Docker Image which contains all the necessary packages to run Beam-DS as well as many other data-science related packages which are useful for data-science development. We use it as our base image in our daily development process. It is based on the official NVIDIA PyTorch image.

To pull the image from Docker Hub use:

docker pull eladsar/beam:20240708

Building the Beam-DS docker image from source 🌱

The docker image is based on the latest official NVIDIA pytorch image. To build the docker image from Ubuntu host, you need to:

  1. update nvidia drivers to the latest version: https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-20-04-focal-fossa-linux

  2. install docker: https://docs.docker.com/desktop/linux/install/ubuntu/

  3. Install NVIDIA container toolkit: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#install-guide

  4. Install and configure NVIDIA container runtime: https://stackoverflow.com/a/61737404

Build the sphinx documentation

Follow https://github.com/cimarieta/sphinx-autodoc-example

Profiling your code with Scalene

Scalene is a high-performance python profiler that supports GPU profiling. To analyze your code with Scalene use the following arguments:

scalene --reduced-profile --outfile OUTFILE.html --html --- your_prog.py <your additional arguments>

Uploading the package to PyPi 🌏

  1. Install twine:
python -m pip install --user --upgrade twine
  1. Build the package:
python -m build
  1. Upload the package:
python -m twine upload --repository pypi dist/* 

Upload the package with poetry

# poetry config pypi-token.pypi YOUR_PYPI_API_TOKEN
bash build.sh
bash init.sh
poetry lock
poetry publish --build

Metadata

Release files for beam-ds 2.8.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 beam-ds 2.8.3
File Size Uploaded Provenance
beam_ds-2.8.3.tar.gz 569.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for beam-ds 2.8.3
File Interpreter ABI Platform
beam_ds-2.8.3-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / beam_ds-2.8.3.tar.gz

Download URL beam_ds-2.8.3.tar.gz
Size 569.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c011ab887c4d5da1d9b2b78cdbe4bcdbe41c263ad25c778595a3cde888507875
BLAKE2b-256 checksum
How to use checksums
1cd975f003bb01ad4ffd0e02d7c497d45f12ee56de96806aa79172533ea3e98a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.13.5 Darwin/24.5.0

Release files / beam_ds-2.8.3-py3-none-any.whl

Download URL beam_ds-2.8.3-py3-none-any.whl
Size 652.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a07ff71a3765ce9e7773562f4c5eb04d779a3100f2ad6025e3dafac25ca85bd
BLAKE2b-256 checksum
How to use checksums
f36ae5f623b0d64da49f98095de6fbfe6b3b4e65339a10592b920c567c56ae23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.13.5 Darwin/24.5.0

Security for beam-ds 2.8.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.

Release history Release notifications | RSS feed

This release

2.8.3 This release

2 release files No provenance

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