A SpaCy már évek óta de facto szabvány minden olyan vállalat számára, amely entitás-kivonási projektet kíván indítani. Mi tette a spaCy-t ilyen népszerűvé? És vannak-e jó spaCy-alternatívák 2023-ban bárki számára, aki entitás-kivonási projektet akar indítani? Ezeket a pontokat vitatjuk meg ebben a cikkben.
A spaCy első verziója 2015-ben jelent meg, és hamarosan a vállalati szintű entitások kinyerésének (más néven NER) szabványos keretrendszerévé vált.
Ha van egy strukturálatlan szöveg (például az internetről), és strukturált adatokat szeretne kinyerni belőle, például dátumokat, neveket, helyeket stb., a spaCy nagyon jó megoldás.
A SpaCy azért érdekes, mert számos előre betanított modell áll rendelkezésre mintegy 20 nyelven. (további részletek itt). Ez azt jelenti, hogy nem feltétlenül kell saját modellt képeznie az entitások kinyeréséhez. Ez azt is jelenti, hogy ha saját modellt szeretne képezni, akkor ahelyett, hogy a nulláról kezdené, egy előre képzett modellből indulhat ki, ami sok időt takaríthat meg.
A SpaCy-t "gyártási minőségű" keretrendszernek tekintik, mivel nagyon gyors, megbízható és átfogó dokumentációval rendelkezik.
Ha azonban a spaCy előre betanított modelljei által támogatott alapértelmezett entitások nem elegendőek, akkor az "adatmegjelölés" (más néven "adatmegjelölés") segítségével kell dolgoznia a saját modelljének betanításához. Ez a folyamat rendkívül időigényes, és sok vállalati entitás-kivonási projekt bukik meg ezen a kihíváson.
Tegyük fel, hogy egy szövegből (például egy önéletrajzból vagy egy vállalati weboldalról) szeretné kinyerni a munkakörök címeit. Mivel a spaCy előre betanított modelljei alapértelmezés szerint nem támogatnak ilyen entitást, meg kell tanítania a spaCy-t arra, hogyan ismerje fel a munkakörök címeit. Létre kell hoznia egy olyan képzési adathalmazt, amely több ezer álláscím-kivonat példát tartalmaz (és talán még sokkal többet is!). Használhat egy fizetős annotációs szoftvert, például a Prodigy-t (amelyet a spaCy csapata készített), de ez még mindig sok emberi munkával jár. Valójában elég gyakori, hogy a vállalatok egy csomó vállalkozót alkalmaznak több hónapra egy adat annotálási projekt elvégzésére. Az ilyen munka annyira ismétlődő és unalmas, hogy az így kapott adatkészletek gyakran rengeteg hibát tartalmaznak...
Lássuk, milyen alternatív megoldásokat próbálhatsz ki 2023-ban!
A Stanford CoreNLP első verziója 2013-ban jelent meg. Ez egy Java keretrendszer (míg a spaCy egy Python keretrendszer), amely lehetővé teszi az entitások kinyerését nagyon jó eredményekkel.
A Stanford CoreNLP is javasol előre betanított modelleket, de kevesebbet, mint a spaCy (további részletek itt).
Ennek a keretrendszernek a pontossága hasonló a spaCy-éhoz, de az elemzett adatoktól függ. A Stanford CoreNLP például jobb eredményeket ad jogi adatokon. Azt is érdemes megjegyezni, hogy egyes entitások címzése némileg eltér a spaCy-hoz képest (ez a GPE entitás esete például).
Ami a teljesítményt illeti, a Stanford egyértelműen lassabbnak tűnik, mint a spaCy, ami problémát jelenthet, ha nagyon nagy áteresztőképességet akarunk elérni.
A Flair egy újabb Python keretrendszer (2018-ban jelent meg), amely a PyTorch mélytanulási keretrendszeren alapul.
Nagy népszerűségre tesz szert, mivel a spaCy-hoz képest számos nyelvben nagyobb pontosságot ér el. Számos előre betanított modellt javasolnak (további részletek itt).
Ez a pontosságjavulás azonban a sebesség rovására megy. Az áteresztőképesség sokkal alacsonyabb lesz a spaCy-hoz képest.
Néhány évvel ezelőtt a mesterséges intelligencia modellek egy új fajtája kezdett megjelenni: a generatív modellek. Ezeket a modelleket eredetileg szöveggenerálásra hozták létre (megírják egy szöveg elejét, és hagyják, hogy a modell generálja a többit), de az emberek hamar rájöttek, hogy ezek a modellek nagyon jók mindenféle természetes nyelvi feldolgozási felhasználási esetben, beleértve az entitások kinyerését is.
A legnépszerűbb generatív modellek ma a GPT-3, a GPT-J, a GPT-NeoX, a T5 és a Bloom. Ezek a mélytanulási modellek mind a Transformer architektúrát használják, amelyet a Google 2017-ben talált fel.
Ez az új generációs mesterséges intelligencia modell nagyon nehéz és drága a futtatása. Általában egy vagy több GPU-n alapuló csúcskategóriás hardvert igényelnek. Emellett lassabbak, mint az olyan keretrendszerek, mint a spaCy. De ezeknek a modelleknek köszönhetően most már bármilyen entitás kinyerhető egy dedikált modell képzése nélkül!
A néhány lövéses tanulásnak köszönhetően bármely entitás kinyerése külön modell létrehozása nélkül is lehetséges. Ez a technika arról szól, hogy gyorsan megmutatjuk a modellnek, hogy mit szeretnénk csinálni úgy, hogy csak néhány példát készítünk futásidőben. Tudjon meg többet a néhány lövéses tanulásról itt.
Visszatérve az álláscímek kinyerésére vonatkozó példánkhoz, ha a GPT-J-hez hasonló modellel akarja kinyerni az álláscímeket, akkor nem kell megjegyzést fűznie semmilyen adathoz. Ezután hetek vagy hónapok emberi munkáját fogja megspórolni. A pontosság pedig valószínűleg sokkal nagyobb lesz, mint bármely, spaCy-vel végzett entitás-kivonatolás.
Lásd a GPT-modellekkel történő entitás-kivonatolás egyszerű végrehajtásáról szóló cikkünket.
A SpaCy egy nagyszerű természetes nyelvi feldolgozási keretrendszer, amelyet ma már számos vállalat használ termelési céllal entitás-kivonási feladatokra.
A spaCy és az olyan alternatívák, mint a Stanford CoreNLP vagy a Flair azonban korlátozott pontosságúak, és az új entitások kinyeréséhez fáradságos annotációs munkára van szükség. 2023-ban számos alternatív, szöveggeneráláson alapuló modell használható az entitások annotáció nélküli kinyerésére, például a GPT-J, GPT-NeoX, GPT-3... Ezek az új modellek valóban egyre több vállalatot segítenek majd sikerre vinni az entitás-kivonási projektjeiket.
Ha szeretnéd használni a GPT-J és GPT-NeoX programokat, ne habozz, próbáld ki az NLP Cloud API-t. (próbálja ki itt)!
Juliette
Marketing menedzser az NLP Cloudnál