-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Dependencies
Jack Gerrits edited this page Jun 5, 2021
·
74 revisions
Getting started > [Dependencies] > Building > Installing > Tutorial
# Important - ensure submodules are downloaded
git clone --recursive https://github.com/VowpalWabbit/vowpal_wabbit.git
cd vowpal_wabbit
sudo apt install libboost-dev libboost-thread-dev libboost-program-options-dev libboost-system-dev libboost-math-dev libboost-test-dev zlib1g-dev cmake g++
# Optional: flatbuffers
sudo apt install libflatbuffers-dev
# Optional: Building Python bindings
sudo apt install libboost-python-dev
- If using WSL ensure you clone the repo in WSL and not in Windows to prevent broken line endings.
- If building on WSL on an NTFS drive, also be sure that the drive is mounted with the "metadata" option, or CMake will not complete successfully. (See: here)
brew install cmake boost zlib
# Optional: flatbuffers
brew install flatbuffers
# Optional: Building Python bindings
brew install boost-python3
The rest of the Linux instructions should apply to MacOS too.
-
10.0.16299.0
Windows 10 SDK must be installed
When using CMake for Windows, dependencies can be managed through Vcpkg. Install the following dependencies with Vcpkg:
vcpkg --triplet x64-windows install zlib boost-system boost-program-options boost-test boost-align boost-foreach boost-math
# Optional: flatbuffers
vcpkg --triplet x64-windows install flatbuffers
# Optional: flatbuffers
vcpkg --triplet x64-windows install boost-python python3
- Add the flatbuffers tool directory to your
PATH
:<vcpkg_root>\installed\x64-windows\tools\flatbuffers
See here for the old instructions for the solution based approach.
If targeting vs2017 (v141) with vs2019 (v142) also installed then additional steps will need to be taken to avoid linker errors due to version incompatibilities.
- From the triplets directory in your Vcpkg installation (e.g.
<vcpkg_root>\triplets
)cp x64-windows.cmake x64-windows-v141.cmake
- Set the
VCPKG_PLATFORM_TOOLSET
variable tov141
by addingset(VCPKG_PLATFORM_TOOLSET v141)
to the newx64-windows-v141.cmake
file - When installing the list of dependencies additionally specify:
vcpkg install --triplet x64-windows-v141 ...
- In the next step when building add the following to the CMake command line
-DVCPKG_TARGET_TRIPLET=x64-windows-v141
Next step: building on Windows
A vendored dep is provided by the project and built as part of building VW. A system dep is externally provided by the OS or a package manager. All dependencies must be available as as system dependency and can optionally be provided vendored.
Dependency | Available as vendored? | Can be system? | Optional? |
---|---|---|---|
boost | No | Yes, default | No |
zlib | No | Yes, default | No |
rapidjson | Yes, default | Yes, -DRAPIDJSON_SYS_DEP=On in CMake |
No |
flatbuffers | No | Yes, default | Yes, off by default. -DBUILD_FLATBUFFERS=On in CMake to enable |
spdlog | Yes, default | Yes, -DFMT_SYS_DEP=On in CMake |
No |
fmt | Yes, default | Yes, -DSPDLOG_SYS_DEP=On in CMake |
No |
- Home
- First Steps
- Input
- Command line arguments
- Model saving and loading
- Controlling VW's output
- Audit
- Algorithm details
- Awesome Vowpal Wabbit
- Learning algorithm
- Learning to Search subsystem
- Loss functions
- What is a learner?
- Docker image
- Model merging
- Evaluation of exploration algorithms
- Reductions
- Contextual Bandit algorithms
- Contextual Bandit Exploration with SquareCB
- Contextual Bandit Zeroth Order Optimization
- Conditional Contextual Bandit
- Slates
- CATS, CATS-pdf for Continuous Actions
- Automl
- Epsilon Decay
- Warm starting contextual bandits
- Efficient Second Order Online Learning
- Latent Dirichlet Allocation
- VW Reductions Workflows
- Interaction Grounded Learning
- CB with Large Action Spaces
- CB with Graph Feedback
- FreeGrad
- Marginal
- Active Learning
- Eigen Memory Trees (EMT)
- Element-wise interaction
- Bindings
-
Examples
- Logged Contextual Bandit example
- One Against All (oaa) multi class example
- Weighted All Pairs (wap) multi class example
- Cost Sensitive One Against All (csoaa) multi class example
- Multiclass classification
- Error Correcting Tournament (ect) multi class example
- Malicious URL example
- Daemon example
- Matrix factorization example
- Rcv1 example
- Truncated gradient descent example
- Scripts
- Implement your own joint prediction model
- Predicting probabilities
- murmur2 vs murmur3
- Weight vector
- Matching Label and Prediction Types Between Reductions
- Zhen's Presentation Slides on enhancements to vw
- EZExample Archive
- Design Documents
- Contribute: