/code-nlp-with-transformers-book

Jupyter notebooks for the Natural Language Processing with Transformers book

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

Transformers Notebooks

This repository contains the example code from our O'Reilly book Natural Language Processing with Transformers:

book-cover

Getting started

You can run these notebooks on cloud platforms like Google Colab or your local machine. Note that most chapters require a GPU to run in a reasonable amount of time, so we recommend one of the cloud platforms as they come pre-installed with CUDA.

Running on a cloud platform

To run these notebooks on a cloud platform, just click on one of the badges in the table below:

Chapter Colab Kaggle Gradient Studio Lab
Introduction Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Text Classification Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Transformer Anatomy Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Multilingual Named Entity Recognition Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Text Generation Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Summarization Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Question Answering Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Making Transformers Efficient in Production Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Dealing with Few to No Labels Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Training Transformers from Scratch Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Future Directions Open In Colab Kaggle Gradient Open In SageMaker Studio Lab

Nowadays, the GPUs on Colab tend to be K80s (which have limited memory), so we recommend using Kaggle, Gradient, or SageMaker Studio Lab. These platforms tend to provide more performant GPUs like P100s, all for free!

Note: some cloud platforms like Kaggle require you to restart the notebook after installing new packages.

Running on your machine

To run the notebooks on your own machine, first clone the repository and navigate to it:

$ git clone https://github.com/nlp-with-transformers/notebooks.git
$ cd notebooks

Next, run the following command to create a conda virtual environment that contains all the libraries needed to run the notebooks:

$ conda env create -f environment.yml

Note: You'll need a GPU that supports NVIDIA's CUDA Toolkit to build the environment. Currently, this means you cannot build locally on Apple silicon 😢.

Chapter 7 (Question Answering) has a special set of dependencies, so to run that chapter you'll need a separate environment:

$ conda env create -f environment-chapter7.yml

Once you've installed the dependencies, you can activate the conda environment and spin up the notebooks as follows:

$ conda activate book # or conda activate book-chapter7
$ jupyter notebook

FAQ

When trying to clone the notebooks on Kaggle I get a message that I am unable to access the book's Github repository. How can I solve this issue?

This issue is likely due to a missing internet connection. When running your first notebook on Kaggle you need to enable internet access in the settings menu on the right side.

How do you select a GPU on Kaggle?

You can enable GPU usage by selecting GPU as Accelerator in the settings menu on the right side.

Citations

If you'd like to cite this book, you can use the following BibTeX entry:

@book{tunstall2022natural,
  title={Natural Language Processing with Transformers: Building Language Applications with Hugging Face},
  author={Tunstall, Lewis and von Werra, Leandro and Wolf, Thomas},
  isbn={1098103246},
  url={https://books.google.ch/books?id=7hhyzgEACAAJ},
  year={2022},
  publisher={O'Reilly Media, Incorporated}
}