Már tesztelhető az neurális hálós spamszűrő

Címkék

Az FSF.hu által támogatott intelligens spamszűrő fejlesztése teszt/béta állapotba került. A fejlesztés nagy részét a legjobban teljesítő NN model topológiák és paraméterek kikísérletezése, valamint a tanításhoz és word2vec-hez használt dataset-ek előállítása adta. Az alapítvány a fejlesztéshez szükséges hardware eszközöket (szerver, GPU) biztosította.

A projekt ideiglenesen elérhető itt. Tervben van egy weboldal, levlista stb. is, de erre eddig nem volt időm/kapacitásom.

Jelenleg MILTER formájában lehet használni, akár saját telepítéssel, de kipróbálásra elég akár az FSF.hu által kölcsönzött szerveren futó milter is, ehhez a postfix/main.cf-be ezt kell csak beletenni:

smtpd_milters = inet:193.224.38.187:1080
milter_default_action = accept

(Disclaimer: ebben az esetben a levelek tartalma továbbításra kerül titkosítatlan csatornán!)

A milter maga NEM utasít el leveleket, csak hozzáad egy X-deepspam: fejlécet, amely tartalmazza a vizsgálat eredményét. Erre lehet szűrni pl. SpamAssassin-nel, Procmail-lel, de akár Postfix-el is. Több éles szerveren is használom már, eddig csak egy régi hálózatos scannernél okozott problémát, viszont megfogott nagyon sok phishing levelet.

A'rpi

PS: Kérdéseket ide kommentbe írjátok.

Hozzászólások

Lehet, hogy buta a kérdés, de a modellben található minták mennyire állandóak? Van valami várakozás, hogy mennyi időnként kell frissíteni ezeket?

a model fileok allandok, a spamassassin bayes-evel ellentetben nincs benne automata tanulas. foleg azert mert nem is nagyon lehetne kivitelezni, mivel a modelben nem a mintak vannak benne, hanem az azok felhasznalasaval tanult sulyertekek (neuronok kapcsolati haloja).

a tervem az, hogy rendszeresen (mondjuk hetente) ujra epitem a modelt, a datasetet kiegeszitve mindig uj mintakkal (eleg sok csapdabol jonnek), es a clamav-hoz hasonloan valamilyen frissitesi mechanizmus lesz hozza. de epithetsz sajat modelt is, felraktam hozza mindent (kiveve ham samplek), de az azert nem annyira trivialis, es nagyon eroforras igenyes is.

amugy a tesztek alatt azt tapasztaltam, hogy annyira nem erzekeny a model mint egy bayes db, mivel a word2vec miatt a maskepp megfogalmazott, akar mas szavakkal korulirt kifejezeseket is felismeri, "megerti", a 0.8-as dropout miatt pedig nagyon jol kikuszoboli a zajokat, hibakat. foleg akkor lesz erdemes frissiteni ha uj tipusu spammek jonnek.

A'rpi

Köszi - kicsit pongyola volt a fogalmazás, az első kérdés csak részben kapcsolódott a másodikhoz. Tehát a lényeg, hogy bővülni fog a DB, de adott feltételek esetén én is bővíthetem.

Erőforrással spec nem állok most túl jól :), így egy ideig saját DB nem lesz. Viszont magát a szűrőt lehet, hogy valamikor a közeljövőben kipróbálom.

Köszönöm.

sajat modellt kiprobalnam, de max. gef. gt 210 ( "kepet ad" kategoria ) áll rendelkezesre, mennyire lenne ez gaz ?

--
HUP te Zsiga !

szerintem az felejtos... cpu-val esetleg, ha van ra par napod :)
gpu-ban a gtx 9xx/10xx ajanlott (gt730-al nem ment semmi nekem), sok memoriaval.

a gt210-ben nincs is szerintem cuda (mintha 5xx-tol kezdve lenne csak, de a kesobbi gpu-kban lett csak hasznalhato utasitaskeszlete, ami kell a cudnn-hez)

https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html
A GPU of compute capability 3.0 or higher. To understand the compute capability of the GPU on your system, see: CUDA GPUs.

A'rpi

sajnos ahol tudnam hasznalni, ott nincs felsokategorias vga. es nemhiszem, hogy eltudom adni a "kell az oda" szoveget, miutan anno pont en mondtam, hogy mailszerverbe eleg a cpuban levo igp vagy a fent emlitett 'adjon kepet' verzio.

opencl verzio varhato ? itthoni probalkozashoz is csak egy radeon van keznel...

--
HUP te Zsiga !

de a hasznalatahoz nem kell gpu, en se ugy hasznalom. nalam sem jellemzo a mailserverekben :) cpu-val is csak par millisec/level.

a gpu akkor kell (es akkor se kotelezo, csak ugy 10x-100x gyorsitja) ha sajat modelt akarsz 0-rol felepiteni/tanitani. de azt meg lehet masik gepen is, azt nem kell a mailserveren futtatni.

opencl: nem tudom a tensorflow tamogatja-e, de szerintem nem.

A'rpi

attol fugg milyen. pl. AVX2-t tud-e, az magaban kb 10x gyorsulas SSE-hez kepest...
meg pl. nekem van egy 8 magos i7-em (7820X) 4.5ghz-re huzva, tuning memoriaval, azon mar egesz jol fut :) jobban mint egy dell 2x8 magos 2.4ghz-es szerveren.
de igazabol csak az ido kerdese. sokaig en is cpu only fejlesztettem, aztan meg egy 950 gtx-el, de ahhoz kepest nagysagrendi gyorsulas volt a 1080-as kartya, de azelott is ment, csak kb 1-3 nap volt 1 model es nem 1 ora... ha sokat akarsz kiserletezni, meg hyperparametereket optimalizalni akkor nagyon nem mindegy...

A'rpi

sub

És nagyon köszönjük, nem is hallottam erről a projektről, tetszik. A levlista érdekelne.

igen az is egy opcio, bar nem olcso. es mivel ehhez nem kell szuperszamitogep, szerintem folosleges, cpu-n is lefut kb 1 nap alatt :)
aki meg beszallna a fejlesztesbe aktivan, uj modellekkel kiserletezni az szoljon es adok hozzaferest az FSF szerverhez. (vagy kuldje el a kodot es lefuttatom)

A miltert próbálta valaki sendmail-lel?
Az egyik gépemben van egy Nvidia Quadro 2000, 1GB RAM, 192 mag, PCIe x16.
Használható lenne erre a célra?
FreeBSD 11.1 fut a gépen.

en se sokat... de az latszik, hogy az elmult par evben robbanasszeru fejlodes volt, evente 5-10x-ezik a szamitasi kapacitasukat. nem veletlen tudott a mesterseges intelligencia / neuralis halo kutatas is ennyit fejlodni, olyan modeleket lehet hasznalni ami korabban elkepzelhetetlen volt (honapokig futott volna ami most orak alatt kesz).
kepfelismeres pl: https://medium.com/@siddharthdas_32104/cnns-architectures-lenet-alexnet…

igy van, a spamszuro HASZNALATAHOZ nem kell gpu, sot en ugy lattam hogy meg kicsit gyorsabb is cpu-val, mert a gpu-nal az adatok ide-oda masolgatasa a gpu memoriajaba nagyobb overhead, mint cpu-val kiszamoltatni (foleg hogy a mai cpu-kban van AVX2 ami mar eleg kozel all a gpu-hoz parhuzamositasban).

GPU ott erdekes ha sajat modelt akarsz epiteni (tanitani), mert olyankor nem 1x kell vegigszamolni a matrixokat, hanem minden mintaval (nalam 50k minta van) es legalabb 20x-100x, tehat akar 5000000x tobb szamolas mint 1 level ellenorzes. (es akkor meg a backpropagationt, normalizationt nem is vettem figyelembe, amit csak tanitaskor kell szamolni)

Felhoznám őt. Mennyire haladt a projekt, illetve az Exim/Spamassassin duóval van-e már bejáratott társítási mód?

mostanaban nem volt idom foglalkozni vele, de igazbaol nem is kellett, eleg jol mukodik igy is, tavaly aprilis ota elesben hasznalom sok helyen. a modelt sem frissitettem regota es megis megfogja a legujabb spammeket is.
(mivel nem konkret mintakat keres hanem inkabb a szoveg jelenteset, tartalmat, stilusat figyeli igy nem is kell annyira tanitgatni mint a bayest)

milter-kent mukodik (mert sok ramot eszik, es eleg sok ido amig feltolti a modelt, igy jobb ha service/daemonkent fut, nem per-email), az kb mindennel integralhato, gondolom exim-el is.