Releases: facebookresearch/aepsych
Releases · facebookresearch/aepsych
0.5.1 More parameter types
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
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()
ormodel.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
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
- 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
- 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
- Updated point generation and model querying to be faster
- Bumped ax version to 0.3.7
- Miscellaneous bug fixes
v0.4.0
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 takedim
directly as an argument instead of having to read it from aConfig
.- 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 ofMCLSE
.
v0.3.0
New features:
- Added an example psychophysics experiment
- Added an ordinal model and likelihood
- Added a new raw data table for easier analysis
- Can now choose which botorch optimizer to use to fit models
- Added a visualization dashboard
- Updated to botorch v0.8.0
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
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
Initial stable release. AEPsych currently supports monotonic and non-monotonic versions of classification and regression GP models with single inputs and outcomes.