학습시킨 Language Model의 성능 측정을 Korquad 1.0으로 진행하고, 리더보드에 업로드 하기 위해 제출해보도록 한다.
korquad 1.0 제출 부분
들어오면 아래와 같은 화면이 보인다.
CodaLab 계정 만들고, 튜토리얼 숙지. 확인해보니 이전에 만들어둔 계정이 있었다.
KorQuAD Submission Guide (Korean Ver.)에서 오른쪽 상단에 New Worksheet
버튼 클릭
오른쪽 상단 모서리에 있는 Upload
버튼을 클릭하고 라고 되어있지만 20년 12월 기준에는 좌측에 있다.
아래와 같이 bundle에 electra_predictions.json이 보이게 된다.
페이지 상단의 web interface terminal
에 아래 명령어 입력. 작성일 기준 상단SHOW TERMINAL
에서 실행
cl macro korquad-utils/dev-evaluate-v1.0 <name-of-your-uploaded-prediction-bundle>
나의 경우 cl macro korquad-utils/dev-evaluate-v1.0 [electra_predictions.jsond의 uuid]
입력
잠시후 새로고침을 하면 결과가 아래 출력된다.
평가가 제대로 안된듯..
테스트 데이터에 대해 평가 하기 위해, 데이터가 아닌 학습 모델 전체를 올려야한다. 학습 모델을 올리기 위해서는 src
디렉토리 아래에 필요한 config 및 vocab, 소스 파일들을 모두 포함하여 올린다.
가이드에서는 CodaLab의 업로드 속도가 느려 CLI를 통해 업로드 하는것을 권장하지만 나는 CodaLab 웹 내에서 직접 업로드로 진행해본다.
CodaLab 터미널에 입력하면 KorQuAD_v1.0_dev.json
가 번들에 생성된다.
cl add bundle korquad-data//KorQuAD_v1.0_dev.json
모델의 평가를 위해 src 디렉토리에 불러온 소스 코드를 실행한다.
실패로 6.2. 방법을 사용하시길 바랍니다.
평가에 사용하는 Language Model의 경우 사용하는 python package가 있어, 학습하기전에 requirements.txt를 통해 설치하고자 한다.
cl run :src 'pip3 install -r "src/requirements.txt"'
명령을 실행하면 bundle이 새로 생성되고 state가 preparing
상태가 되고, 조금 기다려야한다...⏱
하지만 에러메시지를 뿜으며 실행 X
위의 6.1에서 requirements.txt
에 대한 패키지를 설치할수 없어서 도커이미지로 만들고 그 도커이미지와 함께 평가 코드를 돌려보고자 한다.
requirements.txt
torch
transformers
reformer_pytorch==1.1.3
electra-pytorch
kss
tqdm
# 도커에 이미지에 기반으로 사용할 파이토치 버전
FROM pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel
# 생성한 사람 이름 및 정보...생략가능
MAINTAINER seonghwan kim, <nawnoes@gmail.com>
# requirements.txt 복사
COPY ./requirements.txt /usr/src/requirements.txt
# requirements.txt 설치
RUN pip install -r /usr/src/requirements.txt
docker build --tag nawnoes/korquad-submit:0.1 .
docker push nawnoes/korquad-submit:0.1
완료후 docker hub에 아래와 같이 올라가게 된다.
아래 명령어를 이용해 KorQuAD 평가 모델의 평가를 진행한다.
$ cl run :KorQuAD_v1.0_dev.json :src "python src/submit.py KorQuAD_v1.0_dev.json predictions.json" -n run-predictions --request-docker-image nawnoes/korquad-submit:0.1 --request-memory 11g --request-gpus 1
상태가 staged
로 자원이 할당되기 전까지 기다려야 한다고 한다.
문제는 하루를 기다려도 staged 상태😅
하루를 기다려도 자원이 할당되지 않아서 공식 가이드대로 CPU를 이용해 평가하고자한다.
위 명령어에서 --request-gpus 1
를 없애고 실행.
cl run :KorQuAD_v1.0_dev.json :src "python src/submit.py KorQuAD_v1.0_dev.json predictions.json" -n run-predictions-cpu --request-docker-image nawnoes/korquad-submi
t:0.2 --request-memory 11g
한숨 자고 일어나니 평가 완료🎊
MODELNAME에 공백이나 특수문자 없이 입력을 가이드 하지만 dash(-) 정도는 사용 가능한것 같다.
// 자신의 MODELNAME 입력
cl make run-predictions-cpu/prediction.json -n predictions-{MODELNAME}
// 실행명령
cl make run-predictions-cpu/prediction.json -n predictions-reformer-electra
cl macro korquad-utils/dev-evaluate-v1.0 predictions-reformer-electra
작성중..🏃♂️