[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
user:zeman:malt-parser [2010/03/31 10:50]
zeman Aktualizace Co dál?
user:zeman:malt-parser [2010/05/28 10:28]
zeman Doběhl švédský test full.
Line 46: Line 46:
 procesor 64bit dual core AMD Opteron 2 GHz procesor 64bit dual core AMD Opteron 2 GHz
 paměť 16 GB, ale proces zabírá jen 4,1 GB paměť 16 GB, ale proces zabírá jen 4,1 GB
- 
- 
- 
- 
- 
- 
- 
- 
- 
  
 ==== Nastavení od Švédů ==== ==== Nastavení od Švédů ====
Line 96: Line 87:
 | 35000 | 984091 | 21:09 hod | 984242 | 22018 s = 6:07 hod | 1 věta / 2,38 s | 84,89 % | | 35000 | 984091 | 21:09 hod | 984242 | 22018 s = 6:07 hod | 1 věta / 2,38 s | 84,89 % |
 | 40000 | 984092 | spadlo na ''sdm0.003.libsvm.mod'' | | | | | | 40000 | 984092 | spadlo na ''sdm0.003.libsvm.mod'' | | | | |
-| 45000 | 984093 | 38:18 hod | 1008955 | | | |+| 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 % | | 50000 | 984030 | 49:55 hod | 984336 | 37224 s = 10:20 hod | 1 věta / 4,02 s | 85,47 % |
 | 55000 | 984094 | spadlo na ''sdm0.004.libsvm.mod'' | | | | | | 55000 | 984094 | spadlo na ''sdm0.004.libsvm.mod'' | | | | |
Line 103: Line 94:
 | 68563 | | spadlo na ''sdm0.004.libsvm.mod'' | | | | | | 68563 | | spadlo na ''sdm0.004.libsvm.mod'' | | | | |
  
 +==== Proč trénování větších modelů padá? ====
 +
 +''sdm0.004.libsvm.mod'' je dílčí model pro hodnotu ''CPOSTAG'' číslo 4. Značky jsou číslovány podle pořadí, v jakém se v trénovacích datech objevily. Pokud tedy všechny podmnožiny trénovacích dat, které zkouším, začínají na začátku trénovacích dat, mají číslování značek stejné. Číslování je také možné ověřit tak, že rozbalíme model, vznikne stejnojmenná složka, v ní se pak podíváme do souboru ''symboltables.sym'' na část ''CPOSTAG'':
 +
 +<code>java -jar ~/nastroje/parsery/malt-1.3/malt.jar -c model -m unpack
 +cd model
 +less symboltables.sym</code>
 +
 +Až na jednu výjimku trénování spadlo vždy při budování ''sdm0.004.libsvm.mod'' a vždy na větších trénovacích datech. Tento model patří podstatným jménům (přesněji: situacím, kdy na vrcholu zásobníku leží podstatné jméno). Tento model, resp. jeho vstupní data, jsou také zřejmě vždy největší. Není sice asi problém s&nbsp;dostupností operační paměti (''svm-train'' spotřebovává řádově stovky megabajtů, přitom má k dispozici desítky gigabajtů), ale vnitřní struktury libsvm asi na tak velká data nejsou připraveny.
 +
 +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.
 +
 +==== Javová implementace libsvm ====
 +
 +Předpokládá se, že vyžaduje více času a paměti. Podle dokumentace může dojít i k&nbsp;drobným odchylkám v&nbsp;úspěšnosti způsobeným odlišným zpracováním racionálních čísel.
 +
 +| N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum |
 +| 1000 | 1032117 | 2:38 min | 1252 s = 20:52 min | 1 věta / 0,14 s | 74,63 % | 6.4.2010 |
 +| 2000 | 1032118 | 8:44 min | 2344 s = 39:03 min | 1 věta / 0,25 s | 77,73 % | 6.4.2010 |
 +| 5000 | 1040063 | 48:07 min | 3956 s = 1:06 h | 1 věta / 0,43 s | 80,18 % | 12.4.2010 |
 +| 10000 | 1032120 | 3:57 h | 7235 s = 2:01 h | 1 věta / 0,78 s | 82,11 % | 6.4.2010 |
 +| 20000 | 1032121 | 16:45 h | 12979 s = 3:36 h | 1 věta / 1,40 s | 83,65 % | 6.-7.4.2010 |
 +| 25000 | 1032122 | 27:43 h | 16500 s = 4:35 h | 1 věta / 1,78 s | 84,24 % | 6.-8.4.2010 |
 +| 30000 | 1032123 | 47:21 h | 24255 s = 6:44 h | 1 věta / 2,62 s | 84,54 % | 6.-8.4.2010 |
 +| 35000 | 1035249 | 2 dny 11:08 h | 21468 s = 5:58 h | 1 věta / 2,32 s | 84,89 % | 9.-12.4.2010 |
 +| 40000 | 1035250 | 3 dny 10 min | 24582 s = 6:50 h | 1 věta / 2,65 s | 85,08 % | 9.-12.4.2010 |
 +| 45000 | 1035251 | 4 dny 10:53 h | 33744 s = 9:22 h | 1 věta / 3,64 s | 85,35 % | 9.-14.4.2010 |
 +| 50000 | 1035252 | 5 dní 19:32 h | 37140 s = 10:19 h | 1 věta / 4,01 s | 85,47 % | 9.-15.4.2010 |
 +| 55000 | 1035258 | 7 dní 8:37 h | 40518 s = 11:15 h | 1 věta / 4,37 s | 85,65 % | 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 |
 +| 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 |
 +
 +==== 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 | 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&nbsp;trénovacích datech byla jedna nebo více vět, na kterých parser padá. Padání bylo asi opravdu způsobeno velikostí dílčích modelů v&nbsp;konkrétních případech.
 +
 +Zarážející je ale úspěšnost. Přinejmenším pro první pětitisícový úsek měla být s&nbsp;céčkovým libsvm 80&nbsp;%, tak jaktože jsme teď vždy naměřili pod 77&nbsp;%?
 +
 +=== Oprava 6.4.2010 ===
 +
 +Předcházející pokusy s&nbsp;javovou implementací byly omylem spuštěny s&nbsp;výchozí, nikoli s&nbsp;Marcovou definicí rysů, což by mohlo vysvětlovat tu nižší úspěšnost. Nyní tedy druhý pokus:
 +
 +| 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 ====
 +
 +| N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum |
 +| 1000 | 1177862 | 3:00 min | 1304 s = 21:43 min | 1 věta / 0,14 s | 73,81 % | 27.4.2010 |
 +| 2000 | 1177863 | 7:32 min | 1715 s = 28:35 min | 1 věta / 0,19 s | 76,98 % | 27.4.2010 |
 +| 5000 | 1177864 | 42:28 min | 3282 s = 54:42 min | 1 věta / 0,35 s | 79,86 % | 27.4.2010 |
 +| 10000 | 1177866 | 2:50 h | 5863 s = 1:38 h | 1 věta / 0,63 s | 81,63 % | 27.4.2010 |
 +| 20000 | 1177867 | 15:52 h | 13877 s = 3:51 h | 1 věta / 1,50 s | 83,28 % | 27.-28.4.2010 |
 +| 25000 | 1177868 | 21:02 h | 13345 s = 3:42 h | 1 věta / 1,44 s | 83,97 % | 27.-28.4.2010 |
 +| 30000 | 1177870 | 30:36 h | 15689 s = 4:21 h | 1 věta / 1,69 s | 84,23 % | 27.-28.4.2010 |
 +| 35000 | 1177871 | 39:04 h | | | | 27.4.2010 | Parsing selhal. |
 +| 40000 | 1177872 | 2 dny 8 h | 19298 s = 5:22 h | 1 věta / 2,08 s | 84,92 % | 27.-30.4.2010 |
 +| 45000 | 1177873 | 2 dny 20 h | 21907 s = 6:05 h | 1 věta / 2,36 s | 85,18 % | 27.-30.4.2010 |
 +| 50000 | 1177875 | 3 dny 14 h | 22805 s = 6:20 h | 1 věta / 2,46 s | 85,37 % | 27.4.-1.5.2010 |
 +| 55000 | 1177876 | 5 dní | 32512 s = 9:02 h | 1 věta / 3,51 s | 85,57 % | 27.4.-2.5.2010 |
 +| 60000 | 1177877 | 5 dní 20 h | 27429 s = 7:37 h | 1 věta / 2,96 s | 85,70 % | 27.4.-3.5.2010 |
 +| 65000 | 1177878 | 6 dní 4 h | 28112 s = 7:48 h | 1 věta / 3,03 s | 85,91 % | 27.4.-3.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 ====
 +
 +| N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | Poznámka |
 +| 1000 | 1177881 | 42 s | 939 s = 15:38 min | 1 věta / 0,10 s | 73,81 % | 27.4.2010 | |
 +| 2000 | 1177882 | 2:31 min | 1659 s = 27:39 min | 1 věta / 0,18 s | 76,98 % | 27.4.2010 | |
 +| 5000 | 1177883 | 17:52 min | 3324 s = 55:23 min | 1 věta / 0,36 s | 79,86 % | 27.4.2010 | |
 +| 10000 | 1177884 | 1:15 h | 5966 s = 1:39 h | 1 věta / 0,64 s | 81,63 % | 27.4.2010 | |
 +| 20000 | 1177901 | 5:32 h | 10843 s = 3:01 h | 1 věta / 1,17 s | 83,28 % | 27.4.2010 | První pokus 1177885 selhal, ale druhý doběhl. |
 +| 25000 | 1177886 | | | | | 27.4.2010 | Náhlá smrt. |
 +| 30000 | 1177887 | 17:21 h | 19860 s = 5:31 h | 1 věta / 2,14 s | 84,23 % | 27.-28.4.2010 |
 +| 35000 | 1177888 | 16:31 h | | | | 27.-28.4.2010 | Selhal parsing. |
 +| 40000 | 1177902 | | | | | 27.4.2010 | Náhlá smrt. |
 +| 45000 | 1177890 | | | | | 27.-28.4.2010 | Náhlá smrt. |
 +| 50000 | 1177904 | | | | | 27.4.2010 | Dva pokusy (1177891 a 904), zahynuly oba. |
 +| 55000 | 1177892 | | | | | 27.4.2010 | Náhlá smrt. |
 +| 60000 | 1177893 | | | | | 27.4.2010 | Náhlá smrt. |
 +| 65000 | 1177894 | | | | | 27.4.2010 | Náhlá smrt. |
 +| full | 1177895 | | | | | 27.4.2010 | Náhlá smrt. |
 +
 +==== Java liblinear ====
 +
 +| N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | Poznámka |
 +| 1000 | 1305892 | 46 s | 58808 s = 16:20 h | 1 věta / 6,34 s | 69,82 % | 13.-14.5.2010 | |
 +| 2000 | 1305893 | 1:40 min | 60656 s = 16:51 h | 1 věta / 6,54 s | 72,01 % | 13.-14.5.2010 | |
 +| 5000 | 1306055 | 6:36 min | 112707 s = 31:18 h | 1 věta / 12,16 s | 73,71 % | 13.-14.5.2010 | |
 +| 10000 | 1306056 | 10:07 min | 64658 s = 17:57 h | 1 věta / 6,97 s | 74,49 % | 13.-14.5.2010 | |
 +| 20000 | 1306057 | 25:26 min | 68167 s = 18:56 h | 1 věta / 7,35 s | 75,00 % | 13.-14.5.2010 | |
 +| 25000 | 1306219 | 40:47 min | 117823 s = 32:44 h | 1 věta / 12,71 s | 75,11 % | 13.-14.5.2010 | |
 +| 30000 | 1306220 | 34:13 min | 66785 s = 18:33 h | 1 věta / 7,21 s | 75,41 % | 13.-14.5.2010 | |
 +| 35000 | 1306221 | 37:50 min | 66877 s = 18:35 h | 1 věta / 7,21 s | 75,66 % | 13.-14.5.2010 | |
 +| 40000 | 1306222 | 46:26 min | 65917 s = 18:19 h | 1 věta / 7,11 s | 75,88 % | 13.-14.5.2010 | |
 +| 45000 | 1306223 | 1:01 h | 69289 s = 19:15 h | 1 věta / 7,47 s | 76,11 % | 13.-14.5.2010 | |
 +| 50000 | 1306224 | 55:21 min | 66392 s = 18:27 h | 1 věta / 7,16 s | 76,28 % | 13.-14.5.2010 | |
 +| 55000 | 1306225 | 1:02 h | 67181 s = 18:40 h | 1 věta / 7,25 s | 76,40 % | 13.-14.5.2010 | |
 +| 60000 | 1306226 | 1:20 h | 69428 s = 19:17 h | 1 věta / 7,49 s | 76,59 % | 13.-14.5.2010 | |
 +| 65000 | 1306388 | 1:25 h | 70273 s = 19:31 h | 1 věta / 7,58 s | 76,58 % | 13.-14.5.2010 | |
 +| full | 1306389 | 1:07 h | 66396 s = 18:27 h | 1 věta / 7,16 s | 76,78 % | 13.-14.5.2010 | |
  
 ==== Co dál? ==== ==== Co dál? ====
  
-  * Pokusy, na kterých céčková verze ''libsvm'' havarovala, zkusit ještě s&nbsp;javovou verzí. +  * Ještě pustit javovské ''libsvm'' a uppsalské dělení (CPOSTAG) na celý treebank. Zatím jsem to udělal nejvýše pro prvních 65000 větale treebank jich má přes 68000. 
-  * Rozsekat trénovací data na 14 pětitisícových kusů a s&nbsp;každým z&nbsp;nich pustit trénink a parsing zvlášť. Spadnou některé? A mimochodemjakou úspěšnost by dalo hlasování takto natrénovaných kusů? +  * Odladit ''train.pl'', aby se výsledný soubor ''.mco'' dal rozbalovat. Možná mu vadí pouze ".mco" u volby ''-c''.
-  * Zkusit ''liblinear'' místo ''libsvm''.+
   * 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 skriptu ''qsub.csh''), s konfigurací Maltu atd.   * 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 skriptu ''qsub.csh''), s konfigurací Maltu atd.
 +  * 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ů.
 +

[ Back to the navigation ] [ Back to the content ]