Kód ellenőrzés + AI #3

Előzmények itt.

Téma: fejlesztő munkájának segítése anomáliák keresésével a kódjában mesterséges intelligencia használatával. Ez olyan rendellenességet jelent, amely a betanított mintától valamiért jelentősebben eltér (outlier), ezért rejtett szemantikai problémát is takarhat. Nyilván függ ezért attól, hogy milyen tanító adatbázist állítunk össze (például csak egy adott nagy cégtől származó kóddal és így ahhoz képest viszonyíttatunk az AI-vel, ez szerintem megadhat praktikai eltéréseket is).

Validálni szeretném, hogy történik-e ténylegesen rendellenesség felismerés. Az egyik teszt kódnál érdekes módon mindig a Composite funkció pár definíciójához ugrik. Persze további vizsgálatok szükségesek, de érdekességnek megosztom. Egy rövid videó:

https://youtu.be/AAkEz6kTbfM

Azt a funkciót most csináltam meg, hogy többször klikkelve az "ai" gombra a következő rendellenesnek vett kód részhez ugrik, ha van olyan. A nehezebb dolog az volt benne, hogy az AI által visszaadott kód szeletek pozíciója közel lehet egymáshoz, és amikor visszavetítem hogy hol lehet ez az eredeti kódban (emlékezzünk hogy más dialektusra is futtatható ami JS-re fordul és ebből a JS-ből generálok AST-t), akkor pár tized százalékos eltérés közel teheti egymáshoz szinte ugyanarra a sorra. Így a következő klikk is ugyanarra a sorra vinné. Ezért egy minimum különbséggel engedem csak ugrani, de ehhez annyiszor kell végig vizsgálnom az eredeti kódot, ahány találatot adott vissza az AI, ugyanis ki kell kapnom a HTML kódból, hogy hol kezdődik a script tag és mi van ha több script rész van és így a találat átnyúlik a következő script tag-ek által határolt kód részbe. Nem gondolom hogy lassú lett, lehet optimalizálni később.

Hozzászólások

Megjegyzés: ugye az általam jelenleg használt módszer validációját az teszi nehézzé, hogy unsupervised a tanítás. Amikor supervised, azt könnyű ellenőrizni, mivel megnézzük hogy az ismeretlen adatra jó eredményt ad-e a tanítottak alapján vagy sem (cicás képre cica kategóriába sorolja-e, kutyásnál kutya). És ebből annyit végzünk amennyit akarunk.

Viszont a fentinél nem lehet összehasonlítani, mivel nem ismert, hogy milyen bemenetre milyen kimenetet kell adnia, hiába tudjuk hogy a bemenet alapján a felismert rész különösen eltérő a tanítottól. Ezt kutatom.