Scikit-LLM ile Yüksek Lisans'ları Scikit-learn İş Akışınıza Kolayca Entegre Edin - KDnuggets

Scikit-LLM ile Yüksek Lisans'ları Scikit-learn İş Akışınıza Kolayca Entegre Edin – KDnuggets

Kaynak Düğüm: 3030440

Scikit-LLM ile Yüksek Lisans'ları Scikit-learn İş Akışınıza Kolayca Entegre Edin
Resim DALL-E 2 tarafından oluşturulmuştur
 

İhtiyaçlar her zaman mevcut olduğundan metin analizi görevleri bir süredir ortalıkta dolaşıyor. Araştırmalar, basit açıklama istatistiklerinden metin sınıflandırmasına ve gelişmiş metin oluşturmaya kadar uzun bir yol kat etti. Büyük Dil Modelinin cephaneliğimize eklenmesiyle çalışma görevlerimiz daha da erişilebilir hale geliyor.

Scikit-LLM, LLM'nin gücüyle metin analizi etkinliği için geliştirilmiş bir Python paketidir. Bu paket öne çıktı çünkü standart Scikit-Learn hattını Scikit-LLM ile entegre edebildik.

Peki bu paket neyle ilgili ve nasıl çalışıyor? Hadi konuya girelim.

Scikit-LLM LLM yoluyla metin verisi analitik görevlerini geliştirmeye yönelik bir Python paketidir. Tarafından geliştirildi Beatsbyte standart Scikit-Learn kütüphanesi ile dil modelinin gücü arasında köprü kurmaya yardımcı olmak. Scikit-LLM, API'sini SKlearn kütüphanesine benzer olacak şekilde oluşturdu, bu nedenle onu kullanırken çok fazla sorun yaşamıyoruz.

Montaj

Paketi kullanabilmek için bunları kurmamız gerekiyor. Bunu yapmak için aşağıdaki kodu kullanabilirsiniz.

pip install scikit-llm

 

Bu makalenin yazıldığı tarih itibariyle Scikit-LLM yalnızca bazı OpenAI ve GPT4ALL Modelleriyle uyumludur. Bu yüzden sadece OpenAI modeliyle çalışacağız. Ancak başlangıçta bileşeni yükleyerek GPT4ALL modelini kullanabilirsiniz.

pip install scikit-llm[gpt4all]

 

Kurulumdan sonra LLM modellerine erişmek için OpenAI anahtarını ayarlamanız gerekir.

from skllm.config import SKLLMConfig

SKLLMConfig.set_openai_key("")
SKLLMConfig.set_openai_org("")

Scikit-LLM'yi denemek

Ortam seti ile bazı Scikit-LLM yeteneklerini deneyelim. LLM'lerin sahip olduğu bir yetenek, Zero-Shot adını verdiğimiz yeniden eğitime gerek kalmadan metin sınıflandırmasını gerçekleştirmektir. Ancak başlangıçta örnek verilerle Az Çekimli metin sınıflandırmasını deneyeceğiz.

from skllm import ZeroShotGPTClassifier
from skllm.datasets import get_classification_dataset


#label: Positive, Neutral, Negative
X, y = get_classification_dataset()


#Initiate the model with GPT-3.5
clf = ZeroShotGPTClassifier(openai_model="gpt-3.5-turbo")
clf.fit(X, y)
labels = clf.predict(X)

 

Yalnızca X değişkeni içindeki metin verilerini ve veri kümesindeki y etiketini sağlamanız gerekir. Bu durumda etiket Olumlu, Nötr veya Olumsuz duygularından oluşur. 

Görüldüğü üzere süreç Scikit-Learn paketindeki fiting metodunun kullanılmasına benzer. Ancak Zero-Shot'ın eğitim için mutlaka bir veri kümesi gerektirmediğini zaten biliyoruz. Bu nedenle etiketleri eğitim verileri olmadan sağlayabiliyoruz.

X, _ = get_classification_dataset()

clf = ZeroShotGPTClassifier()
clf.fit(None, ["positive", "negative", "neutral"])
labels = clf.predict(X)

 

Bu aynı zamanda aşağıdaki kodda görebileceğiniz çok etiketli sınıflandırma durumlarında da genişletilebilir.

from skllm import MultiLabelZeroShotGPTClassifier
from skllm.datasets import get_multilabel_classification_dataset
X, _ = get_multilabel_classification_dataset()
candidate_labels = [
    "Quality",
    "Price",
    "Delivery",
    "Service",
    "Product Variety",
    "Customer Support",
    "Packaging",,
]
clf = MultiLabelZeroShotGPTClassifier(max_labels=4)
clf.fit(None, [candidate_labels])
labels = clf.predict(X)

Scikit-LLM'nin şaşırtıcı yanı, kullanıcının LLM'nin gücünü tipik Scikit-Learn hattına kadar genişletmesine olanak sağlamasıdır. 

ML Pipeline'da Scikit-LLM

Bir sonraki örnekte Scikit-LLM'yi vektörleştirici olarak nasıl başlatabileceğimizi ve XGBoost'u model sınıflandırıcı olarak nasıl kullanabileceğimizi göstereceğim. Ayrıca adımları model hattına da saracağız.

Öncelikle veriyi yükleyip, etiket verisini sayısal bir değere dönüştürmek için etiket kodlayıcıyı başlatacağız.

from sklearn.preprocessing import LabelEncoder

X, y = get_classification_dataset()

le = LabelEncoder()
y_train_enc = le.fit_transform(y_train)
y_test_enc = le.transform(y_test)

 

Daha sonra, vektörleştirme ve model uydurmayı gerçekleştirmek için bir boru hattı tanımlayacağız. Bunu aşağıdaki kodla yapabiliriz.

from sklearn.pipeline import Pipeline
from xgboost import XGBClassifier
from skllm.preprocessing import GPTVectorizer

steps = [("GPT", GPTVectorizer()), ("Clf", XGBClassifier())]
clf = Pipeline(steps)

#Fitting the dataset
clf.fit(X_train, y_train_enc)

 

Son olarak aşağıdaki kod ile tahmin gerçekleştirebiliriz.

pred_enc = clf.predict(X_test)
preds = le.inverse_transform(pred_enc)

 

Gördüğümüz gibi Scikit-Learn boru hattı altında Scikit-LLM ve XGBoost'u kullanabiliriz. Gerekli tüm paketleri birleştirmek tahminimizi daha da güçlendirecektir.

Model ince ayarı da dahil olmak üzere Scikit-LLM ile yapabileceğiniz çeşitli görevler var; daha fazla bilgi edinmek için belgelere göz atmanızı öneririm. Açık kaynak modelini şuradan da kullanabilirsiniz: GPT4ALL Eğer gerekliyse.

Scikit-LLM, Scikit-Learn metin veri analizi görevlerini LLM ile güçlendiren bir Python paketidir. Bu makalede Scikit-LLM'yi metin sınıflandırma için nasıl kullandığımızı ve bunları makine öğrenimi hattında nasıl birleştirdiğimizi tartıştık.
 
 

Cornellius Yudha Wijaya bir veri bilimi müdür yardımcısı ve veri yazarıdır. Allianz Endonezya'da tam zamanlı çalışırken, sosyal medya ve yazılı medya aracılığıyla Python ve Veri ipuçlarını paylaşmayı seviyor.

Zaman Damgası:

Den fazla KDNuggets