{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"This notebook shows how to fine-tune a BERT model (from huggingface) for our dataset recognition task.\n\nNote that internet is needed during the training phase (for downloading the bert-base-cased model). Internet can be turned off during prediction.","metadata":{"papermill":{"duration":0.011948,"end_time":"2021-03-31T14:13:55.209051","exception":false,"start_time":"2021-03-31T14:13:55.197103","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"# Import","metadata":{"papermill":{"duration":0.017014,"end_time":"2021-03-31T14:14:24.838019","exception":false,"start_time":"2021-03-31T14:14:24.821005","status":"completed"},"tags":[]}},{"cell_type":"code","source":"import os\nimport re\nimport json\nimport time\nimport datetime\nimport random\nimport glob\nimport importlib\n\nimport numpy as np\nimport pandas as pd\n\nfrom tqdm import tqdm\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\nrandom.seed(123)\nnp.random.seed(456)","metadata":{"papermill":{"duration":0.654299,"end_time":"2021-03-31T14:14:25.5092","exception":false,"start_time":"2021-03-31T14:14:24.854901","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-05-30T10:10:03.922258Z","iopub.execute_input":"2021-05-30T10:10:03.922642Z","iopub.status.idle":"2021-05-30T10:10:04.553117Z","shell.execute_reply.started":"2021-05-30T10:10:03.922566Z","shell.execute_reply":"2021-05-30T10:10:04.552301Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Fine-tune a SciBERT model for NER","metadata":{"papermill":{"duration":4.295647,"end_time":"2021-03-31T14:19:27.988053","exception":false,"start_time":"2021-03-31T14:19:23.692406","status":"completed"},"tags":[]}},{"cell_type":"code","source":"%%capture\n!pip3 install datasets\n!pip3 uninstall --yes fsspec\n!pip install fsspec\n!pip install ../input/coleridge-packages/seqeval-1.2.2-py3-none-any.whl","metadata":{"execution":{"iopub.status.busy":"2021-05-30T10:15:25.605825Z","iopub.execute_input":"2021-05-30T10:15:25.606170Z","iopub.status.idle":"2021-05-30T10:15:44.880663Z","shell.execute_reply.started":"2021-05-30T10:15:25.606137Z","shell.execute_reply":"2021-05-30T10:15:44.879637Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!cp ../input/scibertnerfiles/my_seqeval.py ./","metadata":{"execution":{"iopub.status.busy":"2021-05-30T10:21:18.415982Z","iopub.execute_input":"2021-05-30T10:21:18.416346Z","iopub.status.idle":"2021-05-30T10:21:19.078291Z","shell.execute_reply.started":"2021-05-30T10:21:18.416311Z","shell.execute_reply":"2021-05-30T10:21:19.077239Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!python ../input/kagglenerutilsadjusted/kaggle_run_ner_adjusted.py \\\n--model_name_or_path 'allenai/scibert_scivocab_uncased' \\\n--train_file '../input/scibertnerfiles/train_scibert.json' \\\n--validation_file '../input/scibertnerfiles/val_scibert.json' \\\n--max_length 128 \\\n--pad_to_max_length True \\\n--num_train_epochs 1 \\\n--per_device_train_batch_size 8 \\\n--per_device_eval_batch_size 8 \\\n--save_steps 15000 \\\n--output_dir './output' \\\n--report_to 'none' \\\n--seed 123 \\\n--do_train","metadata":{"execution":{"iopub.status.busy":"2021-05-30T10:38:28.401905Z","iopub.execute_input":"2021-05-30T10:38:28.402313Z","iopub.status.idle":"2021-05-30T13:48:14.777311Z","shell.execute_reply.started":"2021-05-30T10:38:28.402277Z","shell.execute_reply":"2021-05-30T13:48:14.776342Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"After the tuning finishes, we should find our model in './output'.","metadata":{"papermill":{"duration":23.947845,"end_time":"2021-03-31T18:29:39.777446","exception":false,"start_time":"2021-03-31T18:29:15.829601","status":"completed"},"tags":[]}}]}