注:没有GPU加速会很慢,但是纯CPU版本的也可以运行
在这里,我们简要演示TextPredictor
,它可以帮助您为各种自然语言处理 (NLP) 任务自动训练和部署模型。本教程介绍了 NLP 任务的两个示例:
TextPredictor
类似于 AutoGluon 的 TabularPredictor
. 我们将 NLP 数据集格式化为表格,其中某些列包含文本字段,特殊列包含要预测的标签,每一行对应一个训练示例。在这里,标签可以是离散类别(分类)或数值(回归)。
情绪分析任务
考虑斯坦福情感树库 ( SST ) 数据集,该数据集由电影评论及其相关情感组成。给定一个新的电影评论,目标是预测文本中反映的情绪(在这种情况下是二元分类,如果评论传达了正面意见,则标记为 1,否则标记为 0)。让我们首先加载并查看数据,注意标签存储在名为label的列中。
from autogluon.core.utils.loaders import load_pd
train_data = load_pd.load('https://autogluon-text.s3-accelerate.amazonaws.com/glue/sst/train.parquet')
test_data = load_pd.load('https://autogluon-text.s3-accelerate.amazonaws.com/glue/sst/dev.parquet')
subsample_size = 1000 # subsample data for faster demo, try setting this to larger values
train_data = train_data.sample(n=subsample_size, random_state=0)
train_data.head(10)
ID。 sentence label
43787 very pleasing at its best moments 1
16159 , american chai is enough to make you put away... 0
59015 too much like an infomercial for ram dass 's l... 0
5108 a stirring visual sequence 1
67052 cool visual backmasking 1
35938 hard ground 0
49879 the striking , quietly vulnerable personality ... 1
51591 pan nalin 's exposition is beautiful and myste... 1
56780 wonderfully loopy 1
28518 most beautiful , evocative 1
训练
为了确保本教程快速运行,我们只需调用fit()
1000 个训练示例的子集并将其运行时间限制为大约 1 分钟。为了在您的应用程序中获得合理的性能,建议您设置更长的时间time_limit
(例如 1 小时),或者根本不指定time_limit
( time_limit=None
)。
from autogluon.text import TextPredictor
predictor = TextPredictor(label='label', eval_metric='acc', path='./ag_sst')
predictor.fit(train_data, time_limit=60)
Global seed set to 123
Using 16bit native Automatic Mixed Precision (AMP)
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
| Name | Type | Params
-------------------------------------------------------------------
0 | model | HFAutoModelForTextPrediction | 108 M
1 | validation_metric | Accuracy | 0
2 | loss_func | CrossEntropyLoss | 0
-------------------------------------------------------------------
108 M Trainable params
0 Non-trainable params
108 M Total params
217.786 Total estimated model params size (MB)
Global seed set to 123
Epoch 0, global step 3: val_acc reached 0.57000 (best 0.57000), saving model to "/var/