Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
user:zeman:malt-parser [2013/06/12 13:35] zeman Jak se to pouští? |
user:zeman:malt-parser [2013/07/11 22:15] (current) zeman Odstraněn záznam o ladění před 3 lety. |
||
---|---|---|---|
Line 3: | Line 3: | ||
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 |
- | Aktualizace květen 2012: Malt Parser 1.7.1 jsem právě rozbalil do ''/ | + | Podle Joakima trénování na celém PDT trvá 3 až 5 dní, a to ještě jen při použití splitting tricku (bez něj několik týdnů). Trénování SVM má kvadratickou složitost vzhledem k& |
- | 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& |
- | + | ||
- | Celá trénovací data mají 68563 vět. Testování je vždy na celém dtestu, tedy 9270 vět. | + | |
===== Jak se to pouští? ===== | ===== Jak se to pouští? ===== | ||
Line 15: | Line 13: | ||
* Přejít do adresáře ''/ | * Přejít do adresáře ''/ | ||
* Skript '' | * Skript '' | ||
- | * Složka ''/ | + | * Složka ''/ |
* Dosud neexistuje žádný Makefile. Pouštělo se to pomocí skriptu '' | * Dosud neexistuje žádný Makefile. Pouštělo se to pomocí skriptu '' | ||
===== Co dál? ===== | ===== Co dál? ===== | ||
- | * Zjistit úspěšnost na e-testu a publikovat ji na stránce o českém parsingu. A možná tam publikovat i LAS, nejenom UAS. | ||
* Upravit švédskou definici rysů, aby fungovala i s& | * Upravit švédskou definici rysů, aby fungovala i s& | ||
* Odladit '' | * Odladit '' | ||
Line 27: | Line 24: | ||
* Zkusit hlasování pětitisícových kusů. | * Zkusit hlasování pětitisícových kusů. | ||
- | ===== BEST: Javová implementace libsvm, splitting trick ===== | + | ===== Nové výsledky s Malt Parserem 1.7 ===== |
- | Vyžaduje více času a paměti než céčková implementace, | + | Experimenty probíhaly v& |
+ | |||
+ | D-test (9270 vět): | ||
+ | LAS = 80,04 % | ||
+ | UAS = 85,96 % | ||
+ | LAB = 86,43 % | ||
+ | Běželo na stroji lucifer5 (Intel Xeon 2394 GHz) s vyhrazenými 30 GB paměti: | ||
+ | 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 | ||
+ | |||
+ | E-test (10148 vět): | ||
+ | LAS = 79,80 % | ||
+ | UAS = 85,76 % | ||
+ | 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 | ||
+ | |||
+ | ===== BEST: Malt parser 1.3, javová implementace libsvm, splitting trick ===== | ||
+ | |||
+ | Vyžaduje více času a paměti než céčková implementace, | ||
| 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 48: | Line 65: | ||
| 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 | | | 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 | | ||
- | Tohle je nejlepší výsledek, jaký jsem zatím | + | ===== Trénování větších modelů |
- | ===== Bez splitting tricku ===== | + | //Malt Parser 1.3 jsem nedokázal použít s céčkovou implementací libsvm, která má být sice rychlejší, ale mně náhodně padala. Postupně jsem od ní zcela upustil a používám pomalejší, ale bezpečnější Javovou implementaci. Přesto tady zatím nechávám tuhle kapitolu, protože odkrývá některé detaily o Malt Parseru |
- | + | ||
- | Trénování bez " | + | |
- | + | ||
- | | 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 ''/ | + | |
- | | 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 s) | 227927 s (63:19 hodin) | 1 věta / 24,6 s | 82,93 % | | + | |
- | + | ||
- | ===== 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. | + | |
- | + | ||
- | < | + | |
- | $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 | + | |
- | end</ | + | |
- | + | ||
- | Učení: | + | |
- | + | ||
- | < | + | |
- | + | ||
- | Rozbor: | + | |
- | + | ||
- | < | + | |
- | + | ||
- | Vyhodnocení: | + | |
- | + | ||
- | < | + | |
- | + | ||
- | ===== Trénování větších modelů s céčkovou implementací libsvm padá ===== | + | |
Chybu hlásí '' | Chybu hlásí '' | ||
Line 100: | Line 78: | ||
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. | 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. | ||
- | |||
- | ===== 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 | | ||
- | | 00000-04999 | 1032102 | | | | | Nevysvětlitelná náhlá smrt během trénování. | | ||
- | | 05000-09999 | 1032103 | 24:24 min | | | 80,59 % | | | ||
- | | 10000-14999 | 1032104 | 31:56 min | | | 80,23 % | | | ||
- | | 15000-19999 | 1032116 | 30:27 min | | | 80,52 % | | | ||
- | | 20000-24999 | 1032106 | 21:35 min | | | 80,45 % | | | ||
- | | 25000-29999 | 1032107 | | | | | Nevysvětlitelná náhlá smrt během trénování. | | ||
- | | 30000-34999 | 1032108 | 28:30 min | | | 80,48 % | | | ||
- | | 35000-39999 | 1032109 | | | | | Nevysvětlitelná náhlá smrt během trénování. | | ||
- | | 40000-44999 | 1032110 | 19:17 min | | | 80,51 % | | | ||
- | | 45000-49999 | 1032111 | 22:54 min | | | 80,62 % | | | ||
- | | 50000-54999 | 1032112 | 22:31 min | | | 80,58 % | | | ||
- | | 55000-59999 | 1032113 | | | | | Nevysvětlitelná náhlá smrt během trénování. | | ||
- | | 60000-64999 | 1032114 | | | | | Nevysvětlitelná náhlá smrt během trénování. | | ||
- | | 65000-68562 | 1032115 | 12:43 min | | | 79,69 % | | | ||
===== Splitting trick podle slovního poddruhu, jlibsvm ===== | ===== Splitting trick podle slovního poddruhu, jlibsvm ===== | ||
Line 141: | Line 101: | ||
===== Stackeager, java libsvm, švédské rysy ===== | ===== 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 | | ||
Line 180: | Line 119: | ||
===== Stackproj, java libsvm, švédské rysy ===== | ===== 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 | |