Kas iš tikrųjų slepiasi už vertimo mygtuko
Kiekvieną dieną milijonai žmonių paspaudžia tą mažą mygtuką „Išversti” ir per sekundės dalį gauna tekstą kita kalba. Atrodo paprasta. Bet tai, kas vyksta po tuo mygtuku, yra vienas sudėtingiausių kompiuterinių procesų, kurį žmonija yra sukūrusi. Automatinis teksto vertimas nėra tiesiog žodžių pakeitimas iš vienos kalbos į kitą – tai bandymas atkartoti tai, ką žmogaus smegenys daro intuityviai, bet ką labai sunku formalizuoti.
Šiame straipsnyje pažvelgsime į tai, kaip iš tikrųjų veikia šiuolaikiniai automatiniai vertėjai – nuo pirmųjų taisyklėmis pagrįstų sistemų iki šiandieninių neuroninių tinklų, kurie moko save iš milijardų sakinių. Jei kada nors stebėjotės, kodėl „Google Translate” kartais verčia tobulai, o kartais pateikia absurdišką rezultatą, šis straipsnis padės tai suprasti.
Pirmieji bandymai: taisyklės ir žodynai
Automatinio vertimo istorija prasidėjo dar XX amžiaus viduryje, kai mokslininkai tikėjo, kad kalbą galima „išspręsti” kaip matematinę problemą. Idėja buvo paprasta: sukurk didelį dvikalbį žodyną, pridėk gramatikos taisykles, ir sistema turėtų veikti. Tai vadinama taisyklėmis pagrįstu mašininiu vertimu (angl. Rule-Based Machine Translation, RBMT).
Praktikoje tai atrodė taip: sistema analizuodavo sakinio struktūrą, identifikuodavo daiktavardžius, veiksmažodžius, prielinksnius, tada pagal iš anksto nustatytas taisykles pertvarkydavo juos į kitos kalbos struktūrą. Skamba logiškai, bet problema ta, kad kalba nėra logiška. Kiekviena kalba turi dešimtis tūkstančių išimčių, idiomų, kontekstinių reikšmių.
Pavyzdžiui, angliškas žodis „bank” gali reikšti tiek finansų įstaigą, tiek upės krantą. Taisyklėmis pagrįsta sistema neturėjo jokio būdo atskirti, kurią reikšmę naudoti, nebent programuotojai rankiniu būdu įrašydavo papildomų taisyklių. O tokių dviprasmybių kiekvienoje kalboje yra tūkstančiai. Todėl RBMT sistemos veikė gana gerai techniniuose tekstuose su standartizuota leksika, bet visiškai pražūdavo su grožine literatūra ar kasdienine šnekamąja kalba.
Statistinis posūkis: kai kiekybė tapo kokybe
Devintajame dešimtmetyje IBM mokslininkai pasiūlė radikaliai kitokį požiūrį. Užuot bandžius užkoduoti kalbos taisykles, kodėl nepaleisti kompiuterio per milijonus jau išverstų tekstų ir neleisti jam pačiam išsiaiškinti, kaip viena kalba atitinka kitą? Taip gimė statistinis mašininis vertimas (SMT).
Statistinis vertimas remiasi tikimybėmis. Sistema žiūri į didžiulius lygiagrečių tekstų korpusus – tai yra tekstai, kurie egzistuoja keliomis kalbomis (pvz., Europos Parlamento posėdžių protokolai, kurie verčiami į visas ES kalbas). Iš šių duomenų sistema mokosi, kad tam tikras žodžių junginys vienoje kalboje dažniausiai atitinka tam tikrą žodžių junginį kitoje kalboje.
Techniškai tai veikia per du pagrindinius modelius. Pirmasis – vertimo modelis – nustato, kurie žodžiai ar frazės viena kalba atitinka kitos kalbos žodžius. Antrasis – kalbos modelis – užtikrina, kad išverstas tekstas skambėtų natūraliai tikslinėje kalboje. Sistema sujungia abu modelius ir ieško tokio vertimo, kuris būtų ir tikslus, ir sklandus.
Statistinis vertimas buvo didelis žingsnis į priekį. „Google Translate” naudojo šią technologiją nuo pat savo pradžios iki 2016 metų. Tačiau ir čia buvo rimtų apribojimų: sistema dirbo su atskirais žodžiais ir trumpomis frazėmis, bet turėjo sunkumų su ilgais sakiniais, kur žodžių tvarka labai keičiasi, arba su kalbomis, kurios struktūriškai labai skiriasi, pavyzdžiui, anglų ir japonų.
Neuroniniai tinklai: mašina, kuri „supranta” kontekstą
2016 metai buvo lūžio taškas automatinio vertimo istorijoje. „Google” paskelbė, kad pereina prie neuroninių tinklų pagrįsto vertimo (NMT – Neural Machine Translation), ir vertimų kokybė šuoltelėjo taip, kad net specialistai buvo nustebinti. Kas pasikeitė?
Neuroninis tinklas yra kompiuterinė sistema, kuri grubiai imituoja tai, kaip veikia žmogaus smegenys – per tarpusavyje sujungtus mazgus (neuronus), kurie perduoda ir transformuoja informaciją. Vertimui naudojamas specifinis architektūros tipas, vadinamas sequence-to-sequence (seka į seką) modeliu su attention (dėmesio) mechanizmu.
Kaip tai veikia praktiškai? Įsivaizduokite, kad turite sakinį lietuviškai: „Katė, kuri gyvena mano kieme, mėgsta medžioti paukščius.” Sistema pirmiausia „perskaito” visą sakinį ir sukuria jo matematinį atvaizdą – vadinamąjį vektorių, kuris užkoduoja ne tik atskirus žodžius, bet ir jų ryšius tarpusavyje. Tada, generuodama vertimą, sistema kiekvienam naujam žodžiui „žiūri atgal” į originalą ir nusprendžia, kurioms jo dalims šiuo momentu reikia skirti daugiausia dėmesio.
Dėmesio mechanizmas yra esminis proveržis. Jis leidžia sistemai suprasti, kad verčiant žodį „mėgsta” angliškai, reikia atsižvelgti į tai, kad subjektas yra „katė” (o ne „aš” ar „jie”), ir todėl reikia naudoti „likes”, o ne „like”. Statistinės sistemos su tokiais ilgų sakinių ryšiais dažnai suklysdavo.
Transformer architektūra: revoliucija, kuri pakeitė viską
2017 metais „Google” mokslininkai paskelbė straipsnį pavadinimu „Attention Is All You Need” (Dėmesio visiškai pakanka), kuris pakeitė ne tik vertimo, bet ir visos dirbtinio intelekto srities istoriją. Jame pristatyta Transformer architektūra tapo pagrindu praktiškai visiems šiuolaikiniams kalbos modeliams – tiek vertimo sistemoms, tiek ChatGPT tipo modeliams.
Iki tol neuroniniai tinklai tekstą apdorodavo nuosekliai – žodis po žodžio, kaip žmogus skaitydamas. Tai buvo lėta ir ribojo, kiek konteksto sistema galėjo „prisiminti”. Transformer’is vienu metu apdoroja visus sakinio žodžius ir kiekvienam žodžiui apskaičiuoja jo ryšį su kiekvienu kitu žodžiu sakinyje. Tai vadinama self-attention (savęs dėmesio) mechanizmu.
Rezultatas? Sistema daug geriau supranta tolimus ryšius sakinyje. Ji gali suprasti, kad sakinyje „Prezidentas, kurio politika, nepaisant daugelio kritikų prieštaravimų, išliko nepakitusi, paskelbė naują įstatymą” žodis „paskelbė” yra susijęs su žodžiu „Prezidentas”, net jei juos skiria dešimt žodžių.
Šiuolaikiniai vertimo įrankiai, tokie kaip „DeepL”, „Google Translate” ar „Microsoft Translator”, visi naudoja Transformer architektūros variacijas. „DeepL” ypač garsėja tuo, kad jo modeliai buvo treniruoti su ypač kokybiškais duomenimis ir optimizuoti Europos kalboms, todėl daugelis profesionalių vertėjų pripažįsta, kad jo rezultatai dažnai yra artimesni žmogaus vertimui nei konkurentų.
Kaip sistema mokosi: duomenys, treniravimas ir klaidos
Neuroniniai tinklai neužprogramuojami rankiniu būdu – jie mokosi iš duomenų. Bet kaip tiksliai vyksta šis mokymasis? Tai svarbu suprasti, nes tai paaiškina tiek sistemos stiprybes, tiek jos silpnąsias vietas.
Treniravimo procesas prasideda nuo milžiniško lygiagrečių tekstų rinkinio. Kalbama apie šimtus milijonų sakinių porų – tas pats sakinys dviem kalbomis. Šaltiniai gali būti labai įvairūs: Europos Parlamento dokumentai, Jungtinių Tautų protokolai, knygos, straipsniai, subtitrai, net interneto puslapiai su kelių kalbų versijomis.
Sistema pradeda su atsitiktiniais parametrais – ji iš esmės nieko nežino. Tada jai pateikiamas sakinys šaltinio kalba, ir ji bando jį išversti. Gautas vertimas lyginamas su tikruoju (žmogaus atliktu) vertimu, ir apskaičiuojama klaida. Tada algoritmas, vadinamas backpropagation, perskaičiuoja visus tinklo parametrus taip, kad kita kartą klaida būtų mažesnė. Šis procesas kartojamas milijardus kartų.
Štai kodėl labai svarbu, kokios kokybės duomenys naudojami treniravimui. Jei treniravimo duomenyse yra daug blogų vertimų, sistema išmoks blogai versti. Jei tam tikros kalbų poros turi mažai duomenų (pavyzdžiui, lietuvių-suahilių), sistema bus žymiai silpnesnė toje kalbų poroje nei, tarkime, anglų-ispanų, kur duomenų yra nepalyginti daugiau.
Praktinė rekomendacija iš to: jei verčiate iš lietuvių į retesnę kalbą, tikėtina, kad sistema pirmiausia „konvertuos” tekstą į anglų kalbą kaip tarpinę, o tada išvers į tikslinę kalbą. Tai vadinama pivot translation. Dėl to gali atsirasti papildomų klaidų, kurių nebūtų tiesioginiame vertimo kelyje.
Kodėl automatinis vertimas vis dar klysta ir kada juo pasitikėti
Net geriausios šiuolaikinės sistemos daro klaidų, ir svarbu suprasti, kokio tipo klaidas jos daro dažniausiai, kad galėtumėte kritiškai vertinti gautus rezultatus.
Pirmoji ir dažniausia problema – idiomų ir kultūrinių posakių vertimas. Jei sakote „it’s raining cats and dogs”, sistema gali žinoti, kad tai idioma, ir išversti teisingai, nes ji matė šią frazę tūkstančius kartų treniravimo duomenyse. Bet jei naudosite mažiau paplitusią idiomą ar regioninį posakį, sistema greičiausiai išvers pažodžiui, ir rezultatas bus absurdiškas.
Antra problema – gramatinė lytis ir kontekstas. Lietuvių kalba turi labai išvystytą linksnių sistemą, ir automatiniai vertėjai dažnai suklysta, kai reikia nuspręsti, kuriuo linksniu vartoti žodį sudėtingesnėje sakinio struktūroje. Anglų kalboje šios problemos nėra, nes linksnių sistema labai supaprastinta, todėl vertimas iš anglų į lietuvių yra žymiai sunkesnis uždavinys nei atvirkščiai.
Trečia problema – neologizmai ir specializuota terminija. Jei tekste yra naujų žodžių ar labai specifinių techninių terminų, kurių nebuvo treniravimo duomenyse, sistema arba paliks juos neišverstus, arba bandys atspėti reikšmę iš konteksto, kas ne visada pavyksta.
Keletas praktinių patarimų, kaip geriau naudotis automatiniais vertėjais:
- Skaidykite sudėtingus sakinius. Kuo trumpesnis ir aiškesnis sakinys, tuo tikslesnį vertimą gausite. Ilgi sakiniai su daug šalutinių sakinių – tai automatinių vertėjų silpnoji vieta.
- Patikrinkite kontekstą. Jei verčiate žodį, kuris gali turėti kelias reikšmes, įsitikinkite, kad sistema pasirinko tinkamą. Daugelis vertėjų leidžia matyti alternatyvius variantus.
- Nenaudokite idiomų šaltinio tekste. Jei žinote, kad tekstas bus automatiškai verčiamas, rašykite aiškiai ir tiesiogiai – be perkeltinių reikšmių ir kultūrinių nuorodų.
- Kritiškai skaitykite rezultatą. Net jei vertimas atrodo sklandus, tai nereiškia, kad jis tikslus. Kartais sistema generuoja gramatiškai teisingus, bet prasminius sakinius.
- Naudokite specializuotus įrankius. Medicinos, teisės ar techniniams tekstams yra specializuoti vertimo įrankiai, kurie treniruoti su tos srities terminija ir duoda geresnius rezultatus nei bendrieji vertėjai.
Kai mašina susitinka su žmogumi: ateitis ir dabartinės ribos
Šiandien automatinis vertimas pasiekė tokį lygį, kad daugelyje sričių jis yra tikrai naudingas ir patikimas. Kelionėse, kasdieniame bendravime, greito supratimo tikslais – automatiniai vertėjai yra neįkainojami. Tačiau profesionalūs vertėjai nėra pasmerkti išnykti, ir štai kodėl.
Vertimas nėra tik kalbos konvertavimas – tai kultūrinės žinutės perdavimas. Geras vertėjas ne tik žino abi kalbas, bet ir supranta, kaip ta pati mintis skamba natūraliai tikslinės kalbos kultūriniame kontekste. Jis žino, kada verta nukrypti nuo originalaus teksto struktūros, kad išsaugotų jo dvasią. Jis gali pajusti autoriaus toną ir stilių ir perteikti juos kita kalba. Šito automatinės sistemos dar nemoka – ir greičiausiai dar ilgai nemokės.
Tačiau tai, kas jau vyksta ir greičiausiai taps norma, yra vadinamasis žmogaus ir mašinos bendradarbiavimas. Vertėjas naudoja automatinį vertimą kaip pirmą juodraštį, kurį tada redaguoja ir tobulina. Tai žymiai pagreitina darbą ir leidžia vertėjui sutelkti dėmesį į sudėtingesnes vietas, o ne leisti laiką verčiant akivaizdžias frazes.
Kitas įdomus vystymosi kryptis – realaus laiko kalbos vertimas. Jau dabar yra įrankių, kurie gali versti kalbą beveik realiu laiku pokalbio metu. Technologija dar nėra tobula, bet ji tobulėja labai greitai. Galima nedrąsiai prognozuoti, kad per ateinančius dešimt metų kalbos barjeras kasdieniniame bendravime tarp žmonių, kalbančių skirtingomis kalbomis, praktiškai išnyks.
Tačiau yra vienas dalykas, kurio nereikėtų pamiršti: kuo labiau pasitikime automatiniais vertėjais, tuo svarbiau suprasti, kaip jie veikia ir kur gali suklysti. Žmogus, kuris akląi pasitiki mašinos vertimu neturėdamas jokio kritinio supratimo, rizikuoja perduoti neteisingą informaciją, sukurti nesusipratimą ar net padaryti rimtų klaidų profesiniame kontekste. Technologija yra įrankis, o ne autoritetas – ir šis principas galioja automatiniam vertimui lygiai taip pat, kaip ir bet kuriam kitam skaitmeniniam įrankiui.