Szabad Szoftver Pályázat 2017 támogatott projektjei

Címkék

A pályázat értékelését az FSF.hu Alapítvány lezárta. Minden pályázónak köszönjük a beadott anyagba fektetett munkát. Szokás szerint sok remek pályázat érkezett és szokás szerint jóval több volt az igény, mint a lehetőség. Hosszas értékelés, mérlegelés után úgy döntöttünk, hogy 2017-ben az alábbi pályázatok kapnak támogatást:

  • Belákovics, Czémán, Czémán, Estók, Fukász:

    A CIRCLE cloud felhőmenedzser továbbfejlesztése

    Teljes támogatás

  • Gereöffy Árpád

    Intelligens spamszűrés neurális hálózatokkal

    Teljes támogatás

  • Informatika a látássérültekért Alapítvány:

    A BeLin (Beszélő Linux) 5.0. Információ és kommunikáció tananyagának elkészítése és többféle akadálymentes formátumban való előállítása

    Teljes támogatás

  • dr. Nagy Gábor

    LibreOffice alapok és az erre építő Pályázatok, szakdolgozatok és tudományos munkák a LibreOffice programmal

    Teljes támogatás

  • Nádasi Bálint

    Multiplatform jegyzet és emlékeztető alkalmazás fejlesztése

    Teljes támogatás

  • Varga Péter

    Vektorgrafika Neked – oktatóvideók készítése

    Teljes támogatás

Az eredeti pályázat kiírás itt olvasható el:
http://fsf.hu/2017/07/21/szabad-szoftver-palyazat-2017/

Hozzászólások

Intelligens spamszűrés neurális hálózatokkal

hmm, erre kivancsi leszek...

--
t-systems-es it architect allast keres. Jelige: csak webshopot ne kelljen...

Teljesen jol mukodik, 10+ eve szovegbanyaszat hazinak valasztotta egyik evfolyamtarsam. A legnagyobb nehezseget talan az adja, hogy rengeteg inputod van, amitol - ha nem trukkozol valamit a reprezentacioval - elszall a halomeret. Viszont ha szerencsesen valasztott elofeldolgozot adsz neki, okosabb a bayes-i osztalyozonal.
A mai szamitasi teljesitmeny mellett, esetleg valamilyen otletet atemelve a konvolucios halokbol (ahol maganak csinalja az elofeldolgozot) erdemes megint nekiallni kiserletezni vele.

--
Worrying about killer AI and the superintelligent robots is like worrying about overcrowding on Mars. - Garry Kasparov

Nem tudok ilyenrol. Nem volt egyebkent egy nagy dolog, a feleves (opcionalis, vizsga helyett vagy pluszpontert) hazijarol van szo, nem hiszem, hogy par napnal tobbet beleolt volna.
Volt egy masik srac, aki valamelyik mobilos forum bejegyzeseit elemezte, es onnan probalta megallapitani, hogy melyik telefont tartjak jonak. Az erdekesebb volt. :)
Volt meg egy Support Vector Machine alapu hazi is, az is igeretes volt, de mar nem emlekszem a reszletekre.

Nem a haverom attol, hogy x eve felvettunk kozosen egy kurzust.
Ennek a targynak az elodjehez tartozott:
https://www.tmit.bme.hu/vitmma06
Egyebkent TDK kereteben meg lehet, hogy foglalkoznak ilyesmivel, meg kell nezni idonkent a kiirast.
Ha erdekel, akkor megkereshetsz vele oktatokat, hogy irjanak ki ilyen temat, hatha jelentkezik ra valaki. A konyved miatt kulso konzulens is lehetsz.

--
Worrying about killer AI and the superintelligent robots is like worrying about overcrowding on Mars. - Garry Kasparov

igy van. egyreszt a bag-of-words (hatalmas sparse matrix, ahol minden lehetseges szo egy ertek) helyett kell valami, ez vszinu a word2vec (vagy a hasonlo GloVe) lesz.
az elmult honapokban mar epitettem egy egesz jo w2v modelt, foleg angol es magyar (de ahogy neztem nemet es francia szavakat is felismeri valamennyire) szovegekbol (hu+en wikipedia, konyvek, forum kommentek, web crawlerek, emailek). tisztitas, tokenizalas, redundancia mentesites utan 16GB ascii input, 1.6m token...
itt lehet tesztelgetni: http://193.224.38.189:8080/

ezutan lehet SVM (ezzel is egesz jo eredmenyt kaptunk) de a conv. NN meg jobb, nagyon lebutitott adatokkal (csak a mail body text resze, elso max 50 szo, lowercase, irasjelek es ekezetek nelkul) is 95-98% tud 4000-es tanitasi mintaval. ennel csak jobb lesz, ha lesz hozza eroforrasunk (erre palyaztam) komolyabb adatmennyisegekkel dolgozni es finomhangolni a modellt.

A'rpi

ugye 2 reszre kell bontani: NN tanitas es teszt (=felhasznalas).
a tanitas rettenetesen eroforrasigenyes, tobb nagysagrenddel jobban mint a bayes.
a teszt viszont nem tobb szavankent egy db lookupnal (ez kb ugyanaz mint bayesnel) es egy (vagy nehany) matrix szorzasnal. cpu-val is megvan max nehany ms alatt.
foleg hogy kb 2011 ota van AVX a procikban (xeonokban is!).

a tanitaskor viszont az osszes mintaval ami ugye tobb 10 ezer kell sok iteracion at ujra elvegezni ezeket a muveleteket, plusz visszacsatolas plusz model hiperparameter optimalizacio, validation stb - itt mar CPU nem nagyon jatszik, es GPU-val se tul gyors :( viszont ezt nem feltetlen a mail serveren kell elvegezni, ha kell egyaltalan.

ha meg tenyleg nagy (sok 10 ezer level/ora) a forgalom akkor be kell pattintani egy gpu-t :)

A'rpi

lehet tudni, milyen hw-t kertel a palyazat kereteben? Btw. a gyakorlati hasznat az donti majd el, hogy pontosabb/jobb lesz-e annyival, mint egy jofele statisztikai szuro, hogy megerje az extra eroforrasokat :-)

--
t-systems-es it architect allast keres. Jelige: csak webshopot ne kelljen...

Intel server Xeon 1240v5 64GB DDR4 ECC, 400GB SSD, NVIDIA Titan XP 12GB DDR5X

de mint irtam a NN model felhasznalashoz mar nem kell nagyon extra eroforras, csak a tanitas, es foleg a fejlesztes (sokfele modell osszehasonlitasa, parameterek probalgatasa, nagy szamu mintan valo ismetelt tesztelesek) amihez nagy vas kell, hogy meg ebben az evtizedben elkeszuljon :)

en amugy egyre jobban azt latom/erzem, hogy mas-mas tipusu spamre lesz jo az egyszeru (pl bayes) statisztika, es a w2v+CNN. elobbi jobban megfogja a fejlec es formazas furcsasagait, mig utobbi inkabb a szoveg "megerteseben" (NLP) jobb. a statisztika ott veget er hogy bizonyos szavak, tokenek milyen valoszinuseggel fordulnak elo a spammekben, a NN pedig osszefuggeseiben vizsgalja az egesz szoveget, es megtanulja a mintakat amit keresnie kell (unsupervised feature extraction). amekkora elorelepes volt anno a bayes a kezzel irt regexpekhez kepest, kb akkora ugras az NN a bayeshez kepest szerintem.

ami meg izgalmas lenne, az a paragraph2vec (vagy doc2vec) algoritmus, de az viszont a teszt eseten is eroforras igenyes (eloszor hozza kell az uj szoveget tanulnia a meglevo modellhez hogy utana vizsgalni tudja az azon beluli viszonyat), igy max nagyon kis forgalmu szervereknel lehetne jo. ha lesz ra idom azert csinalok par tesztet kivancsisagbol, de annak nem nagyon latom en se gyakorlati hasznat a spamszuresre.

amugy meg ahol nagyon nagy a levelforgalom (pl. nagy ISP-k) ott szerintem most sem hasznalnak content filteringet, csak RBL-eket, greylistet es hasonlo kevesbe eroforrasigenyes dolgokat. ellenben ezt gpu-val ott is be lehetne vezetni, mert akkor a cpu-t nem terheli jelentosen, gpu-n pedig azert eleg sok muveletet el tud vegezni parhuzamosan. mig pl. a bayest nem igazan tudod gpu-val gyorsitani.

en amugy egyre jobban azt latom/erzem, hogy mas-mas tipusu spamre lesz jo az egyszeru (pl bayes) statisztika,

valoban megvan a statisztikai modszerek korlata, de 2017-ben egy tobb retegu anti-spam megoldas (amiben mondjuk egy bayes-i szuro van a vegen) meg mindig nagyon jo hatasfokkal kategorizalja a leveleket.

btw. probalj olyan spamet is majd a tesztelesnel, ami mondjuk egy valamilyen legitim (nem szurke) hirlevel, amiben a link mondjuk egy viagara oldalra visz es a fejlecben is valami egzotikus orszag hosztneve van. Ja, meg a mikro/piko spameket is (bar ilyet nem is tudom, mikor lattam utoljara)

Ha elkezded vele a munkat, erdekelnenek a menet kozbeni eredmenyek, tesztek, tapasztalatok, stb. is. Amolyan blog jelleggel, ha lesz ra energiad. Sot, kivancsi lennek arra is, hogy a clapf hogyan teljesit ugyanazzal a levelhalmazzal :-)

--
t-systems-es it architect allast keres. Jelige: csak webshopot ne kelljen...

fel eve dolgozok mar rajta, vannak eredmenyek, de nincs igazan energiam, meg ertelme se nagyon menet kozben publikalni oket. majd ha mar az eles tesztek mennek, de az meg odebb van.
ha vannak erdekes spamjeid azt elkuldheted, nekem is van par 100 ezres gyujtemenyem, de nem igazan rendezett, valogatott formaban.
en egyebkent foleg a phishingre akarok ramenni, az napjaink legnagyobb problemaja, es folyamatosan dolnek be neki akar tobb dr. fokozatu emberek is. a viagra es tarsait tenyleg megfogjak a regi modszerek is, de ma mar nem is az a divat, hanem a zsarolovirusok es a phishing levelek, ezekbol van nagy penz ezert ezeket terjesztik ezerrel es a legvaltozatosabb formakban. raadasul a phishinggel ellopott accountokrol tovabb kuldott spammek (kezdetnek pl. a feltort acc cimlistajara) nehezen szurheto fejleccel vagy ip-vel, mivel nem blacklistes a host, valid smtp szerver stb, sot a cimzettekkel jo esellyel levelezett korabban igy auto-whitelisteken is lehet, es a cimzett is hamarabb megnyitja az ismerostol jott levelet.

egyebkent en pont azt tapasztalalom hogy az elmult evekben nagyon leromlott a bayes szurok hatasfoka, egyre tobb spam csuszik at, sot kap negativ pontszamot, meg akkor is ha volt hasonlo level tanitva a szuronek. pl. az AppIe es paypol spammek mostanaban...

A'rpi

egyebkent en pont azt tapasztalalom hogy az elmult evekben nagyon leromlott a bayes szurok hatasfoka, egyre tobb spam csuszik at, sot kap negativ pontszamot

hmm, bayes szuronel negativ pontszam? En eddig ugy tudtam, hogy azok egy valoszinuseget adnak vissza. A phishing az tenyleg nehez ugy, nalam valtozo sikerrel kategorizalta a szuro. Legalabbis azokat, amelyek atjutnak az elotte levo retegeken...

--
t-systems-es it architect allast keres. Jelige: csak webshopot ne kelljen...

nalam a bayes valoszinusegekhez van kb -8 .. +8 pont rendelve, arra ertettem. ami inkabb nem spam mint spam az kap negativot. es egyre tobb spammet latok ami nemhogy dontetlen, hanem egyenesen nemspam es ezzel a tobbi szabalyt is lehuzza. pedig idonkent nullazom es ujra tanitom az egeszet kezzel valogatott tobb 10 ezres spam mintakkal, meg az ugyfel szervererol vett ham mintakkal, de akkor se hatekony mar annyira mint regen. par hete egyik uj szerveren feltanitottam eleg sok mintaval, kozte csomo appIe es paypal phishinggel, ennek ellenere azota is bejonnek rajta hasonlok. picit mindig varialnak a betukon, vagy egy kis bayes poisoning es maris nem gyanus elegge.

nagyon kivancsi leszek hogy nagyszamu mintaval meg finomhangolt modellel mit fog tudni ebbol kihozni a NN NLP.

meg tavasszal amikor az SVM-t nyuztam, BoW-al, is meglepoen jol felismert olyanokat ami a bayeson atcsuszott, es azert mar az SVM is tulhaladott manapsag, az inkabb 2010-ig volt divatos classifier, a bayes utan.

remelem mostmar hamarosan. eleg sok problema merult fel amit meg kellett oldani (pl. kiderult hogy az 50ezres spam gyujtemenyem nagyon redundans, a hasonlok kiszurese utan alig maradt valami), meg nem is volt vegul annyi idom foglalkozni vele mint szerettem volna, de most a hosszu hetvegeken azert sokat tudtam/tudok haladni.

ezzel a modellel ugy nez ki nem fog 98.6% fole menni a jelenlegi datasettel (23000 level, fele spam):
http://thot.banki.hu/deepspam/model.png

persze ha ugy nezzuk hogy ez csak a body-t latja, abbol is csak a lecsupaszitott szavakat (semmi formazas, ekezet, nagybetu) akkor nem is olyan rossz.
a datasetet kene javitani (boviteni, illetve atnezni hogy 100% ne legyen benne false neg/pos), az is tervben van, csak az rengeteg kezimunka/ido.
buildelek meg egy uj word2vec-et skipgram-al (a tavalyiban benne voltak a spam-ek is, de rajottem hogy azt megse kene), az eltart kb 1 hetig, az hozhat meg egy pici javulast, de csodat mar nem varok attol sem. a neheze megvan, a szoveg "megertese", ebbol szerintem mar nem lehet tobbet kihozni.

kovetkezo lepes az lesz, hogy a formazast es/vagy a headereket is bele kene vinni mint input feature. illetve elkezdtem decemberben egy char2vec-es modellel is kiserletezni, a specialis karakterek, emoticonok stb kezelesehez, de a vektorok nekem mindig egy vonalba estek, valami nem volt oke vele, annak is neki kene futni ujra.

ez a talos jopofa csak cseppet draga. meg nem nagyon hiszem hogy a jelenleg hasznalt lapack/blas/nn libek kozul barmi is lenne erre optimalizalva...

Key differences between MIOpen v1.0 and cuDNN:
• MIOpen only supports 4-D tensors in the NCHW storage format. This means all the “*Nd*” APIs in cuDNN do not have a corresponding API in MIOpen.
• MIOpen only supports float (fp32) data-type.
• MIOpen only supports 2D Convolutions and 2D Pooling.
• Calling miopenFindConvolution*Algorithm() is mandatory before calling any Convolution API.
• Typical calling sequence for Convolution APIs for MIOpen is:
o miopenConvolution*GetWorkSpaceSize() // returns the workspace size required by Find() o miopenFindConvolution*Algorithm() // returns performance info about various algorithms o miopenConvolution*()
• MIOpen does not support Preferences for convolutions.
• MIOpen does not support Softmax modes. MIOpen implements the SOFTMAX_MODE_CHANNEL flavor.
• MIOpen does not support Transform-Tensor, Dropout, RNNs, and Divisive Normalization.

lol. tehat van egy auto kerekek nelkul ami csak rukvercbe tud menni es azt is csak egyenesen... ez mar eleve elegge gaz, arrol nem beszelve, hogy az "iparagi standard" frameworkok (numpy, tensorflow es tarsai) sem tamogatjak.

par ev mulva ez is jo lesz biztosan, de mivel december a hatarido, most nem szeretnek elterni a kiforrott, elterjedt eszkozoktol es jelentkezni amd betatesternek :)

nalam jobban kevesen utaljak az nvidiat, bar en az amd-t se szivlelem foleg cpu teren. de azt el kell ismerni hogy a cuda/cudnn eleg jol ossze van rakva, legalabbis ma mar, amikor elkezdtek ugy 8 eve meg biztos annak is voltak nyugjei. de ami a nagyobb baj, hogy NN teruleten gyakorlatilag minden lib, framework, proof-of-concept kod a cudnn-re epul jelenleg.

A'rpi

Egy blob free (duál) Opteront valamivel olcsóbban is össze lehet rakni, igaz BMC nélkül. Egyébként szerintem a drága részén még lehet alakítani az FSF.hu oldalról, talán már a barack is kukacos.

Az lapack/blas/nn azért elég gyors a POWER-eken (nem ecsetelem miért). A pyopencl meg nem tudom mire kell. A tensorflow is lassan opencl-esedik de tényleg nem valami hasznos jelenleg. Viszont azért van egy pár cNN implementáció és több FLOSS OpenCL-es Deep learning sw (akármit is jelentsen ez, lásd wikipedia).

Végül a nouveau már eleve eléggé gáz az amdgpu-hoz képest. Minden Kepler utáni kártya már nem igazán megy nouveau-val, sőt NV110-tól meg már csak titkosított fw-t fogadnak.