forked from KEMT/zpwiki
Aktualizovat „pages/students/2016/patrik_pavlisin/dp21/README.md“
This commit is contained in:
parent
dde8bdf7cf
commit
f6c6cbd4be
@ -95,6 +95,7 @@ V preklade má často zmysel kopírovať zriedkavé názvy entít alebo čísla
|
|||||||
## OpenNMT-py tutoriál
|
## OpenNMT-py tutoriál
|
||||||
|
|
||||||
Pri práci na tomto tutoriály som použil školský server idoc, rovnako ako aj voľne dostupný Linuxový program Ubuntu.
|
Pri práci na tomto tutoriály som použil školský server idoc, rovnako ako aj voľne dostupný Linuxový program Ubuntu.
|
||||||
|
|
||||||
Predtým než začneme so samotným tutoriálom je nutné si nainštalovať PyTorch (rámec pre preklad neurónových strojov s otvoreným zdrojom) verziu projektu OpenNMT rovnako ako inštaláciu najnovšej dostupnej verzie knižnice pip. To vykonáme zadaním nasledujúcich príkazov:
|
Predtým než začneme so samotným tutoriálom je nutné si nainštalovať PyTorch (rámec pre preklad neurónových strojov s otvoreným zdrojom) verziu projektu OpenNMT rovnako ako inštaláciu najnovšej dostupnej verzie knižnice pip. To vykonáme zadaním nasledujúcich príkazov:
|
||||||
|
|
||||||
- pip install --upgrade pip
|
- pip install --upgrade pip
|
||||||
@ -108,17 +109,17 @@ Prvým krokom v tutoriály je príprava dát, na to nám poslúži predpripraven
|
|||||||
|
|
||||||
Pre pokračovanie si musíme pripraviť konfiguračný súbor YAML, aby sme určili údaje, ktoré sa použijú:
|
Pre pokračovanie si musíme pripraviť konfiguračný súbor YAML, aby sme určili údaje, ktoré sa použijú:
|
||||||
|
|
||||||
-# toy_en_de.yaml
|
|
||||||
-
|
- -# toy_en_de.yaml
|
||||||
-## Where the samples will be written
|
- -## Where the samples will be written
|
||||||
- save_data: toy-ende/run/example
|
- save_data: toy-ende/run/example
|
||||||
-## Where the vocab(s) will be written
|
- -## Where the vocab(s) will be written
|
||||||
- src_vocab: toy-ende/run/example.vocab.src
|
- src_vocab: toy-ende/run/example.vocab.src
|
||||||
- tgt_vocab: toy-ende/run/example.vocab.tgt
|
- tgt_vocab: toy-ende/run/example.vocab.tgt
|
||||||
-# Prevent overwriting existing files in the folder
|
- -# Prevent overwriting existing files in the folder
|
||||||
- overwrite: False
|
- overwrite: False
|
||||||
-
|
|
||||||
-# Corpus opts:
|
- -# Corpus opts:
|
||||||
- data:
|
- data:
|
||||||
- corpus_1:
|
- corpus_1:
|
||||||
- path_src: toy-ende/src-train.txt
|
- path_src: toy-ende/src-train.txt
|
||||||
@ -126,23 +127,26 @@ Pre pokračovanie si musíme pripraviť konfiguračný súbor YAML, aby sme urč
|
|||||||
- valid:
|
- valid:
|
||||||
- path_src: toy-ende/src-val.txt
|
- path_src: toy-ende/src-val.txt
|
||||||
- path_tgt: toy-ende/tgt-val.txt
|
- path_tgt: toy-ende/tgt-val.txt
|
||||||
-...
|
|
||||||
|
...
|
||||||
|
|
||||||
Z tejto konfigurácie môžeme zostaviť slovnú zásobu, ktorá bude potrebná na trénovanie modelu:
|
Z tejto konfigurácie môžeme zostaviť slovnú zásobu, ktorá bude potrebná na trénovanie modelu:
|
||||||
|
|
||||||
- onmt_build_vocab -config toy-ende/toy_en_de.yaml -n_sample 10000
|
- onmt_build_vocab -config toy-ende/toy_en_de.yaml -n_sample 10000
|
||||||
|
|
||||||
|
|
||||||
Aby sme mohli model trénovať, musíme do konfiguračného súboru YAML pridať:
|
Aby sme mohli model trénovať, musíme do konfiguračného súboru YAML pridať:
|
||||||
- cesty slovnej zásoby, ktoré sa budú používať (v tomto prípade cesty vygenerované programom onmt_build_vocab)
|
|
||||||
- tréning špecifických parametrov.
|
-- cesty slovnej zásoby, ktoré sa budú používať (v tomto prípade cesty vygenerované programom onmt_build_vocab)
|
||||||
|
|
||||||
|
-- tréning špecifických parametrov.
|
||||||
|
|
||||||
Pridáme do YAML konfiguračného súboru nasledujúce riadky:
|
Pridáme do YAML konfiguračného súboru nasledujúce riadky:
|
||||||
|
|
||||||
-# Vocabulary files that were just created
|
- -# Vocabulary files that were just created
|
||||||
- src_vocab: toy-ende/run/example.vocab.src
|
- src_vocab: toy-ende/run/example.vocab.src
|
||||||
- tgt_vocab: toy-ende/run/example.vocab.tgt
|
- tgt_vocab: toy-ende/run/example.vocab.tgt
|
||||||
-
|
- -# Where to save the checkpoints
|
||||||
-# Where to save the checkpoints
|
|
||||||
- save_model: toy-ende/run/model
|
- save_model: toy-ende/run/model
|
||||||
- save_checkpoint_steps: 500
|
- save_checkpoint_steps: 500
|
||||||
- train_steps: 1000
|
- train_steps: 1000
|
||||||
@ -153,8 +157,11 @@ Potom už len stačí spustiť proces trénovania:
|
|||||||
- onmt_train -config toy-ende/toy_en_de.yaml
|
- onmt_train -config toy-ende/toy_en_de.yaml
|
||||||
|
|
||||||
V tejto konfigurácii bude bežať predvolený model, ktorý sa skladá z dvojvrstvového modulu LSTM s 500 skrytými jednotkami v kodéri aj v dekodéri.
|
V tejto konfigurácii bude bežať predvolený model, ktorý sa skladá z dvojvrstvového modulu LSTM s 500 skrytými jednotkami v kodéri aj v dekodéri.
|
||||||
|
|
||||||
Posledným krokom je samotný preklad, ktorý vykonáme zadaním nasledujúceho príkazu:
|
Posledným krokom je samotný preklad, ktorý vykonáme zadaním nasledujúceho príkazu:
|
||||||
onmt_translate -model toy-ende/run/model_step_1000.pt -src toy-ende/src-test.txt -output toy-ende/pred_1000.txt -verbose
|
|
||||||
|
- onmt_translate -model toy-ende/run/model_step_1000.pt -src toy-ende/src-test.txt -output toy-ende/pred_1000.txt -verbose
|
||||||
|
|
||||||
Výsledkom je model, ktorý môžeme použiť na predpovedanie nových údajov. To prebieha spustením tzv. Beam search. Beam search sa využíva za účelom udržania ľahšieho ovládania vo veľkých systémoch s nedostatkom pamäte na uloženie celého vyhľadávacieho stromu. To vygeneruje predpovede do výstupného súboru toy-ende/pred_1000.txt . V mojom prípade proces prekladu trval na školskom serveri idoc približne 5 hodín zatiaľ čo v Linuxovom prostredí Ubuntu 1 hodinu. V obidvoch prípadoch boli výsledky dosť hrozné, pretože demo súbor údajov bol dosť malý.
|
Výsledkom je model, ktorý môžeme použiť na predpovedanie nových údajov. To prebieha spustením tzv. Beam search. Beam search sa využíva za účelom udržania ľahšieho ovládania vo veľkých systémoch s nedostatkom pamäte na uloženie celého vyhľadávacieho stromu. To vygeneruje predpovede do výstupného súboru toy-ende/pred_1000.txt . V mojom prípade proces prekladu trval na školskom serveri idoc približne 5 hodín zatiaľ čo v Linuxovom prostredí Ubuntu 1 hodinu. V obidvoch prípadoch boli výsledky dosť hrozné, pretože demo súbor údajov bol dosť malý.
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user