ONNX Unleashed: Training and Optimizing BERT Models for Streamlit Web Apps
Last Updated on February 1, 2024 by Editorial Team
Author(s): Marcello Politi
Originally published on Towards AI.
Learn to quantize and deploy your Deep Learning model with ONNX
Photo by ζζ¨ζ··ζ ͺ cdd20 on Unsplash
In this article, I want to accomplish something very simple: build a web app that recognizes an emotion given a sentence. In doing this though we will see how to train a transformer-based model, convert it to ONNX format, quantize it, and run it from the frontend using Streamlit.
You can tun the following scripts using Deepnote: a cloud-based notebook thatβs great for collaborative data science projects, and good for prototyping.
Optimizing the model with techniques such as quantization may be a good idea if we can maintain good performance, as it will improve the response speed, and we can create a product with lower latency and ensure greater user satisfaction.
We use a BERT-based model for emotion detection: anger, fear, joy, love, sadness, and surprise.
This is a model released by Microsoft, which is a distilled version of BERT.
model: https://huggingface.co/microsoft/xtremedistil-l6-h256-uncaseddataset: https://huggingface.co/datasets/dair-ai/emotion
We will heavily use the hugging face APIs to train this model on this dataset.
Letβs start by installing the needed libraries. We are going to use a lot of the transformers and ONNX ones.
!pip install transformers[torch]!pip install datasets onnx onnxruntime !pip install accelerate -U
All the imports we need:
from datasets import load_datasetfrom transformers import AutoTokenizerimport torchfrom transformers import AutoModelForSequenceClassificationimport… Read the full blog for free on Medium.
Join thousands of data leaders on the AI newsletter. Join over 80,000 subscribers and keep up to date with the latest developments in AI. From research to projects and ideas. If you are building an AI startup, an AI-related product, or a service, we invite you to consider becoming aΒ sponsor.
Published via Towards AI