Povzemanje je zelo pogosto opravilo, ki bi ga mnogi razvijalci radi avtomatizirali. Ali ne bi bilo na primer lepo samodejno ustvariti povzetek vsakega članka v blogu, ki ga pišete? Ali samodejno povzemati dokumente za vaše zaposlene? Obstaja na tone dobrih aplikacij.
Modeli, ki temeljijo na transformatorjih, kot je Bart Large CNN, omogočajo enostavno povzemanje besedila v Pythonu. Te modele strojnega učenja je enostavno uporabljati, vendar jih je težko razširiti. Oglejmo si, kako uporabiti Bart Large CNN in kako optimizirati njegovo delovanje.
Transformers je napredno ogrodje Python, ki je pred kratkim omogočilo zelo napredne primere uporabe obdelave naravnega jezika, kot je povzemanje besedila.
Pred Transformerji in nevronskimi mrežami je bilo na voljo nekaj možnosti, vendar nobena od njih ni bila zares zadovoljiva.
V zadnjih letih je bilo ustvarjenih veliko dobrih vnaprej usposobljenih modelov za obdelavo naravnega jezika, ki temeljijo na transformatorjih za različne primere uporabe. Družba Facebook je izdala Bart Large CNN, ki daje odlične rezultate pri povzemanju besedil.
Tukaj je opisano, kako uporabiti Bart Large CNN v kodi Pythona.
Najpreprostejši način uporabe omrežja Bart Large CNN je, da ga prenesete iz repozitorija Hugging Face in uporabite cevovod za povzemanje besedila iz knjižnice Transformers:
from transformers import pipeline
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
article = """New York (CNN)When Liana Barrientos was 23 years old, she got married in Westchester County, New York.
A year later, she got married again in Westchester County, but to a different man and without divorcing her first husband.
Only 18 days after that marriage, she got hitched yet again. Then, Barrientos declared "I do" five more times, sometimes only within two weeks of each other.
In 2010, she married once more, this time in the Bronx. In an application for a marriage license, she stated it was her "first and only" marriage.
Barrientos, now 39, is facing two criminal counts of "offering a false instrument for filing in the first degree," referring to her false statements on the
2010 marriage license application, according to court documents.
Prosecutors said the marriages were part of an immigration scam.
On Friday, she pleaded not guilty at State Supreme Court in the Bronx, according to her attorney, Christopher Wright, who declined to comment further.
After leaving court, Barrientos was arrested and charged with theft of service and criminal trespass for allegedly sneaking into the New York subway through an emergency exit, said Detective
Annette Markowski, a police spokeswoman. In total, Barrientos has been married 10 times, with nine of her marriages occurring between 1999 and 2002.
All occurred either in Westchester County, Long Island, New Jersey or the Bronx. She is believed to still be married to four men, and at one time, she was married to eight men at once, prosecutors say.
Prosecutors said the immigration scam involved some of her husbands, who filed for permanent residence status shortly after the marriages.
Any divorces happened only after such filings were approved. It was unclear whether any of the men will be prosecuted.
The case was referred to the Bronx District Attorney\'s Office by Immigration and Customs Enforcement and the Department of Homeland Security\'s
Investigation Division. Seven of the men are from so-called "red-flagged" countries, including Egypt, Turkey, Georgia, Pakistan and Mali.
Her eighth husband, Rashid Rajput, was deported in 2006 to his native Pakistan after an investigation by the Joint Terrorism Task Force.
If convicted, Barrientos faces up to four years in prison. Her next court appearance is scheduled for May 18."""
summary = summarizer(article, max_length=130, min_length=30))
Izhod:
Liana Barrientos, 39, is charged with two counts of "offering a false instrument for filing in the first degree" In total, she has been married 10 times, with nine of her marriages occurring between 1999 and 2002. She is believed to still be married to four men.
Kot lahko vidite, so to le 4 vrstice kode Python, kakovost povzetka pa je zelo dobra! Morda pa ste opazili, da je model velik, zato traja nekaj časa, da ga prvič prenesete.
Parametra min_length in max_length določata najmanjšo in največjo velikost vašega povzetka. Predstavljata število žetonov in ne besed. Žeton je lahko beseda, pa tudi ločila ali podpomeni. Na splošno lahko menite, da je 100 žetonov približno enako 75 besedam.
Pomembna opomba: vaše vhodno besedilo ne sme biti večje od 1024 žetonov (približno enako 800 besedam), saj je to notranja omejitev tega modela. Če želite povzeti večje dele besedila, je dobra strategija, da povzemate več delov besedila neodvisno in nato ponovno sestavite rezultate. Izvedete lahko celo povzetke povzetkov!
Pri tem modelu Bart Large CNN pa sta dve glavni težavi.
Prvič, tako kot številni modeli globokega učenja zahteva veliko prostora na disku in v pomnilniku RAM (približno 1,5 GB!). In to lahko še vedno štejemo za majhen model globokega učenja v primerjavi z velikimi modeli, kot so GPT-3, GPT-J, T5 11B itd.
Še pomembneje pa je, da je precej počasen. Ta model dejansko izvaja generiranje besedila pod pokrovom, generiranje besedila pa je že po naravi počasno. Če poskušate povzeti besedilo, sestavljeno iz 800 besed, bo to pri dobrem procesorju trajalo približno 20 sekund...
Rešitev je namestitev velikega omrežja CNN Bart na grafični procesor. Na primer, na računalniku NVIDIA Tesla T4 lahko pričakujete pohitritev x10 in besedilo z 800 besedami bo povzeto v približno 2 sekundah.
Grafični procesorji so seveda zelo dragi, zato morate sami izračunati in se odločiti, ali je naložba vredna!
Povzemanje besedil z Bart Large CNN je zelo enostavno za uporabo v preprosti skripti, kaj pa, če ga želite uporabiti v produkciji za veliko število zahtevkov?
Kot je navedeno zgoraj, bi bila prva rešitev, da poskrbite za lastno strojno opremo z grafičnim procesorjem in delate na nekaterih optimizacijah za proizvodnjo, da bi bilo povzemanje hitrejše.
Druga rešitev je, da to nalogo prenesete na namensko storitev, kot je NLP Cloud, ki vam bo prek vmesnika API ponudila model Bart Large CNN. Preizkusite našo končno točko API za povzemanje tukaj!
Leta 2022 je mogoče z zelo malo truda v Pythonu izvajati napredno povzemanje besedil, zahvaljujoč Transformerjem in Bartovi veliki CNN.
Povzemanje besedil je zelo uporabno opravilo, ki ga zdaj vse več podjetij avtomatizira v svojih aplikacijah. Kot lahko vidite, je zapletenost na strani zmogljivosti. Obstajajo nekatere tehnike, s katerimi lahko pospešite povzemanje besedila z Bart Large CNN, vendar bo to tema za drug članek!
Upam, da vam bo ta članek pomagal prihraniti čas pri naslednjem projektu! Preizkusite povzemanje besedil v oblaku NLP Cloud!
Julien Salinas
Tehnični direktor v podjetju NLP Cloud