
Ein "Schweizer Armeemesser" für maschinelles Lernen
ktrain.text.qa.generative_qa . Unser Onprem.llm-Paket sollte für generative Fragen zur Beantwortung von Aufgaben verwendet werden. Siehe Beispiel Notebook.Ktrain ist ein leichter Wrapper für die Tensorflow -Keras der Deep Learning Library (und andere Bibliotheken), um neuronale Netzwerke und andere maschinelle Lernmodelle zu bauen, zu trainieren und bereitzustellen. Inspiriert von ML -Framework -Erweiterungen wie Fastai und Ludwig ist Ktrain so konzipiert, dass sie Deep Learning und KI zugänglicher und leichter für Neuankömmlinge und erfahrene Praktiker zugänglicher und leichter zugänglich machen. Mit nur wenigen Codezeilen ermöglicht es KTRAIN , einfach und schnell:
Verwenden Sie schnelle, genaue und benutzerfreundliche vorgefangene Modelle für text , vision , graph und tabular Daten:
text :vision :graph :tabular Daten:Schätzen Sie eine optimale Lernrate für Ihr Modell an, wenn Sie Ihre Daten mit einem Lernrate -Finder haben
Verwenden Sie die Lernrate -Zeitpläne wie die Dreieckspolitik, die 1Cycle -Richtlinie und SGDR, um den Verlust effektiv zu minimieren und die Verallgemeinerung zu verbessern
Erstellen Sie Textklassifizierer für jede Sprache (z. B. arabische Stimmungsanalyse mit Bert, chinesische Stimmungsanalyse mit NBSVM)
einfach NER -Modelle für jede Sprache trainieren (z. B. niederländischer NER)
Laden und Vorverarbeitungs -Text- und Bilddaten aus einer Vielzahl von Formaten vorbereiten und vorbereiten
Überprüfen Sie Datenpunkte, die falsch klassifiziert wurden, und geben Sie Erklärungen an, um Ihr Modell zu verbessern
Nutzen Sie eine einfache API für die Vorhersage für das Speichern und Bereitstellen von Modellen und Datenpreisschritten, um Vorhersagen für neue Rohdaten zu treffen
Integrierte Unterstützung für den Exportieren von Modellen in ONNX und TensorFlow Lite (Beispiel für Notizbuch für weitere Informationen)
In den folgenden Tutorial -Notebooks finden Sie einen Leitfaden zur Verwendung von Ktrain in Ihren Projekten:
Einige Blog -Tutorials und andere Anleitungen über Ktrain sind unten gezeigt:
Ktrain: Eine leichte Wrapper für Keras, um neuronale Netze auszubilden
Bert Textklassifizierung in 3 Codezeilen
Textklassifizierung mit umarmenden Gesichtstransformatoren in Tensorflow 2 (ohne Tränen)
Erstellen Sie ein offenes Fragen zur Beantwortung von Open-Domänen mit Bert in 3 Codezeilen
Finetuning Bert mit Ktrain für Katastrophen -Tweets Klassifizierung durch HAMIZ Ahmed
Indonesische NLP -Beispiele mit Ktrain von Sandy Khosasi
Verwenden Sie Ktrain auf Google Colab ? Siehe diese Colab -Beispiele:
transformer -Wort-EinbettungenAufgaben wie Textklassifizierung und Bildklassifizierung können einfach mit nur wenigen Codezeilen erledigt werden.
import ktrain
from ktrain import text as txt
# load data
( x_train , y_train ), ( x_test , y_test ), preproc = txt . texts_from_folder ( 'data/aclImdb' , maxlen = 500 ,
preprocess_mode = 'bert' ,
train_test_names = [ 'train' , 'test' ],
classes = [ 'pos' , 'neg' ])
# load model
model = txt . text_classifier ( 'bert' , ( x_train , y_train ), preproc = preproc )
# wrap model and data in ktrain.Learner object
learner = ktrain . get_learner ( model ,
train_data = ( x_train , y_train ),
val_data = ( x_test , y_test ),
batch_size = 6 )
# find good learning rate
learner . lr_find () # briefly simulate training to find good learning rate
learner . lr_plot () # visually identify best learning rate
# train using 1cycle learning rate schedule for 3 epochs
learner . fit_onecycle ( 2e-5 , 3 ) import ktrain
from ktrain import vision as vis
# load data
( train_data , val_data , preproc ) = vis . images_from_folder (
datadir = 'data/dogscats' ,
data_aug = vis . get_data_aug ( horizontal_flip = True ),
train_test_names = [ 'train' , 'valid' ],
target_size = ( 224 , 224 ), color_mode = 'rgb' )
# load model
model = vis . image_classifier ( 'pretrained_resnet50' , train_data , val_data , freeze_layers = 80 )
# wrap model and data in ktrain.Learner object
learner = ktrain . get_learner ( model = model , train_data = train_data , val_data = val_data ,
workers = 8 , use_multiprocessing = False , batch_size = 64 )
# find good learning rate
learner . lr_find () # briefly simulate training to find good learning rate
learner . lr_plot () # visually identify best learning rate
# train using triangular policy with ModelCheckpoint and implicit ReduceLROnPlateau and EarlyStopping
learner . autofit ( 1e-4 , checkpoint_folder = '/tmp/saved_weights' ) import ktrain
from ktrain import text as txt
# load data
( trn , val , preproc ) = txt . entities_from_txt ( 'data/ner_dataset.csv' ,
sentence_column = 'Sentence #' ,
word_column = 'Word' ,
tag_column = 'Tag' ,
data_format = 'gmb' ,
use_char = True ) # enable character embeddings
# load model
model = txt . sequence_tagger ( 'bilstm-crf' , preproc )
# wrap model and data in ktrain.Learner object
learner = ktrain . get_learner ( model , train_data = trn , val_data = val )
# conventional training for 1 epoch using a learning rate of 0.001 (Keras default for Adam optmizer)
learner . fit ( 1e-3 , 1 ) import ktrain
from ktrain import graph as gr
# load data with supervision ratio of 10%
( trn , val , preproc ) = gr . graph_nodes_from_csv (
'cora.content' , # node attributes/labels
'cora.cites' , # edge list
sample_size = 20 ,
holdout_pct = None ,
holdout_for_inductive = False ,
train_pct = 0.1 , sep = ' t ' )
# load model
model = gr . graph_node_classifier ( 'graphsage' , trn )
# wrap model and data in ktrain.Learner object
learner = ktrain . get_learner ( model , train_data = trn , val_data = val , batch_size = 64 )
# find good learning rate
learner . lr_find ( max_epochs = 100 ) # briefly simulate training to find good learning rate
learner . lr_plot () # visually identify best learning rate
# train using triangular policy with ModelCheckpoint and implicit ReduceLROnPlateau and EarlyStopping
learner . autofit ( 0.01 , checkpoint_folder = '/tmp/saved_weights' ) # load text data
categories = [ 'alt.atheism' , 'soc.religion.christian' , 'comp.graphics' , 'sci.med' ]
from sklearn . datasets import fetch_20newsgroups
train_b = fetch_20newsgroups ( subset = 'train' , categories = categories , shuffle = True )
test_b = fetch_20newsgroups ( subset = 'test' , categories = categories , shuffle = True )
( x_train , y_train ) = ( train_b . data , train_b . target )
( x_test , y_test ) = ( test_b . data , test_b . target )
# build, train, and validate model (Transformer is wrapper around transformers library)
import ktrain
from ktrain import text
MODEL_NAME = 'distilbert-base-uncased'
t = text . Transformer ( MODEL_NAME , maxlen = 500 , class_names = train_b . target_names )
trn = t . preprocess_train ( x_train , y_train )
val = t . preprocess_test ( x_test , y_test )
model = t . get_classifier ()
learner = ktrain . get_learner ( model , train_data = trn , val_data = val , batch_size = 6 )
learner . fit_onecycle ( 5e-5 , 4 )
learner . validate ( class_names = t . get_classes ()) # class_names must be string values
# Output from learner.validate()
# precision recall f1-score support
#
# alt.atheism 0.92 0.93 0.93 319
# comp.graphics 0.97 0.97 0.97 389
# sci.med 0.97 0.95 0.96 396
#soc.religion.christian 0.96 0.96 0.96 398
#
# accuracy 0.96 1502
# macro avg 0.95 0.96 0.95 1502
# weighted avg 0.96 0.96 0.96 1502 import ktrain
from ktrain import tabular
import pandas as pd
train_df = pd . read_csv ( 'train.csv' , index_col = 0 )
train_df = train_df . drop ([ 'Name' , 'Ticket' , 'Cabin' ], 1 )
trn , val , preproc = tabular . tabular_from_df ( train_df , label_columns = [ 'Survived' ], random_state = 42 )
learner = ktrain . get_learner ( tabular . tabular_classifier ( 'mlp' , trn ), train_data = trn , val_data = val )
learner . lr_find ( show_plot = True , max_epochs = 5 ) # estimate learning rate
learner . fit_onecycle ( 5e-3 , 10 )
# evaluate held-out labeled test set
tst = preproc . preprocess_test ( pd . read_csv ( 'heldout.csv' , index_col = 0 ))
learner . evaluate ( tst , class_names = preproc . get_classes ()) Stellen Sie sicher, dass PIP auf dem neuesten Stand ist mit: pip install -U pip
TensorFlow 2 installieren, wenn es noch nicht installiert ist (z. pip install tensorflow ).
Installieren Sie Ktrain : pip install ktrain
Wenn Sie tensorflow>=2.16 verwenden:
pip install tf_kerasTF_USE_LEGACY_KERAS auf true vor, bevor Sie Ktrain importierenDie oben genannten sollte alles, was Sie für Linux -Systeme und Cloud -Computing -Umgebungen wie Google Colab und AWS EC2 benötigen. Wenn Sie Ktrain auf einem Windows -Computer verwenden, können Sie diese detaillierteren Anweisungen befolgen, die einige zusätzliche Schritte enthalten.
tensorflow>=2.11 dürfen Sie nur Legacy -Optimierer wie tf.keras.optimizers.legacy.Adam verwenden. Die neuere tf.keras.optimizers.Optimizer -Basisklasse wird derzeit nicht unterstützt. Wenn Sie beispielsweise TensorFlow 2.11 und höher verwenden, verwenden Sie bitte tf.keras.optimzers.legacy.Adam() anstelle der Zeichenfolge "adam" in model.compile . Ktrain führt dies automatisch durch, wenn sie außerhalb der Box-Modelle verwendet werden (z. B. Modelle aus der transformers Library).tf_keras -Paket installieren und die Umgebungsvariable TF_USE_LEGACY_KERAS=True festlegen (z. B. fügen Sie export TF_USE_LEGACY_KERAS=1 in .bashrc oder add add os.environ['TF_USE_LEGACY_KERAS']="1" yous usw. eli5 und stellargraph -Bibliotheken verwendet, um TensorFlow2 zu unterstützen.) # for graph module:
pip install https : // github . com / amaiya / stellargraph / archive / refs / heads / no_tf_dep_082 . zip
# for text.TextPredictor.explain and vision.ImagePredictor.explain:
pip install https : // github . com / amaiya / eli5 - tf / archive / refs / heads / master . zip
# for tabular.TabularPredictor.explain:
pip install shap
# for text.zsl (ZeroShotClassifier), text.summarization, text.translation, text.speech:
pip install torch
# for text.speech:
pip install librosa
# for tabular.causal_inference_model:
pip install causalnlp
# for text.summarization.core.LexRankSummarizer:
pip install sumy
# for text.kw.KeywordExtractor
pip install textblob
# for text.generative_ai
pip install onprem Ktrain steckt absichtlich an eine niedrigere Version von Transformatoren , um ältere Versionen von Tensorflow zu unterstützen. Wenn Sie eine neuere Version von transformers benötigen, ist es normalerweise sicher, dass Sie transformers aktualisieren, solange Sie es nach der Installation von Ktrain tun.
Ab V0.30.x ist die TensorFlow -Installation optional und nur erforderlich, wenn neuronale Netzwerke trainieren. Obwohl Ktrain den Tensorflow für das neuronale Netzwerktraining verwendet, enthält es auch eine Vielzahl nützlicher, vorbereiteter Pytorch-Modelle und Sklearn-Modelle, die außerhalb des Boxs verwendet werden können, ohne den Tensorflow installiert zu haben, wie in dieser Tabelle zusammengefasst:
| Besonderheit | Tensorflow | Pytorch | Sklearn |
|---|---|---|---|
| Schulung eines neuronalen Netzwerks (zB, Text- oder Bildklassifizierung) | ✅ | ||
| End-to-End-Frage-Beantwortung (vorgefertigt) | ✅ | ✅ | |
| QA-basierte Informationsextraktion (vorbereitet) | ✅ | ✅ | |
| Null-Shot-Klassifizierung (vorbereitet) | ✅ | ||
| Sprachübersetzung (vorbereitet) | ✅ | ||
| Zusammenfassung (vorbereitet) | ✅ | ||
| Sprachtranskription (vorbereitet) | ✅ | ||
| Bildunterschrift (vorgefertigt) | ✅ | ||
| Objekterkennung (vorgefertigt) | ✅ | ||
| Stimmungsanalyse (vorgefertigt) | ✅ | ||
| GenerativeAI (Satztransformer) | ✅ | ||
| Themenmodellierung (Sklearn) | ✅ | ||
| Tastaturextraktion (textblob/nltk/sklearn) | ✅ |
Wie oben erwähnt, kann End-to-End-Fragen und Informationsextraktion in Ktrain entweder mit TensorFlow (mit framework='tf' ) oder PyTorch (mit framework='pt' ) verwendet werden.
Bitte zitieren Sie das folgende Papier, wenn Sie Ktrain verwenden:
@article{maiya2020ktrain,
title={ktrain: A Low-Code Library for Augmented Machine Learning},
author={Arun S. Maiya},
year={2020},
eprint={2004.10703},
archivePrefix={arXiv},
primaryClass={cs.LG},
journal={arXiv preprint arXiv:2004.10703},
}
Schöpfer: Arun S. Maiya
E -Mail: Arun [at] Maiya [Punkt] Netz