thinc

๐Ÿ”ฎ A refreshing functional take on deep learning, compatible with your favorite libraries

MIT License

Downloads
11.1M
Stars
2.8K
Committers
62

Bot releases are hidden (Show)

thinc - v8.2.5: Restrict numpy pin to <2.0.0 Latest Release

Published by honnibal 4 months ago

Numpy v2.0 isn't binary compatible with v1 (understandably). We build against numpy so we need to restrict the pin.

thinc - v8.2.4: Relaxing `nbconvert` and `typing_extensions` upper pins

Published by svlandeg 4 months ago

โœจ New features and improvements

  • Bump nbconvert pin
  • Bump typing_extensions pin for Python 3.7
  • Updates to the test suite

๐Ÿ‘ฅ Contributors

@honnibal, @ines, @svlandeg

The main new feature of Thinc v9 is the support for learning rate schedules that can take the training dynamics into account. For example, the new plateau.v1 schedule scales the learning rate when no progress has been found after a given number of evaluation steps. Another visible change is that AppleOps is now part of Thinc, so it is not necessary anymore to install thinc-apple-ops to use the AMX units on Apple Silicon.

โœจ New features and improvements

  • Learning rate schedules can now take the training step as well as an arbitrary set of keyword arguments. This makes it possible to pass information such a the parameter name and last evaluation score to determine the learning rate (#804).
  • Added the plateau.v1 schedule (#842). This schedule scales the learning rate if training was found to be stagnant for a given period.
  • The functionality of thinc-apple-ops is integrated into Thinc (#927). Starting with this version of Thinc, it is not necessary anymore to install thinc-apple-ops.

๐Ÿ”ด Bug fixes

  • Fix the use of thread-local storage (#917).

โš ๏ธย Backwards incompatibilities

  • Thinc v9.0.0 only support Python 3.9 and later.
  • Schedules are not generators anymore, but implementations of the Schedule class (#804).
  • thinc.backends.linalg has been removed (#742). The same functionality is provided by implementations in BLAS that are better tested and more performant.
  • thinc.extra.search has been removed (#743). The beam search functionality in this module was strongly coupled to the spaCy transition parser and has therefore moved to spaCy in v4.

๐Ÿ‘ฅ Contributors

@adrianeboyd, @danieldk, @honnibal, @ines, @kadarakos, @shadeMe, @svlandeg

๐Ÿ”ด Bug fixes

  • Make strings2arrays work again for sequences of inequal length (#918).
  • Fix cupy.cublas import (#921).

๐Ÿ‘ฅ Contributors

@danieldk, @honnibal, @ines, @svlandeg

thinc - v8.2.2: Parametric attention with key transformation

Published by danieldk 10 months ago

โœจ New features and improvements

Add the ParametricAttention_v2 layer, which adds support for key transformations (#913).

๐Ÿ‘ฅ Contributors

@danieldk, @honnibal, @ines, @svlandeg

thinc - v8.2.1: Support Python 3.12

Published by adrianeboyd about 1 year ago

โœจ New features and improvements

Updates and binary wheels for Python 3.12.

๐Ÿ‘ฅ Contributors

@adrianeboyd, @honnibal, @ines, @svlandeg

thinc - v8.2.0: Disable automatic MXNet and TensorFlow imports

Published by adrianeboyd about 1 year ago

โœจ New features and improvements

To improve loading times and reduce conflicts, MXNet and TensorFlow are no longer imported automatically (#890).

โš ๏ธ Backwards incompatibilities

MXNet and TensorFlow support needs to be enabled explicitly. Previously, MXNet and TensorFlow were imported automatically if they were available in the current environment.

To enable MXNet:

from thinc.api import enable_mxnet
enable_mxnet()

To enable TensorFlow:

from thinc.api import enable_tensorflow
enable_tensorflow()

With spaCy CLI commands you can provide this custom code using -c code.py. For training use spacy train -c code.py and to package your code with your pipeline use spacy package -c code.py.

Future deprecation warning: built-in MXNet and TensorFlow support will be removed in Thinc v9. If you need MXNet or TensorFlow support in the future, you can transition to using a custom copy of the current MXNetWrapper or TensorFlowWrapper in your package or project.

๐Ÿ‘ฅ Contributors

@adrianeboyd, @danieldk, @honnibal, @ines, @svlandeg

thinc - v8.1.12: Support zero-length batches and hidden sizes in reductions

Published by adrianeboyd about 1 year ago

๐Ÿ”ด Bug fixes

  • Support zero-length batches and hidden sizes in reduce_{max,mean,sum} (#882).
  • Preserve values with dtype for NumpyOps/CupyOps.asarray (#897).

๐Ÿ‘ฅ Contributors

@adrianeboyd, @danieldk, @honnibal, @ines, @svlandeg

thinc - v8.1.11: Support Pydantic v2, update package setup

Published by adrianeboyd about 1 year ago

โœจ New features and improvements

  • Update NumPy build constraints for NumPy v1.25 (#885).
  • Switch from distutils to setuptools/sysconfig (#888).
  • Allow Pydantic v2 using transitional v1 support (#891).

๐Ÿ“– Documentation and examples

  • Fix typo in example code (#879).

๐Ÿ‘ฅ Contributors

@adrianeboyd, @Ankush-Chander, @danieldk, @honnibal, @ines, @svlandeg

โœจ New features and improvements

  • Implement pad as a CUDA kernel (#860).
  • Avoid h2d - d2h roundtrip when using unflatten (#861).
  • Improve exception when CuPy/PyTorch MPS is not installed (#863).
  • Lazily load custom cupy kernels (#870).

๐Ÿ”ด Bug fixes

  • Initially load TorchScript models on CPU for MPS devices (#864).

๐Ÿ‘ฅ Contributors

@adrianeboyd, @danieldk, @honnibal, @ines, @shadeMe, @svlandeg

thinc - v8.1.9: Type fixes

Published by danieldk over 1 year ago

๐Ÿ”ด Bug fixes

  • Fix type signature of Model.begin_update (#858).

๐Ÿ‘ฅ Contributors

@danieldk, @honnibal, @ines

thinc - v8.1.8: New faster mapping layer and bug fixes for resizeable layer

Published by adrianeboyd over 1 year ago

โœจ New features and improvements

  • Add premap_ids.v1 layer for mapping from ints to ints (#815).
  • Update to mypy 1.0.x (#848).

๐Ÿ”ด Bug fixes

  • Make resizable layer work with textcat and transformers (#820).

๐Ÿ“– Documentation

  • Update website including Dockerfile (#843, #844, #845).

๐Ÿ‘ฅ Contributors

@adrianeboyd, @danieldk, @essenmitsosse, @honnibal, @ines, @kadarakos, @patjouk, @polm, @svlandeg

thinc - v8.1.7: Updated layers and extended requirements

Published by adrianeboyd almost 2 years ago

โœจ New features and improvements

  • Add with_flatten.v2 layer with symmetric input/output types (#821).
  • Extend to typing_extensions v4.4.x for Python 3.6 and 3.7 (#833).

๐Ÿ“– Documentation

๐Ÿ‘ฅ Contributors

@adrianeboyd, @albertvillanova, @danieldk, @essenmitsosse, @honnibal, @ines, @shadchin, @shadeMe, @svlandeg

thinc - v8.1.6: New and updated layers, bug fixes and more

Published by adrianeboyd almost 2 years ago

โœจ New features and improvements

  • Update to mypy 0.990 (#801).
  • Extend to wasabi v1.1 (#813).
  • Add SparseLinear.v2, to fix indexing issues (#754).
  • Add TorchScriptWrapper_v1 (#802).
  • Add callbacks to facilitate lazy-loading models in PyTorchShim (#796).
  • Make all layer defaults serializable (#808).

๐Ÿ”ด Bug fixes

  • Add missing packaging requirement (#799).
  • Correct sequence length error messages for reduce_first/last (#807).
  • Update CupyOps.asarray to always copy cupy arrays to the current device (#812).
  • Fix types for sequences passed to Ops.asarray* (#819).

๐Ÿ‘ฅ Contributors

@adrianeboyd, @danieldk, @frobnitzem, @honnibal, @ines, @richardpaulhudson, @ryndaniels, @shadeMe, @svlandeg

thinc - v8.1.5: Updates for Python 3.11

Published by adrianeboyd almost 2 years ago

โœจ New features and improvements

  • Updates and binary wheels for Python 3.11 (#793).
  • Make __all__ static to support type checking (#780).

๐Ÿ‘ฅ Contributors

@adrianeboyd, @honnibal, @ines, @rmitsch

thinc - v7.4.6: Updates for Python 3.10 and 3.11

Published by adrianeboyd almost 2 years ago

โœจ New features and improvements

  • Updates for Python 3.10 and 3.11 (#791):
    • Update vendored wrapt to v1.14.1.
    • Update dev requirements.
    • Add wheels for Python 3.10 and 3.11.

๐Ÿ‘ฅ Contributors

@adrianeboyd, @honnibal, @ines

thinc - v8.1.4: Type fixes

Published by adrianeboyd about 2 years ago

๐Ÿ”ด Bug fixes

  • Fix issue #785: Revert change to return type for Ops.alloc from #779.

๐Ÿ‘ฅ Contributors

@adrianeboyd, @honnibal, @ines, @svlandeg

thinc - v8.1.3: Updates for pydantic and mypy

Published by adrianeboyd about 2 years ago

โœจ New features and improvements

  • Extend pydantic support to v1.10.x (#778).
  • Support mypy 0.98x, drop mypy support for Python 3.6 (#776).

๐Ÿ”ด Bug fixes

  • Fix issue #775: Fix fix_random_seed entry point in setup.cfg.

๐Ÿ‘ฅ Contributors

@adrianeboyd, @honnibal, @ines, @pawamoy, @svlandeg

thinc - v8.1.2: Update blis support and CuPy extras

Published by adrianeboyd about 2 years ago

โœจ New features and improvements

  • Update CuPy extras to add cuda116, cuda117, cuda11x and cuda-autodetect, which uses the new cupy-wheel package (#740).
  • Add a pytest-randomly entry point for fix_random_seed (#748).

๐Ÿ”ด Bug fixes

  • Fix issue #772: Restrict supported blis versions to ~=0.7.8 to avoid bugs in BLIS 0.9.0.

๐Ÿ‘ฅ Contributors

@adrianeboyd, @honnibal, @ines, @rmitsch, @svlandeg, @willfrey

thinc - v8.1.1: Use confection, new layers and bugfixes

Published by danieldk about 2 years ago

โœจ New features and improvements

  • Use confection for configurations (#745).
  • Add the Dish activation function and layer (#719).
  • Add the with_signpost_interval layer to support layer profiling with macOS Instruments (#711).
  • Add remap_ids.v2 layer which allows more types of inputs (#726).
  • Extend BLIS support to version 0.9.x (#736).
  • Improve performance when gradient scaling is used (#746).
  • Improve MaxOut performance by unrolling argmax in maxout (#702).

๐Ÿ”ด Bug fixes

  • Fix issue #720: Improve type inference by replacing FloatsType in Ops by a TypeVar.
  • Fix issue #739: Fix typing of Ops.asarrayDf methods.
  • Fix issue #757: Improve compatibility with supported Tensorflow versions.

๐Ÿ‘ฅ Contributors

@adrianeboyd, @cclauss, @danieldk, @honnibal, @ines, @kadarakos, @polm, @rmitsch, @shadeMe

Package Rankings
Top 19.93% on Anaconda.org
Top 10.6% on Conda-forge.org
Top 0.9% on Pypi.org
Top 6.4% on Alpine-edge
Top 9.57% on Spack.io
Badges
Extracted from project README's
tests Current Release Version PyPi Version conda Version Python wheels Code style: black Open demo in Colab Open in Colab Open in Colab Open in Colab Open in Colab
Related Projects