-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Dependencies
olgavrou edited this page Apr 22, 2022
·
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-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-test boost-math
# Optional: flatbuffers
vcpkg --triplet x64-windows install flatbuffers
# Optional: python
vcpkg --triplet x64-windows install boost-python python3
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.
Dependency | Available as vendored? | Can be system? | Optional? |
---|---|---|---|
boost-math | Yes, default | Yes, -DVW_BOOST_MATH_SYS_DEP=On
|
No |
zlib | Yes, -DVW_ZLIB_SYS_DEP=Off
|
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 |
string-view-lite | Yes, default | No | No |
Eigen | Yes, default | No | 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: