这里,我们来介绍一下如何使用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镜像
#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_accuracy | 0.93416667 |
eval_loss | 0.31285414 |
recall | 0.91399664 |
loss | 0.31285414 |
auc | 0.9339341 |
precision | 0.9508772 |
predictor = estimator.deploy(1, instance_type='ml.m5.large', endpoint_name='bert-sentiment')
运行后,会看到生成了对应的endpoint