Машина үйрөнүү моделиңизди Python менен жайылтыңыз

питон
машина үйрөнүү
ML модели
Машина үйрөнүү моделиңизди Python менен жайылтыңыз cover image

Маалымат илими тармагында иштегенде, адатта, көпкө созулган машыгуудан, тактоодон жана өркүндөтүлгөндөн кийин жаңы кыйынчылыктарга туш болосуз. Жакшы өндүрүмдүүлүккө ээ жана муктаждыктарыңызга жооп берген ML моделин түзүңүз менен куттуктайбыз. Эми сиздин алдыңызда турган маселе - бул жакшы технологияны кантип максаттуу колдонуучуларга жеткире аласыз? Же, балким, сиз өз натыйжаңызды компанияңыздагы кызыкдар тараптар менен кантип натыйжалуу билдире аласыз? Же жакшыраак кызматташуу үчүн моделиңиздин натыйжаларын кесиптештериңиз менен кантип бөлүшө аласыз?

Машина үйрөнүүнү жайылтуу кээде кыйын болушу мүмкүн, анткени биз моделдерди куруу үчүн зарыл болгон кадимки көндүмдөр топтомунан тышкары технологияларды жана ыкмаларды колдонобуз.

Бул макалада биз бир гана питонду колдонуу менен машина үйрөнүү моделдерин жайылтуунун жолун табабыз. Жана жол менен биз машиналык котормо моделин жана веб-баракчаны курабыз.

Ошентип, бул жерде биз көрө турган кадамдар болуп саналат:

  1. Huggingface машина котормо моделдерин колдонуу.

  2. Anvil ачуу жана биздин моделибиз үчүн веб UI куруу.

  3. Backend жана frontendди туташтыруу жана биздин ишибиз дүйнөгө кызмат кылуу!

Машина которуу моделин куруу

Huggingface бул "жакшы машина үйрөнүүнү демократиялаштыруу" үчүн иштеген AI коомчулугу. Бул демилгенин алкагында сиз ар кандай машина үйрөнүү тапшырмалары боюнча көптөгөн үйрөтүлгөн моделдерди таба аласыз: сүрөттөрдү сегменттөө, текстти кепке, текстти түзүү… жана ошондой эле машиналык которуу!

Машиналык котормо – бул жөн гана программалык камсыздоо тарабынан аткарылган эки тилдин ортосундагы которуу тапшырмасы, биздин учурда трансформаторлор менен курулган машина үйрөнүү модели.

Трансформатор - көңүл бурууга негизделген терең үйрөнүү архитектурасы. Аны машинаңызда иштетели!

Биз transformers, MT моделин жүктөп алуу жана котормо жүргүзүү үчүн питон китепканасын колдонобуз.

pip install torch
pip install transformers

Керектүү пакеттерди орноткондон кийин, төмөнкү модулдарды импорттоо:

from transformers import MarianTokenizer, MarianMTModel
from typing import List

Келгиле, сүйлөмдү немис тилинен англис тилине которгон моделди алалы. Бизге моделдин аталышы керек:

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

Эми төмөнкү саптарды колдонуп үйрөтүлгөн моделди жана токенизаторду импорттойлу:

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

Жүктөп алуу көлөмү болжол менен 300 мб, аяктагандан кийин сиз моделди жергиликтүү каталогдо төмөндөгүлөрдү колдонуу менен сактай аласыз:

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

моделин көрөлү:

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

Эми сизде сүйлөмдүн англисче котормосу words[0] ичинде сакталышы керек.

Anvilди таап, веб UI куруңуз

Anvil бул бир гана python кодун колдонуу менен веб-тиркемелерди түзүүгө мүмкүндүк берүүчү алкак жана чечимдер стек. Анын веб UI куруу үчүн сүйрөө жана түшүрүү редактору бар жана ал сизге жергиликтүү машинаңыздан кодду сиз курган UIге туташтырууга жана бөлүшө турган шилтемени берүү менен колдонмоңузду жайгаштырууга мүмкүндүк берет.

Андыктан келгиле, бул жерден колдонмону түзүүдөн баштайлы. Бош тиркемени анан материалдык дизайнды тандаңыз.

Сиз бул сыяктуу нерсени көрүшүңүз керек:

Anvil

Эми мен сизге редакторду колдонууга жана төмөнкүгө окшош нерсени курууга ишенем:

Anvil Editor

Бул жөнөкөй UIде бизде булак жана көздөгөн тилдерди тандоо үчүн эки DropDown бар. Ошондой эле бизде баштапкы текстти киргизүү үчүн TextBox жана которулган текстти көрсөтүү үчүн richText компоненти бар. Котормо ишин баштоо үчүн баскычты да көрө аласыз.

Төмөндө көрө турган код үзүндүлөрү менен синхрондоштуруу үчүн, компоненттерге бирдей идентификаторлорду бериңиз. Төмөндө сиз компоненттин идентификаторун коюуга боло турган мисалды таба аласыз:

Anvil Editor Rename Component

Биз колдонуп жаткан ID'лер:

<таблица чеги="2">

Компонент

ID

Башкы тил Ачылыш ылдыйда source_lang Белгиленген тил Ачылып чыгуучу ылдый dest_lang Булак тили TextBox булак_текст Которулган текст RichText которулган_текст

</таблица>

Onclick функциясы

Которууну баштоо үчүн колдонулган баскычты коштук. Редакторуңуздан баскычты чыкылдатыңыз, андан кийин касиеттер панелинде ылдый сыдырыңыз. Төмөндө сиз окуя бөлүмүн көрөсүз. "Чыкылдатуу" жанындагы текст зонасында "которуу" дегенди киргизип, андан кийин бул текст аймагынын оң жагындагы жебени басыңыз.

Бул сизди код көрүнүшүнө алып барат, анда сиз автоматтык түрдө түзүлгөн питон кодун көрөсүз.

Анвил автоматтык түрдө translate деп аталган функцияны кошконун көрөсүз. Биздин интерфейсибиздеги баскыч басылган сайын ал чакырылат.

Бул жерде функция кандай болушу керек:

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

Бул функция 3 негизги милдетти аткарат:

  1. UIден маалымат алыңыз

  2. Маалыматты сервердин “которуу” функциясын колдонуп, биздин серверге жөнөтүңүз (биз аны кийинки бөлүмдө түшүндүрөбүз)

  3. Которулган текстти UIге жөнөтүңүз.

Сервер функциясы

Келгиле, коддун бул сабына көңүл буралы:

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

Биз anvil.server.call 'котормо' деп аталган сервер функциясын чакыруу үчүн колдонобуз, аны биз жергиликтүү машинадагы сервердик кодубузда аныктайбыз.

Бул функция веб UI менен биздин машина котормо моделибизде иштей турган коддун ортосундагы байланыш катары кызмат кылат.

Сиз байкагандай, биз бул функциянын параметрлерин anvil.server.call функциясына жөнөтөбүз.

Биздин MT моделибизди жайылтыңыз

Адегенде анвилди орнотобуз

pip install anvil-uplink

Азыр биз веб-интерфейсибизди анвил редакторунда курдук жана бизде машина котормо моделибизди иштетүү жана котормо жасоо үчүн негизги код блоктору бар.

Кийинки кадам - ​​бул мурунку бөлүмдө талкуулаган сервер функциясын аныктоо.

Бул жерде функциянын коду:

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

Функция фронтондон жөнөтүлгөн 3 параметрди алып, булак жана көздөгөн тилдерди тиешелүү тил коддоруна айландырат, андан кийин моделдерди жүктөйт жана котормону эсептеп, натыйжаны кайтарат.

Бул функцияны сервер функциясы катары анвилге жарыялоонун жолу - декораторду колдонуу

@anvil.server.callable.

Жупитер блокнотунда иштете турган кодду биздин анвил тиркемебизге туташтыруу үчүн бизде акыркы кадам бар.

Anvil онлайн редакторуна өтүп, тиштүү сөлөкөтүн чыкылдатып, андан кийин "Uplink..." баскычын чыкылдатыңыз.

Төмөнкү экранды караңыз

Anvil Editor Uplink

Сиз калкыма терезени көрөсүз, андан кийин көчүрүлгөн туташуу кодун алуу үчүн "Бул колдонмо үчүн сервердин байланышын иштетүү" баскычын чыкылдатыңыз.

Anvil Uplink

Сиз кодду төмөнкү код сабына чаптаңыз:

anvil.server.connect("code here")

Бул сап сиздин жергиликтүү код скриптиңизди же jupyter дептериңизди сервердик функция катары катталган translation функциясы менен анвил колдонмосуна туташтырган серверди баштайт.

Акыркы кадам

Бул учурда, сизде сервердик сервериңиз машина котормо моделин жүктөй турган сервер функциясы менен иштейт жана фронттон жөнөтүлгөн параметрлерди эске алгандан кийин котормо жасайт. Бул көрсөткүч биз буга чейин биргелешип ишке ашырган нерселердин жыйынтыгын берет.

Anvil Uplink

Акыркы кадам - ​​бул анвил редакторунун жогорку борборундагы иштетүү баскычын чыкылдатуу менен тиркемени иштетүү.

Тиркемени иштеткенден кийин, сиз жогорку оң бурчта "бул колдонмону жарыялоо" баскычын көрөсүз, ал сизге шилтемени берет, аны менен колдонмого кирүү жана котормоңузду жасоо үчүн бөлүшө аласыз!

Корутунду

Бул макаланы аткаруу менен сиз MT моделин жайгаштырып, аны колдонуу үчүн веб-интерфейс түзө алдыңыз.

Анвилди колдонуу менен моделди кантип натыйжалуу жайгаштыруу боюнча дагы деле көп нерсе бар, бирок азыр сизде жайылтуу саякатыңызды баштоо үчүн негиздер бар жана Pythonдогу мурунку билимиңиздин потенциалы дагы көп нерсени жасай алат!

Биздин бекер семинарлардын бирине келиңиз

Биздин акысыз семинарлар менен маалымат таануучу катары карьераңызды баштаңыз, алар ийкемдүү окуу планына негизделген жана тармактык эксперттер жетектеген.


Career Services background pattern

Карьера кызматтары

Contact Section background image

байланышта бололу

Code Labs Academy © 2024 Бардык укуктар корголгон.