Özetleme, birçok geliştiricinin otomatikleştirmek istediği çok yaygın bir görevdir. Örneğin, yazdığınız her blog makalesinin bir özetini otomatik olarak oluşturmak hoş olmaz mıydı? Ya da çalışanlarınız için belgeleri otomatik olarak özetlemek? Tonlarca iyi uygulama mevcuttur.
Bart Large CNN gibi dönüştürücü tabanlı modeller Python'da metin özetlemeyi kolaylaştırır. Bu makine öğrenimi modellerinin kullanımı kolaydır ancak ölçeklendirilmesi zordur. Bart Large CNN'in nasıl kullanılacağını ve performansının nasıl optimize edileceğini görelim.
Transformers, son zamanlarda metin özetleme gibi çok gelişmiş doğal dil işleme kullanım durumlarına ulaşmayı mümkün kılan gelişmiş bir Python çerçevesidir.
Transformers ve sinir ağlarından önce, birkaç seçenek mevcuttu ancak hiçbiri gerçekten tatmin edici değildi.
Son yıllarda çeşitli kullanım durumları için Transformer'lara dayalı birçok iyi önceden eğitilmiş doğal dil işleme modeli oluşturulmuştur. Bart Large CNN, Facebook tarafından piyasaya sürülmüştür ve metin özetleme için mükemmel sonuçlar vermektedir.
Bart Large CNN'i Python kodunuzda nasıl kullanacağınız aşağıda açıklanmıştır.
Bart Large CNN'i kullanmanın en basit yolu, Hugging Face deposundan indirmek ve Transformers kütüphanesinden metin özetleme işlem hattını kullanmaktır:
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))
Çıktı:
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.
Gördüğünüz gibi, bu sadece 4 satırlık bir Python kodu ve özetin kalitesi çok iyi! Ancak modelin büyük olduğunu fark etmiş olabilirsiniz, bu yüzden ilk seferde indirmek zaman alıyor.
min_length ve max_length parametreleri özetinizin minimum ve maksimum boyutlarını gösterir. Bunlar sözcükleri değil, belirteç sayısını temsil eder. Temel olarak bir belirteç bir kelime olabileceği gibi noktalama işaretleri veya alt kelimeler de olabilir. Genel olarak 100 belirtecin kabaca 75 kelimeye eşit olduğunu düşünebilirsiniz.
Önemli not: bu modelin dahili bir sınırlaması olduğundan, giriş metniniz 1024 jetondan (aşağı yukarı 800 kelimeye eşit) daha büyük olamaz. Daha büyük metin parçalarını özetlemek istiyorsanız, metnin birkaç bölümünü bağımsız olarak özetlemek ve ardından sonuçları yeniden birleştirmek iyi bir stratejidir. Özetlerin özetlerini bile yapabilirsiniz!
Ancak bu Bart Large CNN modeliyle ilgili 2 temel sorun var.
İlk olarak, birçok derin öğrenme modeli gibi, önemli miktarda disk alanı ve RAM gerektirir (yaklaşık 1,5 GB!). GPT-3, GPT-J, T5 11B vb. gibi devasa modellerle karşılaştırıldığında bu hala küçük bir derin öğrenme modeli olarak kabul edilebilir.
Daha da önemlisi, oldukça yavaştır. Bu model aslında kaputun altında metin üretimi gerçekleştiriyor ve metin üretimi doğası gereği yavaştır. Eğer 800 kelimeden oluşan bir metni özetlemeye çalışıyorsanız, bu işlem iyi bir CPU'da yaklaşık 20 saniye sürecektir...
Çözüm, Bart büyük CNN'i bir GPU'ya yerleştirmektir. Örneğin, bir NVIDIA Tesla T4 üzerinde x10 hızlanma bekleyebilirsiniz ve 800 kelimelik metin parçanız yaklaşık 2 saniyede özetlenecektir.
GPU'lar elbette çok pahalıdır, bu nedenle hesaplama yapmak ve yatırıma değip değmeyeceğine karar vermek size kalmıştır!
Bart Large CNN ile metin özetlemeyi basit bir komut dosyasında kullanmak çok kolaydır, ancak bunu büyük hacimli talepler için üretimde kullanmak isterseniz ne olur?
Yukarıda belirtildiği gibi, ilk çözüm kendi donanımınızı bir GPU ile sağlamak ve özetlemeyi daha hızlı hale getirmek için bazı üretim optimizasyonları üzerinde çalışmak olacaktır.
İkinci bir çözüm ise bu görevi, bir API aracılığıyla Bart Large CNN modelini sizin için sunacak olan NLP Cloud gibi özel bir hizmete devretmek olacaktır. Özetleme API uç noktamızı buradan test edin!
2022 yılında, Transformers ve Bart Large CNN sayesinde Python'da çok az çabayla gelişmiş metin özetleme gerçekleştirmek mümkündür.
Metin özetleme, giderek daha fazla şirketin uygulamalarında otomatikleştirdiği çok faydalı bir görevdir. Gördüğünüz gibi, karmaşıklık performans tarafından gelmektedir. Bart Large CNN ile metin özetlemenizi hızlandırmak için bazı teknikler mevcuttur, ancak bu başka bir makalenin konusu olacak!
Umarım bu makale bir sonraki projeniz için zaman kazanmanıza yardımcı olur! NLP Cloud'da metin özetlemeyi denemekten çekinmeyin!
Julien Salinas
NLP Cloud'da CTO