나만의 언어모델 만들기 - korquad 1.0 제출하기

nawnoes·2020년 12월 25일
0

NLP

목록 보기
5/45

korquad 1.0 제출하기

학습시킨 Language Model의 성능 측정을 Korquad 1.0으로 진행하고, 리더보드에 업로드 하기 위해 제출해보도록 한다.

korquad 1.0 제출 부분

들어오면 아래와 같은 화면이 보인다.

CodaLab 계정 만들고, 튜토리얼 숙지. 확인해보니 이전에 만들어둔 계정이 있었다.

1. CodaLab 워크시트 생성하기

KorQuAD Submission Guide (Korean Ver.)에서 오른쪽 상단에 New Worksheet버튼 클릭

New Worksheet 생성

2. dev set에 대한 prediction 파일 업로드

오른쪽 상단 모서리에 있는 Upload버튼을 클릭하고 라고 되어있지만 20년 12월 기준에는 좌측에 있다.

업로드중..

업로드 완료

아래와 같이 bundle에 electra_predictions.json이 보이게 된다.

3. 업로드한 개발 셋에 평가 데이터 실행.

페이지 상단의 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]입력

잠시후 새로고침을 하면 결과가 아래 출력된다.

평가가 제대로 안된듯..

4. 평가에 사용할 모델을 업로드

테스트 데이터에 대해 평가 하기 위해, 데이터가 아닌 학습 모델 전체를 올려야한다. 학습 모델을 올리기 위해서는 src디렉토리 아래에 필요한 config 및 vocab, 소스 파일들을 모두 포함하여 올린다.

가이드에서는 CodaLab의 업로드 속도가 느려 CLI를 통해 업로드 하는것을 권장하지만 나는 CodaLab 웹 내에서 직접 업로드로 진행해본다.

5. 평가 데이터 가져오기

CodaLab 터미널에 입력하면 KorQuAD_v1.0_dev.json가 번들에 생성된다.

 cl add bundle korquad-data//KorQuAD_v1.0_dev.json

6. 소스코드 실행

모델의 평가를 위해 src 디렉토리에 불러온 소스 코드를 실행한다.

6.1. CodaLab에 직접 파이썬 패키지 설치

실패로 6.2. 방법을 사용하시길 바랍니다.

평가에 사용하는 Language Model의 경우 사용하는 python package가 있어, 학습하기전에 requirements.txt를 통해 설치하고자 한다.

cl run :src 'pip3 install -r "src/requirements.txt"' 

명령을 실행하면 bundle이 새로 생성되고 state가 preparing상태가 되고, 조금 기다려야한다...⏱

하지만 에러메시지를 뿜으며 실행 X

6.2 도커 이미지로 만들어서 올리기

위의 6.1에서 requirements.txt에 대한 패키지를 설치할수 없어서 도커이미지로 만들고 그 도커이미지와 함께 평가 코드를 돌려보고자 한다.
requirements.txt

torch
transformers
reformer_pytorch==1.1.3
electra-pytorch
kss
tqdm

src 아래에 dockerfile생성 후 빌드

# 도커에 이미지에 기반으로 사용할 파이토치 버전
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 .

도커 이미지 push

docker push nawnoes/korquad-submit:0.1

완료후 docker hub에 아래와 같이 올라가게 된다.

생성된 도커 이미지를 이용하여 KorQuAD 평가하기

아래 명령어를 이용해 KorQuAD 평가 모델의 평가를 진행한다.

① GPU를 사용한 평가
$ 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를 사용한평가

하루를 기다려도 자원이 할당되지 않아서 공식 가이드대로 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 

한숨 자고 일어나니 평가 완료🎊

생성된 prediction.json 평가

① 번들에 prediction.json 파일 추가

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

작성중..🏃‍♂️

References

0개의 댓글