kakao / khaiii

Kakao Hangul Analyzer III
Apache License 2.0
1.41k stars 284 forks source link

base 모델과 large 모델의 분석 속도가 거의 동일합니다. #45

Closed KwakSujeong closed 5 years ago

KwakSujeong commented 5 years ago

공개된 문서에 따르면 Base 모델과 Large 모델의 속도는 약 7.5배 정도의 차이가 있습니다. 제 서버에서 형태소 분석 속도를 측정해 보고 싶어, 약 1000개의 문장을 임의로 선정하여 테스트를 해보았는데요, 아래와 같이 속도가 유사합니다. (기분석을 제거한 경우는 설정을 몰라 preanal.auto 안에 내용을 모두 삭제한 후 재빌드하였습니다. )

Khaiii_Base(기분석 X) : 1.1763 Khaiii_Large(기분석 X) : 1.173 Khaiii_Base : 0.886 Khaiii_Large : 0.885

share/khaiii 폴더의 모델 파일로 짐작되는 파일들이 크기가 다른 것으로 봤을땐, 리소스는 제대로 적용 된것같은데, (Base) image (Large) image

속도가 거의 동일하게 측정 된 것이 이상하여 문의드립니다.

krikit commented 5 years ago

1) 올바른 리소스가 로딩되는 것인지 한번 더 확인해 보시기 바랍니다. 빌드를 하고나면 build/share/khaiii 위치에 리소스가 생성됩니다. 만약 make install 명령으로 설치하신다면 /usr/local/share/khaiii 위치에 리소스가 복사됩니다. python 바인딩을 pip install .으로 설치하신다면 해당 python 환경의 khaiii 모듈이 있는 위치의 디렉터리 아래 share/khaiii 디렉터리가 될겁니다. 예를 들어 base 모델로 빌드한 다음 make install 명령으로 설치하고 나서 large 모델을 다시 빌드하신다면 /usr/local/share/khaiii 아래는 base 모델이, build/share/khaiii에는 새로 빌드한 large 모델이 존재하겠지요.

2) 실행할 때 리소스 경로를 지정하고 있는 지 확인해 보시기 바랍니다. build/bin/khaiii 프로그램 혹은 설치 후 /usr/local/bin/khaiii 프로그램의 경우 --rsc-dir 옵션으로 리소스 경로를 받게 되는데, 이때 지정해 주지 않으면 /usr/local/share/khaiii 위치를 기본 리소스 경로로 사용합니다. 만약 리소스를 large 모델로 새로 빌드하고 make install 명령으로 새로 빌드한 리소스를 설치하지 않은 상황에서 사용하려면, khaiii 바이너리 프로그램을 실행할 때 --rsc-dir 옵션으로 새로 빌드한 large 리소스를 지정하셔야 겠죠 python 바인딩도 마찬가지 입니다. api = KhaiiiApi(rsc_dir='./my/new/share/khaiii')와 같이 새로 빌드한 large 모델을 지정해주지 않았다면, 이전에 base 모델로 설치한 리소스를 계속해서 사용하고 있을 수도 있으니까요.

KwakSujeong commented 5 years ago

/usr/local/share/khaiii 에 base 모델의 리소스가 저장되어 있었습니다 감사합니다^^