Google T5 Translation as a Service with Just 7 lines of Codes¶
What is T5? Text-To-Text Transfer Transformer (T5) from Google gives the power of translation.
In the article, we will deploy Google T5 model as a REST API service. Difficult? What about I’ll tell you: you just need to write 7 lines of codes?
Install Dependencies¶
HuggingFace¶
pip install "transformers[torch]"
If it doesn’t work, please visit Installation and check their official documentations.
Pinferencia¶
pip install "pinferencia[streamlit]"
Define the Service¶
First let’s create the app.py to define the service:
app.py | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Start the Service¶
$ uvicorn app:service --reload
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [xxxxx] using statreload
INFO: Started server process [xxxxx]
INFO: Waiting for application startup.
INFO: Application startup complete.
$ pinfer app:service --reload
Pinferencia: Frontend component streamlit is starting...
Pinferencia: Backend component uvicorn is starting...
Test the Service¶
Open http://127.0.0.1:8501, and the template Translation
will be selected automatically.
curl -X 'POST' \
'http://localhost:8000/v1/models/t5/predict' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"parameters": {},
"data": ["translate English to German: Good morning, my love."]
}'
Result:
{
"model_name": "t5",
"data": ["translation_text": "Guten Morgen, liebe Liebe."]
}
test.py | |
---|---|
1 2 3 4 5 6 7 8 9 |
|
Run python test.py
and print the result:
Prediction: ["Guten Morgen, liebe Liebe."]
Even cooler, go to http://127.0.0.1:8000, and you will have a full documentation of your APIs.
You can also send predict requests just there!