두 문장의 관계 분류에는 NLI, Semantic Text Pair 등의 Task가 있으며, 이를 기반으로 IRQA(Information Retrieval Question and Answering) 챗봇을 구현해보자.
cls 토큰을 가져오는 것은 Bert모델의 output.last_hidden_state의 [:,0,:]에 해당한다.
logits = outputs.last_hidden_state[:,0,:].detach().cpu().numpy()
주어진 데이터는 Key 문장에 유사한 의미를 가진 9개의 value 문장들이 존재하며, 총 10000개의 문장 데이터가 있다.
각 문장들을 위의 코드로 Bert 모델을 통해 나온 결과를 가져오고, Cosine Sim을 이용해 Top n개의 문장을 Key 문장과 유사하지 않은 문장으로 학습 데이터를 구축하여 좀 더 어려운 방식으로 학습을 진행하게 된다.