Recent Releases of https://github.com/VowpalWabbit/vowpal_wabbit
https://github.com/VowpalWabbit/vowpal_wabbit - 9.10.0
General Notes
Updates to sparse weights, VW Slim, Search, and other bug fixes.
Click here to see all changes in this release
## What's Changed ### Features * feat: sparse model benchmarks by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4653 * feat: not self consistent speed up by @mrucker in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4652 * feat: Flatbuffer format by @Sharvani2002 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/3989 * feat: Expose non-io_buf API for fb_parser by @lokitoth in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4683 * feat: Support cleaning up spare examples correctly in read_span_flatbuffer() by @lokitoth in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4684 ### Fixes * fix: stash and restore prediction when calling learn during learn_returns_prediction==false calls by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4632 * fix: update to reflect the fact that coin's learn does not return a prediction by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4621 * fix!: no binary stuff in boosting by @ataymano in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4611 * fix: Skip of newline for single-examples by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4636 * fix: sparse weights iterator end->end by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4647 * fix: Fixing model version check for Active reduction by @peterychang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4655 * fix: Gtest fix by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4657 * fix: prevent feature corruption in LRU cache by @mrucker in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4650 * fix: ParseInsitu is not compatable with rlclientlib C# bindings by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4668 * fix: fix #4669 by handling empty decision scores elements by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4670 * fix: Search bug fixes by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4673 * fix: set mac CI to version 13 by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4691 * fix: VW Slim by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4674 * fix: string-view-lite: Include `
- C++
Published by bassmang over 1 year ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.9.0
This release includes several new reductions including contextual bandits with graph feedback as well as a completely new interaction grounded learning reduction. There are also WASM bindings available for Vowpal Wabbit now.
Contextual Bandits with Graph Feedback
Contextual Bandits (CB) with graph feedback can be used for scenarios where some actions, when taken, reveal information other actions (not taken), or maybe don't reveal any information at all. If there exists prior knowledge of this relationship between actions then that knowledge can be used to make exploration and learning more efficient.
See here for more details.
Contextual Bandits with interaction grounded learning
Interaction grounded learning (IGL) can be used for the scenario where user doesn't have a reward function. It will automatically learn a personalized reward function from user's feedback and optimize directly for the latent user satisfaction
See here for more details
Vowpal Wabbit package in npm
Now that WASM bindings are available, Vowpal Wabbit can be used in JavaScript and TypeScript applications via the npm package. For more details, see here
Click here to see all changes in this release
## What's Changed * test: [automl] improve runtest and test changes by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4531 * fix: fix multiline typo by @swaptr in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4533 * refactor: separate cb_to_cs_adf_mtr and cb_to_cs_adf_dr by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4532 * feat: add a training loss calculation to the predict method of PLT reduction by @mwydmuch in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4534 * refactor: [workspace] split 'all' into multiple structs. split config and runtime vars. by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4493 * fix: [parser] Fix potential crash on unjoined parser thread by @peterychang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4537 * chore: remove 404 link by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4547 * feat: system for compile feature flags by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4544 * refactor: migrate csv to feature by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4550 * feat: IGL reduction by @cheng-tan in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4295 * refactor: move to flatbuffers feature by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4553 * feat: print features in version by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4549 * build: make lda optional with compile feature by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4555 * fix: deprecated github actions by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4559 * feat: IGL save resume by @cheng-tan in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4554 * refactor: migrate las simd to compile feature by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4558 * build: add search compile feature by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4561 * feat(CB_GF): correct update rule and simulation unit test by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4565 * feat(CB_GF): turn on graph feedback in generated python wheels by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4566 * feat(CB_GF): accept graph in json format by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4568 * refactor: make allow_override for vector option a compile error instead of runtime error by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4569 * fix: benchmark ci by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4572 * feat: Networking compile time flag by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4571 * feat: initial WASM support by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4562 * feat: WASM initial CB model API by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4574 * fix: [epsilon_decay] dont use exploration for challenger p_pred by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4576 * feat: WASM VW JS wrapper file/classes by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4575 * feat: WASM logging examples to file by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4578 * fix: pydoc ci by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4577 * feat: WASM sample pmf and predict_and_sample by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4579 * feat: IGL predict only model by @cheng-tan in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4573 * docs: WASM add jsdoc comments to vw.js by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4580 * refactor: WASM separate logging class by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4582 * feat: Build vw-wasm for browser plugin by @cheng-tan in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4583 * feat: Add emt_initial flag to the EMT reduction by @mrucker in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4556 * test: turn on tests for rlos2023 by @ataymano in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4586 * test: python ci on rlos PR by @ataymano in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4588 * feat: option for user to pass in an array and receive and array durin… by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4584 * fix: [epsilon_decay] deterministic p_pred bug by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4590 * docs: add readme with examples and API docs by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4592 * feat: WASM packaging by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4593 * feat: WASM typescript instead of javascript for vw wrapper by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4594 * fix: WASM package scoping and cleanup error class check by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4596 * fix: WASM versioned docs and 0.0.4 release by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4598 * fix(CB_GF): correct constraints, huge cleanup, and clip and normalize probabilities by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4581 * feat: WASM both node and es6 and version bump to 0.0.5 by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4601 * fix: WASM npm install and test before publish and version bump 0.0.6 by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4602 * build: enable warnings for non exhaustive switches by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4570 * refactor: [eps_decay] Remove unused estimator include by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4604 * feat: expose explore eval stats to python interface by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4451 * fix: vcpkg for windows ci by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4608 * fix: [epsilon_decay] save_load weight indices by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4606 * feat: flag to save and load per model state by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4605 * fix: Add error message when passing unsigned integers to tovw by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4610 * perf: only format model values if writing text model by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4613 * feat: add dense example creation func to wasm by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4615 * fix: changing ftrl defaults by @ataymano in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4607 * fix: hide graph feedback tests behind flag by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4617 * chore: update version to 9.9.0 by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4625New Contributors
- @swaptr made their first contribution in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4533
Full Changelog: https://github.com/VowpalWabbit/vowpal_wabbit/compare/9.8.0...9.9.0
- C++
Published by jackgerrits over 2 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.8.0
General Notes
Upgrades to benchmarking, naming conventions, and minor bug fixes.
Click here to see all changes in this release
## What's Changed ### Features * feat: Switch to scalar code for unimplemented interactions in las simd code path. by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4487 * feat: support tags for options by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4507 * feat: [gd] persist ppw extra state by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4023 * feat: [LAS] add example ft hash and cache and re-use rows of matrix if actions do not change by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4509 * feat: [LAS] with CCB by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4520 ### Fixes * fix: move explore_eval above epsilon_decay by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4501 * fix: [epsilon_decay] output prob ACTION_PROBS, skip: 449 by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4502 * fix: skip compat tests by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4503 * fix: Fix model merging not reweighting input by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4508 * fix: [epsdecay] return champ prediction always by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4518 * fix: cbzo ppw fix by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4519 * fix: multi-model state for cb_adf by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4513 * fix: [automl] avoid ccb pulling in generate_interactions by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4524 ### Other Changes * refactor: split out 400+ valgrind tests by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4482 * build: Don't add SSE flags when cross compiling to MacOS universal2 binary by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4489 * refactor: Migrate raw function pointers to std::function by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4461 * refactor: [all] remove cost_sensitive from workspace by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4490 * refactor: [sd] move prog val config to sd by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4491 * chore: update submodules by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4492 * ci: [epsilon_decay] benchmarks by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4494 * refactor: register additional metrics at start not at finish by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4499 * chore: force eigen submodule path to output a message if submodule mi… by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4504 * refactor: allow any pointer in object_pool by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4473 * chore: [LAS] don't force mtr with LAS by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4516 * test: fix pytype issue in test runner and utl by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4517 * refactor: make flat_example an implementation detail of ksvm by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4505 * refactor: automatically set label parser after stack created by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4471 * refactor: add api to set data object associated with learner by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4523 * refactor: dedup dict const by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4525 * refactor: rename wpp, ppw, ws, params_per_problem, problem_multiplier, num_learners, increment -> feature_width by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4521 * refactor: remove resize in gd setup by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4526 * chore: Update Version to 9.8.0 by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4529 **Full Changelog**: https://github.com/VowpalWabbit/vowpal_wabbit/compare/9.7.0...9.8.0
- C++
Published by bassmang almost 3 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.7.0
Eigen Memory Tree
An Eigen Memory Tree (EMT) is a memory based learning reduction. EMTs will remember previous training examples and use this memory to assign labels to future requested predictions. For more information, see the EMT wiki page
Robust confidence sequence estimator
https://github.com/VowpalWabbit/vowpal_wabbit/pull/4297
Cubic config oracle in automl
We are now able to search over cubic interactions on top of quadratic interactions in automl . Automl
Vector CPU instructions
Vector CPU instructions for faster computation in the CB with Large Action Space reduction. LAS
Predict only models
Ability to save predict only models from some reductions (automl, epsilon-decay). this removes the reductions from the reduction stack and allows older versions of VW to predict.
Enforce minimum probability for SquareCB
Support for probabilities for PLT
Added support for probabilities output for the PLT reduction + fix it in version 9+.
Target rate added to explore eval
The goal of explore eval is to evaluate different exploration algorithms using the data from a logged policy. Explore Eval
VW refactors
- Improved finish_example in all reductions
- Parsers for different formats moved into their own libraries
- Namespacing of library fixed - all things under VW
Click here to see all changes in this release
## What's Changed ### Features * feat: explore eval example target rate by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4277 * feat: [gd] invert_hash readeable model with hexfloat by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/3999 * feat: explore eval target rate by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4285 * feat: Add explicit simd implementation for one pass svd in large action spaces. by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4261 * feat: Add avx2 implementation for one pass svd in large action spaces. by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4281 * feat: Handle ignore_linear in las simd and throw on unsupported interactions. by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4282 * feat: spin off automl predict_only_model to standard cb model by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4279 * feat: add mix with uniform impl by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4301 * feat: Enforce minimum probability for squarecb and update impl by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4298 * feat: add unique_ptr support to model_utils by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4341 * feat: use strong type for no pred by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4343 * feat: use strong type for no label by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4342 * feat: Adding EMT reduction. by @mrucker in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4264 * feat: [automl] trace to csv files by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4355 * feat: robust confidence sequence estimator by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4297 * feat: [automl] config oracle cubic on top of quadratic by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4351 * feat: update for probabilistic label tree reduction (#2766) - support for --probabilities option and fixed compatibility with VW 9+ version by @mwydmuch in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4138 * feat: constexpr uniform_hash and type fixes by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4415 * feat: Enable learner type checks at build. by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4411 * feat: stabilize unique_ptr based initialize function by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4438 * feat: Added new CCB predict benchmark by @rajan-chari in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4421 * feat: [CB_GF] CB with graph feedback text input by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4392 * feat: [epsilon_decay] predict_only_model by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4458 ### Fixes * fix!: resolve csoaa_ldf prediction return correctness by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4395 * fix!: [LAS] las + squarecb to re-use squarecb gamma by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4479 * fix!: [py] use full word for namespace and add test by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4485 * fix: [Explore_eval] fix threshold for adaptive multiplier by @marco-rossi29 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4168 * fix: Add pragma once to merge.h by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4284 * fix: [epsilon_decay] process models in descending order when shifting by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4286 * fix: [CI] check for missing args consistently in forwards/backwards compat by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4289 * fix: [CI] backwards compat don't fail if model file is missing by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4291 * fix: silence unused warning when las simd not enabled by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4299 * fix: Build las simd on x86 only and rename command line flag. by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4300 * fix: [automl] update champ score when it matches labelled_action by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4326 * fix: fix get_features function returning dangling pointer by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4328 * fix: [automl] config oracle edge cases by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4327 * fix: remove type numpy aliases as they are now removed upstream by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4363 * fix: fix loop binding to temporary by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4379 * fix: [automl] update print logic for new oracle by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4384 * fix: exception safety in learner builder by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4429 * fix: remove cerr from cs_robust by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4441 * fix: [automl/epsilon_decay] brentq optimization by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4449 * fix: pydocs formatting by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4464 * fix: invert_hash for coin/ftrl by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4465 * fix: Account for | in make_valid_name() by @darwinyip in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4468 * fix: [LAS] LAS not a cb adf common reduction, fixes metrics with LAS bug by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4476 * fix: [automl] allow multiple models underneath automl by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4463 * fix: include t, min and max label in model merging by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4483 ### Other Changes * ci: use shared caches for vcpkg job by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4270 * build: add missing include by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4275 * refactor: use model utils instead of macro in recall tree by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4248 * refactor: [automl] remove lb_trick by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4283 * docs: Update off_policy_evaluation.md by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4280 * ci: compatibility CI checks to not fail on newly added arguments by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4287 * test: remove flaky test (win) by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4290 * build: Use nix to manage dev tooling starting with clang-tidy by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4292 * build: remove regex from clang-tidy-diff command as it wasnt working by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4294 * chore: use clang-format-14 for formatting by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4302 * build: consume string-view-lite as a sys dep for vcpkg by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4303 * refactor: implement scaffold for finish_example split and POC migrations by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4296 * refactor: move csv parser into csv namespace by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4304 * refactor: split apart output and progressive log by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4308 * refactor: move accumulate funcs into details namespace by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4305 * refactor: migrate mwt finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4311 * build: reduce header dependencies in important headers by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4306 * refactor: split cache parser into separate lib by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4309 * refactor: fix conversion warnings in v_array and removed deprecated usages by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4310 * refactor: allow reduction to control print frequency by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4315 * ci: Python sdist/docs - use 3.10 as that is now the default on 22.04 by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4317 * docs: dont execute epsilon decay notebook by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4318 * ci: used shared cache for asan builds by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4313 * chore: Move cats paper code to demo directory. by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4320 * refactor: migrate nn finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4314 * chore: don't try to format vcpkg_installed files by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4323 * refactor: [automl] small clean-up by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4325 * refactor: migate OAA finish func by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4316 * refactor: migrate stagewise_poly finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4322 * perf: arm64 performance optimizations by @rami-lv in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4288 * refactor: deprecate alloc/dealloc example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4329 * refactor: deduplicate random_seed state by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4331 * refactor: remove unused field in parser by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4332 * refactor: move some fields out of workspace by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4333 * refactor: small namespace cleanup by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4334 * refactor: move shared_data into VW namespace by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4338 * refactor: cleanup unique_sort.h by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4336 * refactor: remove unused stable_unique by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4337 * refactor: mark WRITEIT and WRITEITVAR as deprecated by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4335 * refactor: migrate finish and sender no longer holds on to examples by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4321 * refactor: Migrate plt finish_example. by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4339 * refactor: Migrate multilabel_oaa finish_example. by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4340 * refactor: migrate topk finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4324 * refactor: namespacing in parser.h by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4345 * refactor: remove scoped_calloc_or_throw in favor of make_unique by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4346 * refactor: Migrate oja newton finish and modernize memory management by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4350 * refactor: fix namespacing of feature_group.h header by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4352 * refactor: remove finish example for count_label by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4349 * refactor: migrate confidence finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4348 * refactor: migrate cbzo finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4347 * refactor: use unique_ptr for parser, fix new/free mismatch by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4357 * refactor: v_array resize_but_with_stl_behavior -> resize rename by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4361 * refactor: cb_explore finish function by @peterychang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4360 * chore: clarify daemon support on MacOS by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4367 * chore: add active_interactor deprecation notice by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4359 * refactor: move text parser into its own lib by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4356 * refactor: deprecate some legacy functions by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4369 * refactor: update baseline_cb_test usage of initialize to scoped by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4370 * refactor: move label operations to members for findability by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4374 * refactor: migrate bs finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4366 * test: migrate some tests from boost to gtest by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4376 * refactor: migrate cats_pdf, cats finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4372 * refactor: migrate audit_regressor finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4358 * refactor: migrate boosting finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4362 * test: move more tests and add matcher impl by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4380 * refactor: move confidence_seq code to impl by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4373 * refactor: Migrate cb_explore_adf reductions finish functions by @peterychang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4330 * test: move more tests to gtest from boost by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4383 * chore: remove some LAS tests that are not needed by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4386 * refactor: move json parser into its own lib by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4381 * refactor: reduce global namespace pollution by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4385 * test: move more tests from boost to gtest by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4387 * refactor: rename read_line_json_s -> read_line_json by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4388 * ci: csharp benchmarks to run on master by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4389 * build: automate test main.cc file generation by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4390 * refactor: [automl/epsilon_decay] integrate robust confidence sequences by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4377 * refactor: migrate cb_adf finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4397 * build: rely on gtest_main target instead of custom by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4396 * refactor: migrate cs_active finish function by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4394 * refactor: cb_to_cb_adf finish function by @peterychang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4398 * test: move last of tests to gtest, remove all boost test infra by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4399 * refactor: fix namespacing of parse_primitives.h by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4405 * refactor: fix namespacing of io_buf.h by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4403 * refactor: fix namespacing of parameters by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4404 * refactor: move vw.h functions to be defined in vw.cc by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4410 * refactor: Add metrics collector by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4407 * refactor: standardize googletest naming by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4408 * refactor: migrate log_multi finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4414 * refactor: migrate memory_tree finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4412 * test: minor testing fixes by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4417 * refactor: migrate automl finish_example by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4419 * refactor: migrate search finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4400 * refactor: migrate recall_tree finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4402 * docs: reproducible doxygen docs using nix by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4425 * refactor: remove learner print_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4423 * refactor: cb_algs finish functions by @peterychang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4409 * refactor: migrate ect finish_example by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4424 * refactor: cleanup cb.h header by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4427 * refactor: remove learn and label references from ect predict by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4426 * refactor: cleanup more global namespace pollution by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4428 * docs: Fixed typo from steep cost function to step cost function by @bkowshik in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4393 * revert: previous wrong correction in docs by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4433 * refactor: cleanup CB related namespaces by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4431 * refactor: deprecate is_from_pool by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4432 * ci: output valgrind logs on unit test failure by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4430 * test: add tests for uniform_hash by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4436 * refactor: migrate exploration namespace to VW::explore by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4435 * docs: minor tutorial cleanups by @ataymano in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4437 * refactor: migrate INTERACTIONS namespace by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4434 * refactor: unify locked and unlocked pools in one impl by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4439 * refactor: migrate cbify finish example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4440 * refactor: migrate MULTILABEL namespace by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4443 * refactor: migrate GD namespace by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4442 * refactor: migrate explore_eval finish function by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4448 * refactor: migrate warm_cb finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4447 * build: dont expose eigen in public headers by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4445 * refactor: rename finalize_driver to finish by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4450 * refactor: migrate csoaa finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4446 * refactor: consolidate random into common by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4453 * refactor: migrate lda finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4413 * refactor: migrate csoaa_ldf finish_example by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4452 * refactor: remove internal usage functions from workspace api by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4456 * build: do not override externally set VW_CXX_STANDARD by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4455 * refactor: migrate to new initialize function by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4444 * build: enable consumption of system sse2neon by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4457 * test: add test for interactive active workload by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4454 * refactor: refactor finish_example for active by @rajan-chari in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4353 * docs: Fix typo in "Contextual Bandit Content Personalization" tutorial by @toldervoll in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4466 * refactor: brentq optimizations by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4462 * refactor: estimator dir by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4470 * refactor: [automl/epsilon decay] bisection method by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4469 * refactor: estimators ns in cressieread by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4472 * refactor: [automl] add tol_x and opt_func flags by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4475 * refactor: python lint (new black version) by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4480 * refactor: make workspace const in add_constant_feature by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4481 * refactor: implement delta add/subtract by actually adding and subtracting weights by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4486 ## New Contributors * @rami-lv made their first contribution in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4288 * @bkowshik made their first contribution in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4393 * @toldervoll made their first contribution in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4466 * @darwinyip made their first contribution in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4468 **Full Changelog**: https://github.com/VowpalWabbit/vowpal_wabbit/compare/9.6.0...9.7.0
- C++
Published by rajan-chari about 3 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.6.0
Large Action Spaces
This introduces the Large Actions Spaces (LAS) feature. LAS is an algorithm that lets exploration happen efficiently when there are a large number of actions in a contextual bandit dataset. The main idea behind it is to eliminate actions that are similar and explore only over the most diverse actions in the dataset. For more information, see the LAS wiki page.
Style Changes
This release introduces additional style changes to make VW code formatting more consistent. Variable and type names are snake_case, constants and macros are UPPERCASE, and the VW::details namespace is used to hide implementation details.
Faster Compile Times
Through @jackgerrits's changes to some header files, VW now builds much faster! On one machine, compile times went from around 30 seconds to 17.
Click here to see all changes in this release
## What's Changed * build: remove FORCE_COLORED_OUTPUT by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4213 * style: fix some more style issues by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4211 * feat: implement serialization and deserialization for model deltas by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4222 * chore: update boost_math, fmt, vcpkg, zlib by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4223 * style: another round of style updates by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4224 * style: update style and namespacing for constants by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4226 * fix: [LAS] don't use shared features during SVD calculation by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4225 * fix: [LAS] ensure vw prediction makes it to exploration by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4227 * fix: VW should not add anything to namespace std by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4230 * style: update style of label_type_t by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4229 * test: [epsilon decay] find champ change in simulator by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4228 * refactor: reduce build time by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4232 * feat: [LAS] filter out (potentially) more actions than d based on singular values by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4234 * build: do not add sse flags when doing MacOS arm cross build by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4235 * style: update label type to all caps by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4236 * style: update prediction type to all caps by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4237 * build: allow VW_CXX_STANDARD to be provided by consumer of VW by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4238 * refactor: remove beam.h by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4241 * style: more style fixes by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4240 * style: another round of style updates by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4242 * feat: [LAS] sparse Rademacher by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4243 * chore: [LAS] remove unused implementations and set max actions default by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4247 * refactor: move LabelDict namespace items into other namespaces, add const by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4245 * fix: don't run tests with iterations (and a simulator) with valgrind … by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4251 * chore: [LAS] remove compile time flag and its own custom CI by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4249 * fix: don't run tests with iterations with asan and ubsan by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4253 * fix: [LAS] block size should never be zero by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4252 * fix: [LAS] always return full predictions by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4255 * refactor: use model_utils for save_load in las by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4263 * refactor: remove unused field in sparse_iterator by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4259 * test: add make_args for easier workspace creation in tests by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4267 * ci: change caching for benchmark job by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4269 * build: resolve cmake version check TODO in DetectCXXStandard.cmake by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4268 * fix!: save/load entire tag in flat_example + bump version to 9.6 by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4266 * test: apply make_args across test projects by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4272 * fix: This patches a bug with flat_example collision cleanup by @mrucker in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4265 * fix: explore_eval don't learn if logged action not in predicted actions by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4262 * fix: [LAS] full predictions regardless of learn/predict path by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4273Full Changelog: https://github.com/VowpalWabbit/vowpal_wabbit/compare/9.5.0...9.6.0
- C++
Published by byronxu99 over 3 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.5.0
Style Changes
This release includes some improvements to the style and naming conventions in VW. This includes using snake_case for all variable and class names, and converting most structs to classes. These style changes will be standardized and enforced in later releases.
Confidence Sequence Estimator
Confidence sequences have become the default estimators when evaluating policies in multi-model reductions such as AutoML and Epsilon Decay.
Click here to see all changes in this release
## Changes ### Features * feat: integrate confidence sequences in automl and epsilon_decay by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4125 * feat: add experimental to python by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4165 * feat: Improve large actions multithreading. by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4158 * feat: [epsilon decay] add initial epsilon option by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4170 * feat: Model merging with delta objects by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4177 * feat: Add ftrl to dump_weights_to_json and compat CIs by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4193 ### Fixes * fix: build issue for model merger tool by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4160 * fix: remove experimental and fix up model version test by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4162 * fix: test 67 windows failure by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4167 * fix: one_of for loss_option by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4178 * fix: Fix test 67 by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4194 * fix: small build fixes for LAS on MacOS by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4202 * fix: LAS unit test bug by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4210 * fix: quake_inv_sqrt func for aarch64 test failure by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4217 * fix: only remove ksvm dump_weights by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4195 * fix: Add native runtime dependencies to nuspec by @lokitoth in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4216 ### Other Changes * chore: [LAS] code cleanup by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4153 * ci: Upgrade Ubuntu version used in CI pipelines by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4161 * ci: check current VW wheel against most recent models by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4169 * ci: Enable test 67 with ASan by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4176 * refactor: Use github-action-benchmark for running benchmarks by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4152 * docs: Update readme for benchmarks by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4181 * ci: check model weights for gd-based tests for forward and backward compat by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4172 * style: resolve style issues in allreduce project by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4187 * refactor: cleanup includes by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4188 * refactor: split sparse and dense parameters by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4190 * refactor: move open_socket into details namespace by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4189 * refactor: use operators for inequality instead of custom compare functions by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4192 * refactor: remove unused type in allreduce by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4191 * ci: settle on consistent style and add warnings for violation by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4183 * style: fix style issues in config by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4198 * style: don't warn on short variable names, add static constant rule by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4196 * style: move action scores into VW namespace by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4199 * style: update allreduce to snake_case by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4197 * refactor: replace classes with structs for consistency by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4205 * refactor: move ccb items into VW namespace by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4204 * style: rename label_data to VW::simple_label by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4200 * ci: Fix randomly failing .NET benchmarks by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4209 * refactor: move several labels into VW namespace, style updates by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4206 * style: apply more style fixes per clang-tidy by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4208 * docs: only document public includes with doxygen by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4212 * refactor: update structs to classes with public by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4215 * style: style fixes in io project by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4201 * refactor: No RapidJSON in header files by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4219 * refactor: remove empty public: by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4220 * chore: Update Version to 9.5.0 by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4221 **Full Changelog**: https://github.com/VowpalWabbit/vowpal_wabbit/compare/9.4.0...9.5.0
- C++
Published by bassmang over 3 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.4.0
We tagged 9.4.0 a few weeks ago but a few delays caused the rest of the release to only be completed now. The contents of these release notes and all associated artifacts correspond to the 9.4.0 tag on September 15.
DotNet Core
DotNet core support is here! It works if you manually import dependencies, but it will become automatic in the upcoming 9.4.1.
Native CSV Parser
As part of RLOS Fest this year @HollowMan6 implemented Native CSV parsing support. It is currently disabled by default but is available using a CMake option (VW_BUILD_CSV). This feature makes it possible to download CSV datasets and process them without any extra steps. @HollowMan6 also created a tutorial to explain how to use the feature on the well known iris dataset. Thanks for all of your hard work!
Click here to see all changes in this release
## Changes ### Features * feat: native CSV parsing by @HollowMan6 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4073 * feat: [las] spanner rank one determinant update implementation by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4090 * feat: confidence sequences estimator by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4120 * feat: .NET Core Support by @lokitoth in https://github.com/VowpalWabbit/vowpal_wabbit/pull/3969 * feat: Semantic Versioning by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4134 * feat: ptr queue to generic queue by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4140 * feat: simple thread pool by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4137 * feat: [LAS] use thread pool in LAS one_pass implementation by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4141 * feat: Performance benchmarks for .NET C# bindings by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4133 ### Fixes * fix: [automl] multiple fixes by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4089 * fix: [las] unit-test-fails to link by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4118 * fix: dump_options typo by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4119 * fix: [automl] call process_example before predict by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4122 * fix: [automl] generate challengers on first example by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4123 * fix(csv): default label regardless of if label column present by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4127 * fix: Fix minor typos in large action space benchmarks by @zwd-ms in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4128 * fix: add one_of to csoaa_ldf by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4130 * fix: Only create launch_vs target if it does not already exist by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4135 ### Other changes * refactor: [automl] split config oracle out by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4107 * refactor: [automl] move files to details dir by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4108 * refactor: [automl] small refactors by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4109 * refactor: clear labels before reading from cache by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4113 * refactor: [automl] template for oracle by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4111 * chore: [las] separate spanners and remove aatop SVD impl by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4116 * test: [automl] add unit tests for oracle & refactor by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4115 * refactor: [automl] remove estimator dependency from oracle by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4117 * refactor: [automl] prepare aml_estimator for other estimator impl by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4114 * test: add csv parser to throughput measurement tool by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4110 * ci: check all runtests models for forwards model compatibility by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4126 * ci: clang-tidy only errors by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4129 * ci: Build and test with AddressSanitizer by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4103 * refactor: [automl] iterator based config generators by @lalo in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4121 * perf: [LAS] speedup by removing branch from hot path by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4136 * test: Resolve gtest loading issues on Windows by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4131 * docs: pin theme to 0.9.0 to resolve missing TOC by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4139 * ci: Fix pytype error by @byronxu99 in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4142 * build: fix windows.h GetObject issue by @jackgerrits in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4143 * refactor: [automl] allow_override for selected options by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4144 * test: [LAS ] add spanner tests and test file separation by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4146 * test: [LAS] calculate num of non-degenerate singular values by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4147 * docs: [LAS] add some comments in the code explaining one-pass SVD by @olgavrou in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4148 * refactor: one_of for wap_ldf and cbzo, clean rank options by @bassmang in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4145 * chore: Update Version to 9.4.0 by @lokitoth in https://github.com/VowpalWabbit/vowpal_wabbit/pull/4151 **Full Changelog**: https://github.com/VowpalWabbit/vowpal_wabbit/compare/9.3.0...9.4.0
- C++
Published by jackgerrits over 3 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.3.0
This release includes a new experimental feature to merge VW models and bug fixes.
Click here to read the full release notes.
- C++
Published by jackgerrits over 3 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.2.0
This release includes a large refactoring of the library structure, support for learn and predict directly from a string in Java, access to model weights in Python, and many more small features and bug fixes.
Click here to read the full release notes.
- C++
Published by bassmang over 3 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.1.0
This release includes a new way to output readable weights, removal of the Boost Program Options dependency, a new loss function and plenty of bug fixes.
Click here to read the full release notes.
- C++
Published by jackgerrits almost 4 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.0.1
This patch releases resolves a build issue when VW is built against fmtlib version 8 or newer as well as a few bugs.
- fix: use different syntax for opening namespace for custom formatters
- build: use correct platform suffix for Python native shared library
- fix: dftovw address post PR feedback
- ci: run twine check in ci
- fix: Remove content from image directives in README.rst
- build: fixing run_tests.py with custom paths
- fix: add longdescriptioncontent_type
- fix: fix compile issues when consuming fmt 8.1.1
- C++
Published by jackgerrits about 4 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 9.0.0
Vowpal Wabbit 9 is the first major release in over 6 years! There are a number of usability improvements, new reductions, bug fixes and internal improvements here. The Python package has undergone a bit of a modernization with a more understandable module structure, naming and types. Most changes should be non breaking for standard use cases. See here for the Python migration guide.
Click here to read the full release notes.
- C++
Published by jackgerrits about 4 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.11.0
This release includes python API improvements, --cubic ::: and --interactions [:]* speedup, deprecations, logging line limiting, bug fixes and more
Click here to read the full release notes.
- C++
Published by olgavrou over 4 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.10.2
This patch release contains a fix for model loading in --cb_explore
Fixes
- fix: Fix model corruption on reading model for --cb_explore (#3063)
- C++
Published by jackgerrits over 4 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.10.1
This release includes no code changes but fixes the Python source distribution, and adds support for Python 3.9 binary wheels on MacOS and Windows.
Since this only affects Python, only the PyPi release channel will be updated.
All changes: - ci: run CI on release branches (#2942) - ci: update brew to mitigate bintray brownout (#2941) - chore: update version to 8.10.1 - build: add 3.9 to windows python build (#2939) - Fix python manifest for extlibs (#2938) - build: Update buildpythonwheelsmacos.yml (#2937)
- C++
Published by jackgerrits almost 5 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.10.0
This release includes quadratic interaction speed improvements, ARM support, logging updates and more.
Click here to read the full release notes.
- C++
Published by jackgerrits almost 5 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.9.2
This patch release contains a fix for Neural Network reduction (--nn).
Fixes
- [nn] fix double free (#2802)
- C++
Published by lalo almost 5 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.9.1
This patch release contains a fix for the Java bindings. It changes no other code paths apart from the version number changing.
Fixes
- Don't export lib symbols from vw_jni binary when static linking (#2789)
- C++
Published by jackgerrits about 5 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.9.0
This release includes major features such as continuous actions, square CB, probabilistic label tree, slates, CB distributionally robust optimization, CB ADF RND, Python wheels and many bug fixes.
Click here to read the full release notes.
- C++
Published by jackgerrits over 5 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.8.1
This patch release fixes an issue in the Python bindings where parsing examples from text sometimes caused crashes.
Fixes:
- Fix delete behavior for examples created using parse function (#2206)
- C++
Published by jackgerrits almost 6 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.8.0
- There has significant work in streamlining and improving support for the Python bindings. Thanks @peterychang! (#1928)
- The Conditional Contextual Bandit reduction got merged in, this reduction allows you to express problems where there are multiple slots to fill. See here for the wiki page. (#1816) (#1995) (#2078) (#2141)
- CMake install targets have been added to the build files (#2172) (#2135)
- Now you can find and link VW easily in other projects:
CMake find_package(VowpalWabbit REQUIRED) add_executable(my_exe main.cpp) target_link_libraries(my_exe PRIVATE VowpalWabbit::vw)
- Now you can find and link VW easily in other projects:
- Slim VW got merged into master. This is an experimental lightweight inference runtime that supports a subset of VW features. (#2028)
- Bug fixes! (see all changes below)
Internal improvements
We are at work overhauling and modernizing VW, some of the relevant changes on that front are below:
- Migrate c arrays to std::array (#2094)
- Make hashing constexpr in C++14 and unify rotl impl (#2093)
- Make isexampleheader const (#2095)
- Allow constructor arugments for callocorthrow (#2070)
- Learner now holds type erased reduction data (#2060)
- Use numeric_limits (#2107)
- Unify throwing of exceptions to use vw_exception instead of bare std:exception (#2171)
- Cb explore adf atomization (#2069)
- Refactor cb_adf reduction (#2057)
- Move cb_sample to be class based (#2087)
- Atomize topk reduction (#2050)
- Atomize autolink reduction (#2047)
Other notable changes:
--versionnow includes commit id if available at build time (#1951)- Macos added as CI target (#1965)
- Allow escaped command lines (#2157)
- Update MSVC Toolchain to v14.1 (#1988)
- Multiinstance mode for multiline examples (#1934)
All Changes
Click to expand all changes in 8.8.0
- Fix warning (#2179) - Add/exclude new folders in the python MANIFEST (#2180) - fix some warnings (#2177) - Fixes for Learning2Search Subsystem (#2176) - Install rapidjson too (#2174) - Use standard save/load functionality for sklearn Python lib (#2142) - Default the label for CCB when reading cached labels (#2158) - Allow escaped command lines (#2157) - Fix header install locations (#2172) - Unify throwing of exceptions to use vw_exception instead of bare std::exception (#2171) - Disallow combining no_sample and cb_sample (#2148) - Fix memory leak in search.cc (#2167) - Fix unlabeled sgd examples (#2162) - Add deleter for parsed examples (#2153) - Fix misinterpreted negative option (#2149) - Catalina segfault mitigation (#2152) - Implement CCB type binding for Python (#2141) - Update test dependencies (#2147) - Fix typo: setup.py is not in vowpal_wabbit/python (#2143) - Throw instead of silently append nullptr when types don't match (#2139) - Fix variadic macro warning (#2138) - Create testing harness for cluster operation of VW and add test (#2134) - Improve VW support for CMake install process (#2135) - Properly support default build type, fix comment, define project version (#2133) - Update cluster readme to markdown, cleanup, format code (#2131) - Fix slim build and various CMake fixes (#2130) - Update CMakeLists.txt (#2127) - fixed docker image version (#2126) - Fix segfault when ring_size argument is not supplied (#2125) - Python: fix deprecated joblib (#2068) - forgot to set a parameter (#2114) - Add option to turn off sampling for CCB (#2096) - Remove redunant copy from CCB reduction (#2112) - Fix segfault in CCB - MTR must clean up predictions allocated for cost sensitive examples (#2111) - Softmaxpredfile (#2113) - Update vw_types.natvis (#2109) - Use numeric_limits (#2107) - Refactor cb_adf reduction (#2057) - Fix an LGTM warning in recommend (#2105) - Update CMakeSettings.json (#2104) - Remove all usages of "using namespace std" (#2071) - Fix lots of warnings and clang-tidy suggestions (#2085) - Make hashing constexpr in C++14 and unify rotl impl (#2093) - Migrate c arrays to std::array (#2094) - Cb explore adf initialize vars (#2102) - "-q" as default nc delay option (#2098) - Move cb_sample to be class based (#2087) - Cb explore adf atomization (#2069) - Fix OSX builds when not using Anaconda. (#2097) - Mac Os X CI tests fixes (#2035) - Make is_example_header const (#2095) - Enable use of newer standards (#2092) - mitigate clang-cl SIMD issue (#2091) - Java Binding Improvements (#2081) - fix: softmax can overflow (#2088) - Fix type issues and windows version in cmake file (#2084) - Atomize topk reduction (#2050) - Update badges in Python readme (#2086) - pdrop support for cb/ccb dsjson (#2078) - Add CMake option to force color codes (#2082) - Atomize autolink reduction (#2047) - Add forwarding header for commonly used objects in reductions headers (#2080) - Fix initilizer (#2073) - Force OSX to build .so files for python (#2061) - Allow constructor arugments for calloc_or_throw (#2070) - Propagate cache reading failures (#2062) - Learner now holds type erased reduction data (#2060) - Remove unnecessary null checks (#2067) - Remove most usages of unsafe sprintf function (#2054) - Fix LGTM Java build issues (#2063) - Add unit tests to coverage report (#2053) - remove copy from closure, and do by reference (#2058) - Limit python install parallelisation to number of cpus (#2056) - Update noexcept specifier (#2048) - Fix memory leak in CCB prediction (#2065) - Constrain doxygen input dirs, remove graphs (#2055) - vw_slim into master (#2028) - DBG helper and new natvis (#2042) - Multiinstance mode for multiline examples (#1934) - Properly add CCB index feature with stride/offset (#2041) - Ataymano/memory leaks fixes (#2020) - Implement explicit included actions for CCB (#1995) - Add VW-JNI SNAPSHOT publishing to nightly build - Fix compile errors on centos (#2005) - Install all headers as fix for missing headers in installed library (#1994) - Add comment to to tovw to clarify usage (#1999) - Add comment to learner.h (#1997) - Update MSVC Toolchain to v14.1 (#1988) - Remove deprecated projects and old scripts (#1992) - fixed command line argument retrieval from parsed model (#1993) - Fix implicit fallthrough warning and unused variable warning in GCC (#1984) - Replace nanpattern and infpattern with std:: equivalents (#1983) - Migrate Travis to migrated Docker image + cleanup old files (#1982) - Add Azure pipeline for Linux CI (#1981) - Add constexpr and noexcept to some functions, cleanup unused functions (#1985) - vw-hyperopt. Passing additional command when training and validating (#1959) - Ensure vw object cannot be moved or copied (#1986) - Fix building GCOV with Clang (#1980) - Update RunTests to be able to find binaries in the build directory (#1979) - Test and unify usage of ec_is_example_header (#1970) - Remove thread_local_storage from ccb (#1976) - Remove hard requirement for git during Windows build (#1977) - Action scores print tag (#1971) - Fix some warnings (#1973) - Remove two makefiles that were missed in Cmake change (#1969) - cd_adf: Added importance weight probability clipping for cb_type mtr, ips, dr (#1952) - Fix file permissions for macos CI scripts (#1966) - Add macos pipeline (#1965) - Add LICENSE to the python source package (#1963) - Add source info to VW Nuget description, and update copyright years. (#1962) - Update new_version script (#1956) - Update python README to reflect new build proceedures (#1961) - Conditional Contextual Bandit (#1816) - Java Maven pom.xml.in update (#1954) - Add git commit to output of --version (#1951) - cover and regcb: data.counter++ only in learn examples (not predict) (#1950) - Spark/JNI multipass fixes and AllReduce quiet support (#1949) - cb_explore_adf: fixed bug when resetting cb_type + improvements (#1948) - vw-hyperopt (add support for passing namespaces) (#1941) - Tau first should count only learn examples (not predict) (#1944) - Python distributions (#1928) - Enable suppressing NuGet version tag for official builds (#1946) - Fix predict path for cb_explore_adf First (#1939) - CS simulator v3.0 (#1932) - cs/cli/vw_label.h: Avoid to throw for precision issues (#1933) - Remove hard-coded version in Windows CI package gen script. (#1936) - Fix clear labels the correct way (#1930)
- C++
Published by JohnLangford about 6 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.7.0
- The repo has moved to the VowpalWabbit organization
- The group of core maintainers has been growing with steady improvements
Changes
As always, lots of bug fixes.
Build System
The build system for VW has been overhauled to use CMake. This means, easier dependency resolution, faster build times and easier consumption as a dependency. The old automake + make systems have been replaced by this and eventually the .sln file will be replaced too. (#1624)
Reductions/Learning Algorithms
- Coin betting (#1903)
- Contextual Memory Tree (#1799)
- Warm start for cbify (#1534)
- Softmax learner for cbadf (#1839)
- cbify: --cbifyldf for multiline (csoaaldf input datasets (#1681))
Other Improvements
- The parser has moved to using std types for concurency and has a clearer data production model. You’ll slowly notice more RAII types in VW. (#1731) (#1777)
- A clang format file was added and the codebase reformatted. This is to keep things more consistent and easy to read. (#1701)
- The Python bindings can now use JSON as the input format, as long as the VW instance you’re using is configured to be parsing input as JSON (#1809)
- A new
--strict_parseoption was added to throw instead of warn for malformed examples (#1906) - Bare Java JNI Bindings optimized for Apache Spark (#1798)
- Add multiclass support for hyperopt utl (#1682)
All Changes
Click to expand all changes in 8.7.0
- Warm start for cbify [(#1534)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1534) - utl/vw-varinfo: work-around for issue/1547 [(#1548)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1548) - Gramhagen 1538 python make test [(#1550)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1550) - Fixed bug in CLI parsing of --csoaa_ldf multiline [(#1551)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1551) - ksvm lambda fix [(#1556)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1556) - Fixed bug causing to reset dump_interval to 1 when input model -i is provided [(#1558)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1558) - Extract stable_unique to own function for clarity [(#1559)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1559) - Improvements and small fixes to utl (vw-lda, csv2vw [(#1580)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1580) - When parsing dsjson, skip lines not starting with "{" [(#1593)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1593) - Clean windows build and unify output paths [(#1599)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1599) - Remove unused cs_testcommon project and directory [(#1606)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1606) - build instructions: program_options insufficient [(#1607)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1607) - Fixed _labelIndex out of bound error message [(#1609)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1609) - Update Readme with details on installing boost dependencies [(#1613)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1613) - Add caching to appveyor build [(#1616)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1616) - Use a prebuilt docker image for travis build [(#1620)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1620) - CMake build definitions [(#1624)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1624) - VS 2017 fixes [(#1628)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1628) - Further improve build cache by saving packages [(#1634)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1634) - Update Travis and Appveyor badges to reflect organization change [(#1642)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1642) - Fix cb explore adf segfault [(#1643)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1643) - Make VW setup projects buildable from the command-line [(#1646)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1646) - Use `nuget restore` instead of `nuget install` in Appveyor build [(#1659)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1659) - Remove unused boost packages from VW [(#1664)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1664) - Replace $(SolutionDir with $(ProjectDir [(#1666)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1666) - Use cerr for parser warnings [(#1670)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1670) - Export vw audit output to .tsv file [(#1677)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1677) - Enable selective CMake configuration, improve messaging [(#1678)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1678) - Fix crash when empty multi_ex is supplied for --cb_explore_adf [(#1679)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1679) - cbify: --cbify_ldf for multiline (csoaa_ldf input datasets [(#1681)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1681) - add multiclass support for hyperopt utl [(#1682)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1682) - bugfix: cb_adf is not including some examples in stats calculation [(#1686)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1686) - Move trace_message from arguments to vw object [(#1688)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1688) - Add bug report issue template [(#1693)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1693) - Fix some VW initialization memory leaks [(#1697)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1697) - Fix memory leak in cb_explore_adf [(#1698)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1698) - vw java 11 compatibility [(#1700)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1700) - Add clang-format [(#1701)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1701) - Fix best constant and best constant's loss calculation when using ksvm [(#1704)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1704) - Update assembly versions to match current version [(#1705)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1705) - `options_i` command line parsing refactor [(#1706)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1706) - Disable stdin processing for all but single instance CLI. Fixes 1300 [(#1708)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1708) - Use std::exp instead of exp free function [(#1709)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1709) - Fix unused params warnings plus incomplete struct init (done to default values. [(#1710)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1710) - Add check for hash_inv when creating json parser [(#1711)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1711) - Compile fixes [(#1713)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1713) - Change from strcmp to std::string operator== [(#1715)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1715) - Update Dockerfile for TravisCI, define pipeline, upgrade Java [(#1716)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1716) - Change to using a bool_switch for bool options [(#1717)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1717) - Ataymano/mac options types fix [(#1718)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1718) - Add clang-format 7.0.1 to CI image [(#1719)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1719) - Create Windows build scripts and update instructions [(#1721)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1721) - Make cbify reduction respect is_learn parameter [(#1722)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1722) - Add natvis file for v_array and substring [(#1723)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1723) - Remove -DSTATIC_LINK_VW from Ubuntu build instructions [(#1727)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1727) - Fix warnings in Windows MSVC x64 build [(#1730)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1730) - Move to std types for concurrency [(#1731)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1731) - Scripts for running tests and generating NuGet packages [(#1732)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1732) - Fix a small issue and cleanup usage of long long [(#1733)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1733) - Fix file enocding for .rc files [(#1734)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1734) - Fix build scripts forcing Debug builds. Add LTO mode and fix VW default visibility. [(#1735)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1735) - Update README.md [(#1737)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1737) - Update image used in travis [(#1738)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1738) - Fix model file parser for proper treatment of negative-valued options [(#1742)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1742) - shift clang-format to advise [(#1744)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1744) - [tests] Make repeat.py compatible with python 3. [(#1747)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1747) - Do not define BOOST_TEST_DYN_LINK when statically linking [(#1750)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1750) - Fix test 175 [(#1751)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1751) - Convert TopK reduction to be multiline example based [(#1752)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1752) - RunTests: use test label number instead of counter [(#1753)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1753) - Fix static linking [(#1758)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1758) - Small Json parser cleanup [(#1759)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1759) - Type erase json parser context for easier deletion [(#1760)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1760) - Migrate from v_array to std::vector in some places + other changes [(#1765)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1765) - On OSX, we need to catch boost::program_options::ambiguous_option directly. Probably due to different boost versions. [(#1776)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1776) - Parser now uses object and prod/cons queue and object pool for example parsing [(#1777)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1777) - Fix resetting of cb_type [(#1779)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1779) - Fix weighted average on cluster mode [(#1781)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1781) - Allow spanning_tree to be a static executable [(#1787)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1787) - [audit] Make sure --audit output is reproducible across systems. [(#1788)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1788) - Add example C# Simulator [(#1790)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1790) - Fix usage of char instead of unsigned char for namespace index [(#1791)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1791) - Fix to bug 1729: no bias regularization for BFGS not working [(#1794)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1794) - Bare Java JNI Bindings optimized for Apache Spark [(#1798)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1798) - Contextual Memory Tree [(#1799)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1799) - expand Boost_LIBRARIES for pkg-config libs [(#1801)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1801) - Use std::stable_sort when computing interactions. [(#1804)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1804) - [OSX] Improve support for static linking. [(#1807)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1807) - Enable JSON example parsing in Python bindings [(#1809)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1809) - Fix example constructor [(#1814)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1814) - [python] Fix packaging so it's possible to produce a wheels package on linux. [(#1815)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1815) - Update Python readme to reflect latest way to consume bindings from source [(#1817)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1817) - Fix L2S HookTask in c-library and Python bindings [(#1818)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1818) - Clear cb labels when returning to pool [(#1822)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1822) - Fix build scripts for python3 [(#1823)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1823) - Fix "average loss" bug in cb_explore.cc [(#1825)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1825) - Add gitter chat badge to readme [(#1826)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1826) - Fix README.Windows.md link [(#1827)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1827) - Consume RapidJson through submodule [(#1828)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1828) - fix bug 1784: return probabilities for actions in the correct order in python binding [(#1830)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1830) - Fix else statement [(#1832)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1832) - Fix NaN issue in box-muller tranform [(#1833)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1833) - Fix v142 toolchain [(#1834)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1834) - Implement finish_example, update scripts to match [(#1837)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1837) - cb_adf and cb_explore_adf: Setting --cb_type mtr as default [(#1838)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1838) - First attempt at softmax learner for cbadf [(#1839)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1839) - Fix conda_install.sh script [(#1843)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1843) - Fix counting issue with --holdout_after option [(#1844)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1844) - Run coveralls inside docker [(#1847)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1847) - Cmake build on Windows [(#1849)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1849) - Fix coveralls badge URL in README [(#1850)]https://github.com/VowpalWabbit/vowpal_wabbit/pull/1850) - Azure Pipeline for Windows CI [(#1853)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1853) - cleaning up broken python3 vcxproj files [(#1854)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1854) - BF: add cmake to installed dependencies in unstable singularity images [(#1857)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1857) - Ataymano/c wrapper fix2 [(#1859)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1859) - Fix Azure Pipeline build-break [(#1867)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1867) - Enable Version and Tag override for NuGet pack [(#1870)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1870) - Shared example merge reduction [(#1873)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1873) - Update gd_mf_weights.cc right namespace [(#1874)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1874) - Fixed warning message ips -> mtr [(#1875)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1875) - Fix dsjson parser regression and add smoke-test [(#1878)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1878) - do not output progressive validation loss for oaa with subsampling [(#1880)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1880) - Add python documentation generation [(#1884)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1884) - Update python documentation theme and index [(#1885)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1885) - Change references from SolutionDir to ProjectDir [(#1886)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1886) - Clean up some options warnings and remove some extra copies [(#1888)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1888) - fix to make invert_hash work with bfgs [(#1892)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1892) - Treat resource files as binary [(#1896)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1896) - memory leaks and warnings [(#1898)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1898) - Change version-generation for C# bindings to use version.txt [(#1899)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1899) - Change to absolute https path for submodule [(#1900)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1900) - fix for no label confidence [(#1901)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1901) - Coin betting [(#1903)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1903) - Use Appveyor MSBuildLogger [(#1904)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1904) - Optional exception [(#1906)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1906) - fix closing invalid file descriptor with memory_io_buf [(#1910)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1910) - remove warnings [(#1911)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1911) - Fix to save the state of FTRL models [(#1912)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1912) - fix static library build [(#1913)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1913) - more warnings [(#1915)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1915) - fix for daemon race condition [(#1918)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1918) - Bremen79 fix save ftrl [(#1919)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1919) - change semantics of lambda [(#1920)](https://github.com/VowpalWabbit/vowpal_wabbit/pull/1920)
- C++
Published by JohnLangford over 6 years ago
https://github.com/VowpalWabbit/vowpal_wabbit -
The internal version number now matches the tag number
- C++
Published by JohnLangford over 7 years ago
https://github.com/VowpalWabbit/vowpal_wabbit - 8.6.0
This version has many bug fixes of course. In addition, (1) There are many improvements to the contextual bandit code thanks to Alberto Bietti (https://arxiv.org/abs/1802.04064 ). (2) There are significant improvements to save_resume due to @denik.
Internally, (a) The argument parsing code has been rewritten to be more consistent throughout the code base via parser_helper.h. (b) There are significant improvements in the way that multiline examples are handled thanks to @rajan-chari
Note that unlike previous release versions, I've left the "Makefile" build system in place rather than using Automake. Automake is still available if desired, but you'll need to run it manually if you want to use it.
- C++
Published by JohnLangford over 7 years ago
https://github.com/VowpalWabbit/vowpal_wabbit -
8.5.0 has further improvements, including fully working sparse model support, empirically optimized exploration algorithms, a new cost-sensitive active learning algorithm (https://arxiv.org/abs/1703.01014), and baseline prediction support.
- C++
Published by JohnLangford about 8 years ago
https://github.com/VowpalWabbit/vowpal_wabbit -
There aren’t many new features since 8.3.0 (better JSON language support, better offline eval, sparse parameter support), so this version simply addresses a number of issues that have shown up over time
- C++
Published by JohnLangford over 8 years ago
https://github.com/VowpalWabbit/vowpal_wabbit -
Many things added including more sophisticated contextual bandits, the recall tree, and OjaNewton.
- C++
Published by JohnLangford over 9 years ago
https://github.com/VowpalWabbit/vowpal_wabbit -
No significant changes from 7.9---primarily bugfixes.
- C++
Published by JohnLangford about 11 years ago
https://github.com/VowpalWabbit/vowpal_wabbit -
Primarily updates to learning reductions modularity.
- C++
Published by JohnLangford about 11 years ago
https://github.com/VowpalWabbit/vowpal_wabbit -
A post with some notes
- C++
Published by JohnLangford about 11 years ago