🚀 MobileBERT在SQuAD v1上的微調模型
本項目基於MobileBERT模型,在SQuAD v1數據集上進行微調,用於問答任務。MobileBERT是BERT_LARGE的精簡版本,採用了瓶頸結構,並精心平衡了自注意力機制和前饋網絡。
🚀 快速開始
模型介紹
MobileBERT 是BERT_LARGE的精簡版,具備瓶頸結構,且在自注意力機制和前饋網絡之間實現了精心設計的平衡。
本模型是在 SQuAD1.1 數據集上,從HuggingFace的檢查點 google/mobilebert-uncased
進行微調得到的。
📚 詳細文檔
數據集詳情
數據集 |
劃分 |
樣本數量 |
SQuAD1.1 |
訓練集 |
90.6K |
SQuAD1.1 |
評估集 |
11.1k |
微調細節
- Python版本:
3.7.5
- 機器配置:
CPU
:Intel(R) Core(TM) i7 - 6800K CPU @ 3.40GHz
內存
:32 GiB
GPU
:2塊GeForce GTX 1070,每塊顯存8GiB
GPU驅動
:418.87.01,CUDA:10.1
- 腳本命令:
# 安裝 https://github.com/huggingface/transformers 之後
cd examples/question-answering
mkdir -p data
wget -O data/train-v1.1.json https://rajpurkar.github.io/SQuAD-explorer/dataset/train-v1.1.json
wget -O data/dev-v1.1.json https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.json
export SQUAD_DIR=`pwd`/data
python run_squad.py \
--model_type mobilebert \
--model_name_or_path google/mobilebert-uncased \
--do_train \
--do_eval \
--do_lower_case \
--train_file $SQUAD_DIR/train-v1.1.json \
--predict_file $SQUAD_DIR/dev-v1.1.json \
--per_gpu_train_batch_size 16 \
--per_gpu_eval_batch_size 16 \
--learning_rate 4e-5 \
--num_train_epochs 5.0 \
--max_seq_length 320 \
--doc_stride 128 \
--warmup_steps 1400 \
--output_dir $SQUAD_DIR/mobilebert-uncased-warmup-squad_v1 2>&1 | tee train-mobilebert-warmup-squad_v1.log
微調過程大約耗時3小時。
模型效果
模型大小:95M
指標 |
數值 |
原始論文數值 (Table 5) |
精確匹配率 (EM) |
82.6 |
82.9 |
F1值 |
90.0 |
90.0 |
注意,以上結果未進行任何超參數搜索。
💻 使用示例
基礎用法
from transformers import pipeline
qa_pipeline = pipeline(
"question-answering",
model="csarron/mobilebert-uncased-squad-v1",
tokenizer="csarron/mobilebert-uncased-squad-v1"
)
predictions = qa_pipeline({
'context': "The game was played on February 7, 2016 at Levi's Stadium in the San Francisco Bay Area at Santa Clara, California.",
'question': "What day was the game played on?"
})
print(predictions)
由 Qingqing Cao 創建 | GitHub | Twitter
於紐約用心打造 ❤️
📄 許可證
本項目採用MIT許可證。