Apibendrinimas yra labai dažna užduotis, kurią daugelis kūrėjų norėtų automatizuoti. Pavyzdžiui, ar nebūtų malonu automatiškai sukurti kiekvieno rašomo tinklaraščio straipsnio santrauką? Arba automatiškai apibendrinti dokumentus savo darbuotojams? Yra daugybė gerų programų.
Transformatoriais pagrįsti modeliai, tokie kaip Bart Large CNN, leidžia lengvai apibendrinti tekstą "Python" kalba. Šiuos mašininio mokymosi modelius lengva naudoti, bet sunku išplėsti. Pažiūrėkime, kaip naudoti "Bart Large CNN" ir kaip optimizuoti jo veikimą.
"Transformers" yra pažangi "Python" sistema, kuri neseniai leido pasiekti labai pažangių natūralios kalbos apdorojimo atvejų, pavyzdžiui, teksto apibendrinimo.
Prieš atsirandant "Transformeriams" ir neuroniniams tinklams, buvo kelios galimybės, tačiau nė viena iš jų nebuvo tikrai patenkinama.
Pastaraisiais metais sukurta daug gerų iš anksto apmokytų natūralios kalbos apdorojimo modelių, pagrįstų transformatoriais, skirtų įvairiems naudojimo atvejams. Bart Large CNN buvo išleistas Facebook ir duoda puikius rezultatus apibendrinant tekstą.
Štai kaip "Bart Large CNN" naudoti "Python" kode.
Paprasčiausias būdas naudoti "Bart Large CNN" - atsisiųsti jį iš "Hugging Face" saugyklos ir naudoti teksto apibendrinimo vamzdyną iš "Transformers" bibliotekos:
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))
Išvestis:
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.
Kaip matote, tai tik 4 "Python" kodo eilutės, o santraukos kokybė yra labai gera! Tačiau turbūt pastebėjote, kad modelis yra didelis, todėl pirmą kartą jį atsisiųsti užtrunka.
Parametrai min_length ir max_length nurodo mažiausią ir didžiausią santraukos dydį. Jie reiškia ženklų, o ne žodžių skaičių. Iš esmės simbolis gali būti žodis, taip pat skyrybos ženklai arba posakiai. Apskritai galite manyti, kad 100 ženklų yra maždaug lygūs 75 žodžiams.
Svarbi pastaba: jūsų įvesties tekstas negali būti didesnis nei 1024 ženklai (daugiau ar mažiau lygus 800 žodžių), nes tai yra vidinis šio modelio apribojimas. Jei norite apibendrinti didesnius teksto fragmentus, gera strategija - apibendrinti kelias teksto dalis atskirai ir tada iš naujo sujungti rezultatus. Galite netgi atlikti santraukų santraukas!
Tačiau yra dvi pagrindinės šio "Bart Large CNN" modelio problemos.
Pirma, kaip ir daugeliui gilaus mokymosi modelių, jam reikia daug vietos diske ir operatyviosios atminties (apie 1,5 GB!). Ir tai vis dar galima laikyti mažu giliojo mokymosi modeliu, palyginti su didžiuliais, tokiais kaip GPT-3, GPT-J, T5 11B ir kt.
Dar svarbiau tai, kad jis yra gana lėtas. Šis modelis iš tikrųjų atlieka teksto generavimą, o teksto generavimas iš esmės yra lėtas. Jei bandote apibendrinti tekstą, sudarytą iš 800 žodžių, geram procesoriui prireiks maždaug 20 sekundžių...
Sprendimas - įdiegti "Bart" didelį CNN į GPU. Pavyzdžiui, naudodami NVIDIA Tesla T4 galite tikėtis x10 pagreičio, o 800 žodžių tekstą apibendrinsite maždaug per 2 sekundes.
Žinoma, GPU yra labai brangūs, todėl turite atlikti skaičiavimus ir nuspręsti, ar verta investuoti!
Teksto apibendrinimą su "Bart Large CNN" labai lengva naudoti paprastu scenarijumi, bet ką daryti, jei norite jį naudoti gamyboje dideliam užklausų kiekiui?
Kaip minėta pirmiau, pirmasis sprendimas būtų pasirūpinti savo technine įranga su GPU ir atlikti tam tikrą gamybos optimizavimą, kad apibendrinimas būtų greitesnis.
Antrasis sprendimas būtų perduoti šią užduotį specialiai tam skirtai paslaugai, pavyzdžiui, "NLP Cloud", kuri per API jums pateiks "Bart Large CNN" modelį. Išbandykite mūsų apibendrinimo API galinį tašką čia!
2022 m. "Python" programa galima atlikti pažangų teksto apibendrinimą, įdedant nedaug pastangų, nes naudojami Transformeriai ir Bart Large CNN.
Teksto apibendrinimas yra labai naudinga užduotis, kurią vis daugiau įmonių automatizuoja savo programose. Kaip matote, sudėtingumas kyla iš našumo pusės. Egzistuoja keletas metodų, kaip paspartinti teksto apibendrinimą naudojant Bart Large CNN, tačiau tai bus kito straipsnio tema!
Tikiuosi, kad šis straipsnis padės jums sutaupyti laiko kitam projektui! Nedvejodami išbandykite teksto apibendrinimą NLP debesyje!
Julien Salinas
NLP Cloud techninis direktorius