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 [2012/06/28 09:04] zeman Reorganizace a vyházení některých nepotřebných pasáží. |
user:zeman:malt-parser [2013/07/11 22:15] (current) zeman Odstraněn záznam o ladění před 3 lety. |
||
---|---|---|---|
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 |
- | 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& |
- | ===== Pokusy | + | Celá trénovací data mají 68562 vět (někde mám chybně uvedeno 68563 kvůli nejasnostem |
- | 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& | + | ===== Jak se to pouští? ===== |
- | ==== BEST: Javová implementace libsvm, splitting trick ==== | + | * Přejít do adresáře ''/ |
+ | * Skript '' | ||
+ | * Složka ''/ | ||
+ | * Dosud neexistuje žádný Makefile. Pouštělo se to pomocí skriptu '' | ||
- | Vyžaduje více času a paměti než céčková implementace, | + | ===== Co dál? ===== |
+ | |||
+ | * Upravit švédskou definici rysů, aby fungovala i s& | ||
+ | * 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ů používám jako dočasný adresář ''/ | ||
+ | * 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ů. | ||
+ | |||
+ | ===== Nové výsledky s Malt Parserem 1.7 ===== | ||
+ | |||
+ | 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 30: | 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 | 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 85: | Line 79: | ||
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 ==== | + | ===== Splitting trick podle slovního poddruhu, jlibsvm |
- | + | ||
- | | 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 ==== | + | |
Snižuje časovou náročnost, | Snižuje časovou náročnost, | ||
Line 124: | Line 100: | ||
| 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 | | ||
- | ==== 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 163: | Line 118: | ||
| full | 1474032 | 8 dní 6 h | 40110 s = 11:09 h | 1 věta / 4,33 s | 85,94 % | 2.-11.6.2010 | | | | full | 1474032 | 8 dní 6 h | 40110 s = 11:09 h | 1 věta / 4,33 s | 85,94 % | 2.-11.6.2010 | | | ||
- | ==== 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 | | ||
Line 202: | Line 137: | ||
| full | 1474119 | 7 dní 11 h | 36260 s = 10:04 h | 1 věta / 3,91 s | 81,88 % | 7.-15.6.2010 | | | | full | 1474119 | 7 dní 11 h | 36260 s = 10:04 h | 1 věta / 3,91 s | 81,88 % | 7.-15.6.2010 | | | ||
- | ==== Covproj / covnonproj / nivrestandard / nivreeager, java libsvm, švédské rysy ==== | + | ===== Covproj / covnonproj / nivrestandard / nivreeager, java libsvm, švédské rysy ===== |
Všechny trénovací procesy hlásí "The function cannot be initialized." | Všechny trénovací procesy hlásí "The function cannot be initialized." | ||
- | |||
- | ==== Co dál? ==== | ||
- | |||
- | * Upravit švédskou definici rysů, aby fungovala i s& | ||
- | * 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ů používám jako dočasný adresář ''/ | ||
- | * 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ů. | ||