Sequence-to-Sequence Machine Translation Model

dərin öyrənmə
seq2seq
maşın tərcüməsi
Sequence-to-Sequence Machine Translation Model cover image

Maşın tərcüməsinin necə işlədiyini heç düşünmüsünüzmü? Google Translate, DeepL və s. oxşar alətlər yaratmaq üçün bir neçə kod sətirləri kifayətdir. Bu məqalədə biz sizi ardıcıllıqla ardıcıllıqla (seq2seq) maşın tərcüməsi modelinin yaradılması prosesi ilə tanış edəcəyik. Sonda siz bunun necə işlədiyini və yerləşdirilə bilən tərcümə modelinin necə olacağını başa düşə biləcəksiniz.

Seq2Seq Modelini Anlamaq

Seq2seq modelinin konsepsiyasını başa düşmək üçün bir nümunəyə nəzər salaq. Təsəvvür edin ki, ingilis dilində bir cümləniz var:

"How are you?"

və siz onu Tamazight-a tərcümə etmək istəyirsiniz:

"Amek tettiliḍ?"

Seq2seq modeli bu tərcüməni yerinə yetirmək üçün birlikdə işləyən kodlayıcı və dekoderdən ibarətdir.

  1. Enkoder: Kodlayıcı “Necəsən?” mənbə cümləsini götürür və onu sözbəsöz emal edir. O, məlumatı kontekst vektoru adlanan sabit uzunluqlu vektora kodlayır. Bizim nümunəmizdə kodlayıcı hər sözü təhlil edəcək və cümlənin mənalı təsvirini yaradacaq.

  2. Dekoder: Dekoder kodlayıcıdan kontekst vektorunu alır və "Amek tettiliḍ?" hədəf cümləsini yaratmağa başlayır. Kontekst vektorunu və əvvəllər yaranan sözləri nəzərə alaraq bu sözü sözbəsöz edir. Dekoder təlim zamanı aşkar etdiyi nümunələrə əsasən düzgün tərcümə yaratmağı öyrənir.

Seq2Seq Schema

Məlumatların Hazırlanması

İndi seq2seq modeli haqqında anlayışımız var, gəlin eyni nümunədən istifadə edərək məlumatların hazırlanması haqqında danışaq.

Maşın tərcüməsi modelini hazırlamaq üçün həm mənbədə (bizim vəziyyətimizdə ingiliscə), həm də hədəf dillərdə (Tamazight) düzülmüş cümlə cütlərindən ibarət paralel korpus tələb olunur. EuroparlBMT Paralel Korpus kimi bir neçə resurs çoxdilli məlumatların böyük həcmlərini təmin edir.

  1. Tokenləşdirmə: Məlumatların hazırlanmasında ilk addım tokenləşdirmədir. Biz İngilis və Tamazight cümlələrini fərdi əlamətlərə və ya sözlərə bölürük. Məsələn, ingiliscə "Necəsən?" ['Necə', 'siz', 'sən', '?'] və Tamazight cümləsi "Amek tettiliḍ?" ['SOS', 'Amek', 'tettiliḍ', '?', 'EOS'] olaraq tokenləşdiriləcək. Ardıcıllığın başlanğıcını və sonunu göstərmək üçün SOSEOS istifadə edirik.

  2. Təmizləmə və Normallaşdırma: Sonra, işarələnmiş cümlələrdə təmizləmə və normallaşdırma həyata keçiririk. Bu, tərcümə prosesinə mane ola biləcək hər hansı lazımsız simvolların, durğu işarələrinin və ya xüsusi simvolların silinməsini nəzərdə tutur. Məsələn, təlim məlumatlarını sadələşdirmək üçün həm İngilis, həm də Tamazight cümlələrinin sonundakı sual işarəsini silə bilərik.

Mənbə və hədəf dillərin xüsusiyyətlərindən asılı olaraq, əlavə dilə xas ilkin emal addımları tələb oluna bilər. Məsələn, fransız dilində vurğu və ya diakritik kimi xüsusi simvolları idarə etməmiz lazım ola bilər.

  1. Lüğətin yaradılması: Biz həm mənbə, həm də hədəf cümlələrdən unikal sözlər toplayaraq lüğət yaradırıq. Sonra hər bir sözə unikal indeks və ya identifikator təyin edilir, nəticədə təlim prosesində istifadə olunacaq sözlərin yerləşdirilməsi xəritəsi dediyimiz şey əldə edilir:
6: "how"
330: "are"
537: "you"

Bununla tokenləşdirilmiş nümunəmiz belə görünəcək:

[6, 330, 537] # How Are You
[420, 775] # Amek tettiliḍ
  1. Ardıcıllıq Doldurma: Vahid ardıcıl uzunluqları təmin etmək üçün cümlələri xüsusi işarələrlə (məsələn, "PAD" və ya 0) doldururuq ki, onların hamısı eyni uzunluğa malik olsun. Doldurma zəruridir, çünki neyron şəbəkələri adətən sabit uzunluqlu girişləri gözləyir. Qısa cümlələrin sonuna doldurma işarələri əlavə etməklə, səmərəli təlimə imkan verən bərabər uzunluqlu ardıcıllıqlar yaradırıq. Uzunluq ən uzun giriş cümləsindəki sözlərin sayı olacaqdır.

Məsələn, giriş və çıxış tokenlərimizə 13 dolğunluğu tətbiq etmək aşağıdakı nəticəni verəcəkdir:

[6, 330, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # How Are You
[420, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # Amek tettiliḍ

Model Təlimi

Hazırlanmış məlumatlar ilə biz maşın tərcüməsi modelimizi öyrətməyə davam edə bilərik. Biz məlumatları təlim və doğrulama dəstlərinə bölürük. Təlim dəsti təlim zamanı modelin parametrlərini yeniləmək üçün istifadə olunur, doğrulama dəsti isə modelin işinə nəzarət etməyə və həddindən artıq uyğunlaşmanın qarşısını almağa kömək edir.

Neyron Şəbəkə Təlimi

Təlim zamanı biz modeli giriş kimi mənbə cümlələri (İngilis dili) və istədiyiniz çıxış kimi müvafiq hədəf cümlələri (Tamazight) ilə qidalandırırıq. Model daxiletmə ardıcıllığına əsaslanaraq, sözbəsöz hədəf cümlələr üçün proqnozlar yaradır. Bu proqnozlar kateqoriyalı çarpaz entropiya kimi itki funksiyasından istifadə edərək faktiki hədəf ardıcıllıqla müqayisə edilir.

Geri yayılma və Parametr yeniləmələri

Geri yayılma prosesi vasitəsilə model onun parametrləri ilə bağlı itkinin gradientlərini hesablayır. Bu gradientlər itkini minimuma endirmək üçün lazım olan parametr yeniləmələrinin istiqamətini və miqyasını göstərir. Stokastik gradient eniş (SGD) və ya Adam kimi optimallaşdırma alqoritmi modelin parametrlərini iterativ olaraq yeniləmək üçün bu qradiyentlərdən istifadə edir və zamanla proqnozları daha dəqiq edir.

İterativ Təlim

Təlim prosesi bir neçə dövr ərzində təkrarlanır. Hər bir dövrdə model bütün təlim verilənlər bazasından keçir, onun parametrlərini yeniləyir və tərcümə nümunələri haqqında anlayışını dəqiqləşdirir. Bu prosesi təkrar etməklə, model dəqiq tərcümələr yaratmaqda getdikcə daha bacarıqlı olur.

Qiymətləndirmə və Qiymətləndirmə

Təlim boyu biz vaxtaşırı modelin təsdiqləmə dəstində performansını qiymətləndiririk. Bu qiymətləndirmə bizə modelin gedişatını izləməyə və lazım gələrsə düzəlişlər etməyə kömək edir. Tərcümələrin keyfiyyətini qiymətləndirmək və onları istinad tərcümələri ilə müqayisə etmək üçün BLEU (Bilingual Evaluation Understudy) kimi ölçülərdən istifadə edə bilərik.

Yerləşdirmə

Model öyrədildikdən və qiymətləndirildikdən sonra yerləşdirməyə hazırdır. TensorFlow, TensorFlow Serving, TensorFlow Lite və TensorFlow.js daxil olmaqla, maşın tərcüməsi modellərini tətbiq etmək üçün bir neçə variant təqdim edir. TensorFlow Xidməti digər tətbiqlərlə asan inteqrasiyaya imkan verən REST API vasitəsilə modelə xidmət göstərməyə imkan verir. TensorFlow Lite modeli məhdud resursları olan mobil cihazlarda işləməyə imkan verir. TensorFlow.js veb-brauzerlərdə yerləşdirməyə imkan verir və tərcüməni birbaşa veb-saytlarda istifadəçilər üçün əlçatan edir.

FastAPI kimi veb çərçivə də REST API qurmaq üçün istifadə edilə bilər.

Daha ətraflı məlumat üçün maşın öyrənmə modelinizi necə yerləşdirmək olar haqqında məqaləmizi də yoxlaya bilərsiniz.

Davamlı Təkmilləşdirmə

Maşın tərcüməsi modelinin yaradılması iterativ bir prosesdir. İstifadəçi rəylərinin monitorinqi, əlavə məlumatların toplanması və müntəzəm yeniləmələr vasitəsilə modeli təkmilləşdirmək davamlı təkmilləşdirmə üçün vacibdir. TensorFlow-un çevikliyi və genişlənməsi modeli inkişaf edən tələblərə və yeni dillərə uyğunlaşdırmağı asanlaşdırır.


Career Services background pattern

Karyera Xidmətləri

Contact Section background image

Əlaqə saxlayaq

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