情感分类机器人模型训练

这里,我们来介绍一下如何使用sagemaker训练一个情感分类模型。共分为以下几步:

下载数据

#download data/model files/JupyterNotebook
wget https://spot-bot-asset.s3.amazonaws.com/spot-workshop-2020/demo2.tar.gz

#untar 
tar -zxvf demo2.tar.gz

运行后,你可以看到对应的文件目录

-|--bert
 |--data
 |--build_and_push.sh
 |--DockerFile
 |--train.ipynb

本地训练测试

source activate tensorflow_p36
export BERT_BASE_DIR=./bert/pretrain_model/chinese_L-12_H-768_A-12

python bert/run_classifier.py \
  --data_dir='./data' \
  --task_name='chnsenticorp' \
  --vocab_file=$BERT_BASE_DIR/vocab.txt \
  --bert_config_file=$BERT_BASE_DIR/bert_config.json \
  --output_dir=./output/ \
  --do_train=true \
  --do_eval=true \
  --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \
  --max_seq_length=200 \
  --train_batch_size=16 \
  --learning_rate=5e-5\
  --num_train_epochs=1.0\
  --save_checkpoints_steps=100

构建ecr镜像

这里,您可以自己构建也可以使用我们预置好的公共ECR镜像

#build yourself
sh build_an_push.sh sentiment-bot

预置好的公共ECR镜像的路径 "753680513547.dkr.ecr." + self.region + ".amazonaws.com.cn/sentiment-analyisis-endpoint:latest"

模型训练

打开train.ipynb文件,可以进行接下来的训练部署

查看结果

建立训练任务

查看训练监控

模型产生的结果目录中,可以看到生成了eval_results.txt, 可以看到模型在测试集上的表现

指标结果
eval_accuracy0.93416667
eval_loss0.31285414
recall0.91399664
loss0.31285414
auc0.9339341
precision0.9508772

模型部署

predictor = estimator.deploy(1, instance_type='ml.m5.large', endpoint_name='bert-sentiment')

运行后,会看到生成了对应的endpoint

测试调用