This is a library designed to provide a uniform interface to various deep learning models for text via programmatically created Docker containers.
Usage
See the docs for prerequisites, a quickstart, and the API reference. In brief, you need Docker installed with appropriate permissions for your user account to run Docker commands and Python 3.7. Then run the following:
pip install gobbli
You may also want to check out the benchmarks to see some comparisons of gobbli's implementation of various models in different situations.
Interactive
gobbli provides streamlit apps to perform some interactive tasks in a web browser, such as data exploration and model evaluation. Once you've installed the library, you can run the bundled apps using the gobbli
command line application. Check the docs for more information.
Development
Assuming you have all prerequisites noted above, you need to install the package and all required + optional dependencies in development mode:
pip install -e ".[augment,tokenize,interactive]"
Install additional dev dependencies:
pip install -r requirements.txt
Run linting, autoformatting, and tests:
./run_ci.sh
To avoid manually fixing some of these errors, consider enabling isort and black support in your favorite editor.
If you're running tests in an environment with less than 12GB of memory, you'll want to pass the --low-resource
argument when running tests to avoid out of memory errors.
NOTE: If running on a Mac, even with adequate memory available, you may encounter Out of Memory errors (exit status 137) when running the tests. This is due to not enough memory being allocated to your Docker daemon. Try going to Docker for Mac -> Preferences -> Advanced and raising "Memory" to 12GiB or more.
If you want to run the tests GPU(s) enabled, see the --use-gpu
and --nvidia-visible-devices
arguments under py.test --help
. If your local machine doesn't have an NVIDIA GPU, but you have access to one that does via SSH, you can use the test_remote_gpu.sh
script to run the tests with GPU enabled over SSH.
Docs
To generate the docs, install the docs requirements:
pip install -r docs/requirements.txt
Since doc structure is auto-generated from the library, you must have the library (and all its dependencies) installed as well.
Then, run the following from the repository root:
./generate_docs.sh
Then browse the generated documentation in docs/_build/html
.
Attribution
gobbli wouldn't exist without the public release of several state-of-the-art models. The library incorporates:
- BERT, released by Google
- MT-DNN, released by Microsoft
- Universal Sentence Encoder, released by Google
- fastText, released by Facebook
- transformers, released by Hugging Face
- spaCy, by Explosion
- scikit-learn
Original work on the library was funded by RTI International.
Logo design by Marcia Underwood.