Follow Datanami:
June 9, 2021

John Snow Labs Announces Spark NLP 3.1

June 9, 2021 — John Snow Labs is excited to release Spark NLP 3.1. This is one of our biggest releases with lots of models, pipelines, and groundworks for future features.

Spark NLP 3.1 comes with over 2600+ new pretrained models and pipelines in over 200+ languages, new DistilBERT, RoBERTa, and XLM-RoBERTa annotators, support for HuggingFace (Autoencoding) models in Spark NLP, and extends support for new Databricks and EMR instances.

As always, we would like to thank our community for their feedback, questions, and feature requests.


  • Introducing DistiBertEmbeddings annotator. DistilBERT is a small, fast, cheap, and light Transformer model trained by distilling BERT base. It has 40% fewer parameters thanbert-base-uncased, runs 60% faster while preserving over 95% of BERT’s performances
  • Introducing RoBERTaEmbeddings annotator. RoBERTa (Robustly Optimized BERT-Pretraining Approach) models deliver state-of-the-art performance on NLP/NLU tasks and a sizable performance improvement on the GLUE benchmark. With a score of 88.5, RoBERTa reached the top position on the GLUE leaderboard
  • Introducing XlmRoBERTaEmbeddings annotator. XLM-RoBERTa (Unsupervised Cross-lingual Representation Learning at Scale) is a large multi-lingual language model, trained on 2.5TB of filtered CommonCrawl data with 100 different languages. It also outperforms multilingual BERT (mBERT) on a variety of cross-lingual benchmarks, including +13.8% average accuracy on XNLI, +12.3% average F1 score on MLQA, and +2.1% average F1 score on NER. XLM-R performs particularly well on low-resource languages, improving 11.8% in XNLI accuracy for Swahili and 9.2% for Urdu over the previous XLM model
  •  Introducing support for HuggingFace exported models in equivalent Spark NLP annotators. Starting this release, you can easily use thesaved_modelfeature in HuggingFace within a few lines of codes and import any BERT, DistilBERT, RoBERTa, and XLM-RoBERTa models to Spark NLP. We will work on the remaining annotators and extend this support to the rest with each release – For more information please visit this discussion
  • Migrate MarianTransformer to BatchAnnotate to control the throughput when you are on accelerated hardware such as GPU to fully utilize it
  • Upgrade to TensorFlow v2.4.1 with native support for Java to take advantage of many optimizations for CPU/GPU and new features/models introduced in TF v2.x
  • Update to CUDA11 and cuDNN 8.0.2 for GPU support
  • Implement ModelSignatureManager to automatically detect inputs, outputs, save and restore tensors from SavedModel in TF v2. This allows Spark NLP 3.1.x to extend support for external Encoders such as HuggingFace and TF Hub (coming soon!)
  • Implement a new BPE tokenizer for RoBERTa and XLM models. This tokenizer will use the custom tokens fromTokenizer
  • orRegexTokenizerand generates token pieces, encodes, and decodes the results
  • Welcoming new Databricks runtimes to our Spark NLP family:
    • Databricks 8.1 ML & GPU
    • Databricks 8.2 ML & GPU
    • Databricks 8.3 ML & GPU
  • Welcoming a new EMR 6.x series to our Spark NLP family:
    • EMR 6.3.0 (Apache Spark 3.1.1 / Hadoop 3.2.1)
  • Added examples to Spark NLP Scaladoc


Spark NLP 3.1.0 comes with over 2600+ new pretrained models and pipelines in over 200 languages available for Windows, Linux, and macOS users.

Click here to read the full announcement.

Source: John Snow Labs