SpaCy on juba mitu aastat olnud de facto standard iga ettevõtte jaoks, kes soovib käivitada üksuse ekstraheerimisprojekti. Mis tegi spaCy nii populaarseks? Ja kas 2023. aastal on olemas head spaCy alternatiivid kõigile, kes üritavad alustada üksuste ekstraheerimise projekti? Arutame neid punkte selles artiklis.

Esimene spaCy versioon ilmus 2015. aastal ja sellest sai kiiresti standardne raamistik ettevõtlusklassi üksuste ekstraheerimiseks (tuntud ka kui NER).
Kui teil on struktureerimata tekst (näiteks veebist) ja soovite sellest struktureeritud andmeid, nagu kuupäevad, nimed, kohad jne, eraldada, on spaCy väga hea lahendus.
SpaCy on huvitav, sest mitmed eelnevalt treenitud mudelid on saadaval umbes 20 keeles. (vt lähemalt siit). See tähendab, et te ei pea tingimata treenima oma mudelit üksuste eraldamiseks. See tähendab ka seda, et kui soovite oma mudelit treenida, saate alustada eelnevalt treenitud mudelist, selle asemel et alustada nullist, mis võib säästa palju aega.
SpaCy peetakse "tootmisklassi" raamistikuks, sest see on väga kiire, usaldusväärne ja varustatud põhjaliku dokumentatsiooniga.
Kui aga spaCy eeltreenitud mudelite poolt toetatud vaikimisi üksused ei ole piisavad, peate oma mudeli treenimiseks tegelema "andmete annoteerimisega" (tuntud ka kui "andmete märgistamine"). See protsess on äärmiselt aeganõudev ja paljud ettevõtete olemuste ekstraheerimise projektid ebaõnnestuvad selle probleemi tõttu.
Oletame, et soovite tekstiosast (näiteks elulookirjeldusest või ettevõtte veebilehelt) eraldada ametinimetusi. Kuna spaCy eeltreenitud mudelid ei toeta vaikimisi sellist üksust, peate spaCy'le õpetama, kuidas ametinimetusi ära tunda. Teil on vaja luua treeningandmestik, mis sisaldab mitut tuhandet näiteid ametinimetuste väljavõtetest (ja võib-olla isegi palju rohkem!). Võite kasutada tasulist annotatsioonitarkvara nagu Prodigy (mida teeb spaCy meeskond), kuid see hõlmab siiski palju inimtööd. Tegelikult on üsna tavaline, et ettevõtted palkavad mitme kuu jooksul hulga töövõtjaid, et viia läbi andmete annoteerimise projekt. Selline töö on nii korduv ja igav, et saadud andmekogumid sisaldavad sageli palju vigu...

Vaatame, milliseid alternatiivseid lahendusi võiksite proovida aastal 2023!

Stanford CoreNLP esimene versioon ilmus 2013. aastal. See on Java raamistik (samas kui spaCy on Python), mis võimaldab väga heade tulemustega teostada entiteetide ekstraheerimist.
Stanfordi CoreNLP pakub ka eeltreenitud mudeleid, kuid vähem kui spaCy (vt lähemalt siit).
Selle raamistiku täpsus on sarnane spaCy-ga, kuid see sõltub analüüsitavatest andmetest. Näiteks Stanford CoreNLP annab paremaid tulemusi juriidiliste andmete puhul. Samuti tasub märkida, et mõnda üksust käsitletakse spaCyga võrreldes veidi erinevalt (see on näiteks GPE üksuse puhul).
Mis puutub jõudlusesse, siis tundub Stanford selgelt aeglasem kui spaCy, mis võib olla probleemiks, kui püüate saavutada väga suurt läbilaskevõimet.

Flair on uuem Pythoni raamistik (avaldatud 2018. aastal), mis põhineb PyTorchi süvaõppe raamistikul.
See on saavutamas suurt populaarsust, sest see saavutab paljudes keeltes suurema täpsuse kui spaCy. Välja on pakutud mitu eeltreenitud mudelit (vt lähemalt siit).
See täpsuse paranemine toimub siiski kiiruse arvelt. Teie läbilaskevõime on spaCy-ga võrreldes palju väiksem.
Paar aastat tagasi hakkas ilmuma uut tüüpi tehisintellekti mudelid: generatiivsed mudelid. Need mudelid loodi algselt teksti genereerimiseks (kirjutades teksti alguse ja lastes mudelil genereerida ülejäänud teksti), kuid inimesed mõistsid kiiresti, et need mudelid on väga head kõikvõimalike loomuliku keele töötlemise kasutusjuhtumite, sealhulgas üksuste väljavõtete tegemiseks.
Tänapäeval on kõige populaarsemad generatiivsed mudelid GPT-3, GPT-J, GPT-NeoX, T5 ja Bloom. Kõik need süvaõppe mudelid kasutavad Transformer-arhitektuuri, mille leiutas Google 2017. aastal.
See uue põlvkonna tehisintellekti mudel on väga raske ja kulukas. Nad nõuavad tavaliselt kõrgekvaliteedilist riistvara, mis põhineb ühel või mitmel GPU-l. Samuti on nad aeglasemad kui raamistikud nagu spaCy. Kuid tänu nendele mudelitele on nüüd võimalik ekstraheerida mis tahes olemust ilma spetsiaalse mudeli treenimata!
Iga üksuse ekstraheerimine ilma spetsiaalse mudeli loomiseta on võimalik tänu paarikaupa õppimisele. Selle tehnika eesmärk on näidata mudelile kiiresti, mida soovite teha, tehes ainult paar näidet töö ajal. Lisateave paari pildi õppimise kohta leiate siit.
Tulles tagasi meie ametinimetuste väljavõtte näite juurde, siis kui soovite tööde nimetusi välja võtta sellise mudeliga nagu GPT-J, ei pea te mingeid andmeid kommenteerima. See säästab siis nädalaid või kuid inimtööd. Ja täpsus on tõenäoliselt palju suurem kui mis tahes üksuste väljavõtte spaCy abil.
Vt meie artiklit selle kohta, kuidas hõlpsasti teostada üksuste väljavõtteid GPT-mudelitega.
SpaCy on suurepärane loomuliku keele töötlemise raamistik, mida paljud ettevõtted kasutavad tänapäeval tootmises olemuse väljavõtte tegemise ülesannetes.
SpaCy ja alternatiivsed lahendused, nagu Stanfordi CoreNLP või Flair, on aga piiratud täpsusega ja nõuavad uute entiteetide väljavõtte tegemiseks tüütut annotatsioonitööd. 2023. aastal saab entiteetide ekstraheerimiseks ilma annotatsioonita kasutada mitmeid alternatiivseid tekstiloomingul põhinevaid mudeleid, näiteks GPT-J, GPT-NeoX, GPT-3... Need uued mudelid aitavad üha enamatel ettevõtetel oma entiteetide ekstraheerimise projektides edu saavutada.
Kui soovite kasutada GPT-J ja GPT-NeoX, ärge kartke proovida NLP Cloud API-d. (proovige seda siin)!
Juliette
NLP Cloudi turundusjuht