Hae uuteen Data Science & AI ja Cybersecurity Osa-aikaiset kohortit

Ota koneoppimismallisi käyttöön Pythonilla

python
koneoppiminen
ML-malli
Ota koneoppimismallisi käyttöön Pythonilla cover image

Datatieteen parissa työskennellessäsi kohtaat yleensä uuden haasteen pitkän harjoittelun, hienosäädön ja parantamisen jälkeen. Onnittelut hyvän suorituskyvyn ja tarpeisiisi vastaavan ML-mallin rakentamisesta. Nyt edessäsi oleva haaste on, kuinka voit toimittaa tämän mukavan teknologian halutuille käyttäjille? Tai kenties kuinka voit viestiä tuloksestasi tehokkaasti yrityksesi sidosryhmien kanssa? Tai kuinka voit jakaa mallituloksesi tehokkaasti kollegoidesi kanssa yhteistyön parantamiseksi?

Koneoppimisen käyttöönotto voi joskus olla vaikeaa, koska käytämme tekniikoita ja tekniikoita, jotka poikkeavat mallien rakentamiseen tarvittavasta tavanomaisesta osaamisesta.

Tässä artikkelissa aiomme löytää tavan ottaa käyttöön koneoppimismalleja käyttämällä vain pythonia. Ja matkan varrella rakennamme konekäännösmallin ja web-sivun.

Joten tässä on vaiheet, jotka aiomme nähdä:

  1. Käytä Huggingface konekäännösmalleja.

  2. Tutustu Anvil ja rakenna verkkokäyttöliittymä mallillemme.

  3. Yhdistä tausta- ja käyttöliittymä ja palvelemme työmme maailmaa!

Rakenna konekäännösmalli

Huggingface on tekoälyyhteisö, joka pyrkii "demokratisoimaan hyvää koneoppimista". Tämän aloitteen puitteissa löydät monia koulutettuja malleja eri koneoppimistehtäviin: kuvien segmentointi, teksti puheeksi, tekstin luominen… ja myös konekäännös!

Konekäännös on yksinkertaisesti käännöstehtävä kahden kielen välillä, jonka suorittaa ohjelmisto, tässä tapauksessa muuntajilla rakennettu koneoppimismalli.

Muuntaja on tarkkaavaisuuteen perustuva syväoppimisarkkitehtuuri. Laitetaan se toimimaan koneellasi!

Käytämme transformers, python-kirjastoa ladataksemme MT-mallin ja suorittaaksemme käännöksen.

pip install torch
pip install transformers

Kun olet asentanut tarvittavat paketit, tuo seuraavat moduulit:

from transformers import MarianTokenizer, MarianMTModel
from typing import List

Otetaan malli, joka kääntää lauseen saksasta englanniksi. Tarvitsemme mallin nimen:

src= "de"
trg= "en"
mname= f'Helsinki-NLP/opus-mt-{src}-{trg}'

Tuodaan nyt koulutettu malli ja tokenisaattori seuraavilla riveillä:

model = MarianMTModel.from_pretrained(mname)
tok = MarianTokenizer.from_pretrained(mname)

Latauksen koko on noin 300 mb, viimeistelyn jälkeen voit tallentaa mallin paikalliseen hakemistoon seuraavilla tavoilla:

model.save_pretrained("./models/de_en/")
tok.save_pretrained("./models/de_en/tok")

Otetaan malli:

text="ich habe keine ahnung"
gen = model.generate(**tok.prepare_seq2seq_batch(src_texts=[text], return_tensors="pt"))
words: List[str] = tok.batch_decode(gen, skip_special_tokens=True)
print(words[0])

Nyt sinulla pitäisi olla lauseen englanninkielinen käännös tallennettuna sanaan "words[0]".

Tutustu Anviliin ja rakenna verkkokäyttöliittymä

Anvil on kehys ja pino ratkaisuja, joiden avulla voit rakentaa verkkosovelluksia käyttämällä vain python-koodia. Siinä on vedä ja pudota -editori verkkokäyttöliittymän rakentamiseen, ja sen avulla voit yhdistää paikallisen koneen koodin rakentamaasi käyttöliittymään ja isännöidä sovellustasi antamalla sinulle linkin, jonka voit jakaa.

Aloitetaan siis sovelluksen luomisesta täältä. Valitse tyhjä sovellus ja sitten materiaalisuunnittelu.

Sinun pitäisi nähdä jotain tämän kaltaista:

Anvil

Nyt luotan siihen, että käytät editoria ja rakennat jotain seuraavanlaista:

Anvil Editor

Tässä yksinkertaisessa käyttöliittymässä meillä on kaksi pudotusvalikkoa lähde- ja kohdekielen valitsemiseksi. Meillä on myös TextBox lähdetekstin syöttämiseen ja richText-komponentti käännetyn tekstin näyttämiseen. Näet myös painikkeen käännöstehtävän aloittamiseksi.

Anna komponenteille samat tunnukset synkronoidaksesi koodinpätkien kanssa, jotka näet alla. Alta löydät esimerkin siitä, missä voit asettaa komponentin tunnuksen:

Anvil Editor Rename Component

Käyttämämme tunnukset ovat:

Komponentti

ID

Lähdekielinen pudotusvalikkolähdekieli
Kohdekielen pudotusvalikkodest_lang
Lähdekieli TextBoxlähdeteksti
Käännetty teksti RichTextkäännetty_teksti

Onclick-toiminto

Olemme lisänneet painikkeen, jolla käännös aloitetaan. Napsauta editorissa painiketta ja vieritä sitten alas ominaisuuspaneelissa. Alareunassa näet tapahtumaosion. Kirjoita "click"-kohdan vieressä olevaan tekstialueeseen "käännä" ja napsauta sitten tämän tekstialueen oikealla puolella olevaa nuolta.

Tämä vie sinut koodinäkymään, jossa näet automaattisesti luodun python-koodin.

Huomaat, että alasin on lisännyt automaattisesti toiminnon nimeltä translate. Sitä kutsutaan aina, kun käyttöliittymämme painiketta napsautetaan.

Tältä toiminnon pitäisi näyttää:

def translate(self, **event_args):
 """This method is called when the button is clicked"""
 src_lang=self.source_lang.selected_value #get the selected source language
 dest_lang=self.dest_lang.selected_value #get the selected destination language
 text=self.source_text.text   #get the text written in source language
 #call the server function
 translated_text=anvil.server.call("translation",text,src_lang,dest_lang)
 #write the translated text to the UI
 self.translated_text.content=translated_text

Tämä toiminto suorittaa 3 päätehtävää:

  1. Hanki tietoja käyttöliittymästä

  2. Lähetä tiedot taustajärjestelmäämme käyttämällä palvelintoimintoa "käännös" (selitämme sen seuraavassa osiossa)

  3. Lähetä käännetty teksti käyttöliittymään.

Palvelintoiminto

Keskitytään tähän koodiriviin:

translated_text=anvil.server.call("translation",text,src_lang,dest_lang)

Käytämme anvil.server.call kutsuaksemme palvelinfunktiota nimeltä "käännös", jonka määritämme taustakoodissamme paikallisessa koneessa.

Tämä toiminto toimii yhteyden verkkokäyttöliittymän ja konekäännösmallissamme käytettävän taustakoodin välillä.

Kuten olet huomannut, lähetämme myös tämän funktion parametrit funktiossa anvil.server.call.

Ota käyttöön MT-mallimme

Asennataan ensin alasin

pip install anvil-uplink

Nyt olemme rakentaneet verkkokäyttöliittymämme alasin editoriin ja meillä on peruskoodilohkot konekäännösmallimme ajamiseen ja käännöksen tekemiseen.

Seuraava vaihe on määrittää palvelintoiminto, jota olemme käsitelleet edellisessä osiossa.

Tässä on funktion koodi:

@anvil.server.callable
def translation(text,src,dest):
 lang_code={"English":"en",
       "German":"de",
       "French":"fr",
       "Spanish":"es"}
      model=MarianMTModel.from_pretrained("./models/"+lang_code[src]+"_"+lang_code[dest])
 tok=MarianTokenizer.from_pretrained("./models/"+lang_code[src]+"_"+lang_code[dest]+"/tok")
 gen = model.generate(**tok.prepare_seq2seq_batch(src_texts=[text], return_tensors="pt"))
 words: List[str] = tok.batch_decode(gen, skip_special_tokens=True)
 return words[0]

Toiminto ottaa 3 käyttöliittymästä lähetettyä parametria, muuntaa lähde- ja kohdekielet vastaaviksi kielikoodeiksi ja lataa sitten mallit ja laskee käännöksen ja palauttaa tuloksen.

Tapa ilmoittaa tämä toiminto alasimelle palvelintoiminnoksi on käyttää koristelua

@anvil.server.callable.

Meillä on vielä viimeinen vaihe yhdistääksesi taustakoodin, jonka voimme suorittaa jupyter-muistikirjassa, alasin sovellukseemme.

Siirry alasin online-editoriin, napsauta rataskuvaketta ja napsauta sitten "Uplink…".

Katso alla olevaa näyttöä

Anvil Editor Uplink

Näet ponnahdusikkunan ja napsauta sitten "Ota palvelimen ylöslinkki käyttöön tälle sovellukselle" saadaksesi kopioimasi yhteyskoodin.

Anvil Uplink

Liität koodin seuraavalle koodiriville:

anvil.server.connect("code here")

Tämä rivi käynnistää palvelimen, joka yhdistää paikallisen koodin skripti tai jupyter-muistikirjasi alasin sovellukseen funktiolla "käännös", joka on rekisteröity palvelinfunktioksi.

Viimeinen vaihe

Tähän asti sinulla on taustapalvelimesi käynnissä palvelintoiminnolla, joka lataa konekäännösmallin ja tekee käännöksen otettuaan huomioon käyttöliittymästä lähetetyt parametrit. Tämä kuva tiivistää, mitä olemme tähän mennessä yhdessä toteuttaneet.

Anvil Uplink

Viimeinen vaihe on käynnistää sovellus napsauttamalla alasimen editorin yläreunan keskellä olevaa Suorita-painiketta.

Kun olet suorittanut sovelluksen, näet oikeassa yläkulmassa painikkeen "julkaise tämä sovellus", joka antaa sinulle linkin, jonka voit jakaa päästäksesi sovellukseen ja tehdäksesi käännöksen!

Johtopäätös

Seuraamalla tätä artikkelia olet voinut ottaa käyttöön MT-mallin ja rakentaa verkkokäyttöliittymän sen käyttöä varten.

Vielä on paljon selvitettävää mallin tehokkaassa käyttöönotossa alasimella, mutta nyt sinulla on perusasiat käyttöönottomatkan aloittamiseen ja Pythonissa aiemman tietämyksesi potentiaali tehdä paljon enemmän!

Tule johonkin ilmaisista työpajoistamme

Aloita urasi datatieteilijänä ilmaisilla työpajoillamme, jotka perustuvat mukautuvaan opetussuunnitelmaan ja joita ohjaavat alan asiantuntijat.


Career Services background pattern

Urapalvelut

Contact Section background image

Pidetään yhteyttä

Code Labs Academy © 2024 Kaikki oikeudet pidätetään.