Skip to content

Releases: facebookresearch/aepsych

0.5.1 More parameter types

25 Nov 18:34
Compare
Choose a tag to compare

Features:

  • Support for discrete parameters, binary parameters, and fixed parameters
  • Optimizer options can now be set from config and in models to manipulate the underlying SciPy optimizer options
  • Manual generators now support multi stimuli studies

Bug fixes:

  • Dim_grid now returns the right shapes

Full Changelog: v0.5.0...0.5.1

v0.5.0

15 Nov 02:00
Compare
Choose a tag to compare

New feature release:

  • GPU support for GPClassificationModel and GPRegressionModel alongside GPU support for generating points with OptimizeAcqfGenerator with any acquisition function.
    • Models that are subclasses of GPClassificationModel and GPRegressionModel should also have GPU support.
    • This should allow the use of the better acquisition functions while maintaining practical live active learning trial generation speeds.
    • GPU support will also speed up post-hoc analysis when fitting on a lot of data. Models have a model.device attribute like tensors in PyTorch do and can be smoothly moved between devices using the same API (e.g., model.cuda() or model.cpu() as tensors.
    • We wrote a document on speeding up AEPsych, especially for live experiments with active learning: https://aepsych.org/docs/speed.
    • More models and generators will gain GPU support soon.
  • New parameter configuration format and parameter transformations
    • The settings for parameters should now be set in parameter-specific blocks, old configs will still work but will not support new parameter features going forward.
    • We added a log scale transformation and the ability to disable the normalize scale transformation, these can be set at a parameter-specific level.
    • Take a look at our documentation about the new parameter options: https://aepsych.org/docs/parameters
    • More parameter transforms to come!

Please raise an issue if you find any bugs with the new features or if you have any feature requests that would help you run your next experiment using AEPsych.

v0.4.4

01 Nov 19:10
Compare
Choose a tag to compare

Minor bug fixes

  • Revert tensor changes for LSE contour plotting
  • Ensure manual generators don't hang strategies in replay
  • Set default inducing size to 99, be aware that inducing size >= 100 can significantly slowdown the model on very specific hardware setups

v0.4.3

24 Oct 22:07
Compare
Choose a tag to compare
  • Float64 are now the default data type for all tensors from AEPsych.
  • Many functions are ported to only use PyTorch Tensors and not accept NumPy arrays
  • Fixed ManualGenerators not knowing when it is finished.

v0.4.2

17 Oct 00:11
Compare
Choose a tag to compare
  • BoTorch version bumped to latest at 0.12.0.
  • Numpy pinned below v2.0 to ensure compatibility with Intel Macs
  • Only Python 3.10+ is supported now (matching BoTorch requirements)

v0.4.1

02 May 13:04
Compare
Choose a tag to compare
  • Updated point generation and model querying to be faster
  • Bumped ax version to 0.3.7
  • Miscellaneous bug fixes

v0.4.0

05 Jun 20:40
Compare
Choose a tag to compare

New features:

  • Ax can now be used as a backend. This is opt-in for now, but will become the default in a future version. Documentation here.
  • Added aepsych_database as a command-line executable for performing database operations.
  • Added MultitaskGPRModel and IndependentMultitaskGPRModel for offline analysis of multi-subject data.
  • Added the semi-parametric models from Keeley et al., 2023. Tutorial here.
  • Added ability to pre-generate trials asynchronously on the server by specifying pregen_asks = True in the config file.
  • default_mean_covar_factory can now take dim directly as an argument instead of having to read it from a Config.
  • Expanded the tutorial on Gaussian process active learning.
  • Implemented an info message that allows clients to query the server for info about its state.
  • Added additional type hints and docstrings throughout the codebase.
  • Updates to dependencies.

Bug fixes:

  • Fixed bug that caused BinaryClassificationGP to calculate variance incorrectly in probability space.
  • Removed redundant "model fitting" logs.
  • Fixed a type error in MonotonicThompsonSamplerGenerator
  • Fixed a shape error in EpsilonGreedyGenerator.
  • Fixed a broken test in test_model_query.py.

Other changes:

  • Removed versioned server messages since we now have versioned releases and refactored server messages to be helper functions instead of AEPsychServer methods.
  • Updated example configs to suggest EAVC as the threshold-finding acquisition function instead of MCLSE.

v0.3.0

07 Dec 18:03
Compare
Choose a tag to compare

New features:

Bug fixes

  • Removed some hardcoded checks for stimuli_per_trial and outcome_types
  • Fixed incorrect threshold estimation for non-probit links
  • Implemented from_config forMonotonicProjectionGP
  • Fixed a casting error in MonotonicThompsonSamplerGenerator

v0.2.0

30 Sep 17:55
Compare
Choose a tag to compare

Changes to pairwise experiments

  • PairwiseProbitModel has been moved from prerelease to the main repo
  • SobolGenerator and OptimizeAcqfGenerator now work with PairwiseProbitModel. The pairwise generators should still work for now but are being deprecated and will be removed in a future release.

Changes to configs

  • Configs now have separate stimuli_per_trial and outcome_types settings instead of a single outcome_type parameter. The server should automatically reformat old-style configs.
  • Experiment metadata such as the experiment's description or participant ID can now be included in config files

New server functionality

  • Tell messages can now specify model_data=False to indicate that data should be recorded, but not modeled. This is useful, for example, when your experiment includes practice trials.
  • The "get_config" message can be used to fetch config settings from the server.
  • The "finish_strategy" message can be used to force the server to finish the current strategy and move to the next one.

Other new features

  • New lookahead acquisition functions (MOCU, SMOCU, and BEMPS) were added.
  • Added 3D plotting functionality
  • Strategies can now be set to run indefinitely by including run_indefinitely=True in configs.

Bug fixes

  • Experiments that used stopping criteria other than min_asks will now properly replay.
  • An exception will now be raised if lb > ub.
  • Changed LSE's default value of "beta" to 3.84 (1.96^2).
  • Updates from GPytorch and Botorch should lead to more stable model fitting

v0.1.0

29 Jun 14:56
Compare
Choose a tag to compare

Initial stable release. AEPsych currently supports monotonic and non-monotonic versions of classification and regression GP models with single inputs and outcomes.