Integrasikan LLM dengan Mudah ke dalam Alur Kerja Scikit-learn Anda dengan Scikit-LLM - KDnuggets

Integrasikan LLM dengan Mudah ke dalam Alur Kerja Scikit-learn Anda dengan Scikit-LLM – KDnuggets

Node Sumber: 3030440

Integrasikan LLM dengan mudah ke dalam Alur Kerja Scikit-learn Anda dengan Scikit-LLM
Gambar Dihasilkan oleh DALL-E 2
 

Tugas analisis teks telah ada selama beberapa waktu karena kebutuhannya selalu ada. Penelitian telah berkembang pesat, mulai dari statistik deskripsi sederhana hingga klasifikasi teks dan pembuatan teks tingkat lanjut. Dengan tambahan Model Bahasa Besar di gudang senjata kami, tugas kerja kami menjadi lebih mudah diakses.

Scikit-LLM adalah paket Python yang dikembangkan untuk aktivitas analisis teks dengan kekuatan LLM. Paket ini menonjol karena kami dapat mengintegrasikan pipeline standar Scikit-Learn dengan Scikit-LLM.

Jadi, apa isi paket ini dan bagaimana cara kerjanya? Mari kita mulai.

Scikit-LLM adalah paket Python untuk meningkatkan tugas analitik data teks melalui LLM. Ini dikembangkan oleh Beatsbyte untuk membantu menjembatani perpustakaan standar Scikit-Learn dan kekuatan model bahasa. Scikit-LLM membuat API-nya mirip dengan perpustakaan SKlearn, jadi kami tidak mengalami banyak kesulitan dalam menggunakannya.

Instalasi

Untuk menggunakan paket ini, kita perlu menginstalnya. Untuk melakukannya, Anda dapat menggunakan kode berikut.

pip install scikit-llm

 

Pada saat artikel ini ditulis, Scikit-LLM hanya kompatibel dengan beberapa Model OpenAI dan GPT4ALL. Itu sebabnya kami hanya akan bekerja dengan model OpenAI. Namun, Anda dapat menggunakan model GPT4ALL dengan menginstal komponen terlebih dahulu.

pip install scikit-llm[gpt4all]

 

Setelah instalasi, Anda harus menyiapkan kunci OpenAI untuk mengakses model LLM.

from skllm.config import SKLLMConfig

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

Mencoba Scikit-LLM

Mari kita coba beberapa kemampuan Scikit-LLM dengan lingkungan yang ditetapkan. Salah satu kemampuan yang dimiliki LLM adalah melakukan klasifikasi teks tanpa pelatihan ulang, yang kami sebut Zero-Shot. Namun, pada awalnya kami akan mencoba klasifikasi teks Few-Shot dengan data sampel.

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)

 

Anda hanya perlu memberikan data teks dalam variabel X dan label y dalam dataset. Dalam hal ini label terdiri dari sentimen yaitu Positif, Netral, atau Negatif. 

Seperti yang Anda lihat, prosesnya mirip dengan menggunakan metode fitting pada paket Scikit-Learn. Namun, kita sudah tahu bahwa Zero-Shot tidak memerlukan kumpulan data untuk pelatihan. Itu sebabnya kami dapat memberikan label tanpa data pelatihan.

X, _ = get_classification_dataset()

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

 

Ini juga dapat diperluas dalam kasus klasifikasi multilabel, yang dapat Anda lihat pada kode berikut.

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)

Apa yang menakjubkan tentang Scikit-LLM adalah memungkinkan pengguna untuk memperluas kekuatan LLM ke jalur pipa Scikit-Learn pada umumnya. 

Scikit-LLM di Pipa ML

Pada contoh berikutnya, saya akan menunjukkan bagaimana kita dapat memulai Scikit-LLM sebagai vektorizer dan menggunakan XGBoost sebagai pengklasifikasi model. Kami juga akan menggabungkan langkah-langkah tersebut ke dalam pipeline model.

Pertama, kita akan memuat data dan memulai encoder label untuk mengubah data label menjadi nilai numerik.

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)

 

Selanjutnya, kita akan mendefinisikan pipeline untuk melakukan vektorisasi dan penyesuaian model. Kita bisa melakukannya dengan kode berikut.

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)

 

Terakhir, kita bisa melakukan prediksi dengan kode berikut.

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

 

Seperti yang bisa kita lihat, kita bisa menggunakan Scikit-LLM dan XGBoost di bawah pipeline Scikit-Learn. Menggabungkan semua paket yang diperlukan akan membuat prediksi kami semakin kuat.

Masih ada berbagai tugas yang dapat Anda lakukan dengan Scikit-LLM, termasuk penyesuaian model, yang saya sarankan Anda periksa dokumentasinya untuk mempelajari lebih lanjut. Anda juga dapat menggunakan model sumber terbuka dari GPT4ALL jika perlu.

Scikit-LLM adalah paket Python yang memberdayakan tugas analisis data teks Scikit-Learn dengan LLM. Dalam artikel ini, kita telah membahas bagaimana kami menggunakan Scikit-LLM untuk klasifikasi teks dan menggabungkannya ke dalam alur pembelajaran mesin.
 
 

Cornellius Yudha Wijaya adalah asisten manajer ilmu data dan penulis data. Selama bekerja full-time di Allianz Indonesia, ia suka berbagi tips Python dan Data melalui media sosial dan media tulis.

Stempel Waktu:

Lebih dari KDnugget