Skip to content

Instantly share code, notes, and snippets.

@mikaelhg
Last active April 7, 2021 12:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikaelhg/e199132c6a0960084ae322020f270e3d to your computer and use it in GitHub Desktop.
Save mikaelhg/e199132c6a0960084ae322020f270e3d to your computer and use it in GitHub Desktop.
Run a Finnish to English language translation model fully on your own computer, in minutes.

Run a Finnish to English language translation model fully on your own computer, in minutes.

Automatically downloads the 300 MB language model to your disk.

Install:

python -m venv venv
venv/bin/pip install torch transformers sentencepiece

Run:

venv/bin/python translate.py
from transformers import pipeline
input = 'Mikäli yhteys veritulppiin voidaan vahvistaa, kyseessä olisi silti äärimmäisen harvinainen haittavaikutus. Esimerkiksi Britanniassa 18 miljoonasta Astra Zenecalla rokotetusta ihmisestä 30:n tiedettiin saaneen veritulppaoireita maaliskuun lopulle mentäessä, ja heistä seitsemän kuoli, kertoo BBC.'
translator = pipeline('translation_xx_to_yy', model='Helsinki-NLP/opus-mt-fi-en', tokenizer='Helsinki-NLP/opus-mt-fi-en')
output = translator(input)
print('Input:', input)
print('Output:', output[0]['translation_text'])
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('Helsinki-NLP/opus-mt-fi-en')
model = AutoModelForSeq2SeqLM.from_pretrained('Helsinki-NLP/opus-mt-fi-en')
document = (
"""Mikäli yhteys veritulppiin voidaan vahvistaa, kyseessä olisi silti äärimmäisen harvinainen haittavaikutus. Esimerkiksi Britanniassa 18 miljoonasta Astra Zenecalla rokotetusta ihmisestä 30:n tiedettiin saaneen veritulppaoireita maaliskuun lopulle mentäessä, ja heistä seitsemän kuoli, kertoo BBC."""
)
input_ids = tokenizer(document, return_tensors="pt").input_ids
outputs = model.generate(input_ids=input_ids, num_beams=4)
result = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print('Input:', document)
print('Output:', result[0])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment