Natural Langauge Inference with Bert

Import

import numpy as np
import pandas as pd
from transformers import BertTokenizer, TFBertModel, AutoTokenizer, TFAutoModel
import matplotlib.pyplot as plt
import tensorflow as tf
from datasets import load_dataset
from sklearn.model_selection import train_test_split
import gc

Configuration

class CFG:
    batch_size = 128
    sequence_length = 128

→ Batch_size와 Sequence_length를 미리 지정함

TPU setup

try:
    tpu = tf.distribute.cluster_resolver.TPUClusterResolver()
    tf.config.experimental_connect_to_cluster(tpu)
    tf.tpu.experimental.initialize_tpu_system(tpu)
    strategy = tf.distribute.experimental.TPUStrategy(tpu)
    CFG.batch_size = strategy.num_replicas_in_sync * 16
except ValueError:
    strategy = tf.distribute.get_strategy() # for CPU and single GPU
print('Number of replicas:', strategy.num_replicas_in_sync)

Load Data

train = pd.read_csv("../input/contradictory-my-dear-watson/train.csv")
train.head()

Load Pretrained Model

with strategy.scope():
    model_roBerta ='joeddav/xlm-roberta-large-xnli'
    tokenizer = AutoTokenizer.from_pretrained(model_roBerta)
    encoder = TFAutoModel.from_pretrained(model_roBerta)
    gc.collect()

<aside> 💡 자연어 처리 작업을 위해 사전 학습된 XLM-RoBERTa 모델을 설정하는 코드

</aside>

MNLI dataset

<aside> 💡 자연어 이해 작업 중 하나인 문장 간 추론을 수행하기 위한 데이터 셋 중 하나

</aside>