P-stage2 [Day6] autoML로 인한 최적화된 환경 너무좋다.
과거의 것들/AI Tech boostcamp

P-stage2 [Day6] autoML로 인한 최적화된 환경 너무좋다.

수업내용

두 문장 관계 분류 task는 이런 식으로 이루어짐. cls에 관계 표시하고 sentenceA와 sentenceB로 나눠서. 지난번에 했던 거랑 같다.

자연어 맥락을 이해하는 Natural Language Inference (NLI)(3개의 label), 두 문장이 같은 의미의 문장인지 검증하는 Semantic text pair (2개의 label) 등의 문제가 여기에 속함.

오늘 실습할 내용은 지난번에 했던 챗봇인데 단순하게 cosine 유사도로 한걸 개선시켜서 text2vector로 비교하고 top1을 정답으로 할 텐데 이게 정말 맞는지도 알아내는 모델도 넣을거다.

실습

두 문장의 관계 분류를 위한 학습 데이터를 구축해보도록 하겠습니다.

이번 task의 목적은, paraphrasing 된 두 문장이 서로 같은 의미를 가지고 있는지 분류하는 것입니다.

Day6_실습자료0학습_데이터_구축.ipynb의 사본

Google Colaboratory

주어진 데이터셋을 가지고 어떻게하면 내 목적에 맞게 데이터를 만들 수 있나 하는 과정. 말 그대로 만드는 거다. 이를 모델에 넣도록 만드는건 다음에.

Day6_실습자료1두_문장_관계_분류_학습.ipynb의 사본

Google Colaboratory

위에서 했던 실습으로 만든 데이터를 통해 실제 모델에 넣는 과정과 넣고 훈련하는것, 예측까지.

Day6_실습자료2BERT_IRQA_챗봇.ipynb의 사본

Google Colaboratory

cosine 유사도와 내가 실습자료 1에서 훈련한 모델 두개를 이용해 그냥 cosine 유사도로 했던것 보다 보완하는 모습. cosine 유사도로 뽑는게 일단 빠르니까 이걸로 입력되어 있는 비슷한 질문 top 5개를 뽑아낸 다음 내가 뽑아낸 비슷한 질문이 진짜 질문한거랑 유사한지를 모델을 통해 판단한다. 말 그대로 위 그림과 같은 방식인 모습.

피어세션

['token_type_ids'] 하든 안하든 의미 없는것 같음. transformers코드 안 보니까 단순히 더해주는 거더라. 기계한테 알려주는 역할 정도밖에 안되는듯.
토론게시판에 있는 29만개 추가데이터 그냥 때려넣으면 안되고. 우리 데이터의 샘플 비율에 맞춰서 하면 잘 되더라. label 1개인것도 다 넣었다.
파파고. 구글 막힌듯. 뽀로로 데이터셋.
tokenizer는 모델이랑 별 관련없이 걍 좋은거 쓰기도 하는듯. 토론에 비교해서 올린 거 있음. electra tokenizer가 [UNK]가 제일 안나옴 -> 제일 좋은거다.
데이터 엄청 많은거 안짜르고 하면 너무 오래걸리니까 max_length = 512 정도로 하는듯. 아님 200? 128.

목표

내가 실험한 autoML로 제일 잘나온 단일모델 해보고 토론게시판 다 보고 내가 해볼수 있는거 해보기

행동

내가 한 autoML을 보고 가장 점수가 잘 나온거 해서 75.3% 나왔음.

모든 토론게시판 다 봤는데 text argument랑 데이터 이미 만들어주신 분들꺼 쓰면서 해도 될듯

회고

토론게시판을 쭉 보니까 이제 내가 해야 할게 뭔지 알것 같다. 할수 있을만한것들부터 하자.

'과거의 것들 > AI Tech boostcamp' 카테고리의 다른 글

P-stage2 [Day8] 외부 데이터, smooth, ner  (0) 2021.11.30
P-stage2 [Day7] focal loss, 다른 tokenizer들  (0) 2021.11.30
P-stage2 [Day5]  (0) 2021.11.30
P-stage2 [Day4]  (0) 2021.11.30
P-stage2 [Day3]  (0) 2021.11.30