
"มีดกองทัพสวิส" สำหรับการเรียนรู้ด้วยเครื่องจักร
ktrain.text.qa.generative_qa แพ็คเกจ onprem.llm ของเราควรใช้สำหรับงานตอบคำถามทั่วไป ดูสมุดบันทึกตัวอย่างKtrain เป็น wrapper น้ำหนักเบาสำหรับห้องสมุดการเรียนรู้ลึก Tensorflow Keras (และห้องสมุดอื่น ๆ ) เพื่อช่วยสร้างฝึกอบรมและปรับใช้เครือข่ายประสาทและรูปแบบการเรียนรู้ของเครื่องอื่น ๆ แรงบันดาลใจจากส่วนขยาย ML Framework เช่น Fastai และ Ludwig , Ktrain ได้รับการออกแบบมาเพื่อให้การเรียนรู้อย่างลึกซึ้งและ AI เข้าถึงได้ง่ายขึ้นและง่ายต่อการสมัครสำหรับผู้มาใหม่และผู้ปฏิบัติงานที่มีประสบการณ์ ด้วยรหัสเพียงไม่กี่บรรทัด Ktrain ช่วยให้คุณได้อย่างง่ายดายและรวดเร็ว:
ใช้โมเดลที่ใช้งานล่วงหน้าอย่างรวดเร็วแม่นยำและใช้งานง่ายสำหรับ text , vision , graph และข้อมูล tabular :
text :vision :graph :tabular :ประเมินอัตราการเรียนรู้ที่ดีที่สุดสำหรับโมเดลของคุณโดยใช้ข้อมูลของคุณโดยใช้ตัวค้นหาอัตราการเรียนรู้
ใช้ตารางอัตราการเรียนรู้เช่นนโยบายสามเหลี่ยมนโยบาย 1 รอบและ SGDR เพื่อลดการสูญเสียอย่างมีประสิทธิภาพและปรับปรุงการวางนัยทั่วไปได้อย่างมีประสิทธิภาพ
สร้างตัวแยกประเภทข้อความสำหรับภาษาใด ๆ (เช่นการวิเคราะห์ความเชื่อมั่นของอาหรับด้วยเบิร์ตการวิเคราะห์ความเชื่อมั่นของจีนด้วย NBSVM)
ฝึกอบรมแบบจำลอง ner ได้อย่างง่ายดายสำหรับภาษาใด ๆ (เช่น Dutch Ner)
โหลดและประมวลผลข้อมูลข้อความและภาพจากรูปแบบที่หลากหลาย
ตรวจสอบจุดข้อมูลที่ถูกจัดประเภทและให้คำอธิบายเพื่อช่วยปรับปรุงโมเดลของคุณ
ใช้ประโยชน์จากการคาดการณ์ API อย่างง่ายสำหรับการบันทึกและปรับใช้ทั้งแบบจำลองและขั้นตอนการประมวลผลข้อมูลเพื่อทำการคาดการณ์ข้อมูลดิบใหม่
การสนับสนุนในตัวสำหรับการส่งออกโมเดลไปยัง ONNX และ TensorFlow Lite (ดูสมุดบันทึกตัวอย่างสำหรับข้อมูลเพิ่มเติม)
โปรดดูสมุดบันทึกการสอนต่อไปนี้สำหรับคำแนะนำเกี่ยวกับวิธีการใช้ ktrain ในโครงการของคุณ:
บทเรียนบล็อกและคำแนะนำอื่น ๆ เกี่ยวกับ ktrain แสดงอยู่ด้านล่าง:
Ktrain: เสื้อคลุมน้ำหนักเบาสำหรับ Keras เพื่อช่วยฝึกอบรมเครือข่ายประสาท
การจำแนกประเภทข้อความของเบิร์ตในรหัส 3 บรรทัด
การจำแนกประเภทข้อความด้วย Hugging Face Transformers ใน Tensorflow 2 (ไม่มีน้ำตา)
สร้างระบบการตอบคำถามแบบเปิดโดเมนด้วย Bert ในรหัส 3 บรรทัด
Finetuning Bert โดยใช้ ktrain สำหรับการจัดประเภททวีตภัยพิบัติ โดย Hamiz Ahmed
ตัวอย่าง NLP อินโดนีเซียกับ Ktrain โดย Sandy Khosasi
การใช้ ktrain บน Google Colab ? ดูตัวอย่าง colab เหล่านี้:
transformerงานเช่นการจำแนกข้อความและการจำแนกรูปภาพสามารถทำได้อย่างง่ายดายด้วยรหัสเพียงไม่กี่บรรทัด
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 ()) ตรวจสอบให้แน่ใจว่า PIP ทันสมัยด้วย: pip install -U pip
ติดตั้ง TensorFlow 2 หากยังไม่ได้ติดตั้ง (เช่น pip install tensorflow )
ติดตั้ง ktrain : pip install ktrain
หากใช้ tensorflow>=2.16 :
pip install tf_kerasTF_USE_LEGACY_KERAS เป็น TRUE ก่อนนำเข้า ktrainข้างต้นควรเป็นสิ่งที่คุณต้องการในระบบ Linux และสภาพแวดล้อมการประมวลผลแบบคลาวด์เช่น Google Colab และ AWS EC2 หากคุณใช้ ktrain บน คอมพิวเตอร์ Windows คุณสามารถทำตามคำแนะนำโดยละเอียดเพิ่มเติมเหล่านี้ซึ่งรวมถึงขั้นตอนพิเศษบางอย่าง
tensorflow>=2.11 คุณต้องใช้ Optimizers แบบดั้งเดิมเช่น tf.keras.optimizers.legacy.Adam tf.keras.optimizers.Optimizer คลาสฐานไม่รองรับในเวลานี้ ตัวอย่างเช่นเมื่อใช้ TensorFlow 2.11 ขึ้นไปโปรดใช้ tf.keras.optimzers.legacy.Adam() แทนสตริง "adam" ใน model.compile Ktrain ทำสิ่งนี้โดยอัตโนมัติเมื่อใช้โมเดลนอกกรอบ (เช่นรุ่นจากไลบรารี transformers )tf_keras และตั้งค่าตัวแปรสภาพแวดล้อม TF_USE_LEGACY_KERAS=True ก่อนที่จะนำเข้า ktrain (เช่นเพิ่ม os.environ['TF_USE_LEGACY_KERAS']="1" export TF_USE_LEGACY_KERAS=1 ใน .bashrc รหัส ฯลฯ ) eli5 และ stellargraph เวอร์ชันส้อมเพื่อรองรับ TensorFlow2) # 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 จงใจพินไปยัง หม้อแปลง รุ่นที่ต่ำกว่าเพื่อรวมการสนับสนุนสำหรับ TensorFlow รุ่นเก่า หากคุณต้องการ transformers รุ่นใหม่กว่านั้นมักจะปลอดภัยสำหรับคุณในการอัพเกรด transformers ตราบใดที่คุณทำ หลังจาก ติดตั้ง ktrain
ณ v0.30.x การติดตั้ง TensorFlow เป็นทางเลือกและจำเป็นเฉพาะในกรณีที่การฝึกอบรมเครือข่ายประสาท แม้ว่า Ktrain จะใช้ tensorflow สำหรับการฝึกอบรมเครือข่ายประสาท แต่ยังมีรุ่น pytorch ที่มีประโยชน์มากมายและรุ่น Sklearn ซึ่งสามารถใช้งานนอกกรอบได้ โดยไม่ต้อง ติดตั้ง tensorflow ตามที่สรุปไว้ในตารางนี้:
| คุณสมบัติ | เทนเซอร์โฟลว์ | pytorch | Sklearn |
|---|---|---|---|
| ฝึกอบรมเครือข่ายประสาทใด ๆ (เช่นการจำแนกประเภทข้อความหรือรูปภาพ) | |||
| การตอบคำถามแบบ end-to-end (pretrained) | |||
| การสกัดข้อมูลที่อิงกับ QA (pretrained) | |||
| การจำแนกประเภท zero-shot (pretrained) | |||
| การแปลภาษา (pretrained) | |||
| การสรุป (pretrained) | |||
| การถอดความคำพูด (pretrained) | |||
| คำบรรยายภาพ (pretrained) | |||
| การตรวจจับวัตถุ (pretrained) | |||
| การวิเคราะห์ความเชื่อมั่น (pretrained) | |||
| Generativeai (ประโยค-transformers) | |||
| การสร้างแบบจำลองหัวข้อ (Sklearn) | |||
| การสกัดกุญแจ (textblob/nltk/sklearn) |
ตามที่ระบุไว้ข้างต้นการตอบคำถามแบบ end-to-end และการสกัดข้อมูลใน ktrain สามารถใช้กับ tensorflow (ใช้ framework='tf' ) หรือ pytorch (ใช้ framework='pt' )
กรุณาอ้างอิงกระดาษต่อไปนี้เมื่อใช้ ktrain :
@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},
}
ผู้สร้าง: Arun S. Maiya
อีเมล: อรุณ [ที่] maiya [dot] net