ja-ginza와 ja-ginza-electra의 속도 비교
일본어 NLP 라이브러리 GINZA가 발표한
ja-ginza-electra
모델에서는 기존ja-ginza
에 비해 정밀도가 높아졌다.(출처: https://megagonlabs.github.io/ginza/
다만, 속도 면에서 얼마나 차이가 나는지를 의식해 이 기사에서 둘의 속도를 비교했다.
차리다
python = "^3.9"
pip install ja-ginza = "^5.0.0"
pip install ja-ginza-electra = "^5.0.0"
코드검증을 위해 다음 코드를 준비했습니다.
각 모델에 대해 영패화를 실시하여 각각 이때 걸린 초수를 측정한다.
main.py
import time
import spacy
def use_ja_ginza(text, cache=None):
nlp = spacy.load('ja_ginza') if cache is None else cache
[token for token in nlp(text)]
return nlp
def use_ja_ginza_electra(text, cache=None):
nlp = spacy.load('ja_ginza_electra') if cache is None else cache
[token for token in nlp(text)]
return nlp
def stopwatch(func, times=100):
# 桃太郎 芥川龍之介 https://www.aozora.gr.jp/cards/000879/card100.html
s = 'むかし、むかし、大むかし、ある深い山の奥に大きい桃《もも》の木が一本あった。大きいとだけではいい足りないかも知れない。この桃の枝は雲の上にひろがり、この桃の根は大地《だいち》の底の黄泉《よみ》の国にさえ及んでいた。何でも天地|開闢《かいびゃく》の頃《ころ》おい、伊弉諾《いざなぎ》の尊《みこと》は黄最津平阪《よもつひらさか》に八《やっ》つの雷《いかずち》を却《しりぞ》けるため、桃の実《み》を礫《つぶて》に打ったという、――その神代《かみよ》の桃の実はこの木の枝になっていたのである。'
time_s = time.perf_counter()
cache = None
for i in range(times):
cache = func(s, cache)
time_e = time.perf_counter()
return time_e - time_s
def main():
d = {
'ja-ginza': stopwatch(use_ja_ginza),
'ja-ginza-electra': stopwatch(use_ja_ginza_electra)
}
d = sorted(d.items(), key=lambda x: x[1])
print('\n'.join(map(str, d)))
if __name__ == '__main__':
main()
결실그 결과
ja-ginza-electra
비ja-ginza
보다 4배 느렸다.$ python main.py
('ja-ginza', 6.013060999999652)
('ja-ginza-electra', 22.437576700000136)
총결산정밀도는 높아졌지만 속도는 상당히 느린 것 같다.
선택
ja-ginza-electra
시 참고가 되었으면 합니다.
Reference
이 문제에 관하여(ja-ginza와 ja-ginza-electra의 속도 비교), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/satto_sann/items/00c6d21de568e6717a8f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)