This is an old revision of the document!
Table of Contents
Malt parser
Rychlý úvod do práce s Malt parserem, který tu dřív byl, už neplatí, protože se týkal starého Malt parseru 0.4 (céčková implementace). Nyní už máme 1.3 (javová implementace). Až se to usadí, budou k ní spouštěcí skripty v repozitáři Parsing v SVN.
Pokusy s PDT 2.0
Malt 1.3. Podle Joakima trénování na celém PDT trvá 3 až 5 dní, a to ještě jen při použití splitting triku (bez něj několik týdnů). Trénování SVM má kvadratickou složitost vzhledem k počtu trénovacích příkladů; těch z PDT vypadnou asi 3 milióny.
Trénování bez “splitting tricku” na celých trénovacích datech.
Algoritmus | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost |
nivreeager | 24 dní 17 hodin 13 minut (2135575 s) | 180062 s (50:01 hodin) | 1 věta / 19,4 s | 80,73 % |
nivrestandard | 32 dní 16 hodin 47 minut (2825227 s) | 225021 s (62:30 hodin) | 1 věta / 24,3 s | 79,98 % |
covproj | 60 dní 15 hodin 28 minut (5239706 s) | 348001 s (96:40 hodin) | 1 věta / 37,5 s | 79,69 % |
covnonproj | Skončilo restartem fireball6 někdy v lednu nebo únoru 2010. V /tmp bohužel nezůstala po výpočtu žádná stopa. | |||
stackproj | 42 dní 12 hodin 55 minut (3675303 s) | 183676 s (51:01 hodin) | 1 věta / 19,8 s | 78,49 % |
stacklazy | Skončilo chybou Java VM (memcpy ) po 36 dnech 14 hodinách 21 minutách | |||
stackeager | 39 dní 11 hodin 38 minut (3375472 s) | 227927 s (63:19 hodin) | 1 věta / 24,6 s | 82,93 % |
Trénování na části trénovacích dat (prvních N vět). Testování je vždy na celém dtestu, tedy 9270 vět.
N | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost |
1000 | 5 minut | 1 hodina | 2,5 věty / s | 71,49 % |
2000 | 24 minut | 5522 s (1,5 hodiny) | 1,7 věty / s | 75,02 % |
5000 | 4 hod 40 min | 9914 s (2 3/4 hod) | 0,9 věty / s | 77,72 % |
10000 | 22 hod 05 min | 21865 s (6 hodin) | 0,4 věty / s | 79,28 % |
20000 | 53 hod 33 min | 47822 s (13 1/4 hodin) | 1 věta / 5,2 s | 80,71 % |
50000 | 19 dní 1 hod 27 min | 76428 s (21 1/4 hodin) | 1 věta / 8,2 s | 82,76 % |
68563 | Skončilo restartem sol5 po 36 dnech. V /tmp bohužel nezůstala po výpočtu žádná stopa. |
Podívat se na LEMMA místo FORM?
Výpočetní náročnost
Na jakých strojích to běží (LRC):
(poznámky typu “ale proces zabírá jen” se týkají prosincových trénování se splitting trickem a s Danovým nastavením).
orion7
procesor 64bit Intel Xeon 2 GHz
paměť 32 GB, ale proces zabírá jen 2,2 GB
Je to náročné na diskové operace?
sol5
procesor 64bit dual core AMD Opteron 2 GHz
paměť 16 GB, ale proces zabírá jen 4,1 GB
Nastavení od Švédů
26.3.2010 po měsíci další pokus pustit to na datech upravených stejným způsobem a se stejnými rysy jako Joakim a Marco. Zpočátku trénink pouze na 1000 větách. Na cosmosu běží paralelně dvě úlohy, které se liší pouze přidělenou pamětí. První úloha dostala 30 GB (na clusteru rezervováno 50) a využila je. Druhá úloha dostala 180 GB, využila zatím 69, ale už dlouho se na nich drží.
28.3.2010: Zjistil jsem, že při převodu dat do formátu, který měl být shodný s Marcovým, jsem omylem vypustil všechna zalomení vět, tj. soubor obsahoval jednu větu o 16001 slovech, navíc nejednoznačně číslovaných. Tak to už se ani nedivím, že to parseru nedělalo dobře.
foreach i (1000 2000 5000 10000 20000 50000) $PARSINGROOT/malt-parser/marco-kuhlmann-czech-settings/conll-pdttags2conll.pl < dtrain-$i.conll > dtrain-$i.conll2009tags.conll end
Co dál?
- Stáhnout céčkovou verzi
libsvm
a zkusit, o kolik bude rychlejší. - Zkusit
liblinear
místolibsvm
. - Jestli nakonec nějak prorazím, bude potřeba opět učesat obalovací skripty. Mj. jsem přišel na to, že ve většině svých skriptů používám jako dočasný adresář
/tmp
místo Milanem důrazně doporučeného/mnt/h/tmp
. Např. na tauri10 jsem tak počmáral 4 GB a proces skončil, protože příslušný svazek byl plný. Tohle by se mj. mělo opravit i u skriptů pro Joshuu a dalších. Jinak jsem taky mohutně čachroval s žádostí o příděl paměti na clusteru (týká se i skriptuqsub.csh
), s konfigurací Maltu atd.