Maşın Öyrənmə Modelinizi Python ilə yerləşdirin

python
maşın öyrənməsi
ML modeli
Maşın Öyrənmə Modelinizi Python ilə yerləşdirin cover image

Məlumat elmi sahəsində işləyərkən, adətən uzun bir məşq, incə tənzimləmə və təkmilləşdirmə dövrünü bitirdikdən sonra özünüzü yeni bir problemlə qarşılaşırsınız. Yaxşı performansa malik və ehtiyaclarınıza cavab verən ML modelini yaratdığınız üçün sizi təbrik edirik. İndi qarşınızda duran problem budur ki, bu gözəl texnologiya parçasını nəzərdə tutulan istifadəçilərə necə çatdıra bilərsiniz? Və ya bəlkə nəticənizi şirkətinizdə maraqlı tərəflərlə necə effektiv şəkildə əlaqələndirə bilərsiniz? Və ya hətta daha yaxşı əməkdaşlıq üçün model nəticələrinizi həmkarlarınızla effektiv şəkildə necə paylaşa bilərsiniz?

Maşın öyrənməsini tətbiq etmək bəzən çətin ola bilər, çünki biz modelləri yaratmaq üçün lazım olan adi bacarıq dəstindən kənar texnologiya və texnikalardan istifadə edəcəyik.

Bu yazıda biz yalnız python istifadə edərək maşın öyrənmə modellərini yerləşdirməyin bir yolunu kəşf edəcəyik. Və bu yolda biz maşın tərcüməsi modeli və internet səhifəsi quracağıq.

Beləliklə, görəcəyimiz addımlar bunlardır:

  1. Huggingface maşın tərcüməsi modellərindən istifadə.

  2. Anvil kəşf etmək və modelimiz üçün veb UI qurmaq.

  3. Backend və frontend-i birləşdirmək və dünyaya bizim işimizə xidmət etmək!

Maşın Tərcümə modelini qurun

Huggingface “yaxşı maşın öyrənməsini demokratikləşdirmək” üçün çalışan AI icmasıdır. Bu təşəbbüs çərçivəsində siz müxtəlif maşın öyrənmə tapşırıqları üzrə bir çox təlim keçmiş modellər tapa bilərsiniz: təsvirin seqmentasiyası, mətndən nitqə, mətnin yaradılması... və həmçinin maşın tərcüməsi!

Maşın tərcüməsi sadəcə olaraq bir proqram parçası tərəfindən yerinə yetirilən iki dil arasında tərcümə işidir, bizim vəziyyətimizdə transformatorlarla qurulmuş maşın öyrənmə modelidir.

Transformator diqqətə əsaslanan dərin öyrənmə arxitekturasıdır. Gəlin onu maşınınızda işə salaq!

MT modelini endirmək və tərcüməni yerinə yetirmək üçün python kitabxanası olan transformers istifadə edəcəyik.

pip install torch
pip install transformers

Lazım olan paketləri quraşdırdıqdan sonra aşağıdakı modulları idxal edin:

from transformers import MarianTokenizer, MarianMTModel
from typing import List

Gəlin bir cümləni alman dilindən ingilis dilinə çevirən bir model əldə edək. Modelin adına ehtiyacımız var:

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

İndi aşağıdakı sətirlərdən istifadə edərək təlim keçmiş modeli və tokenizeri idxal edək:

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

Yükləmə ölçüsü təxminən 300 mb-dir, bitirdikdən sonra aşağıdakılardan istifadə edərək modeli yerli kataloqda saxlaya bilərsiniz:

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

Modelə baxaq:

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])

İndi sözlər[0]-də saxlanılan cümlənin ingiliscə tərcüməsi olmalıdır.

Anvil kəşf edin və veb UI qurun

Anvil yalnız python kodundan istifadə edərək veb proqramlar yaratmağa imkan verən çərçivə və həllər yığınıdır. Veb UI yaratmaq üçün sürükləmə və buraxma redaktoru var və o, yerli maşınınızdan kodu qurduğunuz UI-yə qoşmağa və paylaşa biləcəyiniz bir keçid verməklə tətbiqinizi yerləşdirməyə imkan verir.

Beləliklə, buradan tətbiq yaratmağa başlayaq. Boş tətbiqi, sonra material dizaynını seçin.

Bunun kimi bir şey görməlisiniz:

Anvil

İndi redaktordan istifadə edəcəyinizə və aşağıdakı kimi bir şey quracağınıza inanacağam:

Anvil Editor

Bu sadə UI-də mənbə və təyinat dillərini seçmək üçün iki açılan pəncərəmiz var. Bizdə həmçinin mənbə mətni daxil etmək üçün TextBox və tərcümə edilmiş mətni göstərmək üçün richText komponenti var. Siz həmçinin tərcümə tapşırığına başlamaq üçün düyməni görə bilərsiniz.

Aşağıda görəcəyiniz kod parçaları ilə sinxronizasiya etmək üçün komponentlərə eyni identifikatorları verin. Aşağıda komponentin id-sini təyin edə biləcəyiniz nümunəni tapa bilərsiniz:

Anvil Editor Rename Component

İstifadə etdiyimiz ID-lər bunlardır:

<cədvəlin sərhədi="2">

<baş>

Komponent

ID

Mənbə dil Açılır source_lang Təyinat dili Açılır dest_lang Mənbə dili TextBox mənbə_mətn Tərcümə edilmiş mətn RichText tərcümə edilmiş_mətn

Onclick funksiyası

Tərcüməni başlamaq üçün istifadə edilən düyməni əlavə etdik. Redaktorunuzdan düyməni vurun, sonra xüsusiyyətlər panelində aşağı diyirləyin. Aşağıda bir hadisə bölməsini görəcəksiniz. “Klikləyin” yanındakı mətn zonasında “tərcümə et” daxil edin və sonra bu mətn zonasının sağındakı oxu klikləyin.

Bu sizi kod görünüşünə aparacaq və burada avtomatik yaradılan bəzi python kodunu görəcəksiniz.

Anvilin avtomatik olaraq tərcümə adlı funksiyanı əlavə etdiyini görəcəksiniz. UI-dəki düyməyə hər dəfə kliklədikdə o, çağırılacaq.

Funksiya necə görünməlidir:

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

Bu funksiya 3 əsas vəzifəni yerinə yetirir:

  1. UI-dən məlumat alın

  2. “Tərcümə” server funksiyasından istifadə edərək məlumatları backendimizə göndərin (bunu növbəti hissədə izah edəcəyik)

  3. Tərcümə edilmiş mətni UI-yə göndərin.

Server funksiyası

Bu kod xəttinə diqqət yetirək:

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

Biz anvil.server.call-dan yerli maşındakı arxa kodumuzda müəyyən edəcəyimiz “tərcümə” adlı server funksiyasını çağırmaq üçün istifadə edirik.

Bu funksiya veb UI və maşın tərcüməsi modelimizdə işləyəcək arxa kod arasında əlaqə rolunu oynayacaq.

Diqqət etdiyiniz kimi, biz bu funksiyanın parametrlərini də “anvil.server.call” funksiyasına göndəririk.

MT modelimizi yerləşdirin

Əvvəlcə anvil quraşdıraq

pip install anvil-uplink

İndi biz veb interfeysimizi anvil redaktorunda qurmuşuq və maşın tərcüməsi modelimizi işə salmaq və tərcümə etmək üçün əsas kod bloklarımız var.

Növbəti addım əvvəlki bölmədə müzakirə etdiyimiz server funksiyasını müəyyən etməkdir.

Budur funksiyanın kodu:

@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]

Funksiya frontenddən göndərilən 3 parametri götürəcək, mənbə və təyinat dillərini müvafiq dil kodlarına çevirəcək və sonra modelləri yükləyib tərcüməni hesablayacaq və nəticəni qaytaracaq.

Bu funksiyanı server funksiyası kimi anvil elan etməyin yolu dekoratordan istifadə etməkdir

@anvil.server.callable.

Jupyter notebookda işlədə biləcəyimiz backend kodunu anvil tətbiqimizə qoşmaq üçün son bir addımımız var.

Anvil onlayn redaktoruna gedin, dişli çarxı vurun və sonra "Uplink..." düyməsini basın.

Aşağıdakı ekrana baxın

Anvil Editor Uplink

Siz pop-up görünəcək, sonra kopyaladığınız əlaqə kodunu əldə etmək üçün “Bu proqram üçün server yuxarı bağlantısını aktivləşdirin” üzərinə klikləyin.

Anvil Uplink

Kodu aşağıdakı kod xəttinə yapışdırırsınız:

anvil.server.connect("code here")

Bu xətt yerli kod skriptinizi və ya jupyter notebookunuzu server funksiyası kimi qeydə alınmış tərcümə funksiyası ilə anvil proqramı ilə birləşdirən serveri işə salacaq.

Son addım

Bu nöqtəyə qədər, arxa serveriniz maşın tərcümə modelini yükləyən və frontenddən göndərilən parametrləri nəzərə alaraq tərcüməni həyata keçirən server funksiyası ilə işləyir. Bu rəqəm indiyə qədər birlikdə həyata keçirdiklərimizi ümumiləşdirir.

Anvil Uplink

Son addım, anvil redaktorunun yuxarı mərkəzində yerləşən run düyməsini klikləməklə proqramı işə salmaqdır.

Tətbiqi işə saldıqdan sonra yuxarı sağ küncdə "bu proqramı dərc et" düyməsini görürsünüz, bu düymə sizə proqrama daxil olmaq və tərcümənizi etmək üçün paylaşa biləcəyiniz bir keçid verəcəkdir!

Nəticə

Bu məqaləyə əməl etməklə siz MT modelini yerləşdirə və ondan istifadə etmək üçün veb interfeysi qura bildiniz.

Örsdən istifadə edərək modeli effektiv şəkildə necə yerləşdirməyi kəşf etmək üçün hələ çox şey var, lakin indi yerləşdirmə səyahətinizə başlamaq və daha çox şey etmək üçün Python-da əvvəlki bilik potensialınızı artırmaq üçün əsaslara sahibsiniz!

Pulsuz seminarlarımızdan birinə gəlin

Uyğunlaşa bilən kurrikuluma əsaslanan və sənaye ekspertləri tərəfindən idarə olunan pulsuz seminarlarımız ilə məlumat alimi kimi karyeranıza başlayın.


Career Services background pattern

Karyera Xidmətləri

Contact Section background image

Əlaqə saxlayaq

Code Labs Academy © 2024 Bütün hüquqlar qorunur.