Integreerige LLM-id hõlpsalt oma Scikit-learni töövoogu Scikit-LLM-iga – KDnuggets

Integreerige LLM-id hõlpsalt oma Scikit-learni töövoogu Scikit-LLM-iga – KDnuggets

Allikasõlm: 3030440

Integreerige LLM-id hõlpsalt oma Scikit-learni töövoogu Scikit-LLM-iga
Pildi genereeris DALL-E 2
 

Tekstianalüüsi ülesanded on olnud juba mõnda aega, kuna vajadused on alati olemas. Teadusuuringud on jõudnud kaugele, alates lihtsast kirjeldusstatistikast kuni teksti klassifitseerimise ja täiustatud teksti genereerimiseni. Suure keelemudeli lisamisega meie arsenali muutuvad meie tööülesanded veelgi paremini kättesaadavaks.

Scikit-LLM on Pythoni pakett, mis on välja töötatud tekstianalüüsi jaoks LLM-i võimsusega. See pakett paistis silma, kuna saime integreerida standardse Scikit-Learn torujuhtme Scikit-LLM-iga.

Niisiis, mida see pakett endast kujutab ja kuidas see töötab? Lähme sellesse.

Scikit-LLM on Pythoni pakett tekstiandmete analüütiliste ülesannete täiustamiseks LLM-i kaudu. Selle töötas välja Beatsbyte et aidata ühendada standardset Scikit-Learni raamatukogu ja keelemudeli võimsust. Scikit-LLM lõi oma API sarnaseks SKlearni teegiga, nii et meil pole selle kasutamisega palju probleeme.

paigaldamine

Paketi kasutamiseks peame need installima. Selleks saate kasutada järgmist koodi.

pip install scikit-llm

 

Selle artikli kirjutamise seisuga ühildub Scikit-LLM ainult mõne OpenAI ja GPT4ALL mudeliga. Seetõttu töötaksime ainult OpenAI mudeliga. Saate siiski kasutada mudelit GPT4ALL, installides komponendi algselt.

pip install scikit-llm[gpt4all]

 

Pärast installimist peate LLM-mudelitele juurdepääsuks seadistama OpenAI-võtme.

from skllm.config import SKLLMConfig

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

Proovin Scikit-LLM-i

Proovime keskkonnakomplektiga mõnda Scikit-LLM-i võimalust. Üks oskus, mis LLM-idel on, on teksti klassifitseerimine ilma ümberõppeta, mida me nimetame Zero-Shotiks. Siiski prooviksime algselt näidisandmetega kasutada Few-Shot teksti klassifikatsiooni.

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)

 

Peate sisestama ainult X-muutuja tekstiandmed ja andmestiku sildi y. Sel juhul koosneb silt emotsioonist, mis on positiivne, neutraalne või negatiivne. 

Nagu näete, sarnaneb protsess Scikit-Learni paketis oleva sobitusmeetodi kasutamisega. Siiski teame juba, et Zero-Shot ei vajanud treenimiseks tingimata andmekogumit. Seetõttu saame esitada sildid ilma koolitusandmeteta.

X, _ = get_classification_dataset()

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

 

Seda saab laiendada ka mitmesildise klassifitseerimise juhtudel, mida näete järgmises koodis.

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-i puhul on hämmastav see, et see võimaldab kasutajal laiendada LLM-i võimsust tüüpilisele Scikit-Learni torujuhtmele. 

Scikit-LLM ML torujuhtmes

Järgmises näites näitan, kuidas saame käivitada Scikit-LLM-i vektorisaatorina ja kasutada mudeli klassifikaatorina XGBoosti. Samuti mähiksime astmed mudeli torujuhtmesse.

Esiteks laadiksime andmed ja käivitaksime sildikooderi, et muuta sildi andmed arvväärtuseks.

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)

 

Järgmisena määratleksime vektoriseerimise ja mudeli sobitamise teostamiseks torujuhtme. Seda saame teha järgmise koodiga.

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)

 

Lõpuks saame ennustada järgmise koodiga.

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

 

Nagu näeme, saame Scikit-LLM-i ja XGBoosti kasutada Scikit-Learni torujuhtme all. Kõigi vajalike pakettide kombineerimine muudaks meie ennustuse veelgi tugevamaks.

Scikit-LLM-iga saate siiski teha mitmesuguseid ülesandeid, sealhulgas mudeli peenhäälestamist, mille kohta soovitan teil täiendava teabe saamiseks tutvuda dokumentatsiooniga. Võite kasutada ka avatud lähtekoodiga mudelit GPT4ALL kui vajalik.

Scikit-LLM on Pythoni pakett, mis võimaldab Scikit-Learni tekstiandmete analüüsi ülesandeid koos LLM-iga. Selles artiklis oleme arutanud, kuidas me kasutame Scikit-LLM-i tekstide klassifitseerimiseks ja ühendame need masinõppe torujuhtmesse.
 
 

Cornelius Yudha Wijaya on andmeteaduse juhi assistent ja andmete kirjutaja. Allianz Indonesias täiskohaga töötades armastab ta sotsiaalmeedia ja kirjutamismeedia kaudu Pythoni ja Data näpunäiteid jagada.

Ajatempel:

Veel alates KDnuggets