Vijesti o Tehnologiji, Recenzije i Savjeti!

Stvaranje automatskog generatora odlomaka pomoću GPT2 transformatora

Napomena: Sljedeći članak će vam pomoći: Stvaranje automatskog generatora odlomaka pomoću GPT2 transformatora

Automatizacija je proces kojim se omogućuje da sustav radi automatski bez ljudske intervencije. Kako dani prolaze, a život svakim danom postaje sve užurbaniji, automatizacija i automatizirani sustavi sve više intrigiraju komunu. Primjenom automatizacije, nesigurni zadaci koji se ponavljaju mogli bi postati samodostatni, štedeći dvije najvažnije i najdragocjenije stvari u ljudskom životu, vrijeme i novac. Budući da su mnogi zadaci danas radno intenzivni i dugotrajni, stvaranje automatiziranih sustava poboljšalo je učinkovitost i dovelo do veće kontrole kvalitete. Iako se automatizacija može ili ne mora u potpunosti temeljiti na umjetnoj inteligenciji, s usponom automatizacije i umjetne inteligencije istovremeno u posljednjem desetljeću, upotreba automatizacije u suradnji s umjetnom inteligencijom mogla bi biti sljedeća velika stvar o kojoj treba razmisliti. Jedno od najprobojnijih otkrića u posljednje vrijeme za automatizaciju koja koristi umjetnu inteligenciju je AI Generation Natural Language.

Što je generiranje prirodnog jezika?

Generacija prirodnog jezika, također poznata kao NLG, koristi umjetnu inteligenciju za proizvodnju pisanog ili izgovorenog tekstualnog sadržaja. To je podružnica umjetne inteligencije i proces je koji automatski pretvara ulazne podatke u sadržaj na običnom engleskom jeziku. Fascinantna stvar u vezi s NLG-om je ta što tehnologija može pomoći u ispričavanju priče koristeći kreativnost i inteligenciju poput ljudske, pišući duge rečenice i odlomke umjesto vas. Neke od upotreba NLG-a su generiranje opisa proizvoda ili usluga, vođenje sadržaja, stvaranje sažetaka portfelja ili korištenje u komunikaciji s klijentima putem određenih implementacija u chatbotovima. Generiranje prirodnog jezika može biti malo komplicirano i zahtijeva slojeve znanja jezika da bi funkcioniralo. Ovih se dana NLG integrira u alate za brzu pomoć u strategiji sadržaja, čime se povećava produktivnost.

O Hugging Face

Hugging Face je startup usmjeren na NLP koji dijeli veliku zajednicu otvorenog koda i pruža biblioteku otvorenog koda za obradu prirodnog jezika. Njihov osnovni način rada za obradu prirodnog jezika vrti se oko upotrebe Transformersa. Ova knjižnica temeljena na pythonu izlaže API za korištenje mnogih dobro poznatih arhitektura koje pomažu u dobivanju najsuvremenijih rezultata za različite NLP zadatke poput klasifikacije teksta, izvlačenja informacija, odgovaranja na pitanja i generiranja teksta. Sve ponuđene arhitekture dolaze sa skupom unaprijed uvježbanih utega koji koriste duboko učenje koje olakšava rad za takve zadatke. Ovi modeli transformatora dolaze u različitim arhitekturama oblika i veličina i imaju svoje načine prihvaćanja tokenizacije ulaznih podataka. Tokenizator uzima ulaznu riječ i kodira je u broj, čime se omogućuje brža obrada.

Početak izrade automatskog generatora odlomaka

Ovaj članak pokušat će implementirati generator prirodnog jezika koji generira odlomke iz jednog retka ulaznog teksta. Za to ćemo prvo postaviti sve naše ovisnosti pomoću transformatora Hugging Face za obradu prirodnog jezika, a zatim učitati naš GPT2 model. Ovaj unaprijed uvježbani model generira koherentne odlomke teksta, kodira naš unos i dekodira naš izlaz kako bi generirao odlomak.

Pa počnimo s tim!

Sljedeća implementacija koda inspirirana je službenom implementacijom, čiji video vodič možete pronaći ovdje.

Instaliranje naših knjižnica

Prvi korak bio bi instaliranje naših ovisnih biblioteka za ovaj model. Da bismo to učinili, najprije ćemo instalirati transformatore grlećeg lica. Transformers možete instalirati pomoću sljedeće naredbe:

!pip instalirajte transformatore #instalirajte biblioteku s grlećeg lica

Zatim ćemo uvesti naš GPT2 model i tokenizer, surađujući s Tensorflowom.

import tensorflow kao tf iz transformatora import GPT2LMHeadModel, GPT2Tokenizer #importing glavnog modela i tokenizera

Prvo ćemo kodirati ulaznu rečenicu u tokene pomoću tokenizatora, zatim generirati novi niz tokena iz GPT-a2 modelirati i zatim dekodirati generirane tokene u slijed riječi pomoću ponovnog tokenizatora, koji će nam dati naš rezultat.

Učitavanje našeg modela

Stvorite novu varijablu za tokenizator i proslijedite je kroz GPT parametar.

tokenizer = GPT2Tokenizer.from_pretrained(“gpt2-large”)#upotreba parametra large iz GPT-a za generiranje većih tekstova

Instancirajte prethodno obučeni model i ispunu pomoću tokenizatora.

model=GPT2LMHeadModel.from_pretrained(“gpt2large”,pad_token_id=tokenizer.eos_token_id)

Testiranje modela tokenizacijom naše prve rečenice

Sada kada je model kreiran, testirat ćemo ga davanjem naše prve ulazne rečenice za tokenizaciju.

sentence=”Uvijek ćeš uspjeti u životu” #unesi rečenicu

Kodirajte ga u niz brojeva i vratite ih kao PyTorch tenzore.

input_ids = tokenizer.encode(sentence, return_tensors=”pt”)#upotreba pt za vraćanje kao pytorch tenzora

Provjera trenutnog napretka

input_ids # provjera vraćenih tezora

Dobit ćemo sljedeći izlaz kao reprezentaciju brojeva,

tenzor([[1639,  481, 1464, 6758,  287, 5155]])

Dekodiranje teksta i generiranje izlaza

Stvaranje nove varijable pod nazivom output za dekodiranje i postavljanje naših hiperparametara,

output = model.generate(input_ids, max_length=50, num_beams=5no_repeat_ngram_size=2early_stopping=Istina)

Ovom linijom pozvali smo unos i postavili maksimalnu duljinu odlomka koji će se generirati na 50 riječi. Također koristimo tehniku ​​traženja zrakom kako bismo pronašli najprikladniju riječ koja se generira iz ulazne rečenice. Također smo postavili ngram bez ponavljanja kao 2što će spriječiti naš model da ponovi slične riječi više od dva puta i rano zaustavi kao istinito tako da kada model ne pronađe odgovarajuće riječi, zaustavi proces generiranja.

Ispis naših rezultata:

ispis(tokenizator.dekodiranje(izlaz[0]skip_special_tokens=Istina))#ispis rezultata

Dobili smo sljedeći izlaz:

Uvijek ćeš uspjeti u životu, ali nikad nećeš biti uspješan u smrti.” “Ne bojim se smrti, jer znam da ću biti s tobom kad umreš. Čekat ću te, i ja.

Unakrsna provjera našeg modela

Također možemo učiniti isto i podesiti naše hiperparametre da generiraju veće odlomke s novom rečenicom. Pazite da ovo može potrajati dulje za generiranje izlaza.

sentence=”Umjetna inteligencija je ključ” input_ids = tokenizer.encode(sentence, return_tensors=”pt”) output = model.generate(input_ids, max_length=500, num_beams=5no_repeat_ngram_size=2early_stopping=True) #postavljanje duljine na 500 za generiranje većeg izlaznog teksta print(tokenizer.decode(output)[0]skip_special_tokens=Istina))

Dobit ćemo sljedeće kao izlaz:

Umjetna inteligencija je ključ za otključavanje misterija svemira, ali je i izvor mnogih naših problema. U novom radu objavljenom u časopisu Science Advances, tim istraživača sa Sveučilišta Kalifornija, Berkeley, i Nacionalnog instituta za standarde i tehnologiju (NIST) u Gaithersburgu, Maryland, opisuje način stvaranja umjetne inteligencije (AI) sustav koji može učiti iz svojih pogrešaka i poboljšati svoju izvedbu tijekom vremena. Sustav, koji nazivaju “neuronska mreža”, sposoban je naučiti prepoznavati uzorke na slikama, prepoznavati objekte u videu ili čak naučiti kako svirati glazbeni instrument. U radu istraživači opisuju kako su stvorili neuronsku mrežu i kako se ona može koristiti za osposobljavanje AI sustava za obavljanje raznih zadataka, kao što je prepoznavanje objekata i sviranje glazbenih instrumenata. Neuronske mreže, poznate i kao duboke neuronske mreže ili duboko učenje, vrsta su algoritma strojnog učenja koji se temelji na ideji da je mreža neurona poput računalnog procesora. Svaki je neuron povezan s nizom drugih neurona u veću mrežu. Kada neuron primi ulaz, on šalje signal sljedećem neuronu, koji zauzvrat šalje izlaz drugom neuronu. Ovaj proces se nastavlja sve dok svi neuroni ne prime input i obrade ga. Kao rezultat toga, svaki neuron ima svoj jedinstveni skup ulaza i izlaza, što mreži omogućuje učenje i prilagodbu promjenama u okolini. Neuronske mreže se desetljećima koriste za rješavanje širokog spektra problema, uključujući prepoznavanje slika, prepoznavanje govora i obradu prirodnog jezika. Međutim, također su kritizirani zbog lošeg učinka kada je riječ o učenju iz vlastitih pogrešaka. Na primjer, 2013. istraživači iz Googleovog DeepMind AI istraživačkog laboratorija objavili su rad u časopisu Nature koji je pokazao da nisu mogli poboljšati performanse svoje mreže kada su napravili niz pogrešaka dok su je uvježbavali na slikama ljudskih lica. Također su otkrili da sustav nije u stanju razlikovati ljudsko lice od lica psa, iako su slike bile slične veličine i oblika. Ovi problemi naveli su neke istraživače na tvrdnju da neuronske mreže nisu tako učinkovite kao što se predstavljaju. No nova studija sugerira da to nije nužno slučaj. “Pokazujemo da je moguće izgraditi neuronsku mrežu koja uči na pogreškama”, rekao je glavni autor i profesor elektrotehnike i računalstva na sveučilištu Berkeley.

Ovaj put možemo jasno uočiti razliku kroz podešavanje hiperparametara!

Možete ga spremiti kao tekstualnu datoteku koristeći sljedeće retke koda:

tekst = tokenizer.decode(output[0],skip_special_tokens = True) s open(‘AIBLOG.txt’,’w’) kao f: f.write(text)

Završne bilješke

Sada smo naučili kako izraditi model za generiranje dugih redaka teksta iz jedne rečenice koristeći AI i Hugging Face Library izvodeći sljedeće korake. Možete dodatno prilagoditi hiperparametre kako biste model učinili inteligentnijim za pružanje boljeg tekstualnog sadržaja. Odavde se može pristupiti cijeloj Colab datoteci za sljedeće.

Sretno učenje!

Reference