Kai žmonės išgirsta frazę „vertimo modelio apmokymas”, dažniausiai įsivaizduoja kažką panašaus į mokyklos pamoką – sėdi kompiuteris, skaito žodynus ir po kelių valandų jau moka kalbą. Realybėje viskas vyksta kitaip, ir būtent todėl apie tai verta pakalbėti atviriau, be įprastų technoblizgučių, kuriais dažnai apipinama ši tema. Dirbant su vertimų automatizavimu kasdien, tenka matyti, kiek daug nesusipratimų kyla būtent dėl to, kad žmonės nesupranta, kas realiai vyksta „po gaubtu”.
Kas iš tikrųjų vyksta, kai „apmokomas” vertimo modelis
Modelio apmokymas – tai iš esmės milžiniškas skaičiavimų procesas, kurio metu algoritmas bando atspėti, koks žodis (tiksliau, koks tokenas) turėtų sekti po ankstesnio, remdamasis milijonais jau egzistuojančių sakinių porų dviem ar daugiau kalbų. Modelis neturi jokio supratimo apie gramatiką ta prasme, kaip ją supranta lingvistas. Jis tiesiog mato statistinius dėsningumus – kad žodis „namas” dažnai atsiranda šalia tam tikrų kitų žodžių tam tikrame kontekste, ir kad vokiškas atitikmuo tokiuose kontekstuose paprastai būna „Haus”.
Šis procesas vadinamas apmokymu (angl. training), bet jis labiau primena bandymų ir klaidų metodą milijardiniu mastu. Modelis daro prognozę, palygina ją su tikru vertimu iš mokymo duomenų rinkinio, apskaičiuoja, kiek suklydo, ir šiek tiek pakoreguoja savo vidinius parametrus. Tada procesas kartojasi – vėl ir vėl, milijonus kartų, kol klaidos sumažėja iki priimtino lygio. Būtent čia slypi ir grožis, ir problema – modelis niekada nesupranta prasmės taip, kaip ją supranta žmogus, jis tiesiog labai gerai apytiksliai atkuria tai, ką matė anksčiau.
Duomenys – kur viskas prasideda ir kur dažniausiai lūžta
Jeigu reikėtų išskirti vieną dalyką, nuo kurio priklauso 80 procentų modelio kokybės, tai būtų duomenys. Ne architektūra, ne skaičiavimo galia, ne net patys sudėtingiausi algoritmai – o tai, kokiais tekstais modelis buvo maitinamas. Egzistuoja posakis „šiukšlės viduje – šiukšlės išorėje” (garbage in, garbage out), ir jis čia tinka absoliučiai tiksliai.
Vertimo modeliams reikalingi vadinamieji lygiagretūs korpusai – didžiuliai tekstų rinkiniai, kur kiekvienas sakinys viena kalba turi savo atitikmenį kita kalba. Tokie duomenys renkami iš įvairiausių šaltinių: Europos Sąjungos dokumentų (jie garsėja kaip vienas didžiausių viešai prieinamų daugiakalbių šaltinių), subtitrų archyvų, Vikipedijos straipsnių, techninės dokumentacijos ir netgi socialinių tinklų turinio.
Problema ta, kad dauguma šių duomenų yra netvarkingi. Subtitrai dažnai sutrumpinti arba laisvai interpretuoti, automatiškai išrinkti sakinių poros būna neteisingai sulygiuotos, o kai kurie tekstai apskritai yra prasti vertimai, padaryti žmonių be pakankamos kvalifikacijos. Todėl didžiąją dalį darbo užima ne pats modelio treniravimas, o duomenų valymas – dublikatų šalinimas, blogai sulygiuotų sakinių filtravimas, per ilgų ar per trumpų segmentų atmetimas.
Praktikoje verta žinoti keletą dalykų apie duomenų kokybę:
- Kuo siauresnė sritis (pavyzdžiui, teisiniai dokumentai ar medicininiai tekstai), tuo mažiau duomenų prieinama, todėl dažnai tenka derinti bendrinius ir specializuotus korpusus.
- Automatinis sakinių sulygiavimas niekada nebūna tobulas – net geriausi įrankiai padaro klaidų 3-7 procentuose atvejų.
- Retos kalbų poros (pavyzdžiui, lietuvių-suomių) turi žymiai mažiau duomenų nei populiarios poros kaip anglų-ispanų, todėl tokių kalbų modeliai dažnai apmokomi netiesiogiai, per tarpinę anglų kalbą.
Nuo statistinių sistemų iki transformerių – kelias, kurį verta suprasti
Prieš dešimtmetį dominavo vadinamosios statistinės mašininio vertimo sistemos (SMT), kurios rėmėsi frazių ir jų vertimo tikimybių lentelėmis. Rezultatai buvo funkcionalūs, bet dažnai skambėjo lyg surinkti iš dalių – trūko sklandumo, nes sistema nematydavo viso sakinio konteksto vienu metu.
Tada atsirado neuroniniai vertimo modeliai (NMT), o vėliau – transformerių architektūra, kuri iš esmės pakeitė visą lauką. Transformeriai naudoja mechanizmą, vadinamą „dėmesiu” (attention), kuris leidžia modeliui vienu metu „žiūrėti” į visą sakinį ir suprasti, kurios jo dalys svarbiausios verčiant konkretų žodį. Būtent ši architektūra yra didžiosios daugumos šiuolaikinių vertimo sistemų, įskaitant ir tas, kurios naudojamos populiariuose automatinio vertimo įrankiuose, pagrindas.
Įdomu tai, kad ta pati bazinė architektūra naudojama ir dideliuose kalbos modeliuose, kurie šiandien moka atlikti šimtus skirtingų užduočių, ne tik vertimą. Skirtumas tas, kad specializuoti vertimo modeliai dažniausiai yra kompaktiškesni, greitesni ir konkrečiai optimizuoti vienai užduočiai, o tai reiškia geresnį kokybės ir greičio santykį, kai reikia versti dideliais kiekiais.
Pritaikymas konkrečiai sričiai – kur prasideda tikrasis meistriškumas
Bendrinis modelis, apmokytas ant milijardų sakinių iš įvairiausių sričių, dažnai neblogai susitvarko su kasdiene kalba, bet visiškai „paklysta”, kai reikia versti, tarkime, farmacijos reguliavimo dokumentus arba programinės įrangos sąsajas. Būtent čia įsijungia fine-tuning (tikslus derinimas) procesas.
Fine-tuning – tai papildomas apmokymo etapas, kurio metu jau paruoštas bendrinis modelis toliau treniruojamas su nedideliu, bet labai kokybišku ir specializuotu duomenų rinkiniu. Įsivaizduokite tai kaip situaciją, kai patyręs vertėjas, mokantis versti bendrinius tekstus, pradeda dirbti su konkrečiu klientu ir per kelis mėnesius perpranta jo terminologiją, stiliaus gaires ir specifinius reikalavimus. Modeliui šis procesas užtrunka žymiai trumpiau – kartais tik kelias valandas skaičiavimų, jei duomenų yra pakankamai.
Verta paminėti keletą praktinių dalykų, kurie dažnai lieka nepastebėti:
- Per didelis fine-tuning duomenų kiekis su per mažai įvairove gali sukelti vadinamąjį „užsimiršimą” (catastrophic forgetting), kai modelis praranda bendrąsias žinias ir pradeda prastai versti viską, kas nepatenka į siaurą specializaciją.
- Terminų žodynai ir stiliaus gairės, integruoti į mokymo duomenis, dažnai duoda geresnį rezultatą nei bandymas priversti modelį „atsiminti” taisykles per instrukcijas.
- Žmogaus redaguoti vertimai (post-editing duomenys) yra vieni vertingiausių šaltinių fine-tuning etapui, nes jie rodo ne tik teisingą vertimą, bet ir tipiškas klaidas, kurias reikia taisyti.
Dažniausios klaidos, į kurias suklumpa net patyrusios komandos
Dirbant šioje srityje, pastebimi tam tikri pasikartojantys scenarijai, kai projektai nueina ne ta linkme. Vienas dažniausių – per didelis pasitikėjimas duomenų kiekiu, ignoruojant jų kokybę. Komanda surenka milijonus sakinių porų, apmoko modelį, ir stebisi, kodėl rezultatai vidutiniški, nors „juk tiek daug duomenų”. Kiekis niekada nekompensuoja prastos kokybės.
Kita dažna klaida – nepakankamas dėmesys vertinimo metodikai. Modelis gali puikiai atrodyti pagal automatinius metrikus (apie tai daugiau kitame skyriuje), bet realiuose vertimo scenarijuose kristi į akis su nenatūraliomis frazėmis arba prarastu kontekstu ilguose tekstuose.
Taip pat dažnai pamirštama, kad kalbos nuolat kinta – atsiranda naujų terminų, slengo, technologinių sąvokų. Modelis, apmokytas prieš trejus metus, gali visiškai nepažinti šiuolaikinių terminų, susijusių, tarkime, su dirbtiniu intelektu ar naujomis technologijomis. Todėl svarbu numatyti reguliarius atnaujinimo ciklus, o ne traktuoti apmokymą kaip vienkartinį veiksmą.
Kaip iš tikrųjų įvertinti, ar modelis tikrai išmoko versti
Automatinio vertimo kokybės vertinimas – atskira ir gana sudėtinga tema pati savaime. Ilgą laiką industrijos standartas buvo BLEU balas – metrika, lyginanti modelio sugeneruotą vertimą su vienu ar keliais žmogaus paruoštais „etaloniniais” vertimais, remiantis žodžių ir frazių sutapimais. Problema ta, kad BLEU nemato prasmės – jis gali nubausti puikų vertimą vien todėl, kad jis vartoja sinonimus, o ne tiksliai tuos pačius žodžius kaip etalonas.
Pastaraisiais metais vis daugiau naudojamos metrikos, kurios remiasi neuroniniais modeliais, vertinančiais semantinį panašumą, o ne pažodinį sutapimą. Tokios metrikos geriau atspindi tikrąją kokybę, bet vis tiek negali visiškai pakeisti žmogaus vertinimo, ypač kai kalbama apie stiliaus subtilumus, kultūrinį kontekstą ar humoro perteikimą.
Praktiniu požiūriu, patikimiausias būdas įvertinti modelį – kombinuotas metodas:
- Automatinės metrikos greitam palyginimui tarp skirtingų modelio versijų mokymo proceso metu.
- Žmogaus atliekamas kokybės vertinimas reprezentatyvioje teksto imtyje, pageidautina – kelių nepriklausomų vertintojų.
- Realaus naudojimo testavimas – stebėjimas, kiek redagavimo reikia po automatinio vertimo (post-editing effort), nes tai tiesiogiai atspindi praktinę naudą.
Vietoj griežto punkto – kelios mintys tiems, kas dirba su vertimais kasdien
Jei reikėtų sudėti visą šį pokalbį į kelis praktinius patarimus, tai atrodytų maždaug taip. Nesitikėk stebuklo iš vieno mokymo ciklo – geras vertimo modelis yra nuolat besivystantis produktas, ne baigtas darbas. Investuok į duomenų kokybę labiau nei į duomenų kiekį, nes tvarkingas milijonas sakinių bus vertingesnis nei netvarkingi dešimt milijonų. Jei dirbi su specifine sritimi – teisine, medicinine, technine – visada rink post-editing duomenis iš savo pačių vertėjų, nes tai auksinė gysla, kurios nenusipirksi jokiame viešame korpuse.
Nebijok kombinuoti metodų – bendrinis modelis su gerai apgalvotu fine-tuning dažnai duoda geresnį rezultatą nei bandymas apmokyti viską nuo nulio, o tai kainuoja žymiai mažiau resursų. Ir galiausiai, niekada nepasitikėk vien automatinėmis metrikomis – jos naudingos greitam palyginimui, bet galutinį sprendimą dėl kokybės visada turėtų priimti žmogus, gerai išmanantis abi kalbas ir sritį, apie kurią kalbama.
Vertimo modelių pasaulis juda greitai, ir tai, kas šiandien atrodo pažangu, po metų gali tapti standartu. Bet vienas dalykas nesikeičia – kokybiškas vertimas visada priklauso nuo kokybiškų duomenų, apgalvoto proceso ir supratimo, kad technologija yra įrankis, o ne pakaitalas kalbos ir konteksto pajautimui.
