“Grāmatiņš” Tehniskā Specifikācija

 

Projekta mērķis ir izveidot mākslīgā intelektā balstītu produktu, līdzīgu kā visiem zināmais Grammarly, kuru varētu lietot, lai automātiski atrastu un salabotu komatu, rakstības, teikuma struktūras un stila kļūdas tieši latviešu valodas tekstā. Šobrīd pieejamie gramatikas labošanas risinājumi “Tildes birojs” programmatūra aprobežojas ar vārdu gramatikas labojumiem vai vienkāršiem pieturzīmju labojumiem, kuri balstīti uz likumiem. Vēl joprojām šie risinājumi pat nav spējīgi labot teikuma kļūdas saliktiem sakārtotiem teikumiem vai divdabja teicieniem. Taču ar mūsdienās pieejamiem risinājumiem mākslīgajā intelektā šādas kļūdas būtu ir iespējams izlabot.

Projektu plānots implementēt PyTorch matemātiskajā satvarā, kurš ir īpaši piemērots dziļās mašīnmācīšanās modeļu implementācijai. Izveidotos modeļus plānots apmācīt, izmantojot RTU HPC superdatoru un līdz ar projekta veikšanu plānots strādāt pie zinātniskām publikācijām. Projekta ietvaros plānots pielietot valodas modelēšanas uzdevumu ar nepārraudzīto apmācību. Tiks izmantoti Transformer tipa modeļi kā GPT-3, BERT u.c., kuri tiks pielāgoti latviešu valodas datu kopām. Tiks implementēta gan regresīva nākamo vārdu vai pieturzīmju prognozēšanas funkcija, gan vārdu un pieturzīmju maskēšanas funkcija. Iegūtos rezultātus plānots testēt arī ar runas atpazīšanas modeļiem, kurus piedāvā Tilde. Visbeidzot produktu plānots implementēt kā Python FastAPI servisu un tam izveidot ērtu lietotāju interfeisu, lai attēlotu iegūtos rezultātus. Lietotāju interfeisu plānots implementēt kā Web lietotni, izmantojot Python Flask. Lai implementētu Microsoft Word programatūras spraudni plānots izmanto Visual Studio, C# un .net vidi, bet Chrome interneta pārlūka spraudņa implementācijai plānots izmantot TypeScript un JavaScript.

 

  1. PyTorch balstīts pieturzīmju un stila pārveidošanas modelis:

    • Sagatavot datu latviešu valodas korpusu datu kopas: LU un RTU maģistru un disertāciju darbi (8mil teikumi), latviešu grāmatu korpuss (50mil teikumi), latviešu wikipedia korpuss (6.2mil teikumi)

    • Augmentēt datus ar tipiskajām gramatikas un stila kļūdām, izmantojot algoritmus, kurus sastāda profesionāli latviešu valodas redaktori kā arī, ņemot datus no netīru datu avotiem, kā, piemēram, skolēnu ZPD darbi vai interneta portālu komentāri.

    • Implementēt dziļās apmācības modeli, izmantojot PyTorch, lai veiktu dabiskās valodas apstrādes uzdevumus, piemēram, gramatikas korekciju, teikumu aizpildīšanu un teksta stila pārnesi. Vēlams izmantot transformer, BERT tipa modeli, piemēram mT5.

    • Priekšapstrādājiet un tokenizējiet ievades teksta datus, izmantojot PyTorch iebūvētās funkcionalitātes. Vēlams izmantot torchtext.

    • Uzlabot un pielāgot modela arhitektūru, kas ietver rekurentus neironu tīklus, 1D konvolūciju neironu tīklus, transformerus, vārdu iegultnes vai to kombināciju.

    • Apmācīt modeli, izmantojot PyTorch apmācības un optimizācijas algoritmus, piemēram, Adamu, Radam.

    • Novērtēt modeli, izmantojot dažādas metrikus, piemēram, precizitāti, atgriešanos, un F1-score.

    • Samazināt modeļa apjomu, ievērojami nesamazinot metriku rezultātus, tā, lai to var uzstādīt uz mazjaudīgiem portatīviem datoriem.

  2. TypeScript balstīts NodeJS serveris un Chrome spraudnis:

    • Izveidot REST API ar SwaggerUI, ExpressJS tīmekļa lietojumu, izmantojot TypeScript “Grāmatiņš” produktam.

    • Izmantot ReactJS un react-native kā priekšējās sistēmas pamatu un attīstītu lietotāja saskarni.

    • Izmantot WebSockets reāllaika sakaru nodrošināšanai starp klientu un serveri.

    • Izmantot TypeScript tipu pārbaudes funkcionalitātes, lai nodrošinātu tipu drošību un novērstu izpildlaika kļūdas.

    • Izmantot populāras bibliotēkas, piemēram, Redux vai MobX stāvokļa pārvaldībai un lietotāja interakciju apstrādei.

    • Izmantot CSS priekšapstrādētājus, piemēram, Sass vai Less, lai uzlabotu lietotāja saskarni un optimizētu stila proces

  3. .net C# balstīts MS Word spraudnis:

    1. Saderība: “Grāmatiņš” spraudnis ir saderīgs ar Microsoft Word operētājsistēmās Windows un macOS. Tas atbalsta Word 2016 un vēlākas versijas.

    2. Instalēšana: Spraudni var instalēt, izmantojot Microsoft Office veikalu vai caur “Grāmatiņš” vietni. Lai uzstādītu to Windows, ir nepieciešamas administratīvās tiesības.

    3. Lietotāja interfeiss: Spraudnis parādās kā atsevišķa cilne MS Word, ļaujot lietotājiem piekļūt tā funkcijām no Word interfeisa. Lietotāja interfeiss ietver iespējas ieslēgt vai izslēgt dažāda veida ieteikumus un skatīt papildu informāciju par sniegtajiem ieteikumiem.

    4. Funkcijas: “Grāmatiņš” Word spraudnis piedāvā gramatikas, pareizrakstības un interpunkcijas pārbaudi, kā arī uzlabotas funkcijas, piemēram, stila ieteikumus, kontekstualizētus vārdu ieteikumus un žanra specifiskus rakstīšanas ieteikumus.

    5. Veiktspēja: Spraudnis ir izstrādāts, lai darbotos nevainojami ar Word, nodrošinot reāllaika ieteikumus, kad lietotāji raksta. Tā arī ietver bezsaistes režīmu situācijās, kad nav pieejama interneta savienojuma.

    6. Drošība: Spraudnis izmanto šifrēšanu, lai nodrošinātu, ka lietotāju dati ir aizsargāti, pārraidot tos uz un no “Grāmatiņa” serveriem. Turklāt lietotāju dati tiek anonimizēti un apkopoti, lai aizsargātu lietotāju privātumu.

    7. Atjauninājumi: Spraudnis tiek regulāri atjaunināts, lai novērstu kļūmes un piedāvātu jaunas funkcijas. Atjauninājumi tiek automātiski instalēti fona režīmā, neprasa lietotāja iejaukšanos.

Zinātniskās literatūras priekš-izpēte

Šīs nodaļas sastādītas angliski, jo komandā visus materiālus parasti apkopojam angliski, jo visa terminoloģija un zinātniskie darbi ir šajā valodā, taču šos modeļus var un tie tiks pielietoti latviešu valodai.

Gramatikas un pieturzīmju modeļi

PaperModelDatasetBest result (Accuracy, f1, …)
(grammarly model) GECToR – Grammatical Error Correction: Tag, Not Rewrite: https://www.semanticscholar.org/paper/GECToR-%E2%80%93-Grammatical-Error-Correction%3A-Tag%2C-Not-Omelianchuk-Atrasevych/9f6b659033da6fff11da1af64fea7c0d728ab433Pretrained BERT transformer model.Synthetic data: 9M parallel sentences with synthetically generated grammatical errors. Training data: National University of Singapore Corpus of Learner English (NUCLE); Lang-8 Corpus 
of Learner English (Lang-8); FCE dataset; Write & Improve + LOCNESS Corpus; Evaluation dataset: CoNLL2014 test setPrecision - 77.5; Recall - 42.6; F_0_5 - 58.6;  
Improving Grammatical Error Correction via Pre-Training a   
Copy-Augmented Architecture with Unlabeled Data: https://www.semanticscholar.org/paper/Improving-Grammatical-Error-Correction-via-a-with-Zhao-Wang/f828b3c378434b8945c4e21472e7e2efa908b6ebDenoising auto-encoderLabeled - NUCLE, Lang-8 Unlabeled - One Billion Word BenchmarkPrecision - 71.5; Recall - 38.6; F_0_5 - 61.1;
A Multilayer Convolutional Encoder-Decoder Neural Network   
for Grammatical Error Correction:https://www.semanticscholar.org/paper/A-Multilayer-Convolutional-Encoder-Decoder-Neural-Chollampatt-Ng/6ed38b0cb510fa91434eb63ab464bee66c9323c6Multilayer Convolutional Encoder-Decoder  
Neural NetworkTraining: Lang-8, NUCLE Evaluation: CoNLL-2014 test setPrecision - 68.5; Recall - 33.1; F_0_5 - 54.7; 
LM-Critic:   
Language Models for Unsupervised Grammatical Error Correction: https://www.semanticscholar.org/paper/LM-Critic%3A-Language-Models-for-Unsupervised-Error-Yasunaga-Leskovec/9cac09098aa611bd9a94d080d2401840632ab16fGPT2 LM Critic modelTraining: Unlabeled One-billion-word corpu dataset. Evaluation: CoNLL2014 test, BEA-2019 dev / test, GMEG-yahoo and GMEGwiki tests,Precision - 64.4; Recall - 47.1; F_0_5 - 55.5;
Mining Error Templates for Grammatical Error Correction: https://www.semanticscholar.org/paper/Mining-Error-Templates-for-Grammatical-Error-Zhang-Jiang/a4436ee59d7fb430a49fdc2d58f0a52b7a772f5bBaseline GEC model + ET (Error Template)Chinese language datasets: CTC-20216; NLPCC-2018; MuCGECPrecision - 64.29; Recall - 67.28; F_0_5 - 59.21;

 

Pārfrāzēšanas modeļi

RepoModelData
https://github.com/vsuthichai/paraphrasera bidirectional LSTM encoder and LSTM decoder with attentionThe dataset used to train this model is an aggregation of many different public datasets. To name a few:
para-nmt-5m  
Quora question pair  
SNLI  
Semeval  
https://github.com/RasaHQ/paraphraserIt uses a transformer based natural language generation modelwhich has been trained on a large text corpus mined from the web
https://github.com/iamaaditya/neural-paraphrase-generationResidual LSTM/LSTMAll the data is in public domain and collected from various sources
https://github.com/wyu-du/Reinforce-Paraphrase-GenerationReinforcement modelQuora Question Pair Dataset, Twitter URL Paraphrasing Dataset
https://github.com/dev-chauhan/PQG-pytorchhttps://aclanthology.org/C18-1230.pdfQuora dataset
https://github.com/BH-So/unsupervised-paraphrase-generationhttps://arxiv.org/abs/2006.05477 
https://github.com/pedrodiamel/pytorch-paraphraserAttention NMT 
Embedded Representation  
Manifoldpara-nmt-5m 
Quora  
snli  
PPDB  
Semeval  
https://github.com/ochotzas/GreekParaphraserDesktop  
https://github.com/avidale/dependency-paraphraser  
https://github.com/stanford-oval/genienlp  
https://github.com/nlpcloud/nlpcloud-python  
https://github.com/PrithivirajDamodaran/Parrot_Paraphraser  

Stila pārnese tekstam bez paralēlām datu kopām

NamePublicatonYearPretrained modelsData pairingCode
So Different Yet So Alike! Constrained Unsupervised Text Style Transferhttps://aclanthology.org/2022.acl-long.32.pdf2022-Described in 3.2.1.https://github.com/abhinavkashyap/dct
WIP     
Efficient Reinforcement Learning for Unsupervised Controlled Text Generationhttps://arxiv.org/pdf/2204.07696.pdf2022-random / not described-
Civil Rephrases Of Toxic Texts With Self-Supervised Transformershttps://arxiv.org/pdf/2102.05456.pdf2021https://github.com/google-research/text-to-text-transfer-transformer#released-model-checkpointsDescribed in 3https://github.com/LeoLaugier/conditional-auto-encoder-text-to-text-transfer-transformer
Multi-Style Transfer with Discriminative Feedback on Disjoint Corpushttps://arxiv.org/pdf/2010.11578.pdf2021-random / not described-
STYLEPTB: A Compositional Benchmark for Fine-grained Controllable Text Style Transferhttps://arxiv.org/pdf/2104.05196.pdf2021-Figure 3https://github.com/lvyiwei1/StylePTB/
On Learning Text Style Transfer with Direct Rewardshttps://arxiv.org/pdf/2010.12771.pdf2021-Described in 3.1.https://github.com/yixinL7/Direct-Style-Transfer
Collaborative Learning of Bidirectional Decoders for Unsupervised Text Style Transferhttps://aclanthology.org/2021.emnlp-main.729.pdf2021-Random / described in dataset details sectionhttps://github.com/sunlight-ym/CBD_style_transfer
Transductive Learning for Unsupervised Text Style Transferhttps://arxiv.org/pdf/2109.07812.pdf2021in reporandom / not describedhttps://github.com/xiaofei05/TSST
Style Pooling: Automatic Text Style Obfuscation for Improved Classification Fairnesshttps://aclanthology.org/2021.emnlp-main.152.pdf2021in repoDescribed in 3.2.https://github.com/mireshghallah/style-pooling
Generic resources are what you need: Style transfer tasks without task-specific parallel training datahttps://arxiv.org/pdf/2109.04543.pdf2021in repoDescribed in 4.2https://github.com/laihuiyuan/Generic-resources-for-TST
Exploring Non-Autoregressive Text Style Transferhttps://aclanthology.org/2021.emnlp-main.730.pdf2021-random / not describedhttps://github.com/sunlight-ym/nar_style_transfer
Non-parallel text style transfer with domain adaptation and an attention modelhttps://link.springer.com/article/10.1007/s10489-020-02077-52021-random / not describedhttps://github.com/mingxuan007/text-style-transfer-with-adversarial-network-and-domain-adaptation