//- 💫 DOCS > USAGE > WHAT'S NEW IN V2.0 > SUMMARY p | We're very excited to finally introduce spaCy v2.0! On this page, you'll | find a summary of the new features, information on the backwards | incompatibilities, including a handy overview of what's been renamed or | deprecated. To help you make the most of v2.0, we also | #[strong re-wrote almost all of the usage guides and API docs], and added | more #[+a("/usage/examples") real-world examples]. If you're new to | spaCy, or just want to brush up on some NLP basics and the details of | the library, check out the | #[+a("/usage/spacy-101") spaCy 101 guide] that explains the most | important concepts with examples and illustrations. +legacy +h(2, "summary") Summary +grid.o-no-block +grid-col("half") p | This release features entirely new | #[strong deep learning-powered models] for spaCy's tagger, | parser and entity recognizer. The new models are | #[strong 10× smaller], #[strong 20% more accurate] and | #[strong even cheaper to run] than the previous generation. p | We've also made several usability improvements that are | particularly helpful for #[strong production deployments]. | spaCy v2 now fully supports the Pickle protocol, making it | easy to use spaCy with | #[+a("https://spark.apache.org/") Apache Spark]. The | string-to-integer mapping is #[strong no longer stateful], | making it easy to reconcile annotations made in different | processes. Models are smaller and use less memory, and the | APIs for serialization are now much more consistent. Custom | pipeline components let you modify the #[code Doc] at any | stage in the pipeline. You can now also add your own | custom attributes, properties and methods to the #[code Doc], | #[code Token] and #[code Span]. +table-of-contents +item #[+a("#summary") Summary] +item #[+a("#features") New features] +item #[+a("#features-models") Neural network models] +item #[+a("#features-pipelines") Improved processing pipelines] +item #[+a("#features-text-classification") Text classification] +item #[+a("#features-hash-ids") Hash values as IDs] +item #[+a("#features-vectors") Improved word vectors support] +item #[+a("#features-serializer") Saving, loading and serialization] +item #[+a("#features-displacy") displaCy visualizer] +item #[+a("#features-language") Language data and lazy loading] +item #[+a("#features-matcher") Revised matcher API and phrase matcher] +item #[+a("#incompat") Backwards incompatibilities] +item #[+a("#migrating") Migrating from spaCy v1.x] +item #[+a("#benchmarks") Benchmarks] p | The main usability improvements you'll notice in spaCy v2.0 are around | #[strong defining, training and loading your own models] and components. | The new neural network models make it much easier to train a model from | scratch, or update an existing model with a few examples. In v1.x, the | statistical models depended on the state of the #[code Vocab]. If you | taught the model a new word, you would have to save and load a lot of | data — otherwise the model wouldn't correctly recall the features of your | new example. That's no longer the case. p | Due to some clever use of hashing, the statistical models | #[strong never change size], even as they learn new vocabulary items. | The whole pipeline is also now fully differentiable. Even if you don't | have explicitly annotated data, you can update spaCy using all the | #[strong latest deep learning tricks] like adversarial training, noise | contrastive estimation or reinforcement learning.