Contributing#
Contributing to UForm#
We welcome contributions to UForm!
Python#
Before submitting any changes, please make sure that the tests pass.
pip install -e ".[dev]" # For development dependencies
pip install -e ".[torch]" # For PyTorch
pip install -e ".[onnx]" # For ONNX on CPU
pip install -e ".[onnx-gpu]" # For ONNX on GPU, available for some platforms
pip install -e ".[torch,onnx,onnx-gpu,dev]" # For all
pytest python/scripts/ -s -x -Wd -v
pytest python/scripts/ -s -x -Wd -v -k onnx # To run only ONNX tests without loading Torch
Swift#
To build and test the Swift package, use the following command:
swift build
swift test
Swift formatting is enforced with swift-format
default utility from Apple.
To install and run it on all the files in the project, use the following command:
brew install swift-format
swift-format . -i -r
The style is controlled by the .swift-format
JSON file in the root of the repository.
As there is no standard for Swift formatting, even Apple’s own swift-format
tool and Xcode differ in their formatting rules, and available settings.
JavaScript#
For rapid development you can avoid the TypeScript precompilation step:
npm install -g ts-node
ts-node javascript/embeddings.mts
Before submitting any changes, please make sure that the tests pass.
npm install
npm test
Benchmarking#
If you want to double check, how fast the model may work on your hardware, you can clone the library and repeat the benchmarks locally.
The following benchmark will exclude PyTorch backend, CUDA-capable devices, and all the -base
and -large
models, running only the ONNX benchmarks on the CPU.
git clone https://github.com/unum-cloud/uform --depth 1 # Clone the repository
cd uform && pip install -e ".[torch,onnx,onnx-gpu,dev]" # Install all dependencies
python python/scripts/bench_encoders.py --filter-out "torch|cuda|base|large"