Python'da Sarılma Yüz Transformatörleri Nasıl Kullanılır?

Python Da Sarilma Yuz Transformatorleri Nasil Kullanilir



Hugging Face, açık kaynaklı bir Yapay Zeka topluluğu olarak tanınır ve dil modelleri (doğal dil işleme) ile iletişim kurmaya veya eğitim vermeye yardımcı olan tüm önemli çerçeveleri, araçları, modelleri ve mimarileri sağlar. Hugging Face dönüştürücüler, Python'da önceden eğitilmiş dil işleme modellerinin sağlanmasına yardımcı olan bir dil mimarisidir. Hugging Face'in bu dönüştürücüleri, programcıların kitaplık paketleriyle önceden eğitilmiş modellerle kolayca etkileşim oluşturmasına yardımcı olan çok çeşitli veri kümeleri ve katmanlı API'ler sağlar.

Sözdizimi

Son teknoloji Hugging Face transformatörleri, çok çeşitli önceden eğitilmiş modellere sahiptir. Bu modeller, aşağıda listelenen çeşitli dil modellerine uygulanabilir:

  • Bu dönüştürücüler farklı dillerdeki metinleri işleyebilmekte ve metin üzerinde metin sınıflandırma, soru-cevaplama, metnin farklı dillere çevrilmesi, metin oluşturma gibi farklı görevleri yerine getirebilmektedir.
  • Hugging Face'te bu dönüştürücüleri, nesne algılama ve konuşma tabanlı görevler gibi görüntü tabanlı sınıflandırma görevleri için de kullanabiliriz, örn. konuşmacı sınıflandırması veya konuşma tanımlama/tanıma.

Hugging Face'teki transformatörler arasında TensorFlow, PyTorch, ONNX vb. bulunur. Bu transformatörler için paketi kurma sözdizimi için aşağıdaki komutu kullanırız:







$ pip kurulum transformatörleri

Şimdi, farklı dil işleme görevleri için Hugging Face dönüştürücüsünden modelleri kullandığımız farklı örnekler denemeye çalışıyoruz.



Örnek 1: Sarılan Yüz Transformatörlerini Kullanarak Metin Oluşturma

Bu örnek, metin üretimi için dönüştürücüleri kullanma yöntemini kapsar. Metin üretimi için, transformatörden önceden eğitilmiş metin oluşturma modelini kullanır ve içe aktarırız. Transformatör, 'boru hatları' olarak bilinen temel bir kitaplığa sahiptir. Bu boru hatları, girdi olarak önceden eğitilmiş modellere beslenmesi gereken veriler üzerinde gerekli tüm ön ve son işlemleri yaparak transformatörler için çalışır.



Örneği kodlamaya önce “transformers” kütüphane paketini Python terminaline kurarak başlıyoruz. Transformatörün paketini indirmek için, “paket adı ile pip kurulumunu kullanın, yani transformatör”. Transformatör paketini indirip kurduktan sonra “pipelines” paketini transformatörden import ederek ilerliyoruz. İşlem hattı, modele beslenmeden önce verileri işlemek için kullanılır.





pprint'ten “pprint”i import ediyoruz. Bu paket, metin oluşturma modelinden çıktıyı daha okunabilir, yapılandırılmış ve iyi biçimlendirilmiş bir biçimde yazdırmak için kurulur. Aksi takdirde, “print()” işlevini kullanırsak, çıktıyı iyi biçimlendirilmemiş ve kolay okunabilir olmayan tek bir satırda görüntüler. Metin oluşturma modelleri, başlangıçta modele girdi olarak sağladığımız metne daha fazla metin oluşturmaya veya eklemeye yardımcı olur.

Eğitilmiş modeli transformatörden çağırmak için, girişi olarak iki parametreye sahip olan Pipeline() fonksiyonunu kullanırız. İlki seçilen görevin adını belirtir ve ikincisi modelin adını bir transformatörden alır. Bu senaryoda, seçilen görev metin oluşturmadır. Transformatörden yararlandığımız önceden eğitilmiş model “gpt” dir.



Pipeline fonksiyonunu kullandıktan sonra, modelimize vermek istediğimiz girdiye ek metin oluşturmak için karar veririz. Daha sonra bu girdiyi “task_pipeline()” fonksiyonuna aktarıyoruz. Bu işlev, girdiyi, çıktının maksimum uzunluğunu ve çıktının sahip olması gereken cümle sayısını girdi parametreleri olarak alarak model için çıktı oluşturur.

Girdiyi “Bu bir dil modelidir” şeklinde veriyoruz. Çıktının maksimum uzunluğunu “30” ve çıktıdaki cümle sayısını “3” olarak sabitliyoruz. Şimdi, modelimizden üretilen sonuçları görüntülemek için basitçe pprint() işlevini çağırıyoruz.

!pip kurulum transformatörleri

trafolardan ithal boru hattı
pprint'ten import pprint

SELECTED_TASK = 'metin oluşturma'
MODEL = 'gpt2'
görev = ardışık düzen(f'{SELECTED_TASK}', model = MODEL)

INPUT = 'Bu bir dil modelidir'
OUT_put = görev(GİRİŞ, maks_uzunluk = 30, num_return_sequences=3)

pprint(OUT_put)

Daha önce bahsedilen kodun snippet'inden ve çıktısından, modelin kendisine beslediğimiz girdiyle ilgili ek bilgileri/metni ürettiğini görebiliriz.

Örnek 2: Transformers'tan Ardışık Düzen Kullanarak Metin Sınıflandırması

Önceki örnek, transformatörleri ve bunların paket boru hatlarını kullanarak girişle ilgili ek metni oluşturma yöntemini kapsıyordu. Bu örnek bize boru hatları ile metin sınıflandırmasının nasıl gerçekleştirileceğini gösterir. Metin sınıflandırması, modele beslenen girdiyi belirli bir sınıfın üyesi olarak tanımlama işlemidir, örn. olumlu veya olumsuz.

Boru hatlarını önce trafolardan alıyoruz. Ardından “pipeline()” fonksiyonunu çağırıyoruz. Bizim durumumuzda 'metin sınıflandırması' olan modelin adını parametrelerine aktarıyoruz. Model, ardışık düzen kullanılarak belirlendikten sonra, onu artık 'sınıflandırıcı' olarak adlandırabiliriz. Bu noktaya kadar, metin sınıflandırması için varsayılan model ana makinemize indirilir. Artık bu modeli görevimiz için kullanabiliriz.

Bu nedenle, Pandaları “pd” olarak içe aktarın. Modelden çıktıyı DataFrame biçiminde yazdırmak istediğimiz için bu paketi import etmek istiyoruz. Şimdi modelimize vermek istediğimiz metni olumlu ya da olumsuz cümle olarak sınıflandırmak için girdi olarak belirtiyoruz. Metni “Ben iyi bir adamım” olarak belirledik. Bu metni az önce bu örnekte oluşturduğumuz classifier() modeline aktarıyoruz ve sonuçları bir 'output' değişkenine kaydediyoruz.

Çıktıyı görüntülemek için Pandas'ın önekini, yani pd'yi “.Dataframe()” olarak çağırıyoruz ve sınıflandırıcı modelinden çıktıyı bu fonksiyona aktarıyoruz. Şimdi, aşağıdaki çıktı parçacığında gösterildiği gibi sınıflandırıcı modelinden elde edilen sonuçları görüntüler. Sınıflandırıcı modelimiz, metni pozitif sınıf olarak sınıflandırır.

!pip kurulum transformatörleri
trafolardan ithal boru hattı
pandaları pd olarak içe aktar
sınıflandırıcı = boru hattı ('metin sınıflandırması', model = 'metin saldırısı/distilbert-base-uncased-CoLA')
metin = 'ben iyi bir adamım'
sonuç = sınıflandırıcı(metin)
pprint(sonuç)
df = pd.DataFrame(sonuç)

Çözüm

Bu kılavuz, Hugging Face'teki trafo mimarisini kapsıyordu. Hugging Face dönüştürücüsünden 'boru hattı' kitaplığını tartıştık. Daha sonra, bu kütüphanenin yardımıyla, metin oluşturma ve sınıflandırma görevleri için önceden eğitilmiş transformatör modellerinden yararlandık.