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
|
||||
|
||||
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:
|
||||
|
||||
- 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ú:
|
||||
|
||||
-# toy_en_de.yaml
|
||||
-
|
||||
-## Where the samples will be written
|
||||
|
||||
- -# toy_en_de.yaml
|
||||
- -## Where the samples will be written
|
||||
- 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
|
||||
- tgt_vocab: toy-ende/run/example.vocab.tgt
|
||||
-# Prevent overwriting existing files in the folder
|
||||
- -# Prevent overwriting existing files in the folder
|
||||
- overwrite: False
|
||||
-
|
||||
-# Corpus opts:
|
||||
|
||||
- -# Corpus opts:
|
||||
- data:
|
||||
- corpus_1:
|
||||
- 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:
|
||||
- path_src: toy-ende/src-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:
|
||||
|
||||
- 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ť:
|
||||
- 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:
|
||||
|
||||
-# Vocabulary files that were just created
|
||||
- -# Vocabulary files that were just created
|
||||
- src_vocab: toy-ende/run/example.vocab.src
|
||||
- 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_checkpoint_steps: 500
|
||||
- train_steps: 1000
|
||||
@ -153,8 +157,11 @@ Potom už len stačí spustiť proces trénovania:
|
||||
- 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.
|
||||
|
||||
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ý.
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user