Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
user:zeman:malt-parser [2010/05/13 13:25] zeman liblinear. |
user:zeman:malt-parser [2013/07/11 18:56] zeman Archivní příznak u kapitoly. |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Malt parser ====== | + | ====== Malt parser: pokusy s PDT 2.0 ====== |
http:// | http:// | ||
- | Rychlý úvod do práce s Malt parserem, který tu dřív byl, už neplatí, protože se týkal starého | + | Od května 2012 používám |
- | ===== Pokusy s PDT 2.0 ===== | + | Podle Joakima trénování na celém |
- | 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& | + | Celá trénovací data mají 68562 vět (někde mám chybně uvedeno 68563 kvůli nejasnostem s& |
- | Trénování bez " | + | ===== Jak se to pouští? ===== |
- | | Algoritmus | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | | + | * Přejít do adresáře '' |
- | | nivreeager | 24 dní 17 hodin 13 minut (2135575 s) | 180062 s (50:01 hodin) | 1 věta / 19,4 s | 80,73 % | | + | * Skript '' |
- | | nivrestandard | 32 dní 16 hodin 47 minut (2825227 s) | 225021 s (62:30 hodin) | 1 věta / 24,3 s | 79,98 % | | + | * Složka '' |
- | | covproj | 60 dní 15 hodin 28 minut (5239706 s) | 348001 s (96:40 hodin) | 1 věta / 37,5 s | 79,69 % | | + | * Dosud neexistuje žádný Makefile. Pouštělo se to pomocí skriptu |
- | | covnonproj | Skončilo restartem fireball6 někdy | + | |
- | | 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 ('' | + | |
- | | stackeager | 39 dní 11 hodin 38 minut (3375472 | + | |
- | 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. | + | ===== Co dál? ===== |
- | | N | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | | + | * Upravit |
- | | 1000 | 5 minut | 1 hodina | 2,5 věty / s | 71,49 % | | + | * Odladit '' |
- | | 2000 | 24 minut | 5522 s (1,5 hodiny) | 1,7 věty / s | 75,02 % | | + | * 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ář '' |
- | | 5000 | 4 hod 40 min | 9914 s (2 3/4 hod) | 0,9 věty / s | 77,72 % | | + | * Vyhodnotit to ještě i na e-testu a připsat to na stránku o českém parsingu. |
- | | 10000 | 22 hod 05 min | 21865 s (6 hodin) | 0,4 věty / s | 79,28 % | | + | * Zkusit hlasování pětitisícových kusů. |
- | | 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 ''/ | + | |
- | Podívat se na LEMMA místo FORM? | + | ===== Nové výsledky s Malt Parserem 1.7 ===== |
- | ==== Výpočetní náročnost ==== | + | Experimenty probíhaly v červnu 2013. Měl jsem dva cíle: 1. Natrénovat nové modely, protože ty staré nejsou kompatibilní s novou verzí parseru, a 2. získat výsledky na e-testu, protože dosud jsem pracoval jen s d-testem. I když jsem novou verzi parseru pouštěl se stejnými parametry jako před třemi lety tu starou, dostal jsem jiné výsledky (nepatrně horší). |
- | Na jakých strojích to běží (LRC): | + | D-test (9270 vět): |
- | (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). | + | LAS = 80,04 % |
+ | UAS = 85,96 % | ||
+ | LAB = 86,43 % | ||
+ | Běželo na stroji lucifer5 | ||
+ | learning time (na trénovacích datech) = 139 hodin, tj. necelých 6 dní | ||
+ | parsing time = 7 hodin (25559301 ms), tj. 1 věta průměrně za 2,76 s | ||
- | === orion7 === | + | E-test (10148 vět): |
- | procesor 64bit Intel Xeon 2 GHz | + | LAS = 79,80 % |
- | paměť 32 GB, ale proces zabírá jen 2,2 GB | + | UAS = 85,76 % |
- | Je to náročné | + | LAB = 86,24 % |
+ | Běželo na stroji hydra1 (AMD Opteron 2518 GHz) s vyhrazenými 30 GB paměti: | ||
+ | learning time (na trénovacích a d-test datech) = 221 hodin, tj. něco přes 9 dní | ||
+ | parsing time = 9 hodin (34135285 ms), tj. 1 věta průměrně za 3,36 s | ||
- | === sol5 === | + | ===== BEST: Javová implementace libsvm, splitting trick ===== |
- | procesor 64bit dual core AMD Opteron 2 GHz | + | |
- | paměť 16 GB, ale proces zabírá jen 4,1 GB | + | |
- | ==== Nastavení od Švédů ==== | + | Vyžaduje více času a paměti |
- | + | ||
- | 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. | + | |
- | + | ||
- | < | + | |
- | $PARSINGROOT/ | + | |
- | end | + | |
- | foreach i (dtrain dtest) | + | |
- | $PARSINGROOT/ | + | |
- | end | + | |
- | foreach i (25000 30000 35000 40000 45000 55000 60000 65000) | + | |
- | split_conll.pl < dtrain.conll2009tags.conll -head $i dtrain-$i.conll2009tags.conll /dev/null | + | |
- | end</ | + | |
- | + | ||
- | Učení: | + | |
- | + | ||
- | < | + | |
- | + | ||
- | Rozbor: | + | |
- | + | ||
- | < | + | |
- | + | ||
- | Vyhodnocení: | + | |
- | + | ||
- | < | + | |
- | + | ||
- | 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 | TÚloha | Délka trénování | PÚloha | Délka parsingu | Rychlost parsingu | Úspěšnost | | + | |
- | | 1000 | | 1 minuta | | 1248 s = 20:48 min | 1 věta / 0,13 s | 74,63 % | | + | |
- | | 2000 | | 4 minuty | | 1885 s = 31:25 min | 1 věta / 0,20 s | 77,73 % | | + | |
- | | 5000 | | 30 minut | | 5534 s = 1:32 hod | 1 věta / 0,60 s | 80,18 % | | + | |
- | | 10000 | | 1:30 hod | | 7171 s = 2:00 hod | 1 věta / 0,77 s | 82,11 % | | + | |
- | | 20000 | | 10:09 hod | | 17139 s = 4:45 hod | 1 věta / 1,85 s | 83,65 % | | + | |
- | | 25000 | 984089 | 12:12 hod | 984241 | 16031 s = 4:27 hod | 1 věta / 1,73 s | 84,24 % | | + | |
- | | 30000 | 984090 | 21:54 hod | 984266 | 19280 s = 5:21 hod | 1 věta / 2,08 s | 84,54 % | | + | |
- | | 35000 | 984091 | 21:09 hod | 984242 | 22018 s = 6:07 hod | 1 věta / 2,38 s | 84,89 % | | + | |
- | | 40000 | 984092 | spadlo na '' | + | |
- | | 45000 | 984093 | 38:18 hod | 1008955 | 26853 s = 7:28 hod | 1 věta / 2,90 s | 85,35 % | | + | |
- | | 50000 | 984030 | 49:55 hod | 984336 | 37224 s = 10:20 hod | 1 věta / 4,02 s | 85,47 % | | + | |
- | | 55000 | 984094 | spadlo na '' | + | |
- | | 60000 | 984095 | spadlo na '' | + | |
- | | 65000 | 984096 | spadlo na '' | + | |
- | | 68563 | | spadlo na '' | + | |
- | + | ||
- | ==== Proč trénování větších modelů padá? ==== | + | |
- | + | ||
- | '' | + | |
- | + | ||
- | < | + | |
- | cd model | + | |
- | less symboltables.sym</ | + | |
- | + | ||
- | Až na jednu výjimku trénování spadlo vždy při budování '' | + | |
- | + | ||
- | Joakim navrhuje, abychom zkusili dělení zjemnit, např. místo CPOSTAGu dělit modely podle slovního poddruhu (druhá pozice | + | |
- | + | ||
- | ==== Javová implementace libsvm ==== | + | |
- | + | ||
- | Předpokládá se, že vyžaduje více času a paměti. Podle dokumentace může dojít i k& | + | |
| N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | | | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | | ||
Line 125: | Line 63: | ||
| 60000 | 1035254 | 7 dní 4:55 h | 34374 s = 9:33 h | 1 věta / 3,71 s | 85,80 % | 9.-17.4.2010 | | | 60000 | 1035254 | 7 dní 4:55 h | 34374 s = 9:33 h | 1 věta / 3,71 s | 85,80 % | 9.-17.4.2010 | | ||
| 65000 | 1035255 | 5 dní 21:01 h | 31378 s = 8:43 h | 1 věta / 3,38 s | 85,96 % | 9.-15.4.2010 | | | 65000 | 1035255 | 5 dní 21:01 h | 31378 s = 8:43 h | 1 věta / 3,38 s | 85,96 % | 9.-15.4.2010 | | ||
- | | full | 1177906, 1305554 | 10 dní 4:40 h | | | | 27.4.-7.5.2010 | | + | | 68563 | 1177906, 1305554 | 10 dní 4:40 h | 46999 s = 13:03 h | 1 věta / 5,07 s | **86,08 %** | 27.4.-14.5.2010 | |
- | ==== Trénovací data rozsekaná na pětitisícové úseky | + | ===== Trénování větších modelů s céčkovou implementací libsvm padá ===== |
- | | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Poznámka | | + | //Malt Parser 1.3 jsem nedokázal použít s céčkovou implementací libsvm, která má být sice rychlejší, |
- | | 00000-04999 | 1021425 | | | | 76,65 % | | | + | |
- | | 05000-09999 | 1021426 | | | | 76,99 % | | | + | |
- | | 10000-14999 | 1021427 | | | | 76,47 % | | | + | |
- | | 15000-19999 | 1021428 | | | | 76,72 % | | | + | |
- | | 20000-24999 | 1021429 | | | | 76,72 % | | | + | |
- | | 25000-29999 | 1021430 | | | | 76,80 % | | | + | |
- | | 30000-34999 | 1021431 | | | | 76,87 % | | | + | |
- | | 35000-39999 | 1021432 | | | | 76,94 % | | | + | |
- | | 40000-44999 | 1021433 | | | | 76,72 % | | | + | |
- | | 45000-49999 | 1021434 | | | | 76,98 % | | | + | |
- | | 50000-54999 | 1021435 | | | | 76,69 % | | | + | |
- | | 55000-59999 | 1021436 | | | | 76,96 % | | | + | |
- | | 60000-64999 | 1021437 | | | | 76,81 % | | | + | |
- | | 65000-68562 | 1021438 | | | | 75,86 % | | | + | |
- | Všechny díly se nakonec podařilo použít, čímž jsme definitivně vyvrátili, že by v& | + | Chybu hlásí '' |
- | Zarážející je ale úspěšnost. Přinejmenším pro první pětitisícový úsek měla být s& | + | < |
+ | cd model | ||
+ | less symboltables.sym</ | ||
- | === Oprava 6.4.2010 === | + | Až na jednu výjimku trénování spadlo vždy při budování '' |
+ | |||
+ | Joakim navrhuje, abychom zkusili dělení zjemnit, např. místo CPOSTAGu dělit modely podle slovního poddruhu (druhá pozice české značky). Pak by dílčí modely byly menší a libsvm by třeba nespadlo. Ve skutečnosti budu asi muset zjemňovat jiným způsobem, protože právě u podstatných jmen žádné zvláštní dělení na poddruhy neexistuje. Mohly by ale pomoct pády. | ||
- | Předcházející pokusy s& | + | ===== Trénovací data rozsekaná na pětitisícové úseky ===== |
| N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Poznámka | | | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Poznámka | | ||
Line 169: | Line 97: | ||
| 65000-68562 | 1032115 | 12:43 min | | | 79,69 % | | | | 65000-68562 | 1032115 | 12:43 min | | | 79,69 % | | | ||
- | ==== Splitting trick podle slovního poddruhu, jlibsvm ==== | + | ===== Splitting trick podle slovního poddruhu, jlibsvm ===== |
+ | |||
+ | Snižuje časovou náročnost, | ||
| N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | | | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | | ||
Line 188: | Line 118: | ||
| full | 1177879 | 8 dní 7 h | 38957 s = 10:49 h | 1 věta / 4,20 s | 86,02 % | 27.4.-6.5.2010 | | | full | 1177879 | 8 dní 7 h | 38957 s = 10:49 h | 1 věta / 4,20 s | 86,02 % | 27.4.-6.5.2010 | | ||
- | ==== Splitting trick podle slovního poddruhu, clibsvm | + | ===== Stackeager, java libsvm, švédské rysy ===== |
+ | |||
+ | < | ||
+ | ----------------------------------------------------------------------------------------------------------------- | ||
+ | 1473932 0.55500 malt02000. zeman r | ||
+ | 1473933 0.55500 malt05000. zeman r | ||
+ | 1473934 0.55500 malt10000. zeman r | ||
+ | 1473935 0.55500 mert.31733 zeman r | ||
+ | 1473956 0.55500 malt20000. zeman r | ||
+ | 1473957 0.55500 malt25000. zeman r | ||
+ | 1473958 0.55500 malt30000. zeman r | ||
+ | 1473982 0.55500 malt35000. zeman r | ||
+ | 1473983 0.55500 malt40000. zeman r | ||
+ | 1473984 0.55500 malt45000. zeman r | ||
+ | 1474005 0.55500 malt50000. zeman r | ||
+ | 1474009 0.55500 malt55000. zeman r | ||
+ | 1474010 0.55500 malt60000. zeman r | ||
+ | 1474011 0.55500 malt65000. zeman r | ||
+ | 1474032 0.55500 malt-full. zeman r | ||
+ | 1474041 0.45734 pardec.03. zeman r | ||
+ | 10:42 lrc-two:/ | ||
+ | </ | ||
| N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | Poznámka | | | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | Poznámka | | ||
- | | 1000 | 1177881 | + | | 1000 | 1473892 |
- | | 2000 | 1177882 | + | | 2000 | 1473932 |
- | | 5000 | 1177883 | + | | 5000 | 1473933 |
- | | 10000 | 1177884 | + | | 10000 | 1473934 |
- | | 20000 | 1177901 | + | | 20000 | 1473956 |
- | | 25000 | 1177886 | + | | 25000 | 1473957 |
- | | 30000 | 1177887 | + | | 30000 | 1473958 |
- | | 35000 | 1177888 | + | | 35000 | 1473982 |
- | | 40000 | 1177902 | + | | 40000 | 1473983 |
- | | 45000 | 1177890 | + | | 50000 | 1474005 |
- | | 50000 | 1177904 | + | | 55000 | 1474009 |
- | | 55000 | 1177892 | | | | | 27.4.2010 | Náhlá smrt. | | + | | 60000 | 1474010 |
- | | 60000 | 1177893 | + | | 65000 | 1474011 |
- | | 65000 | 1177894 | + | | full | 1474032 |
- | | full | 1177895 | + | |
- | ==== Java liblinear | + | ===== Stackproj, java libsvm, švédské rysy ===== |
+ | |||
+ | < | ||
+ | Všechny úlohy se úspěšně rozeběhly. | ||
+ | job-ID | ||
+ | ----------------------------------------------------------------------------------------------------------------- | ||
+ | 1474106 0.55500 malt02000. zeman r | ||
+ | 1474107 0.55500 malt05000. zeman r | ||
+ | 1474108 0.55500 malt10000. zeman r | ||
+ | 1474109 0.55500 malt20000. zeman r | ||
+ | 1474110 0.55500 malt25000. zeman r | ||
+ | 1474111 0.55500 malt30000. zeman r | ||
+ | 1474112 0.55500 malt35000. zeman r | ||
+ | 1474113 0.55500 malt40000. zeman r | ||
+ | 1474114 0.55500 malt45000. zeman r | ||
+ | 1474115 0.55500 malt50000. zeman r | ||
+ | 1474116 0.55500 malt55000. zeman r | ||
+ | 1474117 0.55500 malt60000. zeman r | ||
+ | 1474118 0.55500 malt65000. zeman r | ||
+ | 1474119 0.55500 malt-full. zeman r | ||
+ | </ | ||
| N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | Poznámka | | | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | Poznámka | | ||
- | | 1000 | 1305892 | + | | 1000 | 1474105 |
- | | 2000 | 1305893 | + | | 2000 | 1474106 |
- | | 5000 | 1306055 | + | | 5000 | 1474107 |
- | | 10000 | 1306056 | + | | 10000 | 1474108 |
- | | 20000 | 1306057 | + | | 20000 | 1474109 |
- | | 25000 | 1306219 | + | | 25000 | 1474110 |
- | | 30000 | 1306220 | + | | 30000 | 1474111 |
- | | 35000 | 1306221 | + | | 35000 | 1474112 |
- | | 40000 | 1306222 | + | | 40000 | 1474113 |
- | | 45000 | 1306223 | + | | 45000 | 1474114 |
- | | 50000 | 1306224 | + | | 50000 | 1474115 |
- | | 55000 | 1306225 | + | | 55000 | 1474116 |
- | | 60000 | 1306226 | + | | 60000 | 1474117 |
- | | 65000 | 1306388 | + | | 65000 | 1474118 |
- | | full | 1306389 | + | | full | 1474119 |
- | ==== Co dál? ==== | + | ===== Covproj / covnonproj / nivrestandard / nivreeager, java libsvm, švédské rysy ===== |
- | * Ještě pustit javovské '' | + | Všechny trénovací procesy hlásí |
- | * Zkusit '' | + | |
- | * Odladit '' | + | |
- | * 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ů | + | |
- | * Vyhodnotit to ještě i na e-testu a připsat to na stránku o českém parsingu. | + | |
- | * Zkusit hlasování pětitisícových kusů. | + | |