يمكنك بسهولة دمج LLMs في سير عمل Scikit-Learn الخاص بك باستخدام Scikit-LLM - KDnuggets

يمكنك بسهولة دمج LLMs في سير عمل Scikit-Learn الخاص بك باستخدام Scikit-LLM – KDnuggets

عقدة المصدر: 3030440

قم بدمج LLMs بسهولة في سير عمل Scikit-Learn الخاص بك باستخدام Scikit-LLM
الصورة التي تم إنشاؤها بواسطة DALL-E 2
 

لقد كانت مهام تحليل النص موجودة منذ بعض الوقت حيث أن الاحتياجات موجودة دائمًا. لقد قطعت الأبحاث شوطًا طويلًا، بدءًا من إحصائيات الوصف البسيطة ووصولاً إلى تصنيف النص وإنشاء النص المتقدم. ومع إضافة نموذج اللغة الكبير إلى ترسانتنا، أصبح الوصول إلى مهام العمل لدينا أكثر سهولة.

Scikit-LLM عبارة عن حزمة Python تم تطويرها لنشاط تحليل النص بقوة LLM. برزت هذه الحزمة لأننا تمكنا من دمج مسار Scikit-Learn القياسي مع Scikit-LLM.

إذًا، ما هو موضوع هذه الحزمة، وكيف تعمل؟ دعونا ندخل في ذلك.

سيكيت-LLM عبارة عن حزمة Python لتحسين مهام تحليل البيانات النصية عبر LLM. تم تطويره بواسطة بيتسبيت للمساعدة في سد الفجوة بين مكتبة Scikit-Learn القياسية وقوة نموذج اللغة. أنشأت Scikit-LLM واجهة برمجة التطبيقات الخاصة بها لتكون مشابهة لمكتبة SKlearn، لذلك لا نواجه الكثير من المتاعب في استخدامها.

التنزيل

لاستخدام الحزمة، نحن بحاجة إلى تثبيتها. للقيام بذلك، يمكنك استخدام الكود التالي.

pip install scikit-llm

 

اعتبارًا من وقت كتابة هذه المقالة، كان Scikit-LLM متوافقًا فقط مع بعض نماذج OpenAI وGPT4ALL. ولهذا السبب سنعمل فقط مع نموذج OpenAI. ومع ذلك، يمكنك استخدام نموذج GPT4ALL عن طريق تثبيت المكون في البداية.

pip install scikit-llm[gpt4all]

 

بعد التثبيت، يجب عليك إعداد مفتاح OpenAI للوصول إلى نماذج LLM.

from skllm.config import SKLLMConfig

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

تجربة Scikit-LLM

دعونا نجرب بعض إمكانيات Scikit-LLM مع مجموعة البيئة. إحدى القدرات التي يتمتع بها طلاب LLM هي إجراء تصنيف النص دون إعادة التدريب، وهو ما نسميه Zero-Shot. ومع ذلك، فإننا سنحاول في البداية تصنيف نص قليل اللقطات باستخدام بيانات العينة.

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)

 

ما عليك سوى توفير البيانات النصية ضمن المتغير X والتسمية y في مجموعة البيانات. في هذه الحالة، تتكون التسمية من المشاعر، والتي تكون إيجابية أو محايدة أو سلبية. 

كما ترى، فإن العملية مشابهة لاستخدام طريقة الملاءمة في حزمة Scikit-Learn. ومع ذلك، فنحن نعلم بالفعل أن Zero-Shot لم يتطلب بالضرورة مجموعة بيانات للتدريب. ولهذا السبب يمكننا تقديم التسميات بدون بيانات التدريب.

X, _ = get_classification_dataset()

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

 

يمكن أيضًا توسيع هذا في حالات التصنيف متعدد التسمية، والتي يمكنك رؤيتها في الكود التالي.

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 هو أنه يسمح للمستخدم بتوسيع قوة LLM إلى خط أنابيب Scikit-Learn النموذجي. 

Scikit-LLM في خط أنابيب ML

في المثال التالي، سأوضح كيف يمكننا بدء Scikit-LLM كمتجه واستخدام XGBoost كمصنف للنموذج. سنقوم أيضًا بلف الخطوات في مسار النموذج.

أولاً، سنقوم بتحميل البيانات وبدء تشغيل برنامج تشفير الملصقات لتحويل بيانات الملصق إلى قيمة رقمية.

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)

 

بعد ذلك، سوف نحدد خط أنابيب لإجراء عملية التوجيه وتركيب النموذج. يمكننا أن نفعل ذلك مع الكود التالي.

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)

 

وأخيرًا، يمكننا إجراء التنبؤ باستخدام الكود التالي.

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

 

كما نرى، يمكننا استخدام Scikit-LLM وXGBoost ضمن مسار Scikit-Learn. إن الجمع بين جميع الحزم الضرورية من شأنه أن يجعل توقعاتنا أقوى.

لا تزال هناك العديد من المهام التي يمكنك القيام بها باستخدام Scikit-LLM، بما في ذلك الضبط الدقيق للنموذج، والذي أقترح عليك التحقق من الوثائق لمعرفة المزيد. يمكنك أيضًا استخدام النموذج مفتوح المصدر من جي بي تي 4ال اذا كان ضروري.

Scikit-LLM عبارة عن حزمة Python تعمل على تمكين مهام تحليل البيانات النصية لـ Scikit-Learn باستخدام LLM. ناقشنا في هذه المقالة كيفية استخدام Scikit-LLM لتصنيف النصوص ودمجها في مسار التعلم الآلي.
 
 

كورنليوس يودا ويجايا هو مدير مساعد لعلوم البيانات وكاتب بيانات. أثناء عمله بدوام كامل في Allianz Indonesia ، يحب مشاركة نصائح حول Python و Data عبر وسائل التواصل الاجتماعي وكتابة الوسائط.

الطابع الزمني:

اكثر من KD nuggets