Məzmuna keç
Learning Machine

mt5-enaz-10m ilə Azərbaycan dilinə maşın tərcüməsi: praktik bələdçi

mt5-enaz-10m ilə Azərbaycan dilinə maşın tərcüməsi: praktik bələdçi

mt5-enaz-10m ingilis dilindən Azərbaycan dilinə tərcümə edən açıq mT5 modelidir. Onun necə öyrədildiyini və Python-da necə işə salındığını göstəririk.

mt5-enaz-10m ingilis dilindən Azərbaycan dilinə maşın tərcüməsi üçün açıq modeldir. Biz onu 2023-cü ilin aprelində Hugging Face-də dərc etmişik. Bu bələdçidə modelin nə olduğunu, necə öyrədildiyini, Python-da necə işə salındığını və onu məhsula daxil etməzdən əvvəl nələri nəzərə almaq lazım olduğunu izah edirik.

Model nədir

Model Google-un mətndən mətnə T5 arxitekturasının çoxdilli versiyası olan mT5-base əsasında qurulub. Biz onu öz açıq korpusumuz translate_enaz_10m üzərində əlavə öyrətmişik: təxminən 10 milyon ingilis-Azərbaycan cümlə cütü, burada Azərbaycan tərəfi Azərbaycan Milli Kitabxanasının mənbələrindən götürülmüş təmizlənmiş orijinal mətndir. Yəni model başqa tərcümə sistemi tərəfindən deyil, insanlar tərəfindən yazılmış Azərbaycan mətnini yaratmağı öyrənib.

Öyrətmə qısaca

ParametrDəyər
Baza modelmT5-base
Öyrətmə məlumatlarıtranslate_enaz_10m, təxminən 10 mln cüt
Batch ölçüsü16
Epoxalar10
Addımlar620 min
Öyrətmə itkisi0,56
Qiymətləndirmə itkisi0,53
Öyrətmə müddəti2 gün
LisenziyaCC BY-NC-SA 4.0

Necə işə salmaq olar

Sizə transformers kitabxanası, mT5 tokenizatoru üçün sentencepiece və PyTorch lazımdır:

pip install transformers sentencepiece torch

Model mətnin əvvəlində tapşırıq prefiksi gözləyir: translate English to Azerbaijani: {text}. Budur model kartından determinist (greedy) dekodlaşdırma ilə əsas nümunə:

from transformers import MT5Tokenizer, MT5ForConditionalGeneration

model_name = 'learningmachineaz/mt5-enaz-10m'
tokenizer = MT5Tokenizer.from_pretrained(model_name)
model = MT5ForConditionalGeneration.from_pretrained(model_name)

text = "Artificial intelligence is already superior to human learning in numerous domains."
input_ids = tokenizer(f'translate English to Azerbaijani: {text}', return_tensors="pt").input_ids
outputs = model.generate(input_ids, max_length=128, do_sample=False, num_return_sequences=1)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# Süni intellekt artıq çoxsaylı domenlərdə insanın öyrənilməsindən üstünlük təşkil edir.

Sampling ilə bir neçə variant

Bəzən birdən çox tərcüməni görmək faydalıdır, məsələn, redaktor ən yaxşı ifadəni seçə bilsin deyə. Sampling-i aktivləşdirin və bir neçə ardıcıllıq istəyin:

outputs = model.generate(input_ids, max_length=128, do_sample=True,
                         top_k=10, num_return_sequences=3)
for out in outputs:
    print(tokenizer.decode(out, skip_special_tokens=True))

Sampling zamanı hər işə salma fərqli variantlar qaytara bilər. Pipeline-da təkrarlana bilən nəticələr üçün do_sample=False saxlayın.

Bir dəfəyə çoxlu cümlənin tərcüməsi

Mətnlər toplusu üçün girişləri eyni uzunluğa qədər doldurun (padding) və hər çıxışı dekodlaşdırın:

texts = ["The meeting starts at ten.", "Please send me the report."]
batch = tokenizer([f'translate English to Azerbaijani: {t}' for t in texts],
                  return_tensors="pt", padding=True)
outputs = model.generate(**batch, max_length=128, do_sample=False)
for out in outputs:
    print(tokenizer.decode(out, skip_special_tokens=True))

GPU bunu xeyli sürətləndirir, lakin kiçik həcmlər üçün model CPU-da da işləyir.

Praktik məsləhətlər

  • Prefiksi dəqiq saxlayın. Model translate English to Azerbaijani: prefiksi ilə öyrədilib; başqa ifadə nəticəni pisləşdirə bilər.
  • Cümlə-cümlə tərcümə edin. Generasiya max_length=128 ilə məhdudlaşdırılıb, ona görə uzun sənədləri cümlələrə və ya qısa abzaslara bölün, sonra nəticələri birləşdirin.
  • Yalnız bir istiqamət. Model ingilis dilindən Azərbaycan dilinə tərcümə edir; əks istiqamət üçün öyrədilməyib.
  • Sahə terminologiyasını yoxlayın. Öyrətmə mətnləri kitablar, xəbərlər, şeirlər və məqalələrdir. Hüquqi, tibbi və ya texniki məzmun üçün nəticəni yoxlayın və ya modeli həmin sahəyə aid cütlər üzərində əlavə öyrədin.
  • Dərc olunan mətndə insan iştirakını saxlayın. İstənilən maşın tərcüməsi kimi, keyfiyyət vacib olanda nəticə insan redaktəsindən sonra daha yaxşı oxunur.

Lisenziya: qeyri-kommersiya

mt5-enaz-10m CC BY-NC-SA 4.0 lisenziyası ilə yayımlanıb. Ondan müəllifliyi göstərməklə, yalnız qeyri-kommersiya məqsədləri üçün istifadə edə, paylaşa və uyğunlaşdıra bilərsiniz, törəmə işlər isə eyni lisenziya ilə paylaşılmalıdır. Tədqiqat, tədris və şəxsi layihələr bu şərtlərə uyğundur. Kommersiya istifadəsi üçün bizimlə əlaqə saxlayın.

Bundan sonra

Model və onun kartı Hugging Face-dədir, ətraflı məlumat isə layihə səhifəsində toplanıb. Məhsulunuza Azərbaycan dilində maşın tərcüməsi, mətnlərin təsnifatı, axtarış və ya başqa dil tapşırığı daxil etmək lazımdırsa, təbii dilin emalı xidmətimizə baxın və ya tapşırığınızı təsvir edin.

  • Hugging Face
  • mT5
  • Machine Translation
  • Azerbaijani

Bizimlə əlaqə

Qiymət və vaxt təxmini əldə etmək üçün layihənizi və ya fikrinizi bizə göndərin. Hər hansı bir fikrinizə şad olarıq!

Rasul Rza 75, Bakı, Azərbaycan
[email protected]

Sayt reCAPTCHA ilə qorunur; Google-un Məxfilik siyasəti və İstifadə şərtləri tətbiq olunur.

Göndərməklə siz məxfilik siyasəti ilə razılaşırsınız.